mirror of
https://github.com/ppy/osu.git
synced 2024-12-14 21:02:55 +08:00
Force a beatmap availability state change when selected item is changed
This commit is contained in:
parent
91354b1570
commit
664a2b2255
@ -34,6 +34,7 @@ namespace osu.Game.Online.Rooms
|
||||
DownloadProgress = downloadProgress;
|
||||
}
|
||||
|
||||
public static BeatmapAvailability Unknown() => new BeatmapAvailability(DownloadState.Unknown);
|
||||
public static BeatmapAvailability NotDownloaded() => new BeatmapAvailability(DownloadState.NotDownloaded);
|
||||
public static BeatmapAvailability Downloading(float progress) => new BeatmapAvailability(DownloadState.Downloading, progress);
|
||||
public static BeatmapAvailability Importing() => new BeatmapAvailability(DownloadState.Importing);
|
||||
|
@ -60,6 +60,15 @@ namespace osu.Game.Online.Rooms
|
||||
if (item.NewValue == null)
|
||||
return;
|
||||
|
||||
// Initially set to unknown until we have attained a good state.
|
||||
// This has the wanted side effect of forcing a state change when the current playlist
|
||||
// item changes at the server but our local availability doesn't necessarily change
|
||||
// (ie. we have both the previous and next item LocallyAvailable).
|
||||
//
|
||||
// Note that even without this, the server will trigger a state change and things will work.
|
||||
// This is just for safety.
|
||||
availability.Value = BeatmapAvailability.Unknown();
|
||||
|
||||
downloadTracker?.RemoveAndDisposeImmediately();
|
||||
selectedBeatmap = null;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user