smoogipoo
dda4d76d72
Fix bad equality comparer implementations
2020-12-01 18:09:21 +09:00
smoogipoo
4900589af4
Remove unused method
2020-12-01 17:02:45 +09:00
smoogipoo
2bb7484608
Merge branch 'immutable-hit-samples' into hit-sample-pooling
2020-12-01 16:05:28 +09:00
smoogipoo
199710b941
Implement equality comparers for HitSampleInfo
2020-12-01 16:04:08 +09:00
smoogipoo
5760e1c1fc
Make HitSampleInfo immutable
2020-12-01 15:37:51 +09:00
Dean Herbert
51741c4791
Merge branch 'master' into hit-sample-pooling
2020-11-30 22:25:28 +09:00
smoogipoo
4bbeb9ebd4
Merge branch 'master' into hit-sample-pooling
2020-11-30 18:31:58 +09:00
smoogipoo
8f48389f89
Merge branch 'master' into improve-dho-time-offsets
2020-11-30 18:01:48 +09:00
Dan Balasescu
11d1450c76
Merge branch 'master' into fruit-bindables
2020-11-30 16:48:22 +09:00
Dean Herbert
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
Dean Herbert
bcc197f9fe
Merge branch 'master' into improve-dho-time-offsets
2020-11-27 15:03:56 +09:00
ekrctb
e36bb7631d
Fix colour not updated when index changes
2020-11-27 11:41:39 +09:00
ekrctb
57454bbb1c
Remove hitObject argument from OnApply and OnFree
2020-11-27 10:13:05 +09:00
Dean Herbert
b1864670a2
Merge pull request #10961 from smoogipoo/better-dho-rewind
...
Rewind pooled DHOs into better states
2020-11-27 00:42:58 +09:00
smoogipoo
aa4da2a5f8
Add xmldoc on State
2020-11-26 23:42:05 +09:00
smoogipoo
e53f849aa0
Completely separate combo colours from DHOs
2020-11-26 18:14:25 +09:00
smoogipoo
0414e5c550
Add MaximumJudgementOffset to DrawableHitObject, use in more places
2020-11-26 01:12:42 +09:00
smoogipoo
c744db1b57
Rewind pooled DHOs into better states
2020-11-26 00:42:25 +09:00
Dan Balasescu
87ce8a53ff
Merge branch 'master' into on-drawable-hitobject-added
2020-11-24 16:09:57 +09:00
Dean Herbert
19faa2b9bb
Add comment covering intentional call to ClearTransformsAfter
2020-11-23 15:20:59 +09: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
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
smoogipoo
70cb197957
Cleanups
2020-11-19 20:38:36 +09:00
smoogipoo
730b14b5bb
Add initial hit sample pooling
2020-11-19 19:51:09 +09:00
smoogipoo
cb5d1d0d77
Remove obsolete method
2020-11-18 21:26:35 +09:00
smoogipoo
cead67d512
Add back removed InitialLifetimeOffset removal
2020-11-16 21:49:29 +09: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
Bartłomiej Dach
9c0a0031d6
Clear existing transforms on DHO return to pool
2020-11-15 19:50:22 +01:00
Bartłomiej Dach
f8cabbdd21
Clear result when freeing pooled hitobject
2020-11-14 21:09:22 +01: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
06fd0d08d1
Merge branch 'master' into nested-hitobject-pooling
2020-11-13 16:53:20 +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
a8c2b798ad
Add support for nested hitobject pooling
2020-11-12 17:43:51 +09:00
smoogipoo
606cfacedf
Fix state update exception in a better way
2020-11-11 19:01:12 +09:00
smoogipoo
5d55af5818
Fix hitobjects sometimes not fading in completely with HD mod
2020-11-11 16:35:48 +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
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
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
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
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
Dean Herbert
a0b3379909
Fix judgement offsets being zero when windows are empty
2020-11-05 18:58:37 +09:00
Dean Herbert
0cadb31947
Merge branch 'master' into drawable-hit-object-hit-state-fix
2020-11-05 17:07:52 +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
Berkan Diler
fe3a23750c
Use char overloads for string methods
2020-10-16 11:52:29 +02:00
smoogipoo
372761a46f
More/better commenting
2020-10-12 19:22:34 +09:00
smoogipoo
eb4ef157ca
Fix implicit segments not being constructed correctly
2020-10-12 19:16:37 +09:00
smoogipoo
48c0ae40ef
Fix multi-segment sliders not parsing correctly
2020-10-12 18:04:28 +09:00
smoogipoo
696e3d53af
Fix slider samples being overwritten by the last node
2020-10-09 20:50:09 +09:00
Dean Herbert
eacc7dca9a
Fix SliderPath not handling Clear correctly
2020-10-09 06:31:59 +09:00
Dean Herbert
3c3c1ce885
Don't force playback of (non-looping) DrawableHitObject samples after skin change
2020-10-07 18:18:01 +09:00
Dean Herbert
a8151d5c63
Fix HitWindows getting serialized alongside HitObjects
...
These were being serialized as the base type. On deserialization, due to
the HitWindow of objects being non-null, they would not get correctly
initialised by the CreateHitWindows() virtual method.
- Closes #10403
2020-10-07 13:45:42 +09:00
Dean Herbert
c622adde7a
Rename method back and add xmldoc
2020-10-05 16:24:02 +09:00
Dean Herbert
9f43dedf59
Fix missing line
2020-10-05 15:12:34 +09:00
Dean Herbert
758088672c
Don't stop non-looping samples immediately when pausing
2020-10-05 15:07:46 +09:00
Bartłomiej Dach
2ddfd79923
Replace object pattern match with simple conditional
2020-10-03 08:09:10 +02:00
Bartłomiej Dach
2b1ef16f89
Replace comparison references to HitResult.Miss with IsHit
2020-10-02 23:31:24 +02:00
Dean Herbert
3069428efe
Merge pull request #10316 from smoogipoo/fix-spinner-flicker
...
Fix default spinner flashing yellow glow before completion
2020-10-01 22:29:48 +09:00
smoogipoo
ab33434a8a
Reword xmldocs to better describe nested events
2020-10-01 21:54:43 +09:00
smoogipoo
042c39ae1b
Remove redundant string interpolation
2020-10-01 21:48:45 +09:00
smoogipoo
d7f9b8045c
Safeguard againts multiple ApplyResult() invocations
2020-10-01 21:33:54 +09:00
Dean Herbert
b7ac779760
Merge branch 'master' into fix-hitobject-sample-stuck-on-future-seek
2020-10-01 16:46:14 +09:00
smoogipoo
cb6b35116a
Merge branch 'master' into scoring-standardisation
2020-10-01 12:28:51 +09:00
smoogipoo
c9f38f7bb6
Add obsoletion notice
2020-10-01 12:28:33 +09:00
Dean Herbert
4b70fe8585
Merge branch 'fix-storyboard-sample-pausing' into fix-hitobject-sample-stuck-on-future-seek
2020-09-30 22:46:09 +09:00
Dean Herbert
6cceb42ad5
Remove unused DI resolution
2020-09-30 15:50:53 +09:00
Dean Herbert
414c40d298
Reverse inheritance order of SkinnableSound's pause logic
2020-09-30 15:45:14 +09:00
smoogipoo
6264a01ecc
Add guard against using the wrong hit result
2020-09-29 16:33:38 +09:00
Dean Herbert
5d1c377379
Fix HitObject samples getting stuck in a playing state on seeking far into the future
2020-09-29 15:07:55 +09:00
Dean Herbert
d6f3beffb6
Use existing bindable flow instead
2020-09-29 12:50:17 +09:00
Dean Herbert
4f0c0ea5f9
Fix hit samples playing while paused / seeking in the editor
2020-09-28 18:17:47 +09:00
Dean Herbert
59bfa08684
Forcefully re-apply DrawableHitObject state transforms on post-load DefaultsApplied
2020-09-25 18:26:54 +09:00
Dean Herbert
33fad27ec2
Avoid API change to DrawableHitObject
2020-09-24 13:28:29 +09:00
Dean Herbert
00b0228b61
Merge branch 'master' into fix-taiko-editor-type-stats
2020-09-24 13:18:13 +09:00
Dean Herbert
fee379b4b9
Reword xmldoc for legibility
2020-09-23 18:12:07 +09:00
Dean Herbert
9a0e5ac154
Handle type/strength changes from samples changes
2020-09-23 18:09:40 +09:00
Dean Herbert
a1ec167982
Add the ability to toggle new combo state from composer context menu
2020-09-23 16:38:16 +09:00
smoogipoo
73a7b759cb
Add missing obsoletion notice
2020-09-17 17:04:44 +09:00
Dean Herbert
a8b405791a
Fix non-convert slider and spinner serialization
2020-09-14 17:32:32 +09:00
Salman Ahmed
5439099b7c
Merge GlobalSkinConfiguration settings into the LegacySetting enum
2020-07-29 10:35:51 +03:00
smoogipoo
5f98195144
Load nested hitobjects during map load
2020-07-24 18:16:36 +09:00
Dean Herbert
ac602846df
Expose balance and sample loading methods in DrawableHitObject
2020-07-22 16:37:58 +09:00
smoogipoo
e95a1beaef
Update state after applying hitobject
2020-07-15 16:53:27 +09:00
Bartłomiej Dach
c5049b51c5
Mark normal-hitnormal sample as layered
2020-06-22 20:08:29 +02:00
smoogipoo
88aed1d504
Merge branch 'master' into update-inspectcode-version
2020-06-09 20:12:39 +09:00
smoogipoo
f3b5149648
Move some suggestions to warnings, resolve issues
2020-06-03 16:48:44 +09:00
Dean Herbert
1992a3db54
Fix redundant override showing up in build warnings
2020-06-03 15:50:00 +09:00
Dan Balasescu
64d1b4b11b
Merge branch 'master' into move-setter-to-duration
2020-06-01 15:55:48 +09:00
smoogipoo
cac6e93575
Restore original IHasCurve implementation
2020-06-01 15:11:58 +09:00
smoogipoo
53b58910c3
Invert interface definition
2020-06-01 14:27:39 +09:00
Dean Herbert
e688033967
Fix incorrect xmldoc
2020-05-31 22:39:03 +09:00
Dean Herbert
f9883373bb
Flip direction to avoid breaking other usages
2020-05-29 16:11:26 +09:00
Dean Herbert
cbd563e80b
Rename to IHasDuration
2020-05-27 12:38:39 +09:00
Dean Herbert
b8e0a6f127
Move sett from EndTime to Duration
2020-05-27 12:37:44 +09:00
Dean Herbert
6b5b215299
Split out IHasPath from IHasCurve to better define hitobjects
2020-05-26 17:44:47 +09:00
Dean Herbert
0cc6d6d97c
Merge pull request #9033 from smoogipoo/applydefaults-cancellation
...
Add cancellation token support to CreateNestedHitObjects()
2020-05-26 12:04:06 +09:00
smoogipoo
6f4cd6111c
Drop obsoletion status for now
2020-05-25 16:50:49 +09:00
smoogipoo
bc35bc5efb
Merge branch 'master' into applydefaults-cancellation
2020-05-25 16:45:30 +09:00
Dan Balasescu
7846445b45
Merge branch 'master' into mania-distance-snap-grid
2020-05-22 21:17:25 +09:00
Dan Balasescu
648fc3af41
Merge branch 'master' into bar-line-floating-point
2020-05-22 16:32:25 +09:00
Dean Herbert
ce35d09e7d
Fix incorrect alpha application to lines on rewinding
2020-05-22 12:45:37 +09:00
Dean Herbert
ce223a2bd8
Silence hit sounds while seeking
2020-05-21 11:08:06 +09:00
Dean Herbert
c2697d3907
Use DrawableSample in SkinnableSound class
2020-05-20 20:49:01 +09:00
Dean Herbert
db4e3047dd
Add test for final sample output
2020-05-19 23:28:13 +09:00
Bartłomiej Dach
17ae392a75
Apply rounding to bar line start times
2020-05-17 22:11:13 +02:00
smoogipoo
6cd1753459
Add overload to prevent crashes (bosu)
2020-05-15 18:51:44 +09:00
smoogipoo
4719fcc291
Actually use the cancellation token
2020-05-15 18:17:39 +09:00
smoogipoo
98125102a7
Add cancellation token support to CreateNestedHitObjects()
2020-05-15 18:07:41 +09:00
smoogipoo
22dda3fe02
Make ScrollingHitObjectContainer respond to defaults applied events
2020-05-08 18:49:58 +09:00
smoogipoo
efff2bf15d
Add HitObject to DefaultsApplied event
2020-05-08 18:49:19 +09:00
smoogipoo
93151f7612
Add back necessary events + addition to list
2020-04-22 18:32:59 +09:00
smoogipoo
8b0274fedd
Remove obsolete methods
2020-04-22 17:55:50 +09:00
Dean Herbert
8ebc2ae03d
Never run subtree masking
2020-04-20 20:48:35 +09:00
smoogipoo
44981431c5
Remove suffix hackery
2020-04-14 21:33:32 +09:00
smoogipoo
6935221463
Improve logic for CSB transfer
2020-04-14 21:05:07 +09:00
smoogipoo
58a7313091
Fix fallback for file hit samples
2020-04-13 20:09:17 +09:00
smoogipoo
cee4b005e6
Fix custom sample set 0 not falling back to default samples
2020-04-13 20:00:06 +09:00
Dean Herbert
65b96079a0
Move dampening to base implementation and change range to 0..1
2020-04-13 13:01:02 +09:00
Fire937
22d89dbff7
Merge branch 'master' of https://github.com/ppy/osu into stereo-shifted-playback
2020-04-12 01:46:32 +02:00
Fire937
f274ec297c
Add positional sound support for all rulesets
...
The SamplePlaybackBalance is calculated in a way that the balance
remains between -0.4 and 0.4.
Positional sound is not supported in osu!taiko.
2020-04-12 01:33:25 +02:00
smoogipoo
a84fe2525b
Fix nested hitobjects potentially indirectly masked away
2020-04-11 16:53:45 +09:00
Fire937
c17e470266
Fix PositionalSound calculation implementation
...
The position used to calculate the stereo balance is now the position of
the drawable (as opposed to the position specified in the beatmap file
previously).
2020-04-10 00:01:35 +02:00
Fire937
2201e9b4ae
Add stereo shifted hitsound playback support
...
There is now a setting in the general settings called "Positional
hitsounds". If the setting is enabled, the hitsounds playback will be
shifted according to their position on the beatmap.
2020-04-09 18:12:15 +02:00
Dean Herbert
7db9bd798c
Remove handle overrides
2020-03-30 11:59:51 +09:00
Dean Herbert
a2b3fe180e
Add the ability to disable user input on specific DrawableHitObjects
2020-03-29 14:30:45 +09:00
Dean Herbert
f80efd10c2
Avoid using a miss judgement
2020-03-26 19:54:17 +09:00
smoogipoo
758bb3711f
Add more sane limit for maximum slider length
2020-03-11 18:07:11 +09:00
Dean Herbert
c06db5a54a
Remove legacy DrawableHitObject state management
2020-02-27 11:28:29 +09:00
Dean Herbert
d564440fe7
Merge branch 'master' into fix-barline-lifetimes
2020-02-25 20:41:04 +09:00
Dean Herbert
36079236e6
Remove pointless comment
...
Co-Authored-By: Dan Balasescu <smoogipoo@smgi.me>
2020-02-25 19:22:51 +09:00
Dean Herbert
a047456354
Revert changes to make HitObject abstract
2020-02-25 19:07:15 +09:00