aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sfx
diff options
context:
space:
mode:
authorFilippos Karapetis2010-01-02 19:24:52 +0000
committerFilippos Karapetis2010-01-02 19:24:52 +0000
commit0b3d3c37a590b116e280f0ffefc26cd3d27b16fd (patch)
tree237a307f7376f745a4ea7159f7116d2ef5270f7a /engines/sci/sfx
parent48f023b472f2f32791ef5291a66701173b17e7b6 (diff)
downloadscummvm-rg350-0b3d3c37a590b116e280f0ffefc26cd3d27b16fd.tar.gz
scummvm-rg350-0b3d3c37a590b116e280f0ffefc26cd3d27b16fd.tar.bz2
scummvm-rg350-0b3d3c37a590b116e280f0ffefc26cd3d27b16fd.zip
SCI/new music code: Fixed sound patch loading when restoring a saved game
svn-id: r46896
Diffstat (limited to 'engines/sci/sfx')
-rw-r--r--engines/sci/sfx/music.cpp3
-rw-r--r--engines/sci/sfx/soundcmd.cpp3
2 files changed, 4 insertions, 2 deletions
diff --git a/engines/sci/sfx/music.cpp b/engines/sci/sfx/music.cpp
index 852321bb37..9a2549eb11 100644
--- a/engines/sci/sfx/music.cpp
+++ b/engines/sci/sfx/music.cpp
@@ -355,7 +355,8 @@ void SciMusic::soundInitSnd(MusicEntry *pSnd) {
channelFilterMask = pSnd->soundRes->getChannelFilterMask(_pMidiDrv->getPlayMask(_soundVersion));
pSnd->pMidiParser->loadMusic(track, pSnd, channelFilterMask, _soundVersion);
- pSnd->pMidiParser->jumpToTick(pSnd->ticker); // for resuming when loading
+ // Fast forward to the last position and perform associated events when loading
+ pSnd->pMidiParser->jumpToTick(pSnd->ticker, true);
_mutex.unlock();
}
}
diff --git a/engines/sci/sfx/soundcmd.cpp b/engines/sci/sfx/soundcmd.cpp
index dd23b12f9c..fe1e1a1c06 100644
--- a/engines/sci/sfx/soundcmd.cpp
+++ b/engines/sci/sfx/soundcmd.cpp
@@ -1007,6 +1007,8 @@ void SoundCommandParser::reconstructPlayList(int savegame_version) {
#ifndef USE_OLD_MUSIC_FUNCTIONS
Common::StackLock lock(_music->_mutex);
+ _music->resetDriver();
+
const MusicList::iterator end = _music->getPlayListEnd();
for (MusicList::iterator i = _music->getPlayListStart(); i != end; ++i) {
if (savegame_version < 14) {
@@ -1023,7 +1025,6 @@ void SoundCommandParser::reconstructPlayList(int savegame_version) {
cmdPlaySound((*i)->soundObj, 0);
}
- _music->resetDriver();
#endif
}