diff options
author | Eugene Sandulenko | 2016-11-29 10:38:25 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2016-11-29 18:45:04 +0100 |
commit | 5d45f740d3be06ca6fa4167e02568f4366967768 (patch) | |
tree | ee7475351b91c76c5050e4966fbd0cb7a4b32314 | |
parent | dd4f48f4d79f68e10511a334efd163a8058c0e5a (diff) | |
download | scummvm-rg350-5d45f740d3be06ca6fa4167e02568f4366967768.tar.gz scummvm-rg350-5d45f740d3be06ca6fa4167e02568f4366967768.tar.bz2 scummvm-rg350-5d45f740d3be06ca6fa4167e02568f4366967768.zip |
FULLPIPE: Implement track looping in sceneFinal
-rw-r--r-- | engines/fullpipe/scenes.cpp | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes.h | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes/sceneFinal.cpp | 11 |
3 files changed, 13 insertions, 0 deletions
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index 5ac25c82f8..b364908dbe 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -472,6 +472,7 @@ Vars::Vars() { sceneFinal_var01 = 0; sceneFinal_var02 = 0; sceneFinal_var03 = 0; + sceneFinal_trackHasStarted = false; selector = 0; } diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h index 918fb72b37..462eddeea8 100644 --- a/engines/fullpipe/scenes.h +++ b/engines/fullpipe/scenes.h @@ -663,6 +663,7 @@ public: int sceneFinal_var01; int sceneFinal_var02; int sceneFinal_var03; + bool sceneFinal_trackHasStarted; PictureObject *selector; }; diff --git a/engines/fullpipe/scenes/sceneFinal.cpp b/engines/fullpipe/scenes/sceneFinal.cpp index 2180edb94f..f569306cbe 100644 --- a/engines/fullpipe/scenes/sceneFinal.cpp +++ b/engines/fullpipe/scenes/sceneFinal.cpp @@ -35,6 +35,7 @@ #include "fullpipe/modal.h" +#include "audio/mixer.h" namespace Fullpipe { @@ -55,6 +56,7 @@ void sceneFinal_initScene() { g_vars->sceneFinal_var01 = 0; g_vars->sceneFinal_var02 = 0; g_vars->sceneFinal_var03 = 0; + g_vars->sceneFinal_trackHasStarted = false; } int sceneFinal_updateCursor() { @@ -72,6 +74,7 @@ void sceneHandlerFinal_endFinal() { void sceneHandlerFinal_startMusic(const char *track) { g_fp->startSoundStream1(track); + g_vars->sceneFinal_trackHasStarted = true; } void sceneHandlerFinal_goto4() { @@ -120,6 +123,12 @@ void sceneHandlerFinal_fallCoin() { } } +void checkMusic() { + if (g_vars->sceneFinal_trackHasStarted && !g_fp->_mixer->isSoundHandleActive(*g_fp->_soundStream1)) { // loop music + sceneHandlerFinal_startMusic("track16.ogg"); + } +} + int sceneHandlerFinal(ExCommand *cmd) { if (cmd->_messageKind != 17) return 0; @@ -168,6 +177,8 @@ int sceneHandlerFinal(ExCommand *cmd) { break; } + checkMusic(); + return 0; } |