diff options
author | m-kiewitz | 2013-09-18 23:11:07 +0200 |
---|---|---|
committer | m-kiewitz | 2013-09-18 23:11:07 +0200 |
commit | 448063a8dfd623415b0fa943b2f1e322db1424ab (patch) | |
tree | f2b395784fc55c3e7d0a9d3dc2fa7f7503a987ac /engines | |
parent | 6c85ad12aa9512da4c10c857d024e389ac317fa5 (diff) | |
download | scummvm-rg350-448063a8dfd623415b0fa943b2f1e322db1424ab.tar.gz scummvm-rg350-448063a8dfd623415b0fa943b2f1e322db1424ab.tar.bz2 scummvm-rg350-448063a8dfd623415b0fa943b2f1e322db1424ab.zip |
SCI: Fully explain qfg1vga script patch
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/engine/script_patches.cpp | 18 |
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) |