diff options
Diffstat (limited to 'engines/sci/sound/music.cpp')
-rw-r--r-- | engines/sci/sound/music.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp index 913ba32cba..1628a22386 100644 --- a/engines/sci/sound/music.cpp +++ b/engines/sci/sound/music.cpp @@ -519,9 +519,14 @@ void SciMusic::soundPlay(MusicEntry *pSnd) { if (pSnd->status == kSoundStopped) pSnd->pMidiParser->jumpToTick(0); - else + else { // Fast forward to the last position and perform associated events when loading + pSnd->inFastForward = true; + // we set this flag, so that the midiparser doesn't set any signals for scripts + // if we don't do this, at least accessing the debugger will reset previously set signals pSnd->pMidiParser->jumpToTick(pSnd->ticker, true, true, true); + pSnd->inFastForward = false; + } // Restore looping and hold pSnd->loop = prevLoop; @@ -760,6 +765,7 @@ MusicEntry::MusicEntry() { resourceId = 0; isQueued = false; + inFastForward = false; dataInc = 0; ticker = 0; |