diff --git a/osu.Game/Overlays/MusicController.cs b/osu.Game/Overlays/MusicController.cs
index 92cf490be2..63e828a782 100644
--- a/osu.Game/Overlays/MusicController.cs
+++ b/osu.Game/Overlays/MusicController.cs
@@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using osu.Framework.Allocation;
+using osu.Framework.Audio.Track;
using osu.Framework.Bindables;
using osu.Framework.Graphics;
using osu.Framework.Input.Bindings;
@@ -71,7 +72,7 @@ namespace osu.Game.Overlays
managerRemoved = beatmaps.ItemRemoved.GetBoundCopy();
managerRemoved.BindValueChanged(beatmapRemoved);
- beatmapSets.AddRange(beatmaps.GetAllUsableBeatmapSets(IncludedDetails.Minimal).OrderBy(_ => RNG.Next()));
+ beatmapSets.AddRange(beatmaps.GetAllUsableBeatmapSets(IncludedDetails.Minimal, true).OrderBy(_ => RNG.Next()));
}
protected override void LoadComplete()
@@ -135,6 +136,7 @@ namespace osu.Game.Overlays
///
/// Start playing the current track (if not already playing).
+ /// Will select the next valid track if the current track is null or .
///
/// Whether the operation was successful.
public bool Play(bool restart = false)
@@ -143,12 +145,12 @@ namespace osu.Game.Overlays
IsUserPaused = false;
- if (track == null)
+ if (track == null || track is TrackVirtual)
{
if (beatmap.Disabled)
return false;
- next(true);
+ next();
return true;
}
@@ -228,10 +230,9 @@ namespace osu.Game.Overlays
///
public void NextTrack() => Schedule(() => next());
- private bool next(bool instant = false)
+ private bool next()
{
- if (!instant)
- queuedDirection = TrackChangeDirection.Next;
+ queuedDirection = TrackChangeDirection.Next;
var playable = BeatmapSets.SkipWhile(i => i.ID != current.BeatmapSetInfo.ID).ElementAtOrDefault(1) ?? BeatmapSets.FirstOrDefault();