diff --git a/projects/mtg/include/GameApp.h b/projects/mtg/include/GameApp.h index b36a7a753..9a1ce808c 100644 --- a/projects/mtg/include/GameApp.h +++ b/projects/mtg/include/GameApp.h @@ -100,7 +100,8 @@ public: static string systemError; static JMusic* music; static string currentMusicFile; - static void playMusic(string filename, bool loop = true); + static void playMusic(string filename = "", bool loop = true); + static void stopMusic(); static int players[2]; }; diff --git a/projects/mtg/src/GameApp.cpp b/projects/mtg/src/GameApp.cpp index 04a2840c0..ca6d644fc 100644 --- a/projects/mtg/src/GameApp.cpp +++ b/projects/mtg/src/GameApp.cpp @@ -281,7 +281,7 @@ void GameApp::Destroy() SAFE_DELETE(Subtypes::subtypesList); - playMusic("none"); + stopMusic(); Translator::EndInstance(); WCFilterFactory::Destroy(); @@ -425,12 +425,12 @@ void GameApp::SetNextState(int state) void GameApp::Pause() { - + stopMusic(); } void GameApp::Resume() { - + playMusic(); } void GameApp::DoTransition(int trans, int tostate, float dur, bool animonly) @@ -486,7 +486,9 @@ void GameApp::DoAnimation(int trans, float dur) void GameApp::playMusic(string filename, bool loop) { - if (filename.compare(currentMusicFile) == 0) + if(filename == "") filename = currentMusicFile; + + if (filename.compare(currentMusicFile) == 0 && music) return; if (music) @@ -503,3 +505,12 @@ void GameApp::playMusic(string filename, bool loop) currentMusicFile = filename; } } + +void GameApp::stopMusic() +{ + if (music && currentMusicFile != "") + { + JSoundSystem::GetInstance()->StopMusic(music); + SAFE_DELETE(music); + } +}