1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-30 07:52:56 +08:00
Commit Graph

407 Commits

Author SHA1 Message Date
Bartłomiej Dach
fb80d76b4a
Apply further changes to remove remaining weirdness 2024-02-05 13:37:38 +01:00
Bartłomiej Dach
efe6bb25b1
Refactor result application around again to remove requirement for fields
Co-authored-by: Dean Herbert <pe@ppy.sh>
2024-02-05 13:21:01 +01:00
Dean Herbert
6cfd2813ed
Fix incorrect cast 2024-01-26 16:52:03 +09:00
Chandler Stowell
682dab5d83 check if parent was hit in taiko's DrawableDrumRoll.CheckForResult 2024-01-25 11:30:52 -05:00
Chandler Stowell
93bd3ce5ae update DrawableHitCircle.ApplyResult to pass this to its callback 2024-01-25 11:25:41 -05:00
Chandler Stowell
d2775680e6 use stack to pass action state when applying hit results
this removes closure allocations
2024-01-24 13:13:45 -05:00
Dean Herbert
1b50d1011a
Move constant local to taiko 2023-12-06 15:59:34 +09:00
Dean Herbert
8a0d152bcf
Reapply legacy taiko velocity multiplier in all relevant places 2023-12-06 15:59:34 +09:00
Thomas Müller-Höhne
926636cc03 Generalize Bezier curves to BSplines of Nth degree 2023-11-11 13:32:53 +01:00
Dean Herbert
5341a335a6
Bypass Parent nullability checks for now 2023-10-17 17:48:45 +09:00
Dean Herbert
d660395850
Ensure there's no chance of a press being ignored during rewind flow 2023-10-05 23:02:45 +09:00
Bartłomiej Dach
a1368df62f
Allow judging at most one swell tick per frame 2023-10-04 19:08:03 +02:00
OliBomby
71a96e8be2 Remove SV from DrumRoll 2023-08-13 21:47:13 +02:00
Bartłomiej Dach
7e98d319d8
Use update-invariant way of checking for second press on same frame
Fixes the same issue that 970ea50269 did,
but with no `AlwaysPresent` usage.
2023-07-25 20:07:03 +02:00
Bartłomiej Dach
9e960894c2
Add inline commentary about OnKilled() override 2023-07-15 18:22:04 +02:00
chayleaf
3e91d30825 move StrongNestedHit OnKilled to DrawableStrongNestedHit 2023-07-15 22:33:16 +07:00
chayleaf
7f957d3fbe Fix some taiko maps not finishing in some conditions
I don't know how to reproduce this issue in a test, so no tests for now.
Nonetheless, this fixes the issue for me at least on one map:
https://osu.ppy.sh/beatmapsets/1899665#taiko/3915653

This workaround is similar to #16475 (the test from that commit got
eventually removed for some reason).
2023-07-15 20:24:40 +07:00
Dean Herbert
259ac6d427 Fix osu!taiko swells eating input after already being judged 2023-07-13 13:32:20 +09:00
Bartłomiej Dach
a87a631c50
Merge branch 'master' into taiko-hitsounding-final-attempt 2023-07-05 22:15:32 +02:00
Bartłomiej Dach
afc0c4f3c2
Merge pull request #24088 from peppy/taiko-hitsounding-drum-sample-player
Move all remaining osu!taiko sample playback logic out of `DrawableHitObject`s
2023-07-05 21:57:49 +02:00
Dean Herbert
a9587fd1aa Move strong hit handling to DrumSamplePlayer and separte trigger sources 2023-07-05 18:44:27 +09:00
Dean Herbert
e87cf6d256 Move all remaining osu!taiko sample playback logic out of DrawableHitObjects 2023-06-30 15:21:34 +09:00
Dan Balasescu
e1d723a2cc Merge branch 'master' into diffcalc-total-scorev1 2023-06-26 14:32:14 +09:00
Dean Herbert
df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Dan Balasescu
0844a21a51 Merge branch 'master' into diffcalc-total-scorev1 2023-06-15 19:33:29 +09:00
Dan Balasescu
aa644832dc Add ScoreV1 calculation for TaikoRuleset 2023-06-13 19:28:46 +09:00
Bartłomiej Dach
7acd186a3d
Revert to previous bound in drum roll tick generation
While `EndTime + tickSpacing` _was_ closer to what stable was using, it
could cause undesirable edge cases wherein a tick would be spawned
outside of the drum roll's duration
(see https://github.com/ppy/osu/pull/23768/files#r1222073027).

For this reason, stick with the old code for now, as it is not as
susceptible to that sort of breakage.
2023-06-08 09:56:39 +02:00
Bartłomiej Dach
b6a1377955
Merge branch 'master' into fix-editor-drum-roll 2023-06-08 09:55:10 +02:00
Salman Ahmed
62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
Dean Herbert
3db080fad2 Fix osu!taiko drum rolls not getting correct tick rate after placement in the editor 2023-06-06 16:54:33 +09:00
Dean Herbert
b096e03a57 Fix ticks being created after the end of drum rolls in osu!taiko editor
Closes https://github.com/ppy/osu/issues/23135.
2023-06-06 16:31:59 +09:00
Dan Balasescu
fee3d43596 Merge branch 'master' into scorev2 2023-05-23 19:07:54 +09:00
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
Dan Balasescu
5afe57033d Add parent hitobject to strong hits 2023-05-09 19:30:54 +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