[Scummvm-git-logs] scummvm master -> d1043668150942f3b67c55cf45c7286923bd89d2
AndywinXp
noreply at scummvm.org
Fri May 27 21:05:26 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
d104366815 SCUMM: COMI: Fix music track playing indefinitely in an edge case
Commit: d1043668150942f3b67c55cf45c7286923bd89d2
https://github.com/scummvm/scummvm/commit/d1043668150942f3b67c55cf45c7286923bd89d2
Author: AndywinXp (andywinxp at gmail.com)
Date: 2022-05-27T23:05:20+02:00
Commit Message:
SCUMM: COMI: Fix music track playing indefinitely in an edge case
This is a bug in the original interpreter, so the following workaround is marked as an enhancement.
When Guybrush gets on the Sea Cucumber for the first time and the monkeys show up on deck, if the ESC key is pressed before the "Any last words, Threepwood?" dialogue, the music will continue playing indefinitely throughout the game (or until another "sequence" music is played). To amend this, we intercept this exact script override and we force the playback of sound 2277, which is the iMUSE sequence which would have been played after the dialogue.
This workaround has been stress-tested on all Steam available languages + Akella Russian.
Changed paths:
engines/scumm/script_v6.cpp
diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp
index 09407dddcd1..a51ecb92bce 100644
--- a/engines/scumm/script_v6.cpp
+++ b/engines/scumm/script_v6.cpp
@@ -1504,6 +1504,19 @@ void ScummEngine_v6::o6_getVerbFromXY() {
}
void ScummEngine_v6::o6_beginOverride() {
+ // WORKAROUND (bug in the original):
+ // When Guybrush gets on the Sea Cucumber for the first time and the monkeys show up on deck,
+ // if the ESC key is pressed before the "Any last words, Threepwood?" dialogue, the music will
+ // continue playing indefinitely throughout the game (or until another "sequence" music is played).
+ //
+ // To amend this, we intercept this exact script override and we force the playback of sound 2277,
+ // which is the iMUSE sequence which would have been played after the dialogue.
+ if (_enableEnhancements && _game.id == GID_CMI && _currentRoom == 37 && vm.slot[_currentScript].number == 251 &&
+ _sound->isSoundRunning(2275) != 0 && (_scriptPointer - _scriptOrgPointer) == 0x1A) {
+ int list[16] = {0x1001, 2277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+ _sound->soundKludge(list, 2);
+ }
+
beginOverride();
_skipVideo = 0;
}
More information about the Scummvm-git-logs
mailing list