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

1753 Commits

Author SHA1 Message Date
Bartłomiej Dach
9915fac2c8
Fix sample silence being one level too low
4a7b011a53 inadvertently unearthed that
nested strong hits could play samples of their own accord, rather than
delegating to `DrumSampleTriggerSource` as they were supposed to. This
was an unfortunate omission due to how the inheritance structure of
`TaikoHitObject` looks like (some irrelevant classes omitted for
brevity):

	DrawableTaikoHitObject
		DrawableTaikoHitObject<TObject> <-- `GetSamples()` was overridden to empty here
			DrawableTaikoStrongableHitObject
				DrawableHit
				DrawableDrumRoll
				DrawableDrumRollTick
			DrawableSwell
			DrawableSwellTick
		DrawableStrongNestedHit <-- all strong nested hits are here => didn't receive `GetSamples()` override
			DrawableHit.StrongNestedHit
			DrawableDrumRoll.StrongNestedHit
			DrawableDrumRollTick.StrongNestedHit

To fix, move the `GetSamples()` override one level higher, to the
non-generic `DrawableTaikoHitObject`, to suppress the spurious sample
playbacks.

The stale reference in the comment was also updated to match current
code.
2023-05-21 18:58:26 +02:00
Bartłomiej Dach
4a7b011a53
Propagate samples to strong nested hits too
The rationale is the same as in
6d325651dc. Due to the recursive nature of
`GameplaySampleTriggerSource.GetMostValidObject()`, in the case of
nested hits, drum rolls and drum roll ticks, the nested strong hits
would become the most valid object, and so without propagating
the samples down to that level too, nothing would play.
2023-05-21 18:58:05 +02: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
Dean Herbert
dc51d5ecf3 Rename GetSampleInfo to better describe what method does
Also add full xmldoc
2023-05-17 14:07:48 +09:00
Dean Herbert
31fff72eb6 Fix bank not correctly being assigned to some taiko hit cases 2023-05-16 18:52:52 +09:00
Dean Herbert
f443cfb93e Move blueprint validity conditions to allow more correct external usage of EndPlacement
Until now, these were haphazardly enforce inline in blueprint
implementations. The only thing stopping complete breakage is that
`EndPlacement` wasn't called (too much) from outside the blueprint,
leaving them responsible for their own placement.

