1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 17:57:29 +08:00
Commit Graph

32 Commits

Author SHA1 Message Date
Bartłomiej Dach
157cc884f4
Fix swells not being correctly treated in editor gameplay test
Closes https://github.com/ppy/osu/issues/28989.

Because swell ticks are judged manually by their parenting objects,
swell ticks were not given a start time (with the thinking that there
isn't really one *to* give). This tripped up the "judge past objects"
logic in `EditorPlayer`, since it would enumerate all objects
(regardless of nesting) that are prior to current time and mark them as
judged. With all swell ticks having the default start time of 0 they
would get judged more often than not, leading to behaviour weirdness.

To resolve, give swell ticks a *relatively* sane start time equal to
the start time of the swell itself.
2024-07-22 11:27:56 +02:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Bartłomiej Dach
6d325651dc
Propagate samples to drum roll/swell ticks for correct playback
In d97daee96b, `DrumSampleTriggerSource`
was changed such that in order to play sounds for the user's inputs, the
bank of the normal sound would always be used.

The problem is that in the case of taiko objects which have nested
objects (swells and drum rolls), the samples were not propagated fully
(drum rolls, where only the finish sample was kept, for the purposes of
determining strongability), or not propagated at all (swells) to ticks.

As ticks of both objects are valid return values of
`GetMostValidHitObject()`, this would lead to the drum making no sounds
if the next object was a drum roll or swell, until that drum roll or
swell was completed. To fix, propagate the full set of samples, so that
`DrumSampleTriggerSource` can retrieve the normal sound to copy the bank
from.

Note that this may not necessarily reproduce prior behaviour. This is
because it is not guaranteed that all realised samples for a given
hitobject have the same bank - some may have been overriden locally on a
given hitobject. Previously, the bank would have been retrieved from the
sample control point, wherein there is only one possible bank to use;
however, when deciding the sound to play on the basis of a constructed
hitobject, it is possible that there are cases wherein the hitnormal
sample was overridden on that given hitobject, and in such cases, this
PR would make samples _play_, but not necessarily the _same_ samples
as prior to #23308.

If that turns out to be the case, this will have to be revisited.
2023-05-21 18:57:01 +02:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Bartłomiej Dach
f74567e8eb Introduce base class for hitobjects that can be strong 2020-12-13 12:36:39 +01:00
Dean Herbert
144726e3c6 Better guard against taiko swells becoming strong 2020-10-09 17:12:01 +09:00
Dean Herbert
dd7dbfd548 Rename to IHasDuration 2020-05-29 16:45:47 +09:00
Dean Herbert
a2eec5d963 Fix strong bindable changes for DrumRolls 2020-05-29 16:45:47 +09:00
smoogipoo
6534510999 Use cancellation token in taiko swell/drumroll 2020-05-15 19:25:14 +09:00
smoogipoo
98125102a7 Add cancellation token support to CreateNestedHitObjects() 2020-05-15 18:07:41 +09:00
Dean Herbert
cd6902a312 Make EndTime and RepeatCount settable 2020-02-05 17:52:51 +09:00
Dean Herbert
51bf600ea7 Use empty hitwindows instead of null 2019-10-09 19:08:31 +09:00
Dean Herbert
f925e781a9 Refactor HitWindows for legibility 2019-09-06 15:24:14 +09:00
smoogipoo
f3656475de Return null hitwindows for non-time-based objects 2019-09-02 16:10:30 +09:00
Dean Herbert
26d53d06a9 Fix remaining issues 2019-02-28 13:31:40 +09:00
Dean Herbert
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
Ivan Pavluk
1b6658f4ee Move HealthIncreaseFor to Judgement 2018-12-06 15:09:42 +07:00
Ivan Pavluk
2ca9864301 Fixed taiko swell hp and scoring 2018-11-29 22:05:13 +07:00
smoogipoo
7c3556baf8 Throw exception when Swell.IsStrong is set 2018-08-15 09:12:29 +09:00
smoogipoo
19c541dbf5 Migrate swells to use nested hitobjects for ticks 2018-08-03 16:35:29 +09:00
smoogipoo
fa3c919e2e Fix up taiko judgement creation 2018-08-03 16:11:38 +09:00
smoogipoo
35b4ab5456 Introduce the concept of a "MainResult" 2018-08-02 21:07:40 +09:00
smoogipoo
9c2122c0ca Make Rulesets.Taiko use the new judgement result structure 2018-08-02 20:36:19 +09:00
smoogipoo
1b7b6f341c Migrate Rulesets.Taiko to the new judgement system 2018-08-02 16:09:04 +09:00
Dean Herbert
32a74f95a5 Normalize all the line endings 2018-04-13 18:26:38 +09:00
Dean Herbert
37d393bca0 Update licence headers 2018-01-05 20:21:19 +09:00
smoogipoo
35d7fa8a81 Cleanup things that are now not needed with these changes 2017-12-26 14:18:38 +09:00
smoogipoo
14162b5d46 Make InputDrum handle all Normals/Claps, hitobjects all others 2017-12-26 14:18:23 +09:00
smoogipoo
affdd81563 Remove unused usings 2017-12-25 17:29:44 +09:00
smoogipoo
8bfdee586b Rename SwellSampleMapping -> DrumSampleMapping 2017-12-25 17:29:04 +09:00
smoogipoo
844e39a9f6 Make Swells play samples while they're being hit 2017-12-25 15:04:22 +09:00
Dean Herbert
fbd26a1d5e
Mode -> Ruleset. 2017-04-18 16:05:58 +09:00