aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sound/music.cpp
diff options
context:
space:
mode:
authorm-kiewitz2013-09-15 22:14:35 +0200
committerm-kiewitz2013-09-15 22:14:35 +0200
commit0367d40647128836c7ccecc1cd9e3682b871dbf8 (patch)
tree8f7565063698d9444e20a2fe037eb150279c2dab /engines/sci/sound/music.cpp
parentfcdaa86831a964b82b17bafc4c87bc86387ebf13 (diff)
downloadscummvm-rg350-0367d40647128836c7ccecc1cd9e3682b871dbf8.tar.gz
scummvm-rg350-0367d40647128836c7ccecc1cd9e3682b871dbf8.tar.bz2
scummvm-rg350-0367d40647128836c7ccecc1cd9e3682b871dbf8.zip
SCI: disable signals when resuming music, so that debugger will work properly for longbow intro
Diffstat (limited to 'engines/sci/sound/music.cpp')
-rw-r--r--engines/sci/sound/music.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp
index 913ba32cba..7fdcac21a4 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;