diff options
Diffstat (limited to 'engines/scumm/imuse')
-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); |