Fix tournament bracket parsing regression
Closes #24136. Regressed in #24037.
It looks jank and also causes framebuffer overheads. But mostly because it looks jank.
GameplaySampleTriggerSource
IGameplayClock
The implementation of this requires a bit of a special case for 0, so makes sense to implement in a central place.
Remember state of replay settings visibility and allow key customisation
Doesn't appear to be required.
Fix fallback for `Judged` to be more correct
Move all remaining osu!taiko sample playback logic out of `DrawableHitObject`s
internal
Add difficulty attributes to facilitate conversion from legacy score, and convert existing scores
Playfield
I'm open to an alternative. Name it.
Judged
Without this change, when the `Judged` value is checked on an `HitObjectLifetimeEntry` it would return `true` if a `DrawableHitObject` has not yet been associated with the entry. Which is completely wrong. Of note, the usage in `DrawableHitObject` will have never fallen through to this incorrect value as they always have a result populated: https://github.com/ppy/osu/blob/f26f001e1d01ca6bb53225da7bf06c0ad21153c5/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs#L721-L726
Add handling of "unknown" beatmap availability in multiplayer flow
HitObjectLifetimeEntry
DrumSamplePlayer
DrumSampleTriggerSource