diff options
author | Filippos Karapetis | 2010-10-07 21:50:47 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-10-07 21:50:47 +0000 |
commit | e1a5b5cda15c772fc745538776d73b4609a3f26f (patch) | |
tree | 81a20df5cdc017d406f48114d92bfe80e5f8f6c3 | |
parent | 9fae823f617cb73219824153f6f2517c08ffec96 (diff) | |
download | scummvm-rg350-e1a5b5cda15c772fc745538776d73b4609a3f26f.tar.gz scummvm-rg350-e1a5b5cda15c772fc745538776d73b4609a3f26f.tar.bz2 scummvm-rg350-e1a5b5cda15c772fc745538776d73b4609a3f26f.zip |
SCI: Fix for bug #3083151 - "QFG3: Long pause while loading specific savegame"
svn-id: r53060
-rw-r--r-- | engines/sci/sound/music.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp index dbbc28f25f..0dfa02c83f 100644 --- a/engines/sci/sound/music.cpp +++ b/engines/sci/sound/music.cpp @@ -399,8 +399,14 @@ void SciMusic::soundPlay(MusicEntry *pSnd) { if (pSnd->status == kSoundStopped) { pSnd->pMidiParser->jumpToTick(0); } else { + // Disable sound looping before fast forwarding to the last position, + // when loading a saved game. Fixes bug #3083151. + uint16 prevLoop = pSnd->loop; + pSnd->loop = 0; // Fast forward to the last position and perform associated events when loading pSnd->pMidiParser->jumpToTick(pSnd->ticker, true); + // Restore looping + pSnd->loop = prevLoop; } pSnd->pMidiParser->mainThreadEnd(); _mutex.unlock(); |