diff options
author | Ben Castricum | 2017-06-16 08:16:30 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2017-07-30 22:10:54 +0200 |
commit | d58f594755449f6a0402fdf5dba61cfa5edcf58e (patch) | |
tree | 9cee72ab256942408a48b374fd9da61492fc8572 /engines/scumm | |
parent | 392d8b44ff99d08eabe6007b259d26545f085583 (diff) | |
download | scummvm-rg350-d58f594755449f6a0402fdf5dba61cfa5edcf58e.tar.gz scummvm-rg350-d58f594755449f6a0402fdf5dba61cfa5edcf58e.tar.bz2 scummvm-rg350-d58f594755449f6a0402fdf5dba61cfa5edcf58e.zip |
SCUMM: MI2 kill tune 113 on start of next, Fixes bug #1410 / Booty Island
Fix the "MI2: Two soundtracks playing at once" bug from the bug tracker.
It's triggered when the player enters the kiosk for the second time and
leaves before tune 113 is started.
Diffstat (limited to 'engines/scumm')
-rw-r--r-- | engines/scumm/imuse/imuse.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/engines/scumm/imuse/imuse.cpp b/engines/scumm/imuse/imuse.cpp index 78fd821f30..b7b72ba181 100644 --- a/engines/scumm/imuse/imuse.cpp +++ b/engines/scumm/imuse/imuse.cpp @@ -696,6 +696,23 @@ bool IMuseInternal::startSound_internal(int sound, int offset) { if (_game_id == GID_MONKEY2 && (sound == 100) && (getSoundStatus_internal(107, true) == 1)) IMuseInternal::stopSound_internal(107); + // Workaround for monkey2 bug #1410 / Booty Island + // + // Tunes involved + // 100 - Captain Dread's map + // 113 - Guard Kiosk / Mardi Grass + // 115 - Map of Booty Island / Ville de la Booty + // 118 - Ville de la Booty + // + // When you enter the Guard Kiosk tune 113 is added as trigger on song + // 115. Then if you leave, 113 is stopped and 115 is started again. + // If you leave quickly enough, the trigger occurs on the map and tune + // 113 will not stop. + // We kill 113 on entry of one of the other locations (Captain Dread + // or Ville de la Booty) because tune 115 is not always started. + if (_game_id == GID_MONKEY2 && (sound == 100 || sound == 115 || sound == 118) && (getSoundStatus_internal(113, true) == 1)) + IMuseInternal::stopSound_internal(113); + player->clear(); player->setOffsetNote(offset); return player->startSound(sound, driver); |