[Scummvm-git-logs] scummvm master -> 27f2307b8a00f44ebfa98f13fc6508435c2ca27b
bluegr
noreply at scummvm.org
Wed Aug 17 20:15:07 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:
27f2307b8a SCUMM: Work around a small glitch with Largo's door in Monkey2
Commit: 27f2307b8a00f44ebfa98f13fc6508435c2ca27b
https://github.com/scummvm/scummvm/commit/27f2307b8a00f44ebfa98f13fc6508435c2ca27b
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-08-17T23:15:04+03:00
Commit Message:
SCUMM: Work around a small glitch with Largo's door in Monkey2
If one closes the door just before using the pins with the voodoo doll
in front of Largo, the middle of the door will glitch when Largo opens
it again to escape from his room.
It looks like script 13-200 forgot to clean the part of the door which
deals with the (invisible) laundry claim ticket, in this case. But
script 13-213 triggers the same action without any problem, since this
one properly updates the class and state of this object; so let's just
reuse its `setState(111,2)` and `setClass(111,[160])` calls.
Changed paths:
engines/scumm/script_v5.cpp
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 5ac7d5026e0..de45bd0a8a3 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -2450,8 +2450,21 @@ void ScummEngine_v5::o5_setOwnerOf() {
void ScummEngine_v5::o5_setState() {
int obj, state;
+
obj = getVarOrDirectWord(PARAM_1);
state = getVarOrDirectByte(PARAM_2);
+
+ // WORKAROUND: The door will glitch if one closes it before using the voodoo
+ // doll on Largo. Script 13-213 triggers the same action without any glitch,
+ // though, since it properly resets the state of the (invisible) laundry claim
+ // ticket part of the door, so we just reuse its setState and setClass calls.
+ if (_game.id == GID_MONKEY2 && _currentRoom == 13 && vm.slot[_currentScript].number == 200 &&
+ obj == 108 && state == 1 && getState(100) != 1 && getState(111) != 2 && _enableEnhancements) {
+ putState(111, 2);
+ markObjectRectAsDirty(111);
+ putClass(111, 160, true);
+ }
+
putState(obj, state);
markObjectRectAsDirty(obj);
if (_bgNeedsRedraw)
More information about the Scummvm-git-logs
mailing list