By moving this conditional out of the provided paramters to
`EndPlacement`, it allows more flexible usage of that method externally.
Coming in a future PR.
2023-05-12 16:02:22 +09:00
OliBomby
608fa3cc73 Merge remote-tracking branch 'upstream/master' into sample-control-points 2023-04-30 19:47:03 +02:00
OliBomby
41d4894aa3 add min and max value to SliderVelocity 2023-04-30 19:32:24 +02:00
OliBomby
4a0ff046ae pass new hitobject properties through beatmap converters 2023-04-30 19:20:42 +02:00
OliBomby
92efd04f31 fix sample of drumroll ticks being bankless 2023-04-29 23:52:24 +02:00
sw1tchbl4d3
76df5fd3e2 Limit taiko playfield aspect ratio to 5:4 - 16:9 2023-04-26 18:05:47 +02:00
OliBomby
c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
OliBomby
9f8d7bccba fix usings 2023-04-26 17:34:02 +02:00
OliBomby
d97daee96b remove all non-test usage of SampleControlPoint 2023-04-26 13:55:39 +02:00
OliBomby
6c70948681 Remove IContext & add IHasGenerateTicks 2023-04-26 13:10:57 +02:00
OliBomby
ea1e6e9798 Add LegacyContext 2023-04-25 12:12:46 +02:00
OliBomby
a4c6850ab2 made the SampleControlPoint and DifficultyControlPoint obsolete 2023-04-25 11:34:09 +02:00
Dan Balasescu
ad51f880e0 Remove overrides on DC/NC mods 2023-04-10 17:49:29 +09:00
Dan Balasescu
15f6bc155e Add progressive score multiplier for HT 2023-04-10 13:35:48 +09:00
Dan Balasescu
c923482976 Add progressive score multiplier for DT 2023-04-10 13:31:48 +09:00
Bartłomiej Dach
7d9327f3e2
Only allow hit placement when left mouse is clicked 2023-04-04 18:40:10 +02:00
Bartłomiej Dach
f42a463479
Remove #nullable disable
May as well that we're here...
2023-04-03 20:14:17 +02:00
Bartłomiej Dach
ed07c0640b
Remove unused using directive 2023-04-03 20:13:59 +02:00
Dean Herbert
be79ea1c10 Remove left/right click based placement in taiko editor and respect sample selection 2023-04-03 18:14:58 +09:00
Dan Balasescu
9866321d27
Merge branch 'master' into taiko-single-tap 2023-03-09 13:24:20 +09:00
Bartłomiej Dach
430b09acb2
Expose taiko input manager in same manner as osu! 2023-03-08 22:52:06 +01:00
OpenSauce04
b2d453fd2e Fixed indentation 2023-03-06 11:44:00 +00:00
OpenSauce04
36108ea841 Moved CheckValidNewAction checks into checkCorrectAction 2023-03-06 11:11:38 +00:00
OpenSauce04
4ae2661f1b Removed useless null checks 2023-03-06 11:00:37 +00:00
OpenSauce04
ac6c8e600a Updated a comment for correctness 2023-03-06 10:59:47 +00:00
OpenSauce04
a7be59175d Made private + renamed Taiko Single Tap tracking variables for better readability 2023-03-06 10:59:22 +00:00
OpenSauce04
50b0fca264 Code formatting 2023-03-03 18:11:29 +00:00
OpenSauce04
865f785f50 Fixed an issue where Taiko's Single Tap could allow alternation under very specific circumstances 2023-03-03 17:13:39 +00:00
OpenSauce04
d4bb08a440 Fixed CodeInspector complaining 2023-02-28 18:38:09 +00:00
OpenSauce04
0a76c8ee7f Further simplified a type check 2023-02-28 15:41:06 +00:00
OpenSauce04
8851da05f1 Merge branch 'taiko-single-tap' of https://github.com/OpenSauce04/osu into taiko-single-tap 2023-02-28 15:37:54 +00:00
OpenSauce04
616f7b3f64 Simplified a type check 2023-02-28 15:37:46 +00:00
OpenSauce
781da032e9
Merge branch 'master' into taiko-single-tap 2023-02-28 15:22:41 +00:00
OpenSauce04
3aa8c81c5d Added missing mod incompatabilities 2023-02-28 15:20:53 +00:00
OpenSauce04
7c84a84fbe Removed TaikoInputBlockingMod, and instead moved code into TaikoModSingleTap 2023-02-28 15:14:03 +00:00
Dean Herbert
044b0604b2 Move OmitFirstBarLine to TimingControlPoint 2023-02-28 19:29:31 +09:00
OpenSauce04
beb04379f9 Inverted an if statement for code clarity 2023-02-27 22:36:09 +00:00
OpenSauce
8d747f2402
Fixed grammar mistake in Taiko Relax mod description 2023-02-27 16:06:33 +00:00
OpenSauce
25ef1f199d
Update description for Taiko Single Tap mod 2023-02-27 15:22:06 +00:00
OpenSauce04
12a2037086 Removed useless TaikoAction check from TaikoInputBlockingMod 2023-02-27 14:39:12 +00:00
OpenSauce04
d823faed08 Remove unused flash_duration const 2023-02-27 14:33:47 +00:00
OpenSauce04
dd9194b976 Code formatting fix 2023-02-27 13:58:40 +00:00
OpenSauce04
12b983495c Fixed issues caused by branch being stale 2023-02-27 13:40:55 +00:00
OpenSauce04
f2cada4584 Strong drumrolls no longer allow all actions to be used 2023-02-27 13:18:08 +00:00
OpenSauce04
b883c6af34 Renamed all instances of Taiko's InputBlockingMod to TaikoInputBlockingMod 2023-02-27 13:18:08 +00:00