From 18feefbe40c06143e27fe45fbe8c5e05455a0294 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Sat, 6 Apr 2013 19:05:12 +0200 Subject: SCI: Notify scripts of completed fade when aborting it This tweaks a fix/workaround (commit 96540686) for bugs #3266480 and #3041738. Also add CHECKME to verify the accuracy of this workaround further. This fixes the regressions #3291115, #3555404, #3596335 and #3610063. --- engines/sci/sound/music.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'engines') diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp index a8a65d2aa4..913ba32cba 100644 --- a/engines/sci/sound/music.cpp +++ b/engines/sci/sound/music.cpp @@ -485,6 +485,8 @@ void SciMusic::soundPlay(MusicEntry *pSnd) { // Stop any in progress music fading, as that will reset the // volume of the sound channels that the faded song occupies.. // Fixes bug #3266480 and partially fixes bug #3041738. + // CHECKME: Is this the right thing to do? Are these + // overlapping channels not a deeper underlying problem? for (uint i = 0; i < playListCount; i++) { // Is another MIDI song being faded down? If yes, stop it // immediately instead @@ -495,6 +497,7 @@ void SciMusic::soundPlay(MusicEntry *pSnd) { _playList[i]->pMidiParser->stop(); freeChannels(_playList[i]); _playList[i]->fadeStep = 0; + _playList[i]->fadeCompleted = true; } } } -- cgit v1.2.3