diff --git a/OpenRA.Game/Widgets/Delegates/MusicPlayerDelegate.cs b/OpenRA.Game/Widgets/Delegates/MusicPlayerDelegate.cs index 6a67af14b4..9b3462dabb 100644 --- a/OpenRA.Game/Widgets/Delegates/MusicPlayerDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/MusicPlayerDelegate.cs @@ -103,6 +103,13 @@ namespace OpenRA.Widgets.Delegates var itemTemplate = ml.GetWidget("MUSIC_TEMPLATE"); int offset = itemTemplate.Bounds.Y; + if (!Rules.Music.Where(m => m.Value.Exists).Any()) + { + itemTemplate.IsVisible = () => true; + itemTemplate.GetWidget("TITLE").GetText = () => "No Music Installed"; + itemTemplate.GetWidget("TITLE").Align = LabelWidget.TextAlign.Center; + } + foreach (var kv in Rules.Music.Where(m => m.Value.Exists)) { var song = kv.Key; @@ -138,6 +145,9 @@ namespace OpenRA.Widgets.Delegates var songs = Rules.Music.Where(a => a.Value.Exists) .Select(a => a.Key); + if (!songs.Any()) + return null; + if (Game.Settings.Sound.Shuffle) return songs.Random(Game.CosmeticRandom); @@ -151,6 +161,9 @@ namespace OpenRA.Widgets.Delegates var songs = Rules.Music.Where(a => a.Value.Exists) .Select(a => a.Key).Reverse(); + if (!songs.Any()) + return null; + if (Game.Settings.Sound.Shuffle) return songs.Random(Game.CosmeticRandom);