[Scummvm-cvs-logs] scummvm master -> fdc09c2cb7ff3041dbd11c146d3d669cc7aa4777

wjp wjp at usecode.org
Tue Feb 17 19:59:41 CET 2015


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:
fdc09c2cb7 SCI: Add alternative version of QfG3 "Woo" dialog patch


Commit: fdc09c2cb7ff3041dbd11c146d3d669cc7aa4777
    https://github.com/scummvm/scummvm/commit/fdc09c2cb7ff3041dbd11c146d3d669cc7aa4777
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2015-02-17T19:58:24+01:00

Commit Message:
SCI: Add alternative version of QfG3 "Woo" dialog patch

The GOG version of QfG3 is shipped with a patch to script 440 that broke
our existing internal script patch for this script bug.

See bug #6806.

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 c2a0b8b..45e0155 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -2282,10 +2282,40 @@ static const uint16 qfg3PatchWooDialog[] = {
 	PATCH_END
 };
 
+// Alternative version, with uint16 offsets, for GOG release of QfG3.
+static const uint16 qfg3SignatureWooDialogAlt[] = {
+	SIG_MAGICDWORD,
+	0x67, 0x12,                         // pTos 12 (query)
+	0x35, 0xb6,                         // ldi b6
+	0x1a,                               // eq?
+	0x2e, SIG_UINT16(0x0005),           // bt 05
+	0x67, 0x12,                         // pTos 12 (query)
+	0x35, 0x9b,                         // ldi 9b
+	0x1a,                               // eq?
+	0x30, SIG_UINT16(0x000c),           // bnt 0c
+	0x38, SIG_SELECTOR16(solvePuzzle),  // pushi 0297
+	0x7a,                               // push2
+	0x38, SIG_UINT16(0x010c),           // pushi 010c
+	0x7a,                               // push2
+	0x81, 0x00,                         // lag 00
+	0x4a, 0x08,                         // send 08
+	0x67, 0x12,                         // pTos 12 (query)
+	0x35, 0xb5,                         // ldi b5
+	SIG_END
+};
+
+static const uint16 qfg3PatchWooDialogAlt[] = {
+	PATCH_ADDTOOFFSET(+0x2C),
+	0x33, 0x12,                         // jmp to 0x708, the call to hero::solvePuzzle for 0xFFFC
+	PATCH_END
+};
+
+
 //          script, description,                                      signature                  patch
 static const SciScriptPatcherEntry qfg3Signatures[] = {
 	{  true,   944, "import dialog continuous calls",              1, qfg3SignatureImportDialog, qfg3PatchImportDialog },
 	{  true,   440, "dialog crash when asking about Woo",          1, qfg3SignatureWooDialog,    qfg3PatchWooDialog },
+	{  true,   440, "dialog crash when asking about Woo",          1, qfg3SignatureWooDialogAlt, qfg3PatchWooDialogAlt },
 	SCI_SIGNATUREENTRY_TERMINATOR
 };
 






More information about the Scummvm-git-logs mailing list