aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2010-10-07 21:50:47 +0000
committerFilippos Karapetis2010-10-07 21:50:47 +0000
commite1a5b5cda15c772fc745538776d73b4609a3f26f (patch)
tree81a20df5cdc017d406f48114d92bfe80e5f8f6c3
parent9fae823f617cb73219824153f6f2517c08ffec96 (diff)
downloadscummvm-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.cpp6
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();