1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-08 07:02:54 +08:00

Remove Scheduler.AddOnce from 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:

5874706117/osu.Game/Screens/OnlinePlay/Match/RoomSubScreen.cs (L266-L267)

Binding to attempt a load request:

8bb7bea04e/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`.
This commit is contained in:
Dean Herbert 2025-02-04 18:41:26 +09:00
parent 8bb7bea04e
commit 6c6063464a
No known key found for this signature in database

View File

@ -427,7 +427,7 @@ namespace osu.Game.Screens.OnlinePlay.Match
/// <returns>The screen to enter.</returns>
protected abstract Screen CreateGameplayScreen(PlaylistItem selectedItem);
private void updateSpecifics() => Scheduler.AddOnce(() =>
private void updateSpecifics()
{
if (!this.IsCurrentScreen() || SelectedItem.Value is not PlaylistItem item)
return;
@ -487,7 +487,7 @@ namespace osu.Game.Screens.OnlinePlay.Match
}
else
UserStyleSection.Hide();
});
}
protected virtual APIMod[] GetGameplayMods() => UserMods.Value.Select(m => new APIMod(m)).Concat(SelectedItem.Value!.RequiredMods).ToArray();