Noticed during testing.
Scheduler.AddOnce
updateSpecifics
To keep things simple, let's not bother debouncing this. The debouncing was causing spectating handling to fail because of two interdependent components binding to `BeatmapAvailability`: Binding to update the screen's `Beatmap` after a download completes: https://github.com/ppy/osu/blob/58747061171c4ebe70201dfe4d3329ed7f4343f5/osu.Game/Screens/OnlinePlay/Match/RoomSubScreen.cs#L266-L267 Binding to attempt a load request: https://github.com/ppy/osu/blob/8bb7bea04e56fab9247baa59ae879e16c8b4bd9b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSubScreen.cs#L67 The first must update the beatmap before the second runs, else gameplay will not load due to `Beatmap.IsDefault`.
Add group support to beatmap carousel v2
Fix multi-segment-type sliders getting mangled on legacy export
Fix depth ordering in new carousel not being relative to selected item
Only used in test code.
IDistanceSnapProvider
Method signatures are also changed to be a lot more explicit as to what inputs they expect.
Avoid accessing `WorkingBeatmap.Beatmap` every update call
Make distance snap settings mutually exclusive
WorkingBeatmap
ctor
Useful for cases like https://github.com/ppy/osu/pull/31778, where a change to one setting can affect another.
Fix results screen sounds persisting after exit
WorkingBeatmap.Beatmap
Notice in passing. Comes with overheads that can be easily avoided. Left a note for a future (slightly more involved) optimisation.
Do not reset online information when saving beatmap
Improve osu!mania playability on mobile devices
Abstract out `WizardOverlay` for multi-step wizard type screens