diff options
| -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  }  | 
