Improve the music-playing code - crash prevention and some polish

This commit is contained in:
Scott_NZ
2012-08-25 00:09:53 +12:00
committed by Chris Forbes
parent dbbe026b88
commit f8e73afbee
2 changed files with 12 additions and 10 deletions

View File

@@ -102,10 +102,6 @@ namespace OpenRA.Mods.RA.Missions
public void Tick(Actor self) public void Tick(Actor self)
{ {
if (!Sound.MusicPlaying)
{
PlayMusic();
}
if (allies.WinState != WinState.Undefined) if (allies.WinState != WinState.Undefined)
{ {
return; return;
@@ -297,14 +293,19 @@ namespace OpenRA.Mods.RA.Missions
{ {
FlyTanyaToInsertionLZ(); FlyTanyaToInsertionLZ();
SendPatrol(); SendPatrol();
PlayMusic();
}); });
}); });
} }
void PlayMusic() void PlayMusic()
{ {
if (!Rules.InstalledMusic.Any())
{
return;
}
var track = Rules.InstalledMusic.Random(Game.CosmeticRandom); var track = Rules.InstalledMusic.Random(Game.CosmeticRandom);
Sound.PlayMusic(track.Value); Sound.PlayMusicThen(track.Value, PlayMusic);
} }
void StopMusic(OrderManager orderManager) void StopMusic(OrderManager orderManager)

View File

@@ -134,10 +134,6 @@ namespace OpenRA.Mods.RA.Missions
public void Tick(Actor self) public void Tick(Actor self)
{ {
if (!Sound.MusicPlaying)
{
PlayMusic();
}
if (allies1.WinState != WinState.Undefined) if (allies1.WinState != WinState.Undefined)
{ {
return; return;
@@ -441,13 +437,18 @@ namespace OpenRA.Mods.RA.Missions
{ {
Game.MoveViewport(allies2BasePoint.Location.ToFloat2()); Game.MoveViewport(allies2BasePoint.Location.ToFloat2());
} }
PlayMusic();
Game.ConnectionStateChanged += StopMusic; Game.ConnectionStateChanged += StopMusic;
} }
void PlayMusic() void PlayMusic()
{ {
if (!Rules.InstalledMusic.Any())
{
return;
}
var track = Rules.InstalledMusic.Random(Game.CosmeticRandom); var track = Rules.InstalledMusic.Random(Game.CosmeticRandom);
Sound.PlayMusic(track.Value); Sound.PlayMusicThen(track.Value, PlayMusic);
} }
void StopMusic(OrderManager orderManager) void StopMusic(OrderManager orderManager)