diff options
author | Filippos Karapetis | 2010-01-02 19:24:52 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-01-02 19:24:52 +0000 |
commit | 0b3d3c37a590b116e280f0ffefc26cd3d27b16fd (patch) | |
tree | 237a307f7376f745a4ea7159f7116d2ef5270f7a /engines/sci/sfx | |
parent | 48f023b472f2f32791ef5291a66701173b17e7b6 (diff) | |
download | scummvm-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.cpp | 3 | ||||
-rw-r--r-- | engines/sci/sfx/soundcmd.cpp | 3 |
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 } |