[Scummvm-git-logs] scummvm master -> 89404547d09e0e65eef0df09b95bc2d73149accc
dwatteau
noreply at scummvm.org
Sun Sep 1 10:45:42 UTC 2024
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:
89404547d0 SCUMM: Add a new WORKAROUND for buggy map usage at Meathook's
Commit: 89404547d09e0e65eef0df09b95bc2d73149accc
https://github.com/scummvm/scummvm/commit/89404547d09e0e65eef0df09b95bc2d73149accc
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2024-09-01T12:45:32+02:00
Commit Message:
SCUMM: Add a new WORKAROUND for buggy map usage at Meathook's
In the SCUMMv4 releases of Monkey1 (with the older inventory), if one
tries to use/look at the map in Meathook's house or on Hook Isle
Shore, strange animation behaviors will happen, and a fatal script
error can also happen if one looks at the map instead of using one of
the verbs on the parrot.
This was fixed in the SCUMMv5 releases (an incomplete fix was also
added in the VGA SCUMMv4 releases), by making Guybrush say "I don't
need to look at a map right now." instead (as was already done for
some other rooms where this script causes too many issues). So we
just bring this fix to the earlier releases as well.
Reported by Mugg1991 in an amazing tcrf.net investgation, thanks!
Changed paths:
engines/scumm/script_v5.cpp
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 9605488f32f..e363726f068 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -1525,6 +1525,24 @@ void ScummEngine_v5::o5_isEqual() {
a = readVar(var);
b = getVarOrDirectWord(PARAM_1);
+ // WORKAROUND: Looking at the map on Hook Isle or in Meathook's house
+ // causes various issues. The CD release prevented this by making
+ // Guybrush say "I don't need to look at a map right now." instead, so
+ // backport this fix to the floppy EGA/VGA releases.
+ if ((_game.id == GID_MONKEY_EGA || _game.id == GID_MONKEY_VGA) && _currentScript != 0xFF && vm.slot [_currentScript].number == 120 && var == VAR_ROOM && b == 29) {
+ // In Meathook's house; check is missing from both EGA and VGA SCUMMv4
+ // releases. It can cause a fatal "ERROR: (63:49:0x14A): Local script 207
+ // is not in room 63!" error, if one looks at the map instead of using
+ // any verb on the parrot, so this requires `kEnhGameBreakingBugFixes`.
+ if (a == 37 && enhancementEnabled(kEnhGameBreakingBugFixes))
+ b = a;
+
+ // Hook Isle Shore; check is missing from EGA SCUMMv4 releases only.
+ // It just causes strange animations, so `kEnhMinorBugFixes` is enough.
+ if (_game.id == GID_MONKEY_EGA && a == 48 && enhancementEnabled(kEnhMinorBugFixes))
+ b = a;
+ }
+
// HACK: See bug report #441. The sound effects for Largo's screams
// are only played on type 5 soundcards. However, there is at least one
// other sound effect (the bartender spitting) which is only played on
@@ -1541,9 +1559,9 @@ void ScummEngine_v5::o5_isEqual() {
// exists in this fan-made edition which was made for enhancements.
if (_game.id == GID_MONKEY2 && (_game.features & GF_ULTIMATE_TALKIE) && _roomResource == 48 && _currentScript != 0xFF && vm.slot [_currentScript].number == 215 && a == vm.localvar[_currentScript][0]) {
if (a == 550 && b == 530)
- b = 550;
+ b = a;
else if (a == 549 && b == 529)
- b = 549;
+ b = a;
}
// WORKAROUND: The Ultimate Talkie edition of Monkey Island 2 has no
More information about the Scummvm-git-logs
mailing list