aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2013-04-06 19:05:12 +0200
committerWillem Jan Palenstijn2013-04-06 20:31:34 +0200
commit18feefbe40c06143e27fe45fbe8c5e05455a0294 (patch)
tree869059eec13966621079bd87c103fc108b739106 /engines
parenteb4832524841db53cf2ee638552283db5a7b0c96 (diff)
downloadscummvm-rg350-18feefbe40c06143e27fe45fbe8c5e05455a0294.tar.gz
scummvm-rg350-18feefbe40c06143e27fe45fbe8c5e05455a0294.tar.bz2
scummvm-rg350-18feefbe40c06143e27fe45fbe8c5e05455a0294.zip
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.
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/sound/music.cpp3
1 files changed, 3 insertions, 0 deletions
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;
}
}
}