1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-07 20:47:26 +08:00
Commit Graph

2948 Commits

Author SHA1 Message Date
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
Dean Herbert
2671d371da Move clock retrieval to new correct location 2020-10-29 15:28:39 +09:00
Dean Herbert
3ea27e23e8 Update namespace references 2020-10-29 15:20:10 +09:00