1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 13:22:55 +08:00
Commit Graph

373 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
OliBomby
41d4894aa3 add min and max value to SliderVelocity 2023-04-30 19:32:24 +02:00
OliBomby
92efd04f31 fix sample of drumroll ticks being bankless 2023-04-29 23:52:24 +02:00
OliBomby
c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
Dean Herbert
da8ab7143b
Merge branch 'master' into maximum-judgement-offset-in-hit-object 2023-02-15 14:48:15 +09:00
Bartłomiej Dach
67b6df3172
Reword ambiguous xmldoc 2023-02-12 13:31:29 +01:00
Dean Herbert
9d09141ab7 Move taiko-specific property out of DrawableHitObject 2023-02-12 16:09:28 +09:00
Dean Herbert
34d1890f1c Change snapping to only apply to classic mod 2023-02-09 18:22:14 +09:00
OpenSauce
df1355ea4b Taiko hit objects now snap to hit target 2023-02-08 10:59:08 +00:00
ekrctb
11e1b22bf5 Move MaximumJudgementOffset to HitObject
We want to access this property for computing lifetime
2023-01-19 21:23:55 +09:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Bartłomiej Dach
7379f6fe20
Merge branch 'master' into argon-taiko 2022-11-12 01:56:30 +09:00
Dan Balasescu
8063dcd74a
Merge pull request #21148 from peppy/taiko-barline-separation
Move major barline portion to default implementation to allow for further customisation
2022-11-11 16:40:51 +09:00
Dan Balasescu
1a1a186d22 Merge branch 'master' into taiko-barline-separation 2022-11-11 15:47:06 +09:00
Dan Balasescu
f25a8ee4a6 Merge branch 'master' into taiko-tick-trackiung 2022-11-11 15:41:06 +09:00
Dan Balasescu
606d42c679
Merge pull request #21184 from peppy/skinnable-things-cleanup
Skinnable class naming pass
2022-11-10 12:52:08 +09:00
Dean Herbert
1aa0e40f2f Add "Component" prefix to lookup naming 2022-11-09 17:46:43 +09:00
Dean Herbert
c908969d9b Rename ISkinComponent to ISkinLookup 2022-11-09 17:46:43 +09:00
Dean Herbert
aa7d0e2c96 Remove triangles skin specific implementation from base DrawableHit 2022-11-08 15:22:00 +09:00
Dean Herbert
aa61eb8f4b Add note about taiko pooling oversight 2022-11-07 18:32:12 +09:00
Dean Herbert
938a8f865b Adjust transform of taiko drum roll ticks to not scale to 0 (looks bad) 2022-11-07 18:32:12 +09:00
Dean Herbert
2648175275 Merge branch 'taiko-barline-separation' into taiko-fixes-combined 2022-11-07 18:32:09 +09:00
Dean Herbert
1975385cc7 Move first tick tracking logic inside TickPiece 2022-11-07 15:26:34 +09:00
Dean Herbert
c69a4f9333 Move major barline portion to default implementation to allow for further customisation
Of note, this removes the "major" barline triangles from legacy skins. I
think this is more correct, as they did not display in stable.
2022-11-07 14:29:58 +09:00
sw1tchbl4d3
0cffbb7562 Clamp LifetimeStart of HitObject's to their judgement windows 2022-09-27 16:54:24 +02:00
Dan Balasescu
a2f8ff825e Also ignore drum roll strong judgement 2022-09-06 23:26:25 +09:00
Dan Balasescu
792b410c04 Merge branch 'master' into classic_drumrolls 2022-09-06 16:29:45 +09:00
sw1tchbl4d3
a9aa928ce6 Fix test, make strong hits have LargeBonus judgement 2022-08-30 15:00:46 +02:00
sw1tchbl4d3
b185194d07 Apply comments by smoogi 2022-08-30 14:44:44 +02:00
Dean Herbert
a215d009fe Update Remove/RemoveRange/RemoveAll calls in line with framework changes 2022-08-29 15:57:40 +09:00
Dean Herbert
ad28bfc9b2 Fix taiko blueprints displaying incorrectly for drum rolls 2022-08-18 17:18:11 +09:00
sw1tchbl4d3
e0426836c1 Make swells and drumrolls optional by default 2022-08-05 16:30:07 +02:00
sw1tchbl4d3
0a0f3c93dd Rename OkResult, rephrase "strong bonus" 2022-07-24 20:55:13 +02:00
Justin
a4f3a0d201
Merge branch 'master' into classic_drumrolls 2022-07-24 18:33:04 +00:00
Salman Ahmed
1051009827 Change bindable properties in all HitObjects to be lazily initialised 2022-07-19 05:39:10 +03:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Bartłomiej Dach
3497e966fd
Revert no longer needed access modifier change 2022-06-24 13:01:16 +02:00
Bartłomiej Dach
f47b74a938
Move OkResult from drawable swell to judgement 2022-06-24 13:00:12 +02:00
sw1tchbl4d3
6c8042642a Reduce code duplication 2022-06-20 17:22:41 +02:00
sw1tchbl4d3
98527fec26 Make mod selfcontained 2022-06-19 15:11:12 +02:00
sw1tchbl4d3
a5bf16e873 Make drum rolls and swells optional with Classic mod 2022-06-19 02:10:23 +02:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Salman Ahmed
117d81d84f
Use perfect osu!(stable) strong scale value
Co-authored-by: Dean Herbert <pe@ppy.sh>
2022-04-05 03:04:53 +03:00
Salman Ahmed
01b10e68d2 Adjust taiko hit objects sizes to match osu!(stable) 2022-04-02 23:47:20 +03:00
Bartłomiej Dach
c6adbdd46f
Fix drum rolls nested objects not applying min result on kill 2022-01-16 17:53:37 +01:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00