Fix crash when there's no beatmaps

This commit is contained in:
ColdVolcano 2017-04-14 17:48:27 -05:00
parent 2c6327fca9
commit ca1f89f2cf

View File

@ -67,6 +67,7 @@ namespace osu.Game.Screens.Menu
private TrackManager trackManager;
private BeatmapInfo beatmap;
private WorkingBeatmap song;
private int choosableBeatmapsetAmmout;
[BackgroundDependencyLoader]
private void load(OsuGameBase game, AudioManager audio, OsuConfigManager config, BeatmapDatabase beatmaps)
@ -76,10 +77,14 @@ namespace osu.Game.Screens.Menu
if (!menuMusic)
{
trackManager = game.Audio.Track;
beatmap = beatmaps.GetWithChildren<BeatmapSetInfo>(RNG.Next(beatmaps.Query<BeatmapSetInfo>().Count() - 1)).Beatmaps[0];
choosableBeatmapsetAmmout = beatmaps.Query<BeatmapSetInfo>().Count();
if (choosableBeatmapsetAmmout > 0)
{
beatmap = beatmaps.GetWithChildren<BeatmapSetInfo>(RNG.Next(1, choosableBeatmapsetAmmout)).Beatmaps[0];
song = beatmaps.GetWorkingBeatmap(beatmap);
Beatmap = song;
}
}
bgm = audio.Track.Get(@"circles");
bgm.Looping = true;
@ -100,7 +105,7 @@ namespace osu.Game.Screens.Menu
{
if(menuMusic)
bgm.Start();
else
else if (song != null)
{
Task.Run(() =>
{
@ -115,7 +120,7 @@ namespace osu.Game.Screens.Menu
Scheduler.AddDelayed(delegate
{
if (!menuMusic)
if (!menuMusic && song != null)
Task.Run(() => song.Track.Start());
DidLoadMenu = true;
Push(mainMenu);