1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-17 16:12:53 +08:00
Commit Graph

49 Commits

Author SHA1 Message Date
Bartłomiej Dach
e8a394f894
Fix argon volume-aware hitsounds not correctly playing immediately after object placement
Closes https://github.com/ppy/osu/issues/29832.

The underlying reason for the incorrect sample playback was an equality
comparer failure.

Samples are contained in several pools which are managed by the
playfield. In particular, the pools are keyed by `ISampleInfo`
instances. This means that for correct operation, `ISampleInfo` has to
implement `IEquatable<ISampleInfo>` and also provide an appropriately
correct `GetHashCode()` implementation. Different audible samples must
not compare equal to each other when represented by `ISampleInfo`.

As it turns out, `VolumeAwareHitSampleInfo` failed on this, due to not
overriding equality members. Therefore, a `new
HitSampleInfo(HitSampleInfo.HIT_NORMAL, HitSampleInfo.BANK_NORMAL,
volume: 70)` was allowed to compare equal to a
`VolumeAwareHitSampleInfo` wrapping it, *even though they correspond to
completely different sounds and go through entirely different lookup
path sequences*.

Therefore, to fix, provide more proper equality implementations for
`VolumeAwareHitSampleInfo`.

When testing note that this issue *only occurs immediately after
placing an object*. Saving and re-entering editor makes this issue go
away. I haven't looked too long into why, but the general gist of it is
ordering; it appears that a `normal-hitnormal` pool exists at point
of query of a new object placement, but does not seem to exist when
entering editor afresh. That said I'm not sure that ordering aspect of
this bug matters much if at all, since the two `IHitSampleInfo`s should
never be allowed to alias with each other at all wrt equality.
2024-09-23 13:38:26 +02:00
Dean Herbert
36b4013fa6
Rename GameplaySkinComponentLookup -> SkinComponentLookup 2024-08-22 18:46:03 +09:00
Dean Herbert
60d383448f
Avoid making non-ruleset transformers in Ruleset.CreateSkinTransformer
This didn't make any sense, so let's do it a better way.
2024-08-08 16:29:54 +09:00
Bartłomiej Dach
5fcea01c13
Merge branch 'master' into ruleset-specific-combo-counter 2024-06-04 15:44:11 +02:00
Bartłomiej Dach
2667cb8b36
Merge pull request #26703 from peppy/smaller-slider-misses
Adjust slider tick / end defaults again
2024-01-29 13:51:07 +01:00
Dean Herbert
dda96d7106
Rename JudgementPiece to TextJudgementPiece 2024-01-25 19:31:57 +09:00
Salman Ahmed
d4fef99e1f Define constant input drum width for osu!taiko 2024-01-20 01:46:15 +03:00
Salman Ahmed
eedb436389 Move combo counter to ruleset-specific HUD components target 2023-12-30 03:47:52 +03:00
Dean Herbert
2886d2d4c2
Apply same changes to "argon" osu!taiko barline design that were applied to osu!mania 2023-10-25 14:20:43 +09:00
Dean Herbert
5341a335a6
Bypass Parent nullability checks for now 2023-10-17 17:48:45 +09:00
Bartłomiej Dach
ba0cd7a3f2
Fix flourish sample not playing if strong hits are hit early 2023-07-08 19:22:32 +02:00
Dean Herbert
755b82a308 Implement flourish trigger source via base class 2023-07-07 14:54:49 +09:00
Dean Herbert
9bdc80a749 Move flourish playback to own trigger source 2023-07-07 14:46:36 +09:00
Dean Herbert
6bfbcca2fd Move VolumeAwareHitSampleInfo to own file 2023-07-07 14:45:33 +09:00
Dean Herbert
48f27ff340 Move trigger source to own file
Having such a large nested class inside a small top level class is VERY
confusing.
2023-07-07 14:31:14 +09:00
Dean Herbert
759cd5aec7 Warm up pool with argon-specific drum samples 2023-07-05 18:44:27 +09:00
Dean Herbert
16f1a7694d Add time-based flourish support 2023-07-05 18:44:27 +09:00
Dean Herbert
c72ebcfd53 Fix skin fallback not working as expected 2023-07-05 18:44:27 +09:00
Dean Herbert
010262c764 Change strong hit sample handling to be user input based, not hit object based 2023-07-05 18:44:27 +09:00
Dean Herbert
a9587fd1aa Move strong hit handling to DrumSamplePlayer and separte trigger sources 2023-07-05 18:44:27 +09:00
Dean Herbert
27af07b74b Add basic implementation of argon osu!taiko hitsounds (volume / flourish / strong) 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
ae86fc736a Add argon-specific DrumSamplePlayer 2023-07-05 18:44:27 +09:00
Dean Herbert
f54eb8d7fa Move DrumSamplePlayer to be a skinnable component 2023-07-05 18:44:27 +09:00
Dean Herbert
b986d1cee1 Rename variables to give more context 2023-06-12 14:18:26 +09:00
Xinnoh
7bf73463f1 reduce argon kiai flashing 2023-06-09 22:46:07 -07:00
Dean Herbert
a18a2e48f7 Colour argon osu!taiko explosions based on the object hit 2023-06-06 15:49:03 +09:00
Dean Herbert
5e9fb1063a Move judgement text creation to base class and tidy things up 2022-12-24 12:22:36 +08:00
Dean Herbert
03603f8b54 Don't show great or higher judgements when using argon "pro" skin 2022-12-24 03:35:44 +08:00
Dean Herbert
727ac00f6d Combine base class for JudgementPiece 2022-12-24 03:32:13 +08:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert
45f47cce77 Add basic osu!taiko "argon" swell visual 2022-11-16 16:13:52 +09:00
Dean Herbert
233d45e185 Fix argon swells incorrectly flashing on every hit 2022-11-15 18:28:13 +09:00
Bartłomiej Dach
8b8147c321
Rename {catch -> taiko}Component 2022-11-12 03:05:03 +09:00
Bartłomiej Dach
6a4c97b4f1
Fix code inspection 2022-11-12 02:20:19 +09:00
Bartłomiej Dach
7ef11cab8b
Adjust taiko argon transformer to new naming 2022-11-12 02:10:10 +09:00
Dean Herbert
30890644a8 Flash piece when hit 2022-11-08 15:31:45 +09:00
Dean Herbert
01803c3f13 Adjust judgement text to be more visible 2022-11-08 15:08:52 +09:00
Dean Herbert
d57ec4b227 Add argon input drum implementation 2022-11-07 18:32:12 +09:00
Dean Herbert
b15d1bc333 Add argon result display implementation 2022-11-07 18:32:12 +09:00
Dean Herbert
d5c375b139 Add argon hit explosion implementation 2022-11-07 18:32:12 +09:00
Dean Herbert
e2046791c2 Add argon drum roll ticks 2022-11-07 18:32:12 +09:00
Dean Herbert
f1556c98e3 Add drum roll implementation 2022-11-07 18:32:12 +09:00
Dean Herbert
6636545195 Move taiko argon hit icon to respective centre/rim pieces 2022-11-07 18:32:12 +09:00
Dean Herbert
529e3217cf Add barline implementation 2022-11-07 18:32:12 +09:00
Dean Herbert
f1a1f29da7 Add hit target implementation 2022-11-07 18:32:12 +09:00
Dean Herbert
421bdd2c1a Add playfield background implementations 2022-11-07 18:32:12 +09:00
Dean Herbert
bc0e9375af Add basic argon hits 2022-11-07 18:32:12 +09:00
Dean Herbert
baf8db8de4 Add basic setup for taiko argon skinning 2022-11-07 18:32:12 +09:00