[Scummvm-git-logs] scummvm master -> 5df535c6dbc33aa396542c3a56b368b7f60ceef6
eriktorbjorn
noreply at scummvm.org
Sat Apr 5 15:34:25 UTC 2025
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:
5df535c6db SCUMM: Extend Sega CD conversation option workaround
Commit: 5df535c6dbc33aa396542c3a56b368b7f60ceef6
https://github.com/scummvm/scummvm/commit/5df535c6dbc33aa396542c3a56b368b7f60ceef6
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2025-04-05T17:32:44+02:00
Commit Message:
SCUMM: Extend Sega CD conversation option workaround
It turns out that there are at least two cases where the Sega CD version
draws conversation options outside of the screen. I wouldn't be
surprised if there are more.
Changed paths:
engines/scumm/script_v5.cpp
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 02b644767c8..83da387c710 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -691,18 +691,26 @@ void ScummEngine_v5::o5_add() {
getResultPos();
a = getVarOrDirectWord(PARAM_1);
- // WORKAROUND: In the Sega CD version of MI1, after you tell the Men of
- // Low Moral Fiber (pirates) that the governor has been kidnapped, there
- // is supposed to be three follow-up conversation options. But only the
- // the first one ("Why are you just standing around...") is actually
- // visible. This is because where the script is supposed to add 8 pixels
- // to the Y position of the text, it instead adds 8 lines. It was still
- // possible to select them, you just couldn't see them.
+ // WORKAROUND: In the Sega CD version of MI1, there are some cases
+ // where conversation options are invisible. This is because where it
+ // thinks it's increasing Var[229] by a number of pixels, it's actually
+ // increasing it by a number of lines, pushing the text off-screen.
//
- // We fix this by changing Var[229] += 8 to Var[229] += 1 instead.
+ // We fix this by changing Var[229] += 8 to Var[229] += 1.
- if (_game.id == GID_MONKEY && _game.platform == Common::kPlatformSegaCD && vm.slot[_currentScript].number == 216 && _currentRoom == 35 && a == 8 && _resultVarNumber == 229 && enhancementEnabled(kEnhSubFmtCntChanges)) {
- a = 1;
+ if (_game.id == GID_MONKEY && _game.platform == Common::kPlatformSegaCD && _resultVarNumber == 229 && a == 8 && enhancementEnabled(kEnhSubFmtCntChanges)) {
+ int scriptNr = vm.slot[_currentScript].number;
+
+ // Room 35 - Talking to the Men of Low Moral Fiber (pirates),
+ // telling them that the governor has been kidnapped. Two of
+ // the conversation options are off-screen.
+ //
+ // Room 19 - Talking to your crew aboard the ship. The last
+ // conversation option is off-screen.
+
+ if ((scriptNr == 216 && _currentRoom == 35) ||
+ (scriptNr == 204 && _currentRoom == 19))
+ a = 1;
}
// WORKAROUND bug #994: This works around a script bug in LoomCD. To
More information about the Scummvm-git-logs
mailing list