aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorMartin Kiewitz2016-02-26 00:08:02 +0100
committerMartin Kiewitz2016-02-26 00:08:02 +0100
commit94a03b6a45d686b3608427e84f6fe87c28107ca9 (patch)
treea170eb5ce268969ee27478b51b1bda1e5e187fcb /engines/sci
parent8da595366b116cda08a113bb5bfbe845da0be8b5 (diff)
downloadscummvm-rg350-94a03b6a45d686b3608427e84f6fe87c28107ca9.tar.gz
scummvm-rg350-94a03b6a45d686b3608427e84f6fe87c28107ca9.tar.bz2
scummvm-rg350-94a03b6a45d686b3608427e84f6fe87c28107ca9.zip
SCI: Make Freddy Pharkas intro scaling patch more generic
So that hopefully the signature will match for all versions
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/script_patches.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 1f63f1c2dc..fc0dca5123 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -419,10 +419,10 @@ static const SciScriptPatcherEntry fanmadeSignatures[] = {
// Applies to at least: English PC-CD
// Responsible method: sTownScript::changeState(1), sTownScript::changeState(3) (script 110)
static const uint16 freddypharkasSignatureIntroScaling[] = {
- 0x38, SIG_UINT16(0x009b), // pushi 009b (setLoop)
+ 0x38, SIG_ADDTOOFFSET(+2), // pushi (setLoop) (009b for PC CD)
0x78, // push1
PATCH_ADDTOOFFSET(1), // push0 for first code, push1 for second code
- 0x38, SIG_UINT16(0x0143), // pushi 0143 (setStep)
+ 0x38, SIG_ADDTOOFFSET(+2), // pushi (setStep) (0143 for PC CD)
0x7a, // push2
0x39, 0x05, // pushi 05
0x3c, // dup
@@ -441,7 +441,9 @@ static const uint16 freddypharkasSignatureIntroScaling[] = {
static const uint16 freddypharkasPatchIntroScaling[] = {
// remove setLoop(), objects in heap are already prepared, saves 5 bytes
- 0x38, PATCH_UINT16(0x0143), // pushi 0143 (setStep)
+ 0x38,
+ PATCH_GETORIGINALBYTE(+6),
+ PATCH_GETORIGINALBYTE(+7), // pushi (setStep)
0x7a, // push2
0x39, 0x05, // pushi 05
0x3c, // dup