ekrctb
5c743adbae
Support hit object pooling scrolling playfield
2020-11-24 18:56:05 +09:00
Dean Herbert
c9a41f9dae
Make all objects in selection candidates for spatial snapping
...
Closes #10898 .
2020-11-24 17:35:54 +09:00
Dan Balasescu
87ce8a53ff
Merge branch 'master' into on-drawable-hitobject-added
2020-11-24 16:09:57 +09:00
Dean Herbert
1682260677
Remove left over logging line
2020-11-24 15:28:03 +09:00
Dean Herbert
ee33f62809
Fix DrawableJudgement not always animating correctly on skin change
...
If the skin is changed before gameplay has started (at the loading
screen) it is possible for a sequence of events to occur which results
in the animation not being played:
- `SkinReloadableDrawable` runs its BDL load (and calls `OnSkinChanged`
once)
- User changes skin, triggering `DrawableJudgement`'s skin change
handling (binding directly on the `SkinSource` locally)
- This will call `PrepareDrawables` and reinitialise the
`SkinnableDrawable` child hierarchy, then immediately apply the
animations to it.
- The new `SkinnableDrawable` will then get the `SkinChanged` event and
schedule a handler for it, which will run on its first Update call.
- Any added animations will be lost as a result.
Fixed by binding directly to the `SkinnableDrawable`'s `OnSkinChanged`.
This has the added bonus of not needing to reinitialise the child
hierarchy on skin change (which felt a bit weird in the first place).
2020-11-24 15:23:53 +09:00
Dean Herbert
060acb9010
Merge pull request #10935 from bdach/fix-mania-judgement-fade-in
...
Rewind judgement transforms before clearing
2020-11-23 17:05:04 +09:00
Dean Herbert
19faa2b9bb
Add comment covering intentional call to ClearTransformsAfter
2020-11-23 15:20:59 +09:00
Bartłomiej Dach
827a089810
Merge branch 'master' into change-taiko-ez
2020-11-22 13:29:02 +01:00
ekrctb
666112cb5a
Address @bdach's minor suggestions
2020-11-22 18:51:16 +09:00
ekrctb
c506b438bf
Remove more code and make some methods private
2020-11-22 18:51:16 +09:00
Bartłomiej Dach
9f997db958
Rewind judgement transforms before clearing
2020-11-21 17:56:49 +01:00
ekrctb
295ca38cda
Merge remote-tracking branch 'origin/master' into on-drawable-hitobject-added
2020-11-21 15:25:16 +09:00
ekrctb
4345d8dcb6
Event -> virtual method
2020-11-21 15:20:33 +09:00
ekrctb
281ed49332
Add HasInitialized
to DHO
...
As it turned out, `IsLoaded` is not a reliable way.
2020-11-21 11:19:52 +09:00
ekrctb
82aefa3868
Rework and rename to OnNewDrawableHitObject.
...
The semantics is changed and hopefully more clear.
2020-11-21 00:27:19 +09:00
ekrctb
772f6df668
Add a remark for DrawableHitObjectAdded
2020-11-20 18:00:00 +09:00
ekrctb
c013cd11c9
Add DrawableHitObjectAdded event
2020-11-20 17:56:47 +09:00
Dean Herbert
53b6d90ab4
Don't show default judgements in front of objects for now
2020-11-20 16:30:58 +09:00
Dean Herbert
a00e0d7279
Move CanBeNull specification to the interface
2020-11-20 16:30:48 +09:00
Dean Herbert
7fe0923fcf
Show main judgement content above hitobjects
2020-11-20 16:25:48 +09:00
smoogipoo
7180bfe4ba
Unlimit number of samples per pool
2020-11-19 21:21:57 +09:00
smoogipoo
f013928fa3
Set maximum pool size
2020-11-19 20:40:01 +09:00
smoogipoo
70cb197957
Cleanups
2020-11-19 20:38:36 +09:00
smoogipoo
8920534a25
Fix pools not being added to hierarchy
2020-11-19 20:24:03 +09:00
smoogipoo
730b14b5bb
Add initial hit sample pooling
2020-11-19 19:51:09 +09:00
Dean Herbert
ba735584fa
Add null check for disposal safety
2020-11-19 14:04:43 +09:00
Bartłomiej Dach
24d7fa03d8
Merge branch 'master' into legacy-jugement-match-stable-transforms
2020-11-18 20:33:58 +01:00
Bartłomiej Dach
5156de3a10
Merge branch 'master' into fix-judgement-transform-logic
2020-11-18 19:20:11 +01:00
smoogipoo
cb5d1d0d77
Remove obsolete method
2020-11-18 21:26:35 +09:00
Dean Herbert
b3bec81b79
Update xmldoc to match new behaviour
2020-11-18 19:38:38 +09:00
Dean Herbert
8522ddc61e
Reduce nesting of skinned component to reduce exposed surface
2020-11-18 19:34:27 +09:00
Dean Herbert
ee8804b50b
Fix animation playback not running on skin change
2020-11-18 19:03:34 +09:00
Dean Herbert
c47e70da9b
Update animations for new/old miss style and add fades
2020-11-18 19:03:34 +09:00
Dean Herbert
9d3de5bca0
Fix hit lighting dictating lifetime even when not present in skin
2020-11-18 19:03:34 +09:00
Dean Herbert
72a15ef2dc
Handle DrawableJudgement lifetime more flexibly
2020-11-18 19:03:34 +09:00
Dean Herbert
94886a09b2
Remove fades from DrawableJudgement itself
2020-11-18 19:03:34 +09:00
Bartłomiej Dach
875d7dec79
Remove redundant this.
qualifier
2020-11-17 20:11:13 +01:00
Dean Herbert
8247e6ce91
Move result type to ctor
2020-11-17 15:43:54 +09:00
Dean Herbert
e4f1e52422
Add xmldoc coverage of Apply()
2020-11-17 15:03:26 +09:00
Dean Herbert
f465dd5a5e
Move all extended animation logic out of DrawableJudgement
2020-11-17 14:59:34 +09:00
Dean Herbert
9dfa4249e0
Make Apply non-virtual
2020-11-17 14:05:13 +09:00
Bartłomiej Dach
8da40ce2dc
Reduce duplication by extracting ModEasyWithExtraLives
2020-11-16 19:54:00 +01:00
Bartłomiej Dach
128adce017
Merge branch 'master' into change-taiko-ez
2020-11-16 19:37:47 +01:00
Bartłomiej Dach
72a8734f93
Merge branch 'master' into add-back-initiallifetimeoffset
2020-11-16 18:54:37 +01:00
smoogipoo
e8dbc190f1
Remove ability to pool DHOs in parent playfields
2020-11-16 23:30:24 +09:00
smoogipoo
cead67d512
Add back removed InitialLifetimeOffset removal
2020-11-16 21:49:29 +09:00
PercyDan54
f2ef7bee5d
Fix checks
2020-11-16 18:17:50 +08:00
PercyDan54
d7acfd5413
Remove retires from ModEasy
2020-11-16 18:15:15 +08:00
Dan Balasescu
09298139e1
Merge pull request #10844 from bdach/spinner-rotation-tracker-state
...
Fix rotation tracker state not being reset on drawable spinner re-use
2020-11-16 17:10:40 +09:00
Dean Herbert
6706840b54
Merge pull request #10853 from bdach/add-to-legacy-conversion-tests
2020-11-16 15:22:04 +09:00
Bartłomiej Dach
9c0a0031d6
Clear existing transforms on DHO return to pool
2020-11-15 19:50:22 +01:00
Bartłomiej Dach
5d44286d38
Add missing generic mappings to legacy mods
2020-11-15 15:35:06 +01:00
Bartłomiej Dach
5ace7abaa8
Add abstract non-generic ModNightcore to pattern-match over
2020-11-15 15:32:02 +01:00
Bartłomiej Dach
f8cabbdd21
Clear result when freeing pooled hitobject
2020-11-14 21:09:22 +01:00
Bartłomiej Dach
610ed99ae3
Add null checks to unguarded resolved-as-null fields
2020-11-14 14:52:58 +01:00
smoogipoo
21b015d63a
Remove explicit public
2020-11-14 01:06:38 +09:00
smoogipoo
c71b237c4f
Merge all pooling support into Playfield
2020-11-14 00:59:08 +09:00
smoogipoo
36f1833f6e
Move hitobject pooling to Playfield
2020-11-14 00:41:18 +09:00
Dean Herbert
f093acc9d5
Merge pull request #10823 from smoogipoo/pooling-editor-support
...
Add pooling support to the editor
2020-11-13 19:58:46 +09:00
smoogipoo
d83b479c81
Internalise lifetime extensions and events too
2020-11-13 19:21:45 +09:00
smoogipoo
4a4219fd11
Add region
2020-11-13 19:21:45 +09:00
smoogipoo
92189e35cc
Make playfield KeepAlive methods internal
2020-11-13 19:21:45 +09:00
smoogipoo
688a442fb3
Add missing dictionary
2020-11-13 17:26:46 +09:00
smoogipoo
942ecde0e1
Merge branch 'master' into pooling-editor-support
2020-11-13 17:23:35 +09:00
smoogipoo
3957697c48
Add pooling support to the editor
2020-11-13 17:08:20 +09:00
smoogipoo
4ef2e9548c
Pass HitObjectComposer to BlueprintContainer via ctor
2020-11-13 16:59:37 +09:00
Dean Herbert
06fd0d08d1
Merge branch 'master' into nested-hitobject-pooling
2020-11-13 16:53:20 +09:00
smoogipoo
4236dd826d
Improve documentation and make abstract again
2020-11-13 14:57:09 +09:00
smoogipoo
a07d4a7915
Remove unnecessary dictionary for now
2020-11-13 14:42:41 +09:00
smoogipoo
35329aa976
Reduce the number of state updates
2020-11-13 14:33:23 +09:00
Dan Balasescu
2840fd0f8f
Merge branch 'master' into hitobject-pooling-base
2020-11-12 23:17:36 +09:00
smoogipoo
261ddd2b4a
Fix samples not being disposed
2020-11-12 18:48:25 +09:00
smoogipoo
8aaa500431
Add lifetime extensions
2020-11-12 18:34:50 +09:00
smoogipoo
243e913e4a
Add hitobject usage events
2020-11-12 18:32:20 +09:00
smoogipoo
fe347c8661
Add playfield support for keeping hitobjects alive
2020-11-12 18:30:32 +09:00
smoogipoo
7548db7ecc
Fix hitobjects sometimes not fading in completely with HD mod
2020-11-12 18:29:22 +09:00
smoogipoo
a8c2b798ad
Add support for nested hitobject pooling
2020-11-12 17:43:51 +09:00
smoogipoo
e44a8b3934
Resort as early as possible
2020-11-12 17:07:20 +09:00
Dean Herbert
41a1730927
Merge pull request #10794 from smoogipoo/fix-osu-hd-mod
2020-11-12 17:06:04 +09:00
smoogipoo
cf91962865
Fix test failures due to on-the-fly starttime changes
2020-11-12 16:58:40 +09:00
smoogipoo
974390bda7
Make Add() + Remove() virtual
2020-11-12 15:36:02 +09:00
smoogipoo
72a6b75626
Add back removed event
2020-11-12 15:34:51 +09:00
smoogipoo
4e43235955
Fix double bind leading to test failures
2020-11-12 15:33:49 +09:00
smoogipoo
653f5bce67
Reword xmldocs
2020-11-12 15:00:58 +09:00
smoogipoo
16e4e8d032
Fix possible nullref
2020-11-12 14:54:33 +09:00
smoogipoo
1f8d376b85
Replace CreatePool() with non-virtual RegisterPool() overload
2020-11-12 14:17:33 +09:00
smoogipoo
5dbbe11fc6
Remove PoolHitObjects, use return value of CreateDrawableRepresentation() instead
2020-11-12 14:04:16 +09:00
smoogipoo
f652eb9982
Remove GetDrawableRepresentation() override, add null hinting
2020-11-12 13:18:44 +09:00
smoogipoo
d7d77460fb
Small refactorings
2020-11-12 12:55:42 +09:00
smoogipoo
a8929b0764
Revert unnecessary change of casting
2020-11-11 19:27:07 +09:00
smoogipoo
7fdaf69903
Add some more xmldocs
2020-11-11 19:12:12 +09:00
smoogipoo
606cfacedf
Fix state update exception in a better way
2020-11-11 19:01:12 +09:00
smoogipoo
7d02018134
Remove some unnecessary implementations for now
2020-11-11 18:54:40 +09:00
smoogipoo
d7bee80d4e
Merge branch 'fix-incorrect-framestability-value' into hitobject-pooling-base
2020-11-11 18:52:51 +09:00
smoogipoo
90499329bd
Fix frame stable playback not being set correctly
2020-11-11 18:50:38 +09:00
smoogipoo
6f7a1dd57d
Merge branch 'master' into hitobject-pooling-base
2020-11-11 17:09:18 +09:00
smoogipoo
5d55af5818
Fix hitobjects sometimes not fading in completely with HD mod
2020-11-11 16:35:48 +09:00
Dean Herbert
8706b51b77
Merge pull request #10717 from smoogipoo/dho-apply
2020-11-11 10:54:24 +09:00
smoogipoo
b725c9cce9
Fix possible nullrefs
2020-11-11 00:24:28 +09:00
smoogipoo
e525784cb2
Clear lifetimeEntry after use
2020-11-11 00:24:14 +09:00
smoogipoo
99e5450af3
Cache DrawableRuleset
2020-11-11 00:22:36 +09:00
smoogipoo
66213f2ed0
Add pooling support to DrawableRuleset + Playfield
2020-11-10 23:56:32 +09:00
smoogipoo
31e4d71852
Rewrite HitObjectContainer with pooling support
2020-11-10 22:49:02 +09:00
smoogipoo
6f3f6dc28b
Add hitobject lifetime support
2020-11-10 20:16:52 +09:00
smoogipoo
45e9f16f6b
Add initial DrawableRuleset interface
2020-11-10 19:27:08 +09:00
smoogipoo
757a4b5c31
Add hitobject lifetime model
2020-11-10 19:26:01 +09:00
smoogipoo
88112801eb
Remove result storage from hitobject
2020-11-10 18:56:16 +09:00
smoogipoo
f5076fe3b8
Revert unnecessary change
2020-11-10 18:15:11 +09:00
Bartłomiej Dach
109abc0e29
Always store standardised score when populating ScoreInfo
2020-11-10 08:41:00 +01:00
smoogipoo
d4d3a6621e
Disable automatic lifetime management
2020-11-10 01:30:25 +09:00
smoogipoo
ac47399e6e
Update state after OnApply()
2020-11-10 00:30:23 +09:00
smoogipoo
ec8b726ea8
Re-privatise start time bindable
2020-11-09 21:51:58 +09:00
Dan Balasescu
33c3b07101
Fix events not being bound correctly
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-11-09 19:06:48 +09:00
Dean Herbert
d93cf08570
Merge branch 'master' into dho-apply
2020-11-07 01:18:46 +09:00
smoogipoo
91c627c22d
Revert HOC changes
2020-11-07 00:57:33 +09:00
smoogipoo
b1e039bcec
Prevent overrides from messing with application/freeing
2020-11-07 00:40:26 +09:00
smoogipoo
3a4bd73823
Fix DHOs being freed when not expected
2020-11-07 00:25:26 +09:00
smoogipoo
7eceda242b
Change derived class to use property
2020-11-06 23:04:28 +09:00
smoogipoo
2d892c7407
Allow Apply() to be called multiple times sequentially
2020-11-06 23:03:29 +09:00
smoogipoo
248d342a2f
Initial Apply()/FreeAfterUse() DHO implementation
2020-11-06 23:02:37 +09:00
Dan Balasescu
f230250faf
Merge branch 'master' into editor-slider-control-point-quick-delete
2020-11-06 21:47:37 +09:00
Dan Balasescu
44c6457c85
Merge branch 'master' into add-spinner-spin
2020-11-06 15:40:40 +09:00
Dan Balasescu
71a1165209
Merge branch 'master' into drawable-hit-object-hit-state-fix
2020-11-06 13:19:25 +09:00
Dean Herbert
a0b3379909
Fix judgement offsets being zero when windows are empty
2020-11-05 18:58:37 +09:00
Dean Herbert
2bbdbfda5c
Merge pull request #10696 from smoogipoo/visibility-adjustment-mod
2020-11-05 18:18:57 +09:00
Dean Herbert
2d50a7b616
Fix a few xmldoc typos
2020-11-05 17:38:02 +09:00
Dean Herbert
0cadb31947
Merge branch 'master' into drawable-hit-object-hit-state-fix
2020-11-05 17:07:52 +09:00
smoogipoo
9d5b1ec28c
Add removal dates
2020-11-05 17:04:11 +09:00
smoogipoo
cc518feca7
Make methods abstract
2020-11-05 16:03:10 +09:00
smoogipoo
a219aa7ba2
Add xmldoc
2020-11-05 15:53:35 +09:00
smoogipoo
628b8be15d
Implement ModWithVisibilityAdjustment
2020-11-05 15:40:25 +09:00
smoogipoo
9a7fcadabc
Use BDL for top-level osu! DHOs
2020-11-05 13:51:46 +09:00
Dean Herbert
68b7efe4d5
Change order of execution to be chronological
2020-11-04 17:14:23 +09:00
Dean Herbert
831325978a
Always execute UpdateHitStateTransforms (even for idle)
2020-11-04 17:14:23 +09:00
Dean Herbert
3b6cf95f49
Remove parameter from StartTime method and add obsoleted previous version
2020-11-04 16:39:52 +09:00
Dean Herbert
7f30140b7e
Add new method handling hit state specifically
...
Until now UpdateStateTransforms was applying results offsets to
StartTime. This didn't cover the case of a HitObject with duration,
where the call would be made with `StartTime + hitOffset` rather than
`EndTime + hitOffset`.
To resolve this, a new method has been added which should be used to
handle hit-specific state transforms.
2020-11-04 16:13:14 +09:00
Dean Herbert
9f333ac58a
Add the ability to delete slider control points using shift+right click
...
Closes https://github.com/ppy/osu/issues/10672 .
In two minds about how this should be implemented but went in this
direction initially. The other way would be to add local handling of
Shift-Right Click inside PathControlPointPiece (which is already doing
mouse handling itself).
2020-11-03 20:46:33 +09:00
Dan Balasescu
04178e9458
Merge branch 'master' into spectator-replay-watcher
2020-11-02 14:54:51 +09:00
Dan Balasescu
1b53e6c782
Merge branch 'master' into sample-lookup-improvements
2020-11-02 13:04:35 +09:00
Bartłomiej Dach
2b0bea535e
Resolve CA1805 inspections
...
"Member is explicitly initialized to its default value"
2020-11-01 18:47:40 +01:00
Bartłomiej Dach
b7696c85ad
Add more xmldocs
2020-11-01 15:23:03 +01:00
Dean Herbert
b4e5311014
Move initial state set inside updateClock
2020-10-30 20:39:25 +09:00
Dean Herbert
1bd461f229
Move clock logic back to inside updateClock method
2020-10-30 20:21:14 +09:00
Dean Herbert
32e68a6a3c
Fix FramedReplayInputHandler incorrectly blocking in streaming mode when time requested is before the first frame
...
Most of this is just tidying up the logic to (hopefully) be better to
follow, again (again (again)).
The actual fix is that we now allow interpolation/playback when the
incoming time is less than the first frame's time, regardless of
receiving status.
2020-10-30 16:09:03 +09:00
Dean Herbert
0f997386ae
Fix direction and IsRunning not updating on first frame after becoming valid
...
The parent clock will not unpause until WaitingForFrames becomes false,
so I've moved the set of that before we start to propagate its values
across. Doesn't fix any visible issue but should make propagation one
game loop faster.
2020-10-30 15:26:23 +09:00
Dean Herbert
326fd03525
Fix loop not exiting after first valid frame
2020-10-30 15:25:53 +09:00
Dean Herbert
8e6c803900
Avoid running full updateClock loop when waiting on frames
2020-10-30 12:39:11 +09:00
Dean Herbert
2ea4aa0a37
Fix incorrect specification on some sample lookups
2020-10-30 11:59:41 +09:00
Dean Herbert
87be7d162b
Merge branch 'master' into spectator-replay-watcher
2020-10-30 00:25:17 +09:00
Dean Herbert
335d150a13
Fix aim time being mutated inside update loop
2020-10-29 18:11:50 +09:00