SCI: Fixed fading-related bugs #3267956 and #3041738

This commit is contained in:
md5 2011-04-03 19:02:14 +03:00
parent 6d90b0739a
commit bfef0f5a6f

View File

@ -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