aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorsluicebox2018-12-27 12:45:54 -0800
committerFilippos Karapetis2018-12-27 23:49:57 +0200
commit45d852cbaf5e46982bb98fb6425c34cd68537be1 (patch)
treebd189a5575ecb8f0f03dfad794a6f5c3e22bb69d /engines/sci
parent97b498a7d781c78597ecca2089e6086197d016fb (diff)
downloadscummvm-rg350-45d852cbaf5e46982bb98fb6425c34cd68537be1.tar.gz
scummvm-rg350-45d852cbaf5e46982bb98fb6425c34cd68537be1.tar.bz2
scummvm-rg350-45d852cbaf5e46982bb98fb6425c34cd68537be1.zip
SCI32: Fix GK1 Wolfgang phone obstacle bug, #10853
Fixes bug in original which places ego outside the room's obstacle boundary
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/script_patches.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index a47466b565..930c9dc3cc 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -2123,6 +2123,28 @@ static const uint16 gk1ArtistVeveCopyPatch[] = {
PATCH_END
};
+// After phoning Wolfgang on day 7, Gabriel is placed beyond room 220's obstacle
+// boundary and can walk through walls and behind the room. This also occurs in
+// the original. The script inconsistently uses accessible and inaccessible
+// positions for placing ego next to the phone. We patch all instances to use
+// the accessible position.
+//
+// Applies to: All PC Floppy and CD versions. TODO: Test Mac, should apply
+// Responsible methods: rm220:init, useThePhone:changeState(0)
+// Fixes bug #10853
+static const uint16 gk1EgoPhonePositionSignature[] = {
+ SIG_MAGICDWORD,
+ 0x39, 0x68, // pushi 68 [ x: 104 ]
+ 0x39, 0x7e, // pushi 7e [ y: 126 ]
+ SIG_END,
+};
+
+static const uint16 gk1EgoPhonePositionPatch[] = {
+ 0x39, 0x6b, // pushi 6b [ x: 107 ]
+ 0x39, 0x7c, // pushi 7c [ y: 124 ]
+ PATCH_END,
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry gk1Signatures[] = {
{ true, 0, "remove alt+n syslogger hotkey", 1, gk1SysLoggerHotKeySignature, gk1SysLoggerHotKeyPatch },
@@ -2130,6 +2152,7 @@ static const SciScriptPatcherEntry gk1Signatures[] = {
{ true, 211, "fix day 1 grace phone speech timing", 1, gk1Day1GracePhoneSignature, gk1Day1GracePhonePatch },
{ true, 212, "fix day 5 drum book dialogue error", 1, gk1Day5DrumBookDialogueSignature, gk1Day5DrumBookDialoguePatch },
{ true, 212, "fix day 5 phone softlock", 1, gk1Day5PhoneFreezeSignature, gk1Day5PhoneFreezePatch },
+ { true, 220, "fix ego phone position", 2, gk1EgoPhonePositionSignature, gk1EgoPhonePositionPatch },
{ true, 230, "fix day 6 police beignet timer issue (1/2)", 1, gk1Day6PoliceBeignetSignature1, gk1Day6PoliceBeignetPatch1 },
{ true, 230, "fix day 6 police beignet timer issue (2/2)", 1, gk1Day6PoliceBeignetSignature2, gk1Day6PoliceBeignetPatch2 },
{ true, 230, "fix day 6 police sleep timer issue", 1, gk1Day6PoliceSleepSignature, gk1Day6PoliceSleepPatch },