Bartłomiej Dach
b321d556b6
Enforce minimum gameplay sample volume of 5%
2023-10-20 15:50:13 +02:00
Dean Herbert
de74c9eb8b
Fix GameplaySampleTriggerSource
not handling rewinds correctly
2023-07-06 14:16:31 +09:00
Dean Herbert
561fff801a
Consume nested object states in HitObjectLifetimeEntry
2023-07-05 18:44:27 +09:00
Dean Herbert
beed390031
Add balance adjust to base implementation of DrumSampleTriggerSource
2023-07-05 18:44:27 +09:00
Dean Herbert
6d4fa6569f
Add back required pieces to GameplaySampleTriggerSource
from old PR
2023-07-05 18:44:27 +09:00
Dean Herbert
64b726d5ec
Fix nested logic not being completely correct (favouring already-passed rather than near-future)
2023-06-23 13:48:13 +09:00
Bartłomiej Dach
79606317ab
Remove redundant parentheses
2023-06-22 20:02:10 +02:00
Dean Herbert
4ff5275208
Make IGameplayClock
optional in GameplaySampleTriggerSource
to ease testing
2023-06-21 17:33:42 +09:00
Dean Herbert
cb07f2399f
Apply NRT to GameplaySampleTriggerSource
2023-06-20 21:03:55 +09:00
Dean Herbert
04dad6c6e8
Use IGameplayClock
to ensure our clock source is correct
2023-06-20 20:47:56 +09:00
Dean Herbert
0e86102681
Fix nested lookups
2023-06-20 20:45:02 +09:00
Dean Herbert
786d5a394b
Add back optimisation and increase time allowance slightly
2023-06-20 20:30:07 +09:00
Dean Herbert
555ce7684b
Adjust GameplaySampleTriggerSource
to only switch samples when close enough to the next hit object
...
Closes #23963 .
To simplify things, I've removed the optimisation of using
`AliveObject`s because it would break the way this whole lookup works.
2023-06-20 20:06:07 +09:00
Bartłomiej Dach
5229cf7343
Add failing test cases for drum roll/swell sample playback
2023-05-21 18:57:01 +02:00
OliBomby
ebe1d852f5
remove other usages of hitobject SampleControlPoint
2023-04-25 16:01:43 +02:00
Dean Herbert
19d5293ad1
Change early return to also find the earliest nested object
2023-02-17 18:59:31 +09:00
Dean Herbert
affa9507a1
Fix GameplaySampleTriggerSource
not considering nested objects when determining the best sample to play
2023-02-16 18:21:33 +09:00
Dean Herbert
4a7d7c6ed9
Use MaxBy
in all locations that can and update inspection level to match dotnet-build
2022-12-19 16:47:10 +09:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dean Herbert
ec53d87c30
Fix unsafe sample playback in GameplaySampleTriggerSource
...
Resolves https://github.com/ppy/osu/issues/18727 .
Added delay from `Schedule` should be minimal as it is always called
from the `Update` thread (input propagation) anyway.
2022-06-16 16:04:57 +09:00
Dean Herbert
15aa0458bc
Use PausableSkinnableSound
instead
2021-08-26 17:15:36 +09:00
Dean Herbert
fd78d0440b
Update missed conditional
2021-08-25 17:00:32 +09:00
Dean Herbert
ccfff50c6f
Apply fixes in line with issues found during testing
...
I was trying to be too smart with caching, but if the `Play` method was
not called often enough it would have a recent reference. Unfortunately
this requires a separate query to `Entries`, but is also a special case
(no future hitobjects).
This also removes the time-based checks (result status alone should be
all we care about).
2021-08-25 16:56:44 +09:00
Dean Herbert
ef2b5e1c51
Tidy up variable names and unused resolved properties
2021-08-25 16:56:44 +09:00
Dean Herbert
a1936b141b
Refactor base class to allow correct usage in taiko drum
2021-08-25 16:56:44 +09:00
Dean Herbert
681215e5b5
Rewrite object lookup to use previous entry regardless
...
This changes the fallback logic to always prefer the previous resolved
lifetime entry rather than fallback to the first entry ever. I think
this is more correct in all cases.
Also rewrites the inline comments to hopefully be easier to parse.
2021-08-25 16:56:44 +09:00
Dean Herbert
4a294d4de4
Optimise fallback logic to reduce lookups to bare minimum
2021-08-25 16:56:44 +09:00
Dean Herbert
6aa894e55e
Split out separate component
2021-08-25 16:56:44 +09:00