aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorm-kiewitz2013-09-18 23:11:07 +0200
committerm-kiewitz2013-09-18 23:11:07 +0200
commit448063a8dfd623415b0fa943b2f1e322db1424ab (patch)
treef2b395784fc55c3e7d0a9d3dc2fa7f7503a987ac /engines/sci
parent6c85ad12aa9512da4c10c857d024e389ac317fa5 (diff)
downloadscummvm-rg350-448063a8dfd623415b0fa943b2f1e322db1424ab.tar.gz
scummvm-rg350-448063a8dfd623415b0fa943b2f1e322db1424ab.tar.bz2
scummvm-rg350-448063a8dfd623415b0fa943b2f1e322db1424ab.zip
SCI: Fully explain qfg1vga script patch
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/script_patches.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 2fe349ad22..9fb7d08e56 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -1123,12 +1123,18 @@ const uint16 qfg1vgaPatchCheetaurDescription[] = {
PATCH_END
};
-
-// Hitting the button on the right causes extremely broken behaviour if the
-// door on the top right is open at the time (bug #3585793).
-// Local 5 is the timer controlling automatically closing that door (door11).
-// We force it to 1 in happyFace::changeState which is triggered on hitting the
-// button.
+// In the "funny" room (Yorick's room) in QfG1 VGA, pulling the chain and
+// then pressing the button on the right side of the room results in
+// a broken game. This also happens in SSCI.
+// Problem is that the Sierra programmers forgot to disable the door, that
+// gets opened by pulling the chain. So when ego falls down and then
+// rolls through the door, one method thinks that the player walks through
+// it and acts that way and the other method is still doing the roll animation.
+// Local 5 of that room is a timer, that closes the door (object door11).
+// Setting it to 1 during happyFace::changeState(0) stops door11::doit from
+// calling goTo6::init, so the whole issue is stopped from happening.
+// Responsible method: happyFace::changeState, door11::doit
+// Fixes bug #3585793
const byte qfg1vgaSignatureFunnyRoomFix[] = {
14,
0x65, 0x14, // aTop 14 (state)