This commit changes BeatmapCarouselFilterGrouping to now use floored star
rating when determining which group a beatmap belongs to,
to be consistent with changes introduced here:
https://github.com/ppy/osu/pull/33679.
The AdvancedStats section of the original song select is also
updated to show the floored star rating (rather than rounded).
The fact that the stuff "just worked" previously due to one load-bearing
detach in a random location is really scary because a lot of this was
just not written the way it is supposed to be.
Addresses https://github.com/ppy/osu/discussions/33912 for catch
specifically. Code copy-pasted from osu! ruleset.
I'm leaving taiko be because new combo still doesn't make any sense in
taiko. It'd probably either have to be object index in beatmap period
instead of index in combo, or the `kdkdkdkdkkkdkdkkkdkkdkd` notation
people use.
The new version wasn't really working as expected, because the Y
position measurement only considered visible panels, while it was being
divided over all panels (including non-expanded groups or sets).
Rather than trying to divide across all panels, just choose a sane
number for the "highest pitch" sound and work with that as a constant.
It was doing a "if I touch the game in this very specific manner
everything works" which will light up in very nice green colours but is
actually useless for preventing regressions.
Closes https://github.com/ppy/osu/issues/33900. I think. Stable's sample
lookup logic is horrible.
The user in the issue claimed they were hearing `drum-hitfinish2`, but
they were really hearing `drum-hitfinish`, because they're the same
`.wav` file in the beatmap. Now the reason *why* they were hearind
`drum-hitfinish` is that the sample control point was specifying
something like:
23946,-200,4,2,4,40,0,0
To decipher, this is:
- default sample bank of soft
- custom sample bank of 4
Taking one of the objects affected, namely 00:23:946 (2) - that's a
slider with finish addition and drum addition bank on the slider head.
The slider head is thus attempting to play `soft-hitnormal4` and
`drum-hitfinish4`.
Neither `soft-hitnormal4` or `soft-hitnormal` exist in the beatmap, so
that plays fine via falling back to user skin's `soft-hitnormal`, but
`drum-hitfinish4` ends up falling back to `drum-hitfinish` which *does*
exist in the beatmap skin and thus plays wrongly from the beatmap skin
rather than the user skin.
I have no idea how to ensure this is correct across every beatmap and
skin out there so my approach is to just spray and pray (and rely on
issue reports I guess). I *think* this matches the stable logic which is
nestled within
https://github.com/peppy/osu-stable-reference/blob/a5e5fe6ef240505d13526cf32783cad261e9bd8b/osu!/Audio/AudioEngine.cs#L1136-L1230
but honestly if you put a gun to my head I couldn't be sure if it
matches completely in every possible circumstance or not.