From f8e73afbeea376b0312644467c64eaf59f59e333 Mon Sep 17 00:00:00 2001 From: Scott_NZ Date: Sat, 25 Aug 2012 00:09:53 +1200 Subject: [PATCH] Improve the music-playing code - crash prevention and some polish --- OpenRA.Mods.RA/Missions/Allies01Script.cs | 11 ++++++----- OpenRA.Mods.RA/Missions/Allies02Script.cs | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/OpenRA.Mods.RA/Missions/Allies01Script.cs b/OpenRA.Mods.RA/Missions/Allies01Script.cs index 2a1260b1bc..d44b5b2fd0 100644 --- a/OpenRA.Mods.RA/Missions/Allies01Script.cs +++ b/OpenRA.Mods.RA/Missions/Allies01Script.cs @@ -102,10 +102,6 @@ namespace OpenRA.Mods.RA.Missions public void Tick(Actor self) { - if (!Sound.MusicPlaying) - { - PlayMusic(); - } if (allies.WinState != WinState.Undefined) { return; @@ -297,14 +293,19 @@ namespace OpenRA.Mods.RA.Missions { FlyTanyaToInsertionLZ(); SendPatrol(); + PlayMusic(); }); }); } void PlayMusic() { + if (!Rules.InstalledMusic.Any()) + { + return; + } var track = Rules.InstalledMusic.Random(Game.CosmeticRandom); - Sound.PlayMusic(track.Value); + Sound.PlayMusicThen(track.Value, PlayMusic); } void StopMusic(OrderManager orderManager) diff --git a/OpenRA.Mods.RA/Missions/Allies02Script.cs b/OpenRA.Mods.RA/Missions/Allies02Script.cs index 5d17b56b2d..88200fbfe4 100644 --- a/OpenRA.Mods.RA/Missions/Allies02Script.cs +++ b/OpenRA.Mods.RA/Missions/Allies02Script.cs @@ -134,10 +134,6 @@ namespace OpenRA.Mods.RA.Missions public void Tick(Actor self) { - if (!Sound.MusicPlaying) - { - PlayMusic(); - } if (allies1.WinState != WinState.Undefined) { return; @@ -441,13 +437,18 @@ namespace OpenRA.Mods.RA.Missions { Game.MoveViewport(allies2BasePoint.Location.ToFloat2()); } + PlayMusic(); Game.ConnectionStateChanged += StopMusic; } void PlayMusic() { + if (!Rules.InstalledMusic.Any()) + { + return; + } var track = Rules.InstalledMusic.Random(Game.CosmeticRandom); - Sound.PlayMusic(track.Value); + Sound.PlayMusicThen(track.Value, PlayMusic); } void StopMusic(OrderManager orderManager)