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)