diff options
author | md5 | 2011-04-03 19:02:14 +0300 |
---|---|---|
committer | md5 | 2011-04-03 19:02:14 +0300 |
commit | bfef0f5a6fabdef5bb42cffd8b078d4511cf2a80 (patch) | |
tree | b919fa60186820db4806723833a6efea84128a55 /engines/sci/sound | |
parent | 6d90b0739a2c96cadee6642a691152c6e9df0895 (diff) | |
download | scummvm-rg350-bfef0f5a6fabdef5bb42cffd8b078d4511cf2a80.tar.gz scummvm-rg350-bfef0f5a6fabdef5bb42cffd8b078d4511cf2a80.tar.bz2 scummvm-rg350-bfef0f5a6fabdef5bb42cffd8b078d4511cf2a80.zip |
SCI: Fixed fading-related bugs #3267956 and #3041738
Diffstat (limited to 'engines/sci/sound')
-rw-r--r-- | engines/sci/sound/soundcmd.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/sci/sound/soundcmd.cpp b/engines/sci/sound/soundcmd.cpp index 1e6d0aef87..9ad964b67e 100644 --- a/engines/sci/sound/soundcmd.cpp +++ b/engines/sci/sound/soundcmd.cpp @@ -325,6 +325,14 @@ reg_t SoundCommandParser::kDoSoundFade(int argc, reg_t *argv, reg_t acc) { return acc; } + // If the current volume of the slot is the same as the target volume, + // return without performing any fading. This fixes the music in room + // 406 in KQ6 (bug #3267956), where the game scripts ask for the background + // music to be played, and then faded to volume 127 (but the music is + // already at volume 127) and subsequently stopped. + if (argc >= 4 && musicSlot->volume == CLIP<uint16>(argv[1].toUint16(), 0, MUSIC_VOLUME_MAX)) + return acc; + switch (argc) { case 1: // SCI0 // SCI0 fades out all the time and when fadeout is done it will also |