From b9450b0f630d38015ed491dd3e1d38b0e0688857 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Fri, 10 Sep 2010 22:09:18 +1200 Subject: [PATCH] Don't die when no songs are available. --- .../Widgets/Delegates/MusicPlayerDelegate.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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);