diff options
Diffstat (limited to 'engines/fullpipe/scenes/sceneFinal.cpp')
-rw-r--r-- | engines/fullpipe/scenes/sceneFinal.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/fullpipe/scenes/sceneFinal.cpp b/engines/fullpipe/scenes/sceneFinal.cpp index 8b3ecb1025..30ca31b7b0 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() { @@ -71,7 +73,8 @@ void sceneHandlerFinal_endFinal() { } void sceneHandlerFinal_startMusic(const char *track) { - warning("STUB: sceneHandlerFinal_startMusic()"); + g_fp->startSoundStream1(track); + g_vars->sceneFinal_trackHasStarted = true; } void sceneHandlerFinal_goto4() { @@ -120,6 +123,12 @@ void sceneHandlerFinal_fallCoin() { } } +void updateMusic() { + 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; } + updateMusic(); + return 0; } |