Commit Graph

341 Commits

Author SHA1 Message Date
18bb0cb45b Remove unnecessary schedule logic from Apply's local updateState call
There were cases in the editor where rewinding of transforms would
leave the `DrawableHitObject` in a non-`IsPresent` state, resulting in
this scheduled logic never running.

This would in turn cause ghost hitobjects, which disappear under certain
circumstances.

Reproduction:

- Open editor to empty beatmap
- Place single hitcircle at current point in time
- Drag editor timeline backwards to seek before zero, and wait for
  return to zero
- Select hitcircle in playfield
- Drag hitcircle to right in timeline, triggering a start time change
2020-11-27 16:32:05 +09:00
bcc197f9fe Merge branch 'master' into improve-dho-time-offsets 2020-11-27 15:03:56 +09:00
e36bb7631d Fix colour not updated when index changes 2020-11-27 11:41:39 +09:00
57454bbb1c Remove hitObject argument from OnApply and OnFree 2020-11-27 10:13:05 +09:00
b1864670a2 Merge pull request #10961 from smoogipoo/better-dho-rewind
Rewind pooled DHOs into better states
2020-11-27 00:42:58 +09:00
aa4da2a5f8 Add xmldoc on State 2020-11-26 23:42:05 +09:00
e53f849aa0 Completely separate combo colours from DHOs 2020-11-26 18:14:25 +09:00
0414e5c550 Add MaximumJudgementOffset to DrawableHitObject, use in more places 2020-11-26 01:12:42 +09:00
c744db1b57 Rewind pooled DHOs into better states 2020-11-26 00:42:25 +09:00
87ce8a53ff Merge branch 'master' into on-drawable-hitobject-added 2020-11-24 16:09:57 +09:00
19faa2b9bb Add comment covering intentional call to ClearTransformsAfter 2020-11-23 15:20:59 +09:00
666112cb5a Address @bdach's minor suggestions 2020-11-22 18:51:16 +09:00
c506b438bf Remove more code and make some methods private 2020-11-22 18:51:16 +09:00
281ed49332 Add HasInitialized to DHO
As it turned out, `IsLoaded` is not a reliable way.
2020-11-21 11:19:52 +09:00
82aefa3868 Rework and rename to OnNewDrawableHitObject.
The semantics is changed and hopefully more clear.
2020-11-21 00:27:19 +09:00
70cb197957 Cleanups 2020-11-19 20:38:36 +09:00
730b14b5bb Add initial hit sample pooling 2020-11-19 19:51:09 +09:00
cead67d512 Add back removed InitialLifetimeOffset removal 2020-11-16 21:49:29 +09:00
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
9c0a0031d6 Clear existing transforms on DHO return to pool 2020-11-15 19:50:22 +01:00
f8cabbdd21 Clear result when freeing pooled hitobject 2020-11-14 21:09:22 +01:00
c71b237c4f Merge all pooling support into Playfield 2020-11-14 00:59:08 +09:00
36f1833f6e Move hitobject pooling to Playfield 2020-11-14 00:41:18 +09:00
06fd0d08d1 Merge branch 'master' into nested-hitobject-pooling 2020-11-13 16:53:20 +09:00
35329aa976 Reduce the number of state updates 2020-11-13 14:33:23 +09:00
2840fd0f8f Merge branch 'master' into hitobject-pooling-base 2020-11-12 23:17:36 +09:00
261ddd2b4a Fix samples not being disposed 2020-11-12 18:48:25 +09:00
a8c2b798ad Add support for nested hitobject pooling 2020-11-12 17:43:51 +09:00
606cfacedf Fix state update exception in a better way 2020-11-11 19:01:12 +09:00
5d55af5818 Fix hitobjects sometimes not fading in completely with HD mod 2020-11-11 16:35:48 +09:00
b725c9cce9 Fix possible nullrefs 2020-11-11 00:24:28 +09:00
e525784cb2 Clear lifetimeEntry after use 2020-11-11 00:24:14 +09:00
31e4d71852 Rewrite HitObjectContainer with pooling support 2020-11-10 22:49:02 +09:00
6f3f6dc28b Add hitobject lifetime support 2020-11-10 20:16:52 +09:00
88112801eb Remove result storage from hitobject 2020-11-10 18:56:16 +09:00
f5076fe3b8 Revert unnecessary change 2020-11-10 18:15:11 +09:00
d4d3a6621e Disable automatic lifetime management 2020-11-10 01:30:25 +09:00
ac47399e6e Update state after OnApply() 2020-11-10 00:30:23 +09:00
ec8b726ea8 Re-privatise start time bindable 2020-11-09 21:51:58 +09:00
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
b1e039bcec Prevent overrides from messing with application/freeing 2020-11-07 00:40:26 +09:00
3a4bd73823 Fix DHOs being freed when not expected 2020-11-07 00:25:26 +09:00
7eceda242b Change derived class to use property 2020-11-06 23:04:28 +09:00
2d892c7407 Allow Apply() to be called multiple times sequentially 2020-11-06 23:03:29 +09:00
248d342a2f Initial Apply()/FreeAfterUse() DHO implementation 2020-11-06 23:02:37 +09:00
a0b3379909 Fix judgement offsets being zero when windows are empty 2020-11-05 18:58:37 +09:00
0cadb31947 Merge branch 'master' into drawable-hit-object-hit-state-fix 2020-11-05 17:07:52 +09:00
9a7fcadabc Use BDL for top-level osu! DHOs 2020-11-05 13:51:46 +09:00
68b7efe4d5 Change order of execution to be chronological 2020-11-04 17:14:23 +09:00
831325978a Always execute UpdateHitStateTransforms (even for idle) 2020-11-04 17:14:23 +09:00