[Scummvm-git-logs] scummvm master -> c4ca32453357a6e75567fc75522a8c1c4756dd68
csnover
csnover at users.noreply.github.com
Sat Jun 24 05:45:29 CEST 2017
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:
c4ca324533 SCI32: Add patch for game script bug in Torin dragon's cave
Commit: c4ca32453357a6e75567fc75522a8c1c4756dd68
https://github.com/scummvm/scummvm/commit/c4ca32453357a6e75567fc75522a8c1c4756dd68
Author: Colin Snover (github.com at zetafleet.com)
Date: 2017-06-23T22:43:22-05:00
Commit Message:
SCI32: Add patch for game script bug in Torin dragon's cave
Fixes Trac#9836.
Changed paths:
engines/sci/engine/script_patches.cpp
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 9e7e7c6..f84edae 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -112,6 +112,7 @@ static const char *const selectorNameTable[] = {
"posn", // SCI2 benchmarking script
"detailLevel", // GK2 benchmarking
"view", // RAMA benchmarking
+ "test", // Torin
#endif
NULL
};
@@ -150,7 +151,8 @@ enum ScriptPatcherSelectors {
SELECTOR_scrollSelections,
SELECTOR_posn,
SELECTOR_detailLevel,
- SELECTOR_view
+ SELECTOR_view,
+ SELECTOR_test
#endif
};
@@ -5604,8 +5606,36 @@ static const uint16 torinNumSavesPatch[] = {
PATCH_END
};
+// In Escarpa, it is possible for Boogle to be left outside of Torin's bag
+// before attempting to worm into the dragon's cave. When this happens, Boogle
+// can be on the wrong side of the navigable area barrier, and cannot move
+// through it to continue the cutscene. In contrast, when Boogle is in Torin's
+// bag, the game moves Boogle out of the bag and into a position that is
+// guaranteed to work. This patch simply removes the bag check so that Boogle is
+// unconditionally repositioned for the cutscene.
+// Applies to at least: English CD
+static const uint16 torinBoogleWormInSignature[] = {
+ 0x38, SIG_SELECTOR16(test), // pushi test
+ 0x78, // push1
+ SIG_MAGICDWORD,
+ 0x38, SIG_UINT16(0xe8), // pushi $232 (boogle in bag flag)
+ 0x7a, // push2
+ 0x38, SIG_UINT16(0xfa11), // pushi 64017
+ 0x76, // push0
+ 0x43, 0x02, SIG_UINT16(0x04), // callk ScriptID[2], 4
+ 0x4a, SIG_UINT16(0x06), // send 6
+ 0x30, SIG_ADDTOOFFSET(+2), // bnt
+ SIG_END
+};
+
+static const uint16 torinBoogleWormInPatch[] = {
+ 0x32, PATCH_UINT16(0x13), // jmp [to boogle init]
+ PATCH_END
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry torinSignatures[] = {
+ { true, 20400, "fix hang when worming into dragon cave", 1, torinBoogleWormInSignature, torinBoogleWormInPatch },
{ true, 64000, "disable volume reset on startup 1/2", 1, torinVolumeResetSignature1, torinVolumeResetPatch1 },
{ true, 64000, "disable volume reset on startup 2/2", 1, torinVolumeResetSignature2, torinVolumeResetPatch2 },
{ true, 64866, "increase number of save games", 1, torinNumSavesSignature, torinNumSavesPatch },
More information about the Scummvm-git-logs
mailing list