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.
This PR converts the leaderboard into a full-fledged skinnable component
that can be manipulated by users at will.
Notably, this finally allows https://github.com/ppy/osu/issues/20422 to
be fixed - although it's a very mixed bag, for several reasons:
- Because of taiko players' refusal to see reason^W^W^W^Winsistence on
keeping stable behaviours related to aspect ratio treatment, I have to
assume the worst case scenario, which means than on typical
resolutions like 16:9 (or even worse, 4:3), the leaderboard will
likely not occupy as much vertical space as it probably could.
- Additionally, there's the problem of where to put the spectator list.
I settled on putting it to the right of the leaderboard, but that's
kind of janky, because the leaderboard sometimes collapses and
sometimes fully hides, leading to a very awkward space left behind. If
we had the capability to anchor elements to other elements, maybe this
could be resolved, but for now, I'm not sure what to do. I think if
some users are bothered by it they can move it where they want it. Or
delete it.
I dunno what the wiki is claiming with the "24px" figure or why
but I'm not playing conversion games either. Dimensions ballparked
via screenshots captured at x768 resolution.
Also removes a weird homebrew method to keep the text upright.
There is one canonical way to do this, namely
`UprightAspectMaintainingContainer`. And the other key counters
were already using it.
Matching stable.
Closes https://github.com/ppy/osu/issues/9858.
I would have liked to apply this in the taiko transformer itself, but
the limited accessibility of texture uploads, and as such the raw image
data, sort of prevents that...