smoogipoo
36d2199a02
Add exception on Apply() while loading
2021-06-18 19:20:57 +09:00
ekrctb
e7954ecb60
Use property instead of backing field consistently
2021-06-17 10:31:20 +09:00
ekrctb
117e94bc94
Allow setting Entry
of PoolableDrawableWithLifetime
...
It is more convenient than using the constructor because the only limited kind of expression is allowed in a base constructor call.
Also, the object initializer syntax can be used.
2021-06-16 16:00:08 +09:00
Bartłomiej Dach
296761ade5
Add missing CurrentSkin
null check in DHO disposal
2021-06-11 09:18:58 +02:00
Dean Herbert
562cfe8703
Fix filename not matching type rename
2021-06-11 14:34:18 +09:00
Dean Herbert
bc3b7233ab
Show osu!taiko centre/rim colouring in editor timeline
...
Closes #13443 .
2021-06-11 14:17:30 +09:00
Dean Herbert
b8df3fff9e
Fix incorrect method referenced in xmldco
...
Co-authored-by: ekrctb <32995012+ekrctb@users.noreply.github.com>
2021-06-09 14:20:01 +09:00
Dean Herbert
62199a38a8
Add one missing obsoletion removal date
2021-06-09 14:11:50 +09:00
Dean Herbert
f41e34ae2c
Remove more obsoleted members
2021-06-09 14:10:48 +09:00
ekrctb
0ce7baa3f3
Make HitObjectContainer.Clear
non-virtual
...
It just call `Remove` for all entries.
2021-06-03 15:00:16 +09:00
ekrctb
2c9e5b6c7e
Replace EntryCrossedBoundary
with more useful RemoveRewoundEntry
property
...
It can be used for dynamically added entries.
2021-06-03 15:00:16 +09:00
ekrctb
fe2934db1d
Factor out lifetime management logic of HitObjectContainer
2021-06-03 14:57:28 +09:00
smoogipoo
d3d8941ec8
Make method internal
2021-06-02 11:11:41 +09:00
smoogipoo
8ee2b3a2d2
Merge branch 'master' into fix-scrolling-lifetime
2021-06-02 11:08:28 +09:00
Dan Balasescu
ac83450791
Merge pull request #13256 from ekrctb/update-lifetime-2
...
Update DHO lifetime on entry lifetime change
2021-06-02 11:07:54 +09:00
ekrctb
40949f6c1b
Simplify lifetime setter
...
Setting entry lifetime will cause `LifetimeChanged` event and `base.LifetimeStart`/`End` will be modified in the callback.
2021-06-01 14:46:43 +09:00
ekrctb
0f381f7758
Fix wrong code
2021-06-01 14:38:02 +09:00
ekrctb
86020adf64
Revert invalid code transformation
2021-06-01 14:28:23 +09:00
ekrctb
d5714e63b9
Apply code styling suggestions
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-06-01 13:17:30 +09:00
ekrctb
86d1ba7ef2
Remove unused IScrollingHitObject
interface
2021-05-31 23:17:26 +09:00
ekrctb
56a0a24cba
Make SetInitialLifetime public
2021-05-31 15:33:28 +09:00
ekrctb
e25cca6fbe
Update drawable lifetime on entry lifetime change
2021-05-31 14:45:29 +09:00
Dan Balasescu
8c6277f0d8
Merge pull request #13235 from ekrctb/update-lifetime-1
...
Update hit object lifetime on `HitObject.DefaultsApplied`
2021-05-31 14:44:40 +09:00
ekrctb
0c101d2859
Apply comment rewording suggestion
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-05-31 13:41:49 +09:00
ekrctb
abb77b95b4
Fix comment grammar
2021-05-30 13:06:28 +09:00
ekrctb
265dfe5416
Add test case of DHO setting LifetimeStart in OnApply
2021-05-28 21:51:48 +09:00
ekrctb
43bf734816
Reset lifetime on HitObject.DefaultsApplied
2021-05-28 21:35:26 +09:00
ekrctb
1d5e8f4a91
Fix wrong/misleading comment of InitialLifetimeOffset
2021-05-28 17:19:36 +09:00
Dean Herbert
122bb05aa8
Add a mention that OnApply/OnFree
is performed after ApplyDefaults
2021-05-27 15:20:35 +09:00
smoogipoo
7494ddeef4
Fix DHOs not receiving initial skin changed events
2021-05-24 14:07:40 +09:00
ekrctb
0489ae719d
Don't couple PoolableDrawableWithLifetime
lifetime with its entry
...
It turns out the incompatibility with `LifetimeManagementContainer` causes more issues than anticipated.
2021-05-20 14:56:15 +09:00
Dan Balasescu
ef81bdf63f
Merge branch 'master' into always-use-lifetime-entry
2021-05-18 20:10:12 +09:00
Salman Ahmed
cd6d070b4a
Consider "combo offsets" as legacy logic and separate from combo information
2021-05-05 07:43:08 +03:00
Salman Ahmed
eeeb001d62
Refactor combo colour retrieval logic to request skin lookups instead
2021-05-05 07:17:27 +03:00
ekrctb
aa42cf2fc0
Fix setting lifetime during KeepAlive is ignored
2021-05-04 16:56:48 +09:00
ekrctb
36438175a0
Throw an exception if try to modify lifetime of PoolableDrawableWithLifetime without lifetime
2021-05-04 16:04:58 +09:00
Dan Balasescu
e6eea73b8b
Merge branch 'master' into basic-compose-checks
2021-04-30 23:41:46 +09:00
ekrctb
5aa522b1c2
Completely delegate DHO lifetime to Entry lifetime
...
A downside is lifetime update is not caught by LifetimeManagementContainer if used.
2021-04-29 14:38:01 +09:00
ekrctb
d262956146
Always use LifetimeEntry to manage hit objects in HitObjectContainer
...
Previously, non-pooled DHOs were immediately added as children of the HOC when Add is called. Also, non-pooled DHOs were always attached to the HOC as children.
New behavior is that non-pooled DHOs are only added after CheckChildLifetime, and only attached to the HOC while the DHOs are alive.
- LifetimeManagementContainer inheritance of HOC is removed, as it is now all DHOs are "unmanaged" (previously `AddInternal(false)`).
- The signature of `Clear` is changed, and it is now always not disposing the children immediately.
2021-04-29 14:38:01 +09:00
Dan Balasescu
5fc731967b
Merge pull request #12592 from ekrctb/fix-entry-lifetime
...
Fix Setting DHO's lifetime doesn't update its entry lifetime
2021-04-28 01:38:19 +09:00
ekrctb
b87446a577
Simplify HitObjectLifetimeEntry logic a bit
2021-04-27 19:37:01 +09:00
Derrick Timmermans
3ea55314f2
Update osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-04-27 11:29:16 +02:00
ekrctb
3899e500d3
Adopt framework change of LifetimeEntry
...
Override SetLifetimeStart/SetLifetimeEnd separately to track individual assignment. It is necessary to ensure real lifetime is not lost when lifetime is partially updated.
2021-04-27 17:54:18 +09:00
ekrctb
c9e6ca5378
Use now-public Entry.SetLifetime method
2021-04-27 15:25:05 +09:00
ekrctb
a2c0951d94
Use overriding instead of hiding in HitObjectLifetimeEntry
...
Hidden properties are used when the type is the base class. It caused issues when `DrawableHitObject` logic is factored out to `PoolableDrawableWithLifetime` because it is using the base `LifetimeEntry`, not `HitObjectLifetimeEntry`.
2021-04-27 15:23:33 +09:00
Naxess
a3570e18dd
Add concurrent objects check
...
Here we use `IHasColumn` to support rulesets with columns, and so I moved that interface out into `osu.Game` from `osu.Game.Rulesets.Mania`.
We also use the same threshold as the unsnap check to ensure that no problems slip through. Specifically where an object is simultaneously not concurrent and not unsnapped but still on the same tick.
2021-04-26 20:17:18 +02:00
Derrick Timmermans
08a232f7fa
Add method to safely refresh DrawableHitObject transforms
2021-04-26 20:08:40 +02:00
ekrctb
6561a7c7d6
Rename DrawableObject -> PoolableDrawableWithLifetime
2021-04-26 12:06:21 +09:00
ekrctb
20e3cadd30
freeIfInUse -> free, and add comments
2021-04-26 12:04:59 +09:00
ekrctb
e6474e6ff7
Remove redundant statement (lifetime is set in base)
2021-04-26 11:47:38 +09:00
ekrctb
b877a29737
Factor out pooling and lifetime management logic of DHO to a base class
2021-04-21 17:37:42 +09:00
ekrctb
bbf2ec369b
Remove SkinReloadableDrawable inheritance from DHO
2021-04-21 17:34:57 +09:00
ekrctb
3fbeadf318
Deprecate old overload of Apply
2021-04-21 14:32:37 +09:00
ekrctb
73d3da1687
Fix wrong InitialLifetimeOffset is used for a non-pooled DHO.
...
HitObjectLifetimeEntry's InitialLifetimeOffset is different from DrawableHitObject's InitialLifetimeOffset.
2021-04-21 11:32:01 +09:00
ekrctb
44ff08cce4
Revert "Fix wrong InitialLifetimeOffset is used for a non-pooled DHO."
...
This reverts commit 67fcfd9d
2021-04-21 10:02:50 +09:00
ekrctb
67fcfd9dbc
Fix wrong InitialLifetimeOffset is used for a non-pooled DHO.
...
HitObjectLifetimeEntry's InitialLifetimeOffset is different from DrawableHitObject's InitialLifetimeOffset.
2021-04-21 09:48:16 +09:00
ekrctb
e80c3c317a
Rename UnmanagedHitObjectEntry -> SyntheticHitObjectEntry
...
"Unmanaged" was confusing because its lifetime is still managed by the HitObjectContainer.
2021-04-21 09:23:23 +09:00
ekrctb
c6ee4e900e
Ensure a non-null hitobject entry has a non-null Result
2021-04-20 15:18:36 +09:00
ekrctb
8a8b9084ef
Make single-argument overloead of DHO.Apply public
2021-04-20 10:11:36 +09:00
ekrctb
1bc63a4c61
Now, DHO.lifetimeEntry can be non-null even it is not fully applied
2021-04-20 09:22:16 +09:00
ekrctb
c1b4aaaa03
Add doc comment
2021-04-20 08:38:02 +09:00
ekrctb
2c487ddb70
Create synthetic LifetimeEntry for a DHO when not supplied
...
Now, a DHO is always associated with a HitObjectLifetimeEntry while used.
Result is always stored in the entry, and not in the DHO.
2021-04-19 21:54:19 +09:00
ekrctb
5afdc3ff66
Make DHO application logic clearer with Entry/HitObject separation
2021-04-19 19:56:17 +09:00
Dean Herbert
d38e294d96
Centralise length validation function
2021-04-16 15:45:24 +09:00
ekrctb
50fad47ebc
Remove usage of Lazy<List<...>> for NestedHitObjects
2021-04-15 18:26:01 +09:00
Dean Herbert
b5954a55ad
Remove empty <returns> xmldoc
2021-04-12 17:46:14 +09:00
smoogipoo
76981f2547
Remove unused using
2021-04-09 13:58:24 +09:00
smoogipoo
8293b06c0a
Remove obsolete code
2021-04-09 13:56:58 +09:00
Dean Herbert
a8839792fd
Merge branch 'master' into circular-arc-freeze
2021-04-08 14:33:03 +09:00
smoogipoo
4b29d0ebe2
Fix last control point starting new segment
2021-04-05 17:49:36 +09:00
Naxess
7b684339ed
Undo public -> internal for PathControlPoint.Changed
...
No longer used.
2021-03-31 20:32:49 +02:00
Naxess
4ae3eaaac6
Move path type correction
...
This is better because `PathControlPointVisualizer` is local to the editor, meaning there is no chance that this could affect gameplay.
2021-03-24 03:02:19 +01:00
Naxess
e922e67c98
Fix inverted return statement
...
Forgot to run tests, all passing now.
2021-03-22 19:48:21 +01:00
Naxess
3fa5852e00
Add method documentation
2021-03-22 19:42:27 +01:00
Naxess
b11fd7972a
Separate condition logic from math logic
2021-03-22 19:41:48 +01:00
Naxess
92f713a30e
Improve fallback conditions
...
It's possible to create a `PerfectCurve` type path with more than 3 points currently, so this accounts for that.
2021-03-22 19:10:56 +01:00
Naxess
80e7c3aba7
Invert if statement
2021-03-22 19:09:28 +01:00
Naxess
6911a1b415
Fix missing newline
2021-03-22 19:03:55 +01:00
Naxess
a7076c329c
Fix null checks
2021-03-22 17:32:55 +01:00
Naxess
323b875cea
Fix newlines/spaces
2021-03-22 17:32:40 +01:00
Naxess
c82218627f
Add path type update logic
...
Only attempts to change points to bezier if points in the slider are modified.
2021-03-22 15:57:57 +01:00
Naxess
7a2cb526e4
Add PointsInSegment method
2021-03-22 15:55:30 +01:00
Naxess
bee2f55d00
Undo subpath limiting
2021-03-22 15:54:33 +01:00
Naxess
fcd1f4930f
Fix freeze due to large circular arc radius
...
Seems to stem from the osu!framework's PathApproximator not catching a few edge cases wherein the radius approaches infinity.
2021-03-21 06:34:55 +01:00
smoogipoo
dff1d80f39
Update HasFlag usages to HasFlagFast
2021-02-25 15:38:56 +09:00
Bartłomiej Dach
9cc63e8dce
Remove obsoleted IHasEndTime
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
539785e422
Remove obsoleted IHasCurve
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
09742998cd
Fix mistaken obsoletion notice
...
It was added in c9f38f7bb6
, which
specified 2021 in another place (and was committed in October of 2020
anyway). Update the year so that it doesn't get culled prematurely.
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
a31e8d137f
Add guard when clearing samples
2020-12-20 15:42:24 +01:00
Dean Herbert
a0f92628ac
Merge branch 'master' into fix-sample-expire
2020-12-04 13:49:08 +09:00
Dean Herbert
5ded4b9faa
Merge branch 'master' into dho-remove-onparentreceived
2020-12-04 11:04:56 +09:00
smoogipoo
0bdf99b97a
Remove OnParentReceived()
2020-12-03 20:08:42 +09:00
smoogipoo
73e99718bc
Change order of OnParentReceived()
2020-12-03 20:06:26 +09:00
ekrctb
6c46046c24
Fix DHO expires while hit sound is playing
2020-12-03 12:32:49 +09:00
smoogipoo
e831c797f3
Merge branch 'master' into hit-sample-pooling
2020-12-02 14:45:24 +09:00
smoogipoo
2150cf1c52
Rename parameters
2020-12-02 10:55:48 +09:00
smoogipoo
e19ef9627a
Fix potentially incorrect override
2020-12-02 10:54:26 +09:00
smoogipoo
2840405112
Volume should be 0 by default
2020-12-01 18:14:14 +09:00
smoogipoo
6b4a6c12c8
Fix bad equality comparer implementations
2020-12-01 18:13:53 +09:00
smoogipoo
17560aeeea
Volume should be 0 by default
2020-12-01 18:09:28 +09:00
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
Dean Herbert
be08e69862
Merge branch 'fix-dho-lifetimes-via-judgements' into fix-barline-lifetimes
2020-02-23 14:30:23 +09:00
Dean Herbert
401bf1c928
Remove unnecessary checks on NotNull attributes
2020-02-23 14:30:08 +09:00
Dean Herbert
0e29d3c4a2
Correctly expire bar lines in osu!taiko and osu!mania
2020-02-23 13:50:05 +09:00
Dean Herbert
ffc7eaa3f2
Fix hitobjects with unknown lifetimes by enforcing non-null judgement
...
We've seen multiple cases where DrawableHitObject are stuck in the lifetime management container
due to not implementing a judgement (meaning they are never "hit" or "missed"). To avoid this going forward
CreateJudgement() must be implemented and return a non-null judgement.
This fixes BananaShower and JuiceStreams in osu!catch.
This also makes HitObject abstract and cleans up convert HitObject implementations.
2020-02-23 13:49:06 +09:00
Dean Herbert
5970c102b4
Change API to be easier to understand
2020-02-20 15:17:49 +09:00
Dean Herbert
5340d1de59
Move combo colour update logic to osu! ruleset
2020-02-19 16:07:00 +09:00
Dean Herbert
a1bfb18ce0
Fix accessing incorrect items list in event
2020-02-18 19:00:02 +09:00
smoogipoo
958c891d15
Update with framework-side bindable list changes
2020-02-17 15:06:14 +09:00
Dean Herbert
f7ee675102
Clear and revert to negative infinity, avoiding transforms getting left behind on StartTime change
2020-02-12 19:02:54 +09:00
Dean Herbert
c386589cc0
Reapply current state, not idle
2020-02-12 19:02:25 +09:00
Dean Herbert
7460018cd3
Move combo colours to GlobalSkinColours
2020-02-07 14:58:07 +09:00
Dean Herbert
daf5fa9da4
Throw NotSupportedException instead
2020-02-06 13:16:32 +09:00
Dean Herbert
cd6902a312
Make EndTime and RepeatCount settable
2020-02-05 17:52:51 +09:00
Bartłomiej Dach
434c0d92e4
Use Bindable{Float,Double}s everywhere
...
To avoid further floating-point comparison bugs, remove all usages of
Bindable<{float,double}>, replacing them with their
Bindable<Float,Double> counterparts.
2020-02-01 22:50:29 +01:00
smoogipoo
91735ff367
Update MathUtils namespace usages
2020-01-09 13:43:44 +09:00
smoogipoo
0f8a76afde
Remove manual hitobject sample namespacing
2020-01-02 14:27:27 +09:00
Salman Ahmed
55be4478aa
Merge remote-tracking branch 'upstream/master' into fallback-to-skin-combo-colours
2019-12-21 12:36:09 +03:00
Dean Herbert
fa067b8799
Merge branch 'master' into legacy-beatmap-saving
2019-12-18 17:17:03 +09:00
Huo Yaoyuan
d5994ed484
CA2208: create exceptions correctly.
2019-12-17 13:00:10 +08:00
Dean Herbert
272d7d0ca9
Merge branch 'master' into fallback-to-skin-combo-colours
2019-12-17 12:36:20 +09:00
smoogipoo
8beb6b534f
Merge remote-tracking branch 'refs/remotes/origin/master' into legacy-beatmap-saving
2019-12-16 17:09:03 +09:00
Huo Yaoyuan
c457571da6
Use index and range expressions
2019-12-15 20:17:35 +08:00
Huo Yaoyuan
ddb2cfc46d
Use GetEndTime in Taiko and Mania
2019-12-14 18:16:13 +08:00
Salman Ahmed
a9125f6544
Merge remote-tracking branch 'upstream/master' into fallback-to-skin-combo-colours
2019-12-12 12:37:51 +03:00
smoogipoo
c378e525da
Extract the rest of legacy enums
2019-12-10 20:23:15 +09:00
smoogipoo
e3f925f69a
Extract legacy hitobject type enum
2019-12-10 20:19:16 +09:00
smoogipoo
8012b21ffa
Extract legacy sound type enum
2019-12-10 20:18:44 +09:00
smoogipoo
ab0f2e7c6a
Apply suggested refactorings
2019-12-10 13:12:54 +09:00
smoogipoo
47f3c4a596
Don't serialise path version
2019-12-09 20:18:18 +09:00
smoogipoo
6d9cd0fafe
Split out complex method
2019-12-09 18:25:13 +09:00
smoogipoo
b6e2738236
Remove unused using
2019-12-09 18:15:00 +09:00
smoogipoo
a1798fd38d
Fix bad ctor implementation
2019-12-09 18:01:13 +09:00
smoogipoo
bfbb9aa18e
Remove outdated assert
2019-12-09 18:01:02 +09:00
smoogipoo
883d5bc11d
Remove automatic slider path offsetting
2019-12-09 17:54:22 +09:00
smoogipoo
9cb649436c
Default to linear control point type
2019-12-09 17:47:05 +09:00
smoogipoo
5a093c039c
Simplify path/point construction
2019-12-09 17:46:40 +09:00
smoogipoo
4905709ea4
Remove unused usings
2019-12-09 13:19:21 +09:00
smoogipoo
16f8341a02
Handle control point positional updates within SliderPath
2019-12-06 18:49:01 +09:00
smoogipoo
b4e1b5fa98
Explose + use the full calculated length of the path
2019-12-06 15:53:19 +09:00
smoogipoo
2654710d91
Add tests and fix negative expected distances
2019-12-06 15:37:06 +09:00
smoogipoo
27dd12a66d
Rewrite slider length calculation for readability
2019-12-06 15:06:31 +09:00
smoogipoo
23c7132c4f
Add missing license header
2019-12-06 11:53:22 +09:00
smoogipoo
3ebbf62b2a
Initial game-wide update with the new SliderPath
2019-12-05 19:53:36 +09:00
smoogipoo
c9a66c0d07
Expose a version to indicate path changes
2019-12-05 18:31:28 +09:00
smoogipoo
1585d83b96
Add legacy constructor
2019-12-05 18:19:42 +09:00
smoogipoo
986ac1cee4
Make expected distance a bindable
2019-12-05 17:51:29 +09:00
smoogipoo
2702edfa55
Rename new path, replace existing one
2019-12-05 17:49:32 +09:00
smoogipoo
5e9b739b67
Re-implement slider paths to support multiple segments
2019-12-05 16:45:02 +09:00
smoogipoo
0149e47673
Expose general control point change event
2019-12-05 14:38:32 +09:00
smoogipoo
3e0f499e72
Add xmldocs
2019-12-05 14:38:21 +09:00