aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMartin Kiewitz2013-12-20 01:01:26 +0100
committerMartin Kiewitz2013-12-20 01:01:26 +0100
commit1d77c9f0cf710e1f9f439ad371cb1b49624aed75 (patch)
treec156d44c612fb48100f105790305e74df60d7839 /engines
parent5253021fbd067f3d27f00f37ad4f34649e24166e (diff)
downloadscummvm-rg350-1d77c9f0cf710e1f9f439ad371cb1b49624aed75.tar.gz
scummvm-rg350-1d77c9f0cf710e1f9f439ad371cb1b49624aed75.tar.bz2
scummvm-rg350-1d77c9f0cf710e1f9f439ad371cb1b49624aed75.zip
SCI: script patcher cleanup
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/engine/script_patches.cpp461
-rw-r--r--engines/sci/engine/script_patches.h58
2 files changed, 262 insertions, 257 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 1fa8d66624..e9f8b54a47 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -147,25 +147,25 @@ enum ScriptPatcherSelectors {
// Responsible method: fawaz::handleEvent
// Fixes bug: #6402
static const uint16 camelotSignaturePeepingTom[] = {
- 0x72, SIG_MAGICDWORD, SIG_UINT16 + 0x7e, 0x07, // lofsa fawaz <-- start of proper initializion code
+ 0x72, SIG_MAGICDWORD, SIG_UINT16(0x077e), // lofsa fawaz <-- start of proper initializion code
0xa1, 0xb9, // sag b9h
- SIG_ADDTOOFFSET +571, // skip 571 bytes
+ SIG_ADDTOOFFSET(+571), // skip 571 bytes
0x39, 0x7a, // pushi 7a <-- initialization code when walking automatically
0x78, // push1
0x7a, // push2
- 0x38, SIG_UINT16 + 0xa9, 0x00, // pushi 00a9 - script 169
+ 0x38, SIG_UINT16(0x00a9), // + 0xa9, 0x00, // pushi 00a9 - script 169
0x78, // push1
0x43, 0x02, 0x04, // call kScriptID
0x36, // push
0x81, 0x00, // lag 00
0x4a, 0x06, // send 06
- 0x32, SIG_UINT16 + 0x20, 0x05, // jmp [end of fawaz::handleEvent]
+ 0x32, SIG_UINT16(0x0520), // jmp [end of fawaz::handleEvent]
SIG_END
};
static const uint16 camelotPatchPeepingTom[] = {
- PATCH_ADDTOOFFSET +576,
- 0x32, PATCH_UINT16 + 0xbd, 0xfd, // jmp to fawaz::doit / properly init peepingTom code
+ PATCH_ADDTOOFFSET(+576),
+ 0x32, PATCH_UINT16(0xfdbd), // jmp to fawaz::doit / properly init peepingTom code
PATCH_END
};
@@ -196,12 +196,12 @@ static const uint16 ecoquest1SignatureStayAndHelp[] = {
0x76, // push0
0x45, 0x01, 0x00, // callb export1 from script 0 (switching control off)
SIG_MAGICDWORD,
- 0x38, SIG_UINT16 + 0x22, 0x01, // pushi 0122
+ 0x38, SIG_UINT16(0x0122), // pushi 0122
0x78, // push1
0x76, // push0
0x81, 0x00, // lag global[0]
0x4a, 0x06, // send 06 - call ego::setMotion(0)
- 0x39, SIG_SELECTOR8 + SELECTOR_init, // pushi "init"
+ 0x39, SIG_SELECTOR8(SELECTOR_init), // pushi "init"
0x39, 0x04, // pushi 04
0x76, // push0
0x76, // push0
@@ -220,19 +220,19 @@ static const uint16 ecoquest1PatchStayAndHelp[] = {
0x2f, 0x22, // bt [next state] (this optimization saves 6 bytes)
0x39, 0x00, // pushi 0 (wasting 1 byte here)
0x45, 0x01, 0x00, // callb export1 from script 0 (switching control off)
- 0x38, PATCH_UINT16 + 0x22, 0x01, // pushi 0122
+ 0x38, PATCH_UINT16(0x0122), // pushi 0122
0x78, // push1
0x76, // push0
0x81, 0x00, // lag global[0]
0x4a, 0x06, // send 06 - call ego::setMotion(0)
- 0x39, PATCH_SELECTOR8 + SELECTOR_init, // pushi "init"
+ 0x39, PATCH_SELECTOR8(SELECTOR_init), // pushi "init"
0x39, 0x06, // pushi 06
0x39, 0x02, // pushi 02 (additional 2 bytes)
0x76, // push0
0x76, // push0
0x39, 0x17, // pushi 17
0x7c, // pushSelf
- 0x38, PATCH_UINT16 + 0x80, 0x02, // pushi 280 (additional 3 bytes)
+ 0x38, PATCH_UINT16(0x0280), // pushi 280 (additional 3 bytes)
0x51, 0x82, // class EcoNarrator
0x4a, 0x10, // send 10 - call EcoNarrator::init(2, 0, 0, 23, self, 640)
PATCH_END
@@ -263,14 +263,14 @@ static const uint16 ecoquest2SignatureEcorder[] = {
0x39, 0x66, // pushi 66
0x39, 0x17, // pushi 17
0x39, 0x69, // pushi 69
- 0x38, PATCH_UINT16 + 0x31, 0x26, // pushi 2631
+ 0x38, PATCH_UINT16(0x2631), // pushi 2631
0x39, 0x6a, // pushi 6a
0x39, 0x64, // pushi 64
0x43, 0x1b, 0x14, // call kDisplay
0x35, 0x0a, // ldi 0a
0x65, 0x20, // aTop ticks
0x33, // jmp [end]
- SIG_ADDTOOFFSET +1, // [skip 1 byte]
+ SIG_ADDTOOFFSET(+1), // [skip 1 byte]
0x3c, // dup
0x35, 0x03, // ldi 03
0x1a, // eq?
@@ -282,21 +282,21 @@ static const uint16 ecoquest2PatchEcorder[] = {
0x2f, 0x02, // bt [to pushi 07]
0x3a, // toss
0x48, // ret
- 0x38, PATCH_UINT16 + 0x07, 0x00, // pushi 07 (parameter count) (waste 1 byte)
+ 0x38, PATCH_UINT16(0x0007), // pushi 07 (parameter count) (waste 1 byte)
0x39, 0x0b, // push (FillBoxAny)
0x39, 0x1d, // pushi 29d
0x39, 0x73, // pushi 115d
0x39, 0x5e, // pushi 94d
- 0x38, PATCH_UINT16 + 0xd7, 0x00, // pushi 215d
+ 0x38, PATCH_UINT16(0x00d7), // pushi 215d
0x78, // push1 (visual screen)
- 0x38, PATCH_UINT16 + 0x17, 0x00, // pushi 17 (color) (waste 1 byte)
+ 0x38, PATCH_UINT16(0x0017), // pushi 17 (color) (waste 1 byte)
0x43, 0x6c, 0x0e, // call kGraph
- 0x38, PATCH_UINT16 + 0x05, 0x00, // pushi 05 (parameter count) (waste 1 byte)
+ 0x38, PATCH_UINT16(0x0005), // pushi 05 (parameter count) (waste 1 byte)
0x39, 0x0c, // pushi 12d (UpdateBox)
0x39, 0x1d, // pushi 29d
0x39, 0x73, // pushi 115d
0x39, 0x5e, // pushi 94d
- 0x38, PATCH_UINT16 + 0xd7, 0x00, // pushi 215d
+ 0x38, PATCH_UINT16(0x00d7), // pushi 215d
0x43, 0x6c, 0x0a, // call kGraph
PATCH_END
};
@@ -308,7 +308,7 @@ static const uint16 ecoquest2PatchEcorder[] = {
// the function otherwise.
// Fixes bug: #6467
static const uint16 ecoquest2SignatureEcorderTutorial[] = {
- 0x30, SIG_UINT16 + 0x23, 0x00, // bnt [next state]
+ 0x30, SIG_UINT16(0x0023), // bnt [next state]
0x39, 0x0a, // pushi 0a
0x5b, 0x04, 0x1f, // lea temp[1f]
0x36, // push
@@ -319,7 +319,7 @@ static const uint16 ecoquest2SignatureEcorderTutorial[] = {
0x39, 0x66, // pushi 66
0x39, 0x17, // pushi 17
0x39, 0x69, // pushi 69
- 0x38, SIG_UINT16 + 0x31, 0x26, // pushi 2631
+ 0x38, SIG_UINT16(0x2631), // pushi 2631
0x39, 0x6a, // pushi 6a
0x39, 0x64, // pushi 64
0x43, 0x1b, 0x14, // call kDisplay
@@ -340,7 +340,7 @@ static const uint16 ecoquest2PatchEcorderTutorial[] = {
0x39, 0x1d, // pushi 29d
0x39, 0x73, // pushi 115d
0x39, 0x5e, // pushi 94d
- 0x38, PATCH_UINT16 + 0xd7, 0x00, // pushi 215d
+ 0x38, PATCH_UINT16(0x00d7), // pushi 215d
0x78, // push1 (visual screen)
0x39, 0x17, // pushi 17 (color)
0x43, 0x6c, 0x0e, // call kGraph
@@ -352,14 +352,14 @@ static const uint16 ecoquest2PatchEcorderTutorial[] = {
0x39, 0x1d, // pushi 29d
0x39, 0x73, // pushi 115d
0x39, 0x5e, // pushi 94d
- 0x38, PATCH_UINT16 + 0xd7, 0x00, // pushi 215d
+ 0x38, PATCH_UINT16(0x00d7), // pushi 215d
0x43, 0x6c, 0x0a, // call kGraph
// We are out of bytes to patch at this point,
// so we skip 494 (0x1EE) bytes to reuse this code:
// ldi 1e
// aTop 20
// jmp 030e (jump to end)
- 0x32, PATCH_UINT16 + 0xee, 0x01, // skip 494 (0x1EE) bytes
+ 0x32, PATCH_UINT16(0x01ee), // skip 494 (0x1EE) bytes
PATCH_END
};
@@ -377,19 +377,19 @@ static const SciScriptPatcherEntry ecoquest2Signatures[] = {
// event handling was slightly different there, so it was never discovered.
// Fixes bug: #5120
static const uint16 fanmadeSignatureInfiniteLoop[] = {
- 0x38, SIG_UINT16 + 0x4c, 0x00, // pushi 004c
+ 0x38, SIG_UINT16(0x004c), // pushi 004c
0x39, 0x00, // pushi 00
0x87, 0x01, // lap 01
0x4b, 0x04, // send 04
SIG_MAGICDWORD,
0x18, // not
- 0x30, SIG_UINT16 + 0x2f, 0x00, // bnt 002f [06a5] --> jmp ffbc [0664] --> BUG! infinite loop
+ 0x30, SIG_UINT16(0x002f), // bnt 002f [06a5] --> jmp ffbc [0664] --> BUG! infinite loop
SIG_END
};
static const uint16 fanmadePatchInfiniteLoop[] = {
- PATCH_ADDTOOFFSET | +10,
- 0x30, SIG_UINT16 + 0x32, 0x00, // bnt 0032 [06a8] --> pushi 004c
+ PATCH_ADDTOOFFSET(+10),
+ 0x30, SIG_UINT16(0x0032), // bnt 0032 [06a8] --> pushi 004c
PATCH_END
};
@@ -421,9 +421,9 @@ static const uint16 freddypharkasSignatureScoreDisposal[] = {
};
static const uint16 freddypharkasPatchScoreDisposal[] = {
- 0x34, PATCH_UINT16 + 0x00, 0x00, // ldi 0000
- 0x34, PATCH_UINT16 + 0x00, 0x00, // ldi 0000
- 0x34, PATCH_UINT16 + 0x00, 0x00, // ldi 0000
+ 0x34, PATCH_UINT16(0x0000), // ldi 0000
+ 0x34, PATCH_UINT16(0x0000), // ldi 0000
+ 0x34, PATCH_UINT16(0x0000), // ldi 0000
PATCH_END
};
@@ -436,7 +436,7 @@ static const uint16 freddypharkasPatchScoreDisposal[] = {
// Applies to at least: English PC-CD
// Responsible method: rm235::init and sEnterFrom500::changeState
static const uint16 freddypharkasSignatureCanisterHang[] = {
- 0x38, SIG_SELECTOR16 + SELECTOR_disable, // pushi disable
+ 0x38, SIG_SELECTOR16(SELECTOR_disable), // pushi disable
0x7a, // push2
SIG_MAGICDWORD,
0x39, 0x07, // pushi 07
@@ -447,11 +447,11 @@ static const uint16 freddypharkasSignatureCanisterHang[] = {
};
static const uint16 freddypharkasPatchCanisterHang[] = {
- PATCH_ADDTOOFFSET | +3,
+ PATCH_ADDTOOFFSET(+3),
0x78, // push1
- PATCH_ADDTOOFFSET | +2,
+ PATCH_ADDTOOFFSET(+2),
0x33, 0x00, // ldi 00 (waste 2 bytes)
- PATCH_ADDTOOFFSET | +3,
+ PATCH_ADDTOOFFSET(+3),
0x06, // send 06 - call IconBar::disable(7)
PATCH_END
};
@@ -468,15 +468,15 @@ static const uint16 freddypharkasPatchCanisterHang[] = {
// Responsible method: lowerLadder::doit and highLadder::doit
static const uint16 freddypharkasSignatureLadderEvent[] = {
0x39, SIG_MAGICDWORD,
- SIG_SELECTOR8 + SELECTOR_new, // pushi new
+ SIG_SELECTOR8(SELECTOR_new), // pushi new
0x76, // push0
- 0x38, SIG_SELECTOR16 + SELECTOR_curEvent, // pushi curEvent
+ 0x38, SIG_SELECTOR16(SELECTOR_curEvent), // pushi curEvent
0x76, // push0
0x81, 0x50, // lag global[50]
0x4a, 0x04, // send 04 - read User::curEvent
0x4a, 0x04, // send 04 - call curEvent::new
0xa5, 0x00, // sat temp[0]
- 0x38, SIG_SELECTOR16 + SELECTOR_localize,
+ 0x38, SIG_SELECTOR16(SELECTOR_localize),
0x76, // push0
0x4a, 0x04, // send 04 - call curEvent::localize
SIG_END
@@ -484,9 +484,9 @@ static const uint16 freddypharkasSignatureLadderEvent[] = {
static const uint16 freddypharkasPatchLadderEvent[] = {
0x34, 0x00, 0x00, // ldi 0000 (waste 3 bytes, overwrites first 2 pushes)
- PATCH_ADDTOOFFSET | +8,
+ PATCH_ADDTOOFFSET(+8),
0xa5, 0x00, // sat temp[0] (waste 2 bytes, overwrites 2nd send)
- PATCH_ADDTOOFFSET | +2,
+ PATCH_ADDTOOFFSET(+2),
0x34, 0x00, 0x00, // ldi 0000
0x34, 0x00, 0x00, // ldi 0000 (waste 6 bytes, overwrites last 3 opcodes)
PATCH_END
@@ -502,14 +502,14 @@ static const uint16 freddypharkasSignatureMacInventory[] = {
0x39, 0x23, // pushi 23
0x39, 0x74, // pushi 74
0x78, // push1
- 0x38, SIG_UINT16 + 0x74, 0x01, // pushi 0174 (on mac it's actually 0x01, 0x74)
+ 0x38, SIG_UINT16(0x0174), // pushi 0174 (on mac it's actually 0x01, 0x74)
0x85, 0x15, // lat 15
SIG_END
};
static const uint16 freddypharkasPatchMacInventory[] = {
0x39, 0x02, // pushi 02 (now matches the DOS version)
- PATCH_ADDTOOFFSET +23,
+ PATCH_ADDTOOFFSET(+23),
0x39, 0x04, // pushi 04 (now matches the DOS version)
PATCH_END
};
@@ -531,21 +531,21 @@ static const SciScriptPatcherEntry freddypharkasSignatures[] = {
static const uint16 gk1SignatureDay6PoliceBeignet[] = {
0x35, 0x04, // ldi 04
0x1a, // eq?
- 0x30, SIG_ADDTOOFFSET +2, // bnt [next state check]
- 0x38, SIG_SELECTOR16 + SELECTOR_dispose, // pushi dispose
+ 0x30, SIG_ADDTOOFFSET(+2), // bnt [next state check]
+ 0x38, SIG_SELECTOR16(SELECTOR_dispose), // pushi dispose
0x76, // push0
- 0x72, SIG_ADDTOOFFSET +2, // lofsa deskSarg
- 0x4a, SIG_UINT16 + 0x04, 0x00, // send 04
+ 0x72, SIG_ADDTOOFFSET(+2), // lofsa deskSarg
+ 0x4a, SIG_UINT16(0x0004), // send 04
SIG_MAGICDWORD,
- 0x34, SIG_UINT16 + 0xdc, 0x00, // ldi 220
- 0x65, SIG_ADDTOOFFSET +1, // aTop cycles (1a for PC, 1c for Mac)
+ 0x34, SIG_UINT16(0x00dc), // ldi 220
+ 0x65, SIG_ADDTOOFFSET(+1), // aTop cycles (1a for PC, 1c for Mac)
0x32, // jmp [end]
SIG_END
};
static const uint16 gk1PatchDay6PoliceBeignet[] = {
- PATCH_ADDTOOFFSET +16,
- 0x34, PATCH_UINT16 + 0x17, 0x00, // ldi 23
+ PATCH_ADDTOOFFSET(+16),
+ 0x34, PATCH_UINT16(0x0017), // ldi 23
0x65, PATCH_GETORIGINALBYTEADJUST +20, +2, // aTop seconds (1c for PC, 1e for Mac)
PATCH_END
};
@@ -557,17 +557,17 @@ static const uint16 gk1PatchDay6PoliceBeignet[] = {
static const uint16 gk1SignatureDay6PoliceSleep[] = {
0x35, 0x08, // ldi 08
0x1a, // eq?
- 0x31, SIG_ADDTOOFFSET +1, // bnt [next state check]
+ 0x31, SIG_ADDTOOFFSET(+1), // bnt [next state check]
SIG_MAGICDWORD,
- 0x34, SIG_UINT16 + 0xdc, 0x00, // ldi 220
- 0x65, SIG_ADDTOOFFSET +1, // aTop cycles (1a for PC, 1c for Mac)
+ 0x34, SIG_UINT16(0x00dc), // ldi 220
+ 0x65, SIG_ADDTOOFFSET(+1), // aTop cycles (1a for PC, 1c for Mac)
0x32, // jmp [end]
0
};
static const uint16 gk1PatchDay6PoliceSleep[] = {
- PATCH_ADDTOOFFSET +5,
- 0x34, SIG_UINT16 + 0x2a, 0x00, // ldi 42
+ PATCH_ADDTOOFFSET(+5),
+ 0x34, SIG_UINT16(0x002a), // ldi 42
0x65, PATCH_GETORIGINALBYTEADJUST +9, +2, // aTop seconds (1c for PC, 1e for Mac)
PATCH_END
};
@@ -577,17 +577,17 @@ static const uint16 gk1PatchDay6PoliceSleep[] = {
// Responsible method: startOfDay5::changeState
static const uint16 gk1SignatureDay5PhoneFreeze[] = {
0x4a,
- SIG_MAGICDWORD, SIG_UINT16 + 0x0c, 0x00, // send 0c
+ SIG_MAGICDWORD, SIG_UINT16(0x000c), // send 0c
0x35, 0x03, // ldi 03
- 0x65, SIG_ADDTOOFFSET +1, // aTop cycles
- 0x32, SIG_ADDTOOFFSET +2, // jmp [end]
+ 0x65, SIG_ADDTOOFFSET(+1), // aTop cycles
+ 0x32, SIG_ADDTOOFFSET(+2), // jmp [end]
0x3c, // dup
0x35, 0x21, // ldi 21
SIG_END
};
static const uint16 gk1PatchDay5PhoneFreeze[] = {
- PATCH_ADDTOOFFSET +3,
+ PATCH_ADDTOOFFSET(+3),
0x35, 0x06, // ldi 01
0x65, PATCH_GETORIGINALBYTEADJUST +6, +6, // aTop ticks
PATCH_END
@@ -608,23 +608,23 @@ static const uint16 gk1SignatureInterrogationBug[] = {
SIG_MAGICDWORD,
0x65, 0x4c, // aTop 4c
0x67, 0x50, // pTos 50
- 0x34, SIG_UINT16 + 0x10, 0x27, // ldi 2710
+ 0x34, SIG_UINT16(0x2710), // ldi 2710
0x1e, // gt?
0x31, 0x08, // bnt 08 [05a0]
0x67, 0x50, // pTos 50
- 0x34, SIG_UINT16 + 0x10, 0x27, // ldi 2710
+ 0x34, SIG_UINT16(0x2710), // ldi 2710
0x04, // sub
0x65, 0x50, // aTop 50
0x63, 0x50, // pToa 50
0x31, 0x15, // bnt 15 [05b9]
0x39, 0x0e, // pushi 0e
0x76, // push0
- 0x4a, SIG_UINT16 + 0x04, 0x00, // send 0004
+ 0x4a, SIG_UINT16(0x0004), // send 0004
0xa5, 0x00, // sat 00
- 0x38, SIG_SELECTOR16 + SELECTOR_dispose, // pushi dispose
+ 0x38, SIG_SELECTOR16(SELECTOR_dispose), // pushi dispose
0x76, // push0
0x63, 0x50, // pToa 50
- 0x4a, SIG_UINT16 + 0x04, 0x00, // send 0004
+ 0x4a, SIG_UINT16(0x0004), // send 0004
0x85, 0x00, // lat 00
0x65, 0x50, // aTop 50
SIG_END
@@ -638,18 +638,18 @@ static const uint16 gk1PatchInterrogationBug[] = {
0x76, // push0
0x4a, 0x04, 0x00, // send 0004
0xa5, 0x00, // sat 00
- 0x38, SIG_SELECTOR16 + SELECTOR_dispose, // pushi dispose
+ 0x38, SIG_SELECTOR16(SELECTOR_dispose), // pushi dispose
0x76, // push0
0x63, 0x50, // pToa 50
0x4a, 0x04, 0x00, // send 0004
0x85, 0x00, // lat 00
0x65, 0x50, // aTop 50
0x67, 0x50, // pTos 50
- 0x34, PATCH_UINT16 + 0x10, 0x27, // ldi 2710
+ 0x34, PATCH_UINT16(0x2710), // ldi 2710
0x1e, // gt?
0x31, 0x08, // bnt 08 [05b9]
0x67, 0x50, // pTos 50
- 0x34, PATCH_UINT16 + 0x10, 0x27, // ldi 2710
+ 0x34, PATCH_UINT16(0x2710), // ldi 2710
0x04, // sub
0x65, 0x50, // aTop 50
PATCH_END
@@ -672,17 +672,17 @@ static const SciScriptPatcherEntry gk1Signatures[] = {
// those cases.
static const uint16 kq5SignatureCdHarpyVolume[] = {
SIG_MAGICDWORD,
- 0x80, SIG_UINT16 + 0x91, 0x01, // lag global[191h]
+ 0x80, SIG_UINT16(0x0191), // lag global[191h]
0x18, // not
- 0x30, SIG_UINT16 + 0x2c, 0x00, // bnt [jump further] (jumping, if global 191h is 1)
+ 0x30, SIG_UINT16(0x002c), // bnt [jump further] (jumping, if global 191h is 1)
0x35, 0x01, // ldi 01
- 0xa0, SIG_UINT16 + 0x91, 0x01, // sag global[191h] (setting global 191h to 1)
- 0x38, SIG_UINT16 + 0x7b, 0x01, // pushi 017b
+ 0xa0, SIG_UINT16(0x0191), // sag global[191h] (setting global 191h to 1)
+ 0x38, SIG_UINT16(0x017b), // pushi 017b
0x76, // push0
0x81, 0x01, // lag global[1]
0x4a, 0x04, // send 04 - read KQ5::masterVolume
0xa5, 0x03, // sat temp[3] (store volume in temp 3)
- 0x38, SIG_UINT16 + 0x7b, 0x01, // pushi 017b
+ 0x38, SIG_UINT16(0x017b), // pushi 017b
0x76, // push0
0x81, 0x01, // lag global[1]
0x4a, 0x04, // send 04 - read KQ5::masterVolume
@@ -693,17 +693,17 @@ static const uint16 kq5SignatureCdHarpyVolume[] = {
};
static const uint16 kq5PatchCdHarpyVolume[] = {
- 0x38, PATCH_UINT16 + 0x2f, 0x02, // pushi 022f (selector theVol) (3 new bytes)
+ 0x38, PATCH_UINT16(0x022f), // pushi 022f (selector theVol) (3 new bytes)
0x76, // push0 (1 new byte)
0x51, 0x88, // class SpeakTimer (2 new bytes)
0x4a, 0x04, // send 04 (2 new bytes) -> read SpeakTimer::theVol
0xa5, 0x03, // sat temp[3] (2 new bytes) -> write to temp 3
- 0x80, PATCH_UINT16 + 0x91, 0x01, // lag global[191h]
+ 0x80, PATCH_UINT16(0x0191), // lag global[191h]
// saving 1 byte due optimization
- 0x2e, PATCH_UINT16 + 0x23, 0x00, // bt [jump further] (jumping, if global 191h is 1)
+ 0x2e, PATCH_UINT16(0x0023), // bt [jump further] (jumping, if global 191h is 1)
0x35, 0x01, // ldi 01
- 0xa0, PATCH_UINT16 + 0x91, 0x01, // sag global[191h] (setting global 191h to 1)
- 0x38, PATCH_UINT16 + 0x7b, 0x01, // pushi 017b
+ 0xa0, PATCH_UINT16(0x0191), // sag global[191h] (setting global 191h to 1)
+ 0x38, PATCH_UINT16(0x017b), // pushi 017b
0x76, // push0
0x81, 0x01, // lag global[1]
0x4a, 0x04, // send 04 - read KQ5::masterVolume
@@ -731,23 +731,23 @@ static const uint16 kq5PatchCdHarpyVolume[] = {
//
// Fixes bug: #4964
static const uint16 kq5SignatureWitchCageInit[] = {
- SIG_UINT16 + 0x00, 0x00, // top
- SIG_UINT16 + 0x00, 0x00, // left
- SIG_UINT16 + 0x00, 0x00, // bottom
- SIG_UINT16 + 0x00, 0x00, // right
- SIG_UINT16 + 0x00, 0x00, // extra property #1
+ SIG_UINT16(0x0000), // top
+ SIG_UINT16(0x0000), // left
+ SIG_UINT16(0x0000), // bottom
+ SIG_UINT16(0x0000), // right
+ SIG_UINT16(0x0000), // extra property #1
SIG_MAGICDWORD,
- SIG_UINT16 + 0x7a, 0x00, // extra property #2
- SIG_UINT16 + 0xc8, 0x00, // extra property #3
- SIG_UINT16 + 0xa3, 0x00, // extra property #4
+ SIG_UINT16(0x007a), // extra property #2
+ SIG_UINT16(0x00c8), // extra property #3
+ SIG_UINT16(0x00a3), // extra property #4
SIG_END
};
static const uint16 kq5PatchWitchCageInit[] = {
- PATCH_UINT16 + 0x00, 0x00, // top
- PATCH_UINT16 + 0x7a, 0x00, // left
- PATCH_UINT16 + 0xc8, 0x00, // bottom
- PATCH_UINT16 + 0xa3, 0x00, // right
+ PATCH_UINT16(0x0000), // top
+ PATCH_UINT16(0x007a), // left
+ PATCH_UINT16(0x00c8), // bottom
+ PATCH_UINT16(0x00a3), // right
PATCH_END
};
@@ -767,15 +767,15 @@ static const uint16 kq5PatchWitchCageInit[] = {
// TODO: Investigate these side effects more closely.
static const uint16 kq5SignatureWinGMSignals[] = {
SIG_MAGICDWORD,
- 0x80, SIG_UINT16 + 0x90, 0x01, // lag 0x190
+ 0x80, SIG_UINT16(0x0190), // lag 0x190
0x18, // not
- 0x30, SIG_UINT16 + 0x1b, 0x00, // bnt +0x001B
+ 0x30, SIG_UINT16(0x001b), // bnt +0x001B
0x89, 0x57, // lsg 0x57
SIG_END
};
static const uint16 kq5PatchWinGMSignals[] = {
- 0x34, PATCH_UINT16 + 0x01, 0x00, // ldi 0x0001
+ 0x34, PATCH_UINT16(0x0001), // ldi 0x0001
PATCH_END
};
@@ -822,7 +822,7 @@ static const uint16 kq6PatchDuplicateBabyCry[] = {
// Fixes bug: #5681
static const uint16 kq6SignatureInventoryStackFix[] = {
0x67, 0x30, // pTos state
- 0x34, SIG_UINT16 + 0x00, 0x20, // ldi 2000
+ 0x34, SIG_UINT16(0x2000), // ldi 2000
0x12, // and
0x18, // not
0x31, 0x04, // bnt [not first refresh]
@@ -830,10 +830,10 @@ static const uint16 kq6SignatureInventoryStackFix[] = {
SIG_MAGICDWORD,
0x65, 0x1e, // aTop curIcon
0x67, 0x30, // pTos state
- 0x34, SIG_UINT16 + 0xff, 0xdf, // ldi dfff
+ 0x34, SIG_UINT16(0xdfff), // ldi dfff
0x12, // and
0x65, 0x30, // aTop state
- 0x38, SIG_SELECTOR16 + SELECTOR_show, // pushi "show" ("show" is e1h for KQ6CD)
+ 0x38, SIG_SELECTOR16(SELECTOR_show), // pushi "show" ("show" is e1h for KQ6CD)
0x78, // push1
0x87, 0x00, // lap param[0]
0x31, 0x04, // bnt [use global for show]
@@ -842,7 +842,7 @@ static const uint16 kq6SignatureInventoryStackFix[] = {
0x81, 0x00, // lag global[0]
0x36, // push
0x54, 0x06, // self 06 (KqInv::show)
- 0x31, SIG_ADDTOOFFSET + 1, // bnt [exit menu code] (0x08 for PC, 0x07 for mac)
+ 0x31, SIG_ADDTOOFFSET(+1), // bnt [exit menu code] (0x08 for PC, 0x07 for mac)
0x39, 0x39, // pushi 39
0x76, // push0
0x54, 0x04, // self 04 (KqInv::doit)
@@ -853,7 +853,7 @@ static const uint16 kq6PatchInventoryStackFix[] = {
0x67, 0x30, // pTos state
0x3c, // dup (1 more byte, needed for patch)
0x3c, // dup (1 more byte, saves 1 byte later)
- 0x34, PATCH_UINT16 + 0x00, 0x20, // ldi 2000
+ 0x34, PATCH_UINT16(0x2000), // ldi 2000
0x12, // and
0x2f, 0x02, // bt [not first refresh] - saves 3 bytes in total
0x65, 0x1e, // aTop curIcon
@@ -872,7 +872,7 @@ static const uint16 kq6PatchInventoryStackFix[] = {
0x54, 0x06, // self 06 (call x::show)
0x31, // bnt [menu exit code]
PATCH_GETORIGINALBYTEADJUST +39, +6,// dynamic offset must be 0x0E for PC and 0x0D for mac
- 0x34, PATCH_UINT16 + 0x00, 0x20, // ldi 2000
+ 0x34, PATCH_UINT16(0x2000), // ldi 2000
0x12, // and
0x2f, 0x05, // bt [to return]
0x39, 0x39, // pushi 39
@@ -895,42 +895,42 @@ static const uint16 kq6SignatureDrinkMeFix[] = {
0x3c, // dup
0x35, 0x0f, // ldi 0f
0x1a, // eq?
- 0x30, SIG_UINT16 + 0xa4, 0x00, // bnt [skip to next check]
- SIG_ADDTOOFFSET +161,
- 0x32, SIG_UINT16 + 0x7f, 0x00, // jmp [return]
+ 0x30, SIG_UINT16(0x00a4), // bnt [skip to next check]
+ SIG_ADDTOOFFSET(+161),
+ 0x32, SIG_UINT16(0x007f), // jmp [return]
0x3c, // dup
0x35, 0x10, // ldi 10
0x1a, // eq?
0x31, 0x07, // bnt [skip to next check]
0x35, 0x03, // ldi 03
0x65, 0x1a, // aTop (cycles)
- 0x32, SIG_UINT16 + 0x72, 0x00, // jmp [return]
+ 0x32, SIG_UINT16(0x0072), // jmp [return]
0x3c, // dup
0x35, 0x11, // ldi 11
0x1a, // eq?
0x31, 0x13, // bnt [skip to next check]
- SIG_ADDTOOFFSET +20,
+ SIG_ADDTOOFFSET(+20),
0x35, 0x12, // ldi 12
- SIG_ADDTOOFFSET +23,
+ SIG_ADDTOOFFSET(+23),
0x35, 0x13, // ldi 13
SIG_END
};
static const uint16 kq6PatchDrinkMeFix[] = {
- PATCH_ADDTOOFFSET +5, // skip to bnt offset
+ PATCH_ADDTOOFFSET(+5), // skip to bnt offset
PATCH_GETORIGINALBYTEADJUST +5, +13, // adjust jump to [check for 11h code]
- SIG_ADDTOOFFSET +162,
- 0x39, PATCH_SELECTOR8 + SELECTOR_doit, // pushi (doit)
+ PATCH_ADDTOOFFSET(+162),
+ 0x39, PATCH_SELECTOR8(SELECTOR_doit), // pushi (doit)
0x76, // push0
0x81, 0x0a, // lag 0a
0x4a, 0x04, // send 04 (call addToPics::doit)
0x3a, // toss
0x48, // ret
- PATCH_ADDTOOFFSET +8, // skip to check 11h code
+ PATCH_ADDTOOFFSET(+8), // skip to check 11h code
0x35, 0x10, // ldi 10 instead of 11
- PATCH_ADDTOOFFSET +23, // skip to check 12h code
+ PATCH_ADDTOOFFSET(+23), // skip to check 12h code
0x35, 0x11, // ldi 11 instead of 12
- PATCH_ADDTOOFFSET +23, // skip to check 13h code
+ PATCH_ADDTOOFFSET(+23), // skip to check 13h code
0x35, 0x12, // ldi 12 instead of 13
PATCH_END
};
@@ -945,12 +945,12 @@ static const uint16 kq6laurabow2CDSignatureAudioTextSupport1[] = {
0x12, // and
SIG_MAGICDWORD,
0x31, 0x13, // bnt [audio call]
- 0x38, SIG_SELECTOR16 + SELECTOR_modNum, // pushi modNum
+ 0x38, SIG_SELECTOR16(SELECTOR_modNum), // pushi modNum
SIG_END
};
static const uint16 kq6laurabow2CDPatchAudioTextSupport1[] = {
- PATCH_ADDTOOFFSET +5,
+ PATCH_ADDTOOFFSET(+5),
0x33, 0x13, // jmp [audio call]
PATCH_END
};
@@ -966,7 +966,7 @@ static const uint16 kq6laurabow2CDSignatureAudioTextSupport2[] = {
};
static const uint16 kq6laurabow2CDPatchAudioTextSupport2[] = {
- PATCH_ADDTOOFFSET +7,
+ PATCH_ADDTOOFFSET(+7),
0xa1, 98, // sag global[98d]
PATCH_END
};
@@ -982,7 +982,7 @@ static const uint16 kq6laurabow2CDSignatureAudioTextSupport3[] = {
};
static const uint16 kq6laurabow2CDPatchAudioTextSupport3[] = {
- PATCH_ADDTOOFFSET +3,
+ PATCH_ADDTOOFFSET(+3),
0x89, 98, // lsg global[98d]
PATCH_END
};
@@ -993,7 +993,7 @@ static const uint16 kq6laurabow2CDSignatureAudioTextSupport4[] = {
0x35, 0x01, // ldi 01
0x12, // and
0x31, 0x08, // bnt [skip code]
- 0x38, SIG_SELECTOR16 + SELECTOR_startText, // pushi startText
+ 0x38, SIG_SELECTOR16(SELECTOR_startText), // pushi startText
0x78, // push1
0x8f, 0x01, // lsp param[1]
0x54, 0x06, // self 06
@@ -1002,7 +1002,7 @@ static const uint16 kq6laurabow2CDSignatureAudioTextSupport4[] = {
0x12, // and
0x31, 0x08, // bnt [skip code]
SIG_MAGICDWORD,
- 0x38, SIG_SELECTOR16 + SELECTOR_startAudio, // pushi startAudio
+ 0x38, SIG_SELECTOR16(SELECTOR_startAudio), // pushi startAudio
0x78, // push1
0x8f, 0x01, // lsp param[1]
0x54, 0x06, // self 06
@@ -1010,11 +1010,11 @@ static const uint16 kq6laurabow2CDSignatureAudioTextSupport4[] = {
};
static const uint16 kq6laurabow2CDPatchAudioTextSupport4[] = {
- PATCH_ADDTOOFFSET +2,
- 0x34, PATCH_UINT16 + 0x01, 0x00, // ldi 0001 (waste 1 byte)
+ PATCH_ADDTOOFFSET(+2),
+ 0x34, PATCH_UINT16(0x0001), // ldi 0001 (waste 1 byte)
0x12,
0x18, // not - prepares acc for KQ6 talker::startText
- PATCH_ADDTOOFFSET +19,
+ PATCH_ADDTOOFFSET(+19),
0x89, 98, // lsp global[98d]
PATCH_END
};
@@ -1047,7 +1047,7 @@ static const uint16 kq6CDSignatureAudioTextSupport1[] = {
};
static const uint16 kq6CDPatchAudioTextSupport1[] = {
- PATCH_ADDTOOFFSET +5,
+ PATCH_ADDTOOFFSET(+5),
0x33, 0x32, // jmp [jump-for-text-code]
PATCH_END
};
@@ -1062,14 +1062,14 @@ static const uint16 kq6CDSignatureAudioTextSupport2[] = {
0x63, 0x8a, // pToa viewInPrint
0x18, // not
0x31, 0x06, // bnt [skip following code]
- 0x38, SIG_UINT16 + 0xe1, 0x00, // pushi 00e1
+ 0x38, SIG_UINT16(0x00e1), // pushi 00e1
0x76, // push0
0x54, 0x04, // self 04
SIG_END
};
static const uint16 kq6CDPatchAudioTextSupport2[] = {
- PATCH_ADDTOOFFSET +2,
+ PATCH_ADDTOOFFSET(+2),
0x67, 0x8a, // pTos viewInPrint
0x14, // or
0x2f, // bt [skip following code]
@@ -1092,7 +1092,7 @@ static const uint16 kq6CDSignatureAudioTextSupport3[] = {
};
static const uint16 kq6CDPatchAudioTextSupport3[] = {
- PATCH_ADDTOOFFSET +5,
+ PATCH_ADDTOOFFSET(+5),
0x18, 0x18, // not (waste bytes)
PATCH_END
};
@@ -1108,8 +1108,8 @@ static const uint16 kq6CDSignatureAudioTextSupportGuards[] = {
};
static const uint16 kq6CDPatchAudioTextSupportGuards[] = {
- PATCH_ADDTOOFFSET +2,
- 0x34, PATCH_UINT16 + 0x01, 0x00, // ldi 0001 (waste 1 byte to overwrite eq?)
+ PATCH_ADDTOOFFSET(+2),
+ 0x34, PATCH_UINT16(0x0001), // ldi 0001 (waste 1 byte to overwrite eq?)
PATCH_END
};
@@ -1125,7 +1125,7 @@ static const uint16 kq6CDSignatureAudioTextSupportStepmother[] = {
};
static const uint16 kq6CDPatchAudioTextSupportJumpAlways[] = {
- PATCH_ADDTOOFFSET +5,
+ PATCH_ADDTOOFFSET(+5),
0x33, // jump always
PATCH_END
};
@@ -1179,25 +1179,25 @@ static const SciScriptPatcherEntry kq6Signatures[] = {
static const uint16 longbowSignatureShowHandCode[] = {
0x78, // push1
0x78, // push1
- 0x72, SIG_ADDTOOFFSET +2, // lofsa (letter, that was typed)
+ 0x72, SIG_ADDTOOFFSET(+2), // lofsa (letter, that was typed)
0x36, // push
- 0x40, SIG_ADDTOOFFSET +2, // call
+ 0x40, SIG_ADDTOOFFSET(+2), // call
0x02, // perform the call above with 2 parameters
0x36, // push
- 0x40, SIG_ADDTOOFFSET +2, // call
+ 0x40, SIG_ADDTOOFFSET(+2), // call
SIG_MAGICDWORD,
0x02, // perform the call above with 2 parameters
- 0x38, SIG_SELECTOR16 + SELECTOR_setMotion, // pushi "setMotion" (0x11c in Longbow German)
- 0x39, SIG_SELECTOR8 + SELECTOR_x, // pushi "x" (0x04 in Longbow German)
+ 0x38, SIG_SELECTOR16(SELECTOR_setMotion), // pushi "setMotion" (0x11c in Longbow German)
+ 0x39, SIG_SELECTOR8(SELECTOR_x), // pushi "x" (0x04 in Longbow German)
0x51, 0x1e, // class MoveTo
SIG_END
};
static const uint16 longbowPatchShowHandCode[] = {
0x39, 0x01, // pushi 1 (combine the two push1's in one, like in the English version)
- PATCH_ADDTOOFFSET +3, // leave the lofsa call untouched
+ PATCH_ADDTOOFFSET(+3), // leave the lofsa call untouched
// The following will remove the duplicate call
- 0x32, PATCH_UINT16 + 0x02, 0x00, // jmp 02 - skip 2 bytes (the remainder of the first call)
+ 0x32, PATCH_UINT16(0x0002), // jmp 02 - skip 2 bytes (the remainder of the first call)
0x48, // ret (dummy, should never be reached)
0x48, // ret (dummy, should never be reached)
PATCH_END
@@ -1229,19 +1229,19 @@ static const SciScriptPatcherEntry longbowSignatures[] = {
static const uint16 larry2SignatureWearParachutePoints[] = {
0x35, 0x01, // ldi 01
0xa1, SIG_MAGICDWORD, 0x8e, // sag 8e
- 0x80, SIG_UINT16 + 0xe0, 0x01, // lag 1e0
+ 0x80, SIG_UINT16(0x01e0), // lag 1e0
0x18, // not
- 0x30, SIG_UINT16 + 0x0f, 0x00, // bnt [don't give points]
+ 0x30, SIG_UINT16(0x000f), // bnt [don't give points]
0x35, 0x01, // ldi 01
0xa0, 0xe0, 0x01, // sag 1e0
SIG_END
};
static const uint16 larry2PatchWearParachutePoints[] = {
- PATCH_ADDTOOFFSET +4,
- 0x80, PATCH_UINT16 + 0x5a, 0x00, // lag 5a (global 90)
- PATCH_ADDTOOFFSET +6,
- 0xa0, PATCH_UINT16 + 0x5a, 0x00, // sag 5a (global 90)
+ PATCH_ADDTOOFFSET(+4),
+ 0x80, PATCH_UINT16(0x005a), // lag 5a (global 90)
+ PATCH_ADDTOOFFSET(+6),
+ 0xa0, PATCH_UINT16(0x005a), // sag 5a (global 90)
PATCH_END
};
@@ -1261,16 +1261,16 @@ static const SciScriptPatcherEntry larry2Signatures[] = {
// Responsible method: none, position of talker object on screen needs to get modified
static const uint16 larry5SignatureGermanEndingPattiTalker[] = {
SIG_MAGICDWORD,
- SIG_UINT16 + 0x6e, 0x00, // object pattiTalker::x (110)
- SIG_UINT16 + 0xb4, 0x00, // object pattiTalker::y (180)
- SIG_ADDTOOFFSET + 469, // verify that it's really the German version
+ SIG_UINT16(0x006e), // object pattiTalker::x (110)
+ SIG_UINT16(0x00b4), // object pattiTalker::y (180)
+ SIG_ADDTOOFFSET(+469), // verify that it's really the German version
0x59, 0x6f, 0x75, // (object name) "You"
0x23, 0x47, 0x44, 0x75, // "#GDu"
SIG_END
};
static const uint16 larry5PatchGermanEndingPattiTalker[] = {
- PATCH_UINT16 + 0x5a, 0x00, // change pattiTalker::x to 90
+ PATCH_UINT16(0x005a), // change pattiTalker::x to 90
PATCH_END
};
@@ -1292,36 +1292,36 @@ static const SciScriptPatcherEntry larry5Signatures[] = {
// Responsible method: unknown
static const uint16 larry6SignatureDeathDialog[] = {
SIG_MAGICDWORD,
- 0x3e, SIG_UINT16 + 0x33, 0x01, // link 0133 (offset 0x20)
+ 0x3e, SIG_UINT16(0x0133), // link 0133 (offset 0x20)
0x35, 0xff, // ldi ff
0xa3, 0x00, // sal 00
- SIG_ADDTOOFFSET +680, // [skip 680 bytes]
+ SIG_ADDTOOFFSET(+680), // [skip 680 bytes]
0x8f, 0x01, // lsp 01 (offset 0x2cf)
0x7a, // push2
- 0x5a, SIG_UINT16 + 0x04, 0x00, SIG_UINT16 + 0x0e, 0x01, // lea 0004 010e
+ 0x5a, SIG_UINT16(0x0004), SIG_UINT16(0x010e), // lea 0004 010e
0x36, // push
0x43, 0x7c, 0x0e, // kMessage[7c] 0e
- SIG_ADDTOOFFSET +90, // [skip 90 bytes]
- 0x38, SIG_UINT16 + 0xd6, 0x00, // pushi 00d6 (offset 0x335)
+ SIG_ADDTOOFFSET(+90), // [skip 90 bytes]
+ 0x38, SIG_UINT16(0x00d6), // pushi 00d6 (offset 0x335)
0x78, // push1
- 0x5a, SIG_UINT16 + 0x04, 0x00, SIG_UINT16 + 0x0e, 0x01, // lea 0004 010e
+ 0x5a, SIG_UINT16(0x0004), SIG_UINT16(0x010e), // lea 0004 010e
0x36, // push
- SIG_ADDTOOFFSET +76, // [skip 76 bytes]
- 0x38, SIG_UINT16 + 0xcd, 0x00, // pushi 00cd (offset 0x38b)
+ SIG_ADDTOOFFSET(+76), // [skip 76 bytes]
+ 0x38, SIG_UINT16(0x00cd), // pushi 00cd (offset 0x38b)
0x39, 0x03, // pushi 03
- 0x5a, SIG_UINT16 + 0x04, 0x00, SIG_UINT16 + 0x0e, 0x01, // lea 0004 010e
+ 0x5a, SIG_UINT16(0x0004), SIG_UINT16(0x010e), // lea 0004 010e
0x36,
SIG_END
};
static const uint16 larry6PatchDeathDialog[] = {
0x3e, 0x00, 0x02, // link 0200
- PATCH_ADDTOOFFSET +687,
- 0x5a, PATCH_UINT16 + 0x04, 0x00, PATCH_UINT16 + 0x40, 0x01, // lea 0004 0140
- PATCH_ADDTOOFFSET +98,
- 0x5a, PATCH_UINT16 + 0x04, 0x00, PATCH_UINT16 + 0x40, 0x01, // lea 0004 0140
- PATCH_ADDTOOFFSET +82,
- 0x5a, PATCH_UINT16 + 0x04, 0x00, PATCH_UINT16 + 0x40, 0x01, // lea 0004 0140
+ PATCH_ADDTOOFFSET(+687),
+ 0x5a, PATCH_UINT16(0x0004), PATCH_UINT16(0x0140), // lea 0004 0140
+ PATCH_ADDTOOFFSET(+98),
+ 0x5a, PATCH_UINT16(0x0004), PATCH_UINT16(0x0140), // lea 0004 0140
+ PATCH_ADDTOOFFSET(+82),
+ 0x5a, PATCH_UINT16(0x0004), PATCH_UINT16(0x0140), // lea 0004 0140
PATCH_END
};
@@ -1363,13 +1363,13 @@ static const uint16 laurabow2CDSignaturePaintingClosing[] = {
0x76, // push0
SIG_MAGICDWORD,
0x7a, // push2
- 0x38, SIG_UINT16 + 0x31, 0x02, // pushi 0231h (561)
+ 0x38, SIG_UINT16(0x0231), // pushi 0231h (561)
0x76, // push0
0x43, 0x02, 0x04, // kScriptID (get export 0 of script 561)
0x4a, 0x04, // send 04 (gets safePicture::cel)
0x18, // not
0x31, 0x21, // bnt [exit]
- 0x38, SIG_UINT16 + 0x83, 0x02, // pushi 0283h
+ 0x38, SIG_UINT16(0x0283), // pushi 0283h
0x76, // push0
0x7a, // push2
0x39, 0x20, // pushi 20
@@ -1386,19 +1386,19 @@ static const uint16 laurabow2CDSignaturePaintingClosing[] = {
};
static const uint16 laurabow2CDPatchPaintingClosing[] = {
- PATCH_ADDTOOFFSET +2,
+ PATCH_ADDTOOFFSET(+2),
0x3c, // dup (1 additional byte)
0x76, // push0
0x3c, // dup (1 additional byte)
0xab, 0x00, // ssl local[0] -> reset safePic signal
0x7a, // push2
- 0x38, PATCH_UINT16 + 0x31, 0x02, // pushi 0231h (561)
+ 0x38, PATCH_UINT16(0x0231), // pushi 0231h (561)
0x76, // push0
0x43, 0x02, 0x04, // kScriptID (get export 0 of script 561)
0x4a, 0x04, // send 04 (gets safePicture::cel)
0x1a, // eq?
0x31, 0x1d, // bnt [exit]
- 0x38, PATCH_UINT16 + 0x83, 0x02, // pushi 0283h
+ 0x38, PATCH_UINT16(0x0283), // pushi 0283h
0x76, // push0
0x7a, // push2
0x39, 0x20, // pushi 20
@@ -1433,7 +1433,7 @@ static const uint16 laurabow2CDPatchPaintingClosing[] = {
// Fixes bug: #6440
static const uint16 laurabow2CDSignatureFixProblematicIconBar[] = {
SIG_MAGICDWORD,
- 0x38, SIG_UINT16 + 0xf1, 0x00, // pushi 00f1 (disable) - hardcoded, we only want to patch the CD version
+ 0x38, SIG_UINT16(0x00f1), // pushi 00f1 (disable) - hardcoded, we only want to patch the CD version
0x76, // push0
0x81, 0x45, // lag global[45]
0x4a, 0x04, // send 04
@@ -1476,8 +1476,8 @@ static const uint16 mothergoose256SignatureReplay[] = {
};
static const uint16 mothergoose256PatchReplay[] = {
- 0x34, PATCH_UINT16 + 0x00, 0x00, // ldi 0000 (dummy)
- 0x34, PATCH_UINT16 + 0x00, 0x00, // ldi 0000 (dummy)
+ 0x34, PATCH_UINT16(0x0000), // ldi 0000 (dummy)
+ 0x34, PATCH_UINT16(0x0000), // ldi 0000 (dummy)
PATCH_END
};
@@ -1491,7 +1491,7 @@ static const uint16 mothergoose256SignatureSaveLimit[] = {
};
static const uint16 mothergoose256PatchSaveLimit[] = {
- PATCH_ADDTOOFFSET | +2,
+ PATCH_ADDTOOFFSET(+2),
0x35, 0x0d + SAVEGAMEID_OFFICIALRANGE_START, // ldi 113d
PATCH_END
};
@@ -1521,9 +1521,9 @@ static const uint16 pq1vgaSignaturePutGunInLockerBug[] = {
0x35, 0x00, // ldi 00
0x1a, // eq?
0x31, 0x25, // bnt [next state check]
- SIG_ADDTOOFFSET +22, // [skip 22 bytes]
+ SIG_ADDTOOFFSET(+22), // [skip 22 bytes]
SIG_MAGICDWORD,
- 0x38, SIG_SELECTOR16 + SELECTOR_put, // pushi "put"
+ 0x38, SIG_SELECTOR16(SELECTOR_put), // pushi "put"
0x78, // push1
0x76, // push0
0x81, 0x00, // lag 00
@@ -1535,17 +1535,17 @@ static const uint16 pq1vgaSignaturePutGunInLockerBug[] = {
0x35, 0x01, // ldi 01
0x1a, // eq?
0x31, 0x08, // bnt [end of method]
- 0x39, SIG_SELECTOR8 + SELECTOR_dispose, // pushi "dispose"
+ 0x39, SIG_SELECTOR8(SELECTOR_dispose), // pushi "dispose"
0x76, // push0
- 0x72, SIG_UINT16 + 0x88, 0x00, // lofsa 0088
+ 0x72, SIG_UINT16(0x0088), // lofsa 0088
0x4a, 0x04, // send 04 - locker::dispose
SIG_END
};
static const uint16 pq1vgaPatchPutGunInLockerBug[] = {
- PATCH_ADDTOOFFSET +3,
+ PATCH_ADDTOOFFSET(+3),
0x31, 0x1c, // bnt [next state check]
- PATCH_ADDTOOFFSET +22,
+ PATCH_ADDTOOFFSET(+22),
0x35, 0x02, // ldi 02
0x65, 0x1c, // aTop 1c (set timer to 2 seconds)
0x33, 0x17, // jmp [end of method]
@@ -1553,7 +1553,7 @@ static const uint16 pq1vgaPatchPutGunInLockerBug[] = {
0x35, 0x01, // ldi 01
0x1a, // eq?
0x31, 0x11, // bnt [end of method]
- 0x38, PATCH_SELECTOR16 + SELECTOR_put, // pushi "put"
+ 0x38, PATCH_SELECTOR16(SELECTOR_put), // pushi "put"
0x78, // push1
0x76, // push0
0x81, 0x00, // lag 00
@@ -1573,8 +1573,7 @@ static const uint16 pq1vgaPatchPutGunInLockerBug[] = {
// Fixes bug: #5016
static const uint16 pq1vgaSignatureMapSaveRestoreBug[] = {
0x39, 0x04, // pushi 04
- SIG_ADDTOOFFSET +2, // skip either lsg global[f9] or pTos register
- //0x89, 0xf9, // lsg global[f9]
+ SIG_ADDTOOFFSET(+2), // skip either lsg global[f9] or pTos register
SIG_MAGICDWORD,
0x38, 0x64, 0x80, // pushi 8064
0x76, // push0
@@ -1584,7 +1583,7 @@ static const uint16 pq1vgaSignatureMapSaveRestoreBug[] = {
};
static const uint16 pq1vgaPatchMapSaveRestoreBug[] = {
- 0x38, PATCH_SELECTOR16 + SELECTOR_overlay, // pushi "overlay"
+ 0x38, PATCH_SELECTOR16(SELECTOR_overlay), // pushi "overlay"
0x7a, // push2
0x89, 0xf9, // lsg global[f9]
0x39, 0x64, // pushi 64 (no transition)
@@ -1614,7 +1613,7 @@ static const SciScriptPatcherEntry pq1vgaSignatures[] = {
// Responsible method: pointBox::doit
static const uint16 qfg1vgaSignatureFightEvents[] = {
0x39, SIG_MAGICDWORD,
- SIG_SELECTOR8 + SELECTOR_new, // pushi "new"
+ SIG_SELECTOR8(SELECTOR_new), // pushi "new"
0x76, // push0
0x51, 0x07, // class Event
0x4a, 0x04, // send 04 - call Event::new
@@ -1634,7 +1633,7 @@ static const uint16 qfg1vgaSignatureFightEvents[] = {
};
static const uint16 qfg1vgaPatchFightEvents[] = {
- 0x38, PATCH_SELECTOR16 + SELECTOR_curEvent, // pushi 15a (selector curEvent)
+ 0x38, PATCH_SELECTOR16(SELECTOR_curEvent), // pushi 15a (selector curEvent)
0x76, // push0
0x81, 0x50, // lag global[50]
0x4a, 0x04, // send 04 - read User::curEvent -> needs one byte more than previous code
@@ -1701,13 +1700,13 @@ static const uint16 qfg1vgaSignatureMoveToCrusher[] = {
0x51, 0x1f, // class Motion
0x36, // push
0x39, 0x4f, // pushi 4f (79 - x)
- 0x38, SIG_UINT16 + 0xa5, 0x00, // pushi 00a5 (165 - y)
+ 0x38, SIG_UINT16(0x00a5), // pushi 00a5 (165 - y)
0x7c, // pushSelf
SIG_END
};
static const uint16 qfg1vgaPatchMoveToCrusher[] = {
- PATCH_ADDTOOFFSET +3,
+ PATCH_ADDTOOFFSET(+3),
0x39, 0x55, // pushi 55 (85 - x)
PATCH_END
};
@@ -1727,7 +1726,7 @@ static const uint16 qfg1vgaSignatureMoveToCastleGate[] = {
};
static const uint16 qfg1vgaPatchMoveToCastleGate[] = {
- PATCH_ADDTOOFFSET +3,
+ PATCH_ADDTOOFFSET(+3),
0x39, 0x72, // pushi 72 (114 - x)
PATCH_END
};
@@ -1740,10 +1739,10 @@ static const uint16 qfg1vgaPatchMoveToCastleGate[] = {
// Fixes bug #6249
static const uint16 qfg1vgaSignatureCheetaurDescription[] = {
SIG_MAGICDWORD,
- 0x34, SIG_UINT16 + 0xb8, 0x01, // ldi 01b8
+ 0x34, SIG_UINT16(0x01b8), // ldi 01b8
0x1a, // eq?
0x31, 0x16, // bnt 16
- 0x38, SIG_UINT16 + 0x27, 0x01, // pushi 0127
+ 0x38, SIG_UINT16(0x0127), // pushi 0127
0x39, 0x06, // pushi 06
0x39, 0x03, // pushi 03
0x78, // push1
@@ -1752,7 +1751,7 @@ static const uint16 qfg1vgaSignatureCheetaurDescription[] = {
};
static const uint16 qfg1vgaPatchCheetaurDescription[] = {
- PATCH_ADDTOOFFSET +14,
+ PATCH_ADDTOOFFSET(+14),
0x39, 0x11, // pushi 11 -> monster type cheetaur
PATCH_END
};
@@ -1776,7 +1775,7 @@ static const uint16 qfg1vgaSignatureFunnyRoomFix[] = {
0x3c, // dup
0x35, 0x00, // ldi 00
0x1a, // eq?
- 0x30, SIG_UINT16 + 0x25, 0x00, // bnt 0025 [-> next state]
+ 0x30, SIG_UINT16(0x0025), // bnt 0025 [-> next state]
SIG_MAGICDWORD,
0x35, 0x01, // ldi 01
0xa3, 0x4e, // sal 4e
@@ -1784,8 +1783,8 @@ static const uint16 qfg1vgaSignatureFunnyRoomFix[] = {
};
static const uint16 qfg1vgaPatchFunnyRoomFix[] = {
- PATCH_ADDTOOFFSET +3,
- 0x2e, PATCH_UINT16 + 0x29, 0x00, // bt 0029 [-> next state] - saves 4 bytes
+ PATCH_ADDTOOFFSET(+3),
+ 0x2e, PATCH_UINT16(0x0029), // bt 0029 [-> next state] - saves 4 bytes
0x35, 0x01, // ldi 01
0xa3, 0x4e, // sal 4e
0xa3, 0x05, // sal 05 (sets local 5 to 1)
@@ -1822,7 +1821,7 @@ static const SciScriptPatcherEntry qfg1vgaSignatures[] = {
// Fixes bug: #5096
static const uint16 qfg2SignatureImportDialog[] = {
0x63, SIG_MAGICDWORD, 0x20, // pToa text
- 0x30, SIG_UINT16 + 0x0b, 0x00, // bnt [next state]
+ 0x30, SIG_UINT16(0x000b), // bnt [next state]
0x7a, // push2
0x39, 0x03, // pushi 03
0x36, // push
@@ -1833,7 +1832,7 @@ static const uint16 qfg2SignatureImportDialog[] = {
};
static const uint16 qfg2PatchImportDialog[] = {
- PATCH_ADDTOOFFSET +5,
+ PATCH_ADDTOOFFSET(+5),
0x48, // ret
PATCH_END
};
@@ -1859,7 +1858,7 @@ static const uint16 qfg3SignatureImportDialog[] = {
};
static const uint16 qfg3PatchImportDialog[] = {
- PATCH_ADDTOOFFSET +4,
+ PATCH_ADDTOOFFSET(+4),
0x48, // ret
PATCH_END
};
@@ -1892,9 +1891,9 @@ static const uint16 qfg3SignatureWooDialog[] = {
0x35, 0x9b, // ldi 9b
0x1a, // eq?
0x31, 0x0c, // bnt 0c
- 0x38, SIG_SELECTOR16 + SELECTOR_solvePuzzle, // pushi 0297
+ 0x38, SIG_SELECTOR16(SELECTOR_solvePuzzle), // pushi 0297
0x7a, // push2
- 0x38, SIG_UINT16 + 0x0c, 0x01, // pushi 010c
+ 0x38, SIG_UINT16(0x010c), // pushi 010c
0x7a, // push2
0x81, 0x00, // lag 00
0x4a, 0x08, // send 08
@@ -1904,7 +1903,7 @@ static const uint16 qfg3SignatureWooDialog[] = {
};
static const uint16 qfg3PatchWooDialog[] = {
- PATCH_ADDTOOFFSET +0x29,
+ PATCH_ADDTOOFFSET(+0x29),
0x33, 0x11, // jmp to 0x6a2, the call to hero::solvePuzzle for 0xFFFC
PATCH_END
};
@@ -1929,13 +1928,13 @@ static const uint16 sq4FloppySignatureEndlessFlight[] = {
SIG_MAGICDWORD,
0x78, // push1
0x67, 0x08, // pTos 08 (property x)
- 0x63, SIG_ADDTOOFFSET + 1, // pToa (invalid property) - 44h for English floppy, 4ch for German floppy
+ 0x63, SIG_ADDTOOFFSET(+1), // pToa (invalid property) - 44h for English floppy, 4ch for German floppy
0x02, // add
SIG_END
};
static const uint16 sq4FloppyPatchEndlessFlight[] = {
- PATCH_ADDTOOFFSET +5,
+ PATCH_ADDTOOFFSET(+5),
0x35, 0x03, // ldi 03 (which would be the content of the property)
PATCH_END
};
@@ -1967,7 +1966,7 @@ static const uint16 sq4FloppySignatureThrowStuffAtSequelPoliceBug[] = {
};
static const uint16 sq4FloppyPatchThrowStuffAtSequelPoliceBug[] = {
- PATCH_ADDTOOFFSET +5,
+ PATCH_ADDTOOFFSET(+5),
0x48, // ret
PATCH_END
};
@@ -1990,7 +1989,7 @@ static const uint16 sq4CdSignatureTextOptionsButton[] = {
};
static const uint16 sq4CdPatchTextOptionsButton[] = {
- PATCH_ADDTOOFFSET +7,
+ PATCH_ADDTOOFFSET(+7),
0x39, 0x0b, // pushi 0x0b
PATCH_END
};
@@ -2036,7 +2035,7 @@ static const uint16 sq4CdSignatureTextOptions[] = {
0x35, 0x01, // ldi 0x01
0xa1, 0x5a, // sag 0x5a (save acc to global 90)
0x3a, // toss
- 0x38, SIG_SELECTOR16 + SELECTOR_show, // pushi 0x00d9
+ 0x38, SIG_SELECTOR16(SELECTOR_show), // pushi 0x00d9
0x76, // push0
0x54, 0x04, // self 0x04
0x48, // ret
@@ -2056,7 +2055,7 @@ static const uint16 sq4CdPatchTextOptions[] = {
0x35, 0x01, // ldi 0x01 (reset acc to 1)
0xa1, 0x5a, // sag 0x5a (save acc to global 90)
0x33, 0x03, // jmp 0x03 (jump over the wasted bytes below)
- 0x34, PATCH_UINT16 + 0x00, 0x00, // ldi 0x0000 (waste 3 bytes)
+ 0x34, PATCH_UINT16(0x0000), // ldi 0x0000 (waste 3 bytes)
0x3a, // toss
// (the rest of the code is the same)
PATCH_END
@@ -2085,24 +2084,24 @@ static const SciScriptPatcherEntry sq4Signatures[] = {
// Responsible method: robotIntoShip::changeState(9)
static const uint16 sq1vgaSignatureUlenceFlatsTimepodGfxGlitch[] = {
0x39,
- SIG_MAGICDWORD, SIG_SELECTOR8 + SELECTOR_cel, // pushi "cel"
+ SIG_MAGICDWORD, SIG_SELECTOR8(SELECTOR_cel), // pushi "cel"
0x78, // push1
0x39, 0x0a, // pushi 0x0a (set ship::cel to 10)
- 0x38, SIG_UINT16 + 0xa0, 0x00, // pushi 0x00a0 (ship::setLoop)
+ 0x38, SIG_UINT16(0x00a0), // pushi 0x00a0 (ship::setLoop)
SIG_END
};
static const uint16 sq1vgaPatchUlenceFlatsTimepodGfxGlitch[] = {
- PATCH_ADDTOOFFSET +3,
+ PATCH_ADDTOOFFSET(+3),
0x39, 0x09, // pushi 0x09 (set ship::cel to 9)
PATCH_END
};
static const uint16 sq1vgaSignatureEgoShowsCard[] = {
SIG_MAGICDWORD,
- 0x38, SIG_SELECTOR16 + SELECTOR_timesShownID, // push "timesShownID"
+ 0x38, SIG_SELECTOR16(SELECTOR_timesShownID), // push "timesShownID"
0x78, // push1
- 0x38, SIG_SELECTOR16 + SELECTOR_timesShownID, // push "timesShownID"
+ 0x38, SIG_SELECTOR16(SELECTOR_timesShownID), // push "timesShownID"
0x76, // push0
0x51, 0x7c, // class DeltaurRegion
0x4a, 0x04, // send 0x04 (get timesShownID)
@@ -2121,7 +2120,7 @@ static const uint16 sq1vgaSignatureEgoShowsCard[] = {
// Note that this script patch is merely a reordering of the
// instructions in the original script.
static const uint16 sq1vgaPatchEgoShowsCard[] = {
- 0x38, PATCH_SELECTOR16 + SELECTOR_timesShownID, // push "timesShownID"
+ 0x38, PATCH_SELECTOR16(SELECTOR_timesShownID), // push "timesShownID"
0x76, // push0
0x51, 0x7c, // class DeltaurRegion
0x4a, 0x04, // send 0x04 (get timesShownID)
@@ -2129,7 +2128,7 @@ static const uint16 sq1vgaPatchEgoShowsCard[] = {
0x35, 0x01, // ldi 1
0x02, // add
0x36, // push (this push corresponds to the wrong one above)
- 0x38, PATCH_SELECTOR16 + SELECTOR_timesShownID, // push "timesShownID"
+ 0x38, PATCH_SELECTOR16(SELECTOR_timesShownID), // push "timesShownID"
0x78, // push1
0x36, // push
0x51, 0x7c, // class DeltaurRegion
@@ -2172,7 +2171,7 @@ static const SciScriptPatcherEntry sq1vgaSignatures[] = {
static const uint16 sq5SignatureToolboxFix[] = {
0x31, 0x13, // bnt [check for state 1]
SIG_MAGICDWORD,
- 0x38, SIG_UINT16 + 0xaa, 0x00, // pushi 00aa
+ 0x38, SIG_UINT16(0x00aa), // pushi 00aa
0x39, 0x05, // pushi 05
0x39, 0x16, // pushi 16
0x76, // push0
@@ -2181,7 +2180,7 @@ static const uint16 sq5SignatureToolboxFix[] = {
0x7c, // pushSelf
0x81, 0x5b, // lag 5b
0x4a, 0x0e, // send 0e
- 0x32, SIG_UINT16 + 0x88, 0x00, // jmp [end-of-method]
+ 0x32, SIG_UINT16(0x0088), // jmp [end-of-method]
0x3c, // dup
0x35, 0x01, // ldi 01
0x1a, // eq?
@@ -2191,7 +2190,7 @@ static const uint16 sq5SignatureToolboxFix[] = {
static const uint16 sq5PatchToolboxFix[] = {
0x31, 0x41, // bnt [check for state 2]
- PATCH_ADDTOOFFSET +16, // skip to jmp offset
+ PATCH_ADDTOOFFSET(+16), // skip to jmp offset
0x35, 0x01, // ldi 01
0x65, 0x14, // aTop [state]
0x36, 0x00, 0x00, // ldi 0000 (waste 3 bytes)
@@ -2242,7 +2241,7 @@ void ScriptPatcher::applyPatch(const SciScriptPatcherEntry *patchEntry, byte *sc
uint16 patchCommand = patchWord & PATCH_COMMANDMASK;
uint16 patchValue = patchWord & PATCH_VALUEMASK;
switch (patchCommand) {
- case PATCH_ADDTOOFFSET: {
+ case PATCH_codeADDTOOFFSET: {
// add value to offset
offset += patchValue;
break;
@@ -2266,13 +2265,13 @@ void ScriptPatcher::applyPatch(const SciScriptPatcherEntry *patchEntry, byte *sc
offset++;
break;
}
- case PATCH_UINT16:
- case PATCH_SELECTOR16: {
+ case PATCH_codeUINT16:
+ case PATCH_codeSELECTOR16: {
byte byte1;
byte byte2;
switch (patchCommand) {
- case PATCH_UINT16: {
+ case PATCH_codeUINT16: {
byte1 = patchValue & PATCH_BYTEMASK;
patchData++; patchWord = *patchData;
if (patchWord & PATCH_COMMANDMASK)
@@ -2280,7 +2279,7 @@ void ScriptPatcher::applyPatch(const SciScriptPatcherEntry *patchEntry, byte *sc
byte2 = patchWord & PATCH_BYTEMASK;
break;
}
- case PATCH_SELECTOR16: {
+ case PATCH_codeSELECTOR16: {
patchSelector = _selectorIdTable[patchValue];
byte1 = patchSelector & 0xFF;
byte2 = patchSelector >> 8;
@@ -2299,7 +2298,7 @@ void ScriptPatcher::applyPatch(const SciScriptPatcherEntry *patchEntry, byte *sc
}
break;
}
- case PATCH_SELECTOR8: {
+ case PATCH_codeSELECTOR8: {
patchSelector = _selectorIdTable[patchValue];
if (patchSelector & 0xFF00)
error("Script-Patcher: 8 bit selector required, game uses 16 bit selector");
@@ -2307,7 +2306,7 @@ void ScriptPatcher::applyPatch(const SciScriptPatcherEntry *patchEntry, byte *sc
offset++;
break;
}
- case PATCH_BYTE:
+ case PATCH_codeBYTE:
scriptData[offset] = patchValue & PATCH_BYTEMASK;
offset++;
}
@@ -2338,19 +2337,19 @@ int32 ScriptPatcher::findSignature(const SciScriptPatcherEntry *patchEntry, SciS
uint16 sigCommand = sigWord & SIG_COMMANDMASK;
uint16 sigValue = sigWord & SIG_VALUEMASK;
switch (sigCommand) {
- case SIG_ADDTOOFFSET: {
+ case SIG_codeADDTOOFFSET: {
// add value to offset
byteOffset += sigValue;
break;
}
- case SIG_UINT16:
- case SIG_SELECTOR16: {
+ case SIG_codeUINT16:
+ case SIG_codeSELECTOR16: {
if ((byteOffset + 1) < scriptSize) {
byte byte1;
byte byte2;
switch (sigCommand) {
- case SIG_UINT16: {
+ case SIG_codeUINT16: {
byte1 = sigValue & SIG_BYTEMASK;
signatureData++; sigWord = *signatureData;
if (sigWord & SIG_COMMANDMASK)
@@ -2358,7 +2357,7 @@ int32 ScriptPatcher::findSignature(const SciScriptPatcherEntry *patchEntry, SciS
byte2 = sigWord & SIG_BYTEMASK;
break;
}
- case SIG_SELECTOR16: {
+ case SIG_codeSELECTOR16: {
sigSelector = _selectorIdTable[sigValue];
byte1 = sigSelector & 0xFF;
byte2 = sigSelector >> 8;
@@ -2381,7 +2380,7 @@ int32 ScriptPatcher::findSignature(const SciScriptPatcherEntry *patchEntry, SciS
}
break;
}
- case SIG_SELECTOR8: {
+ case SIG_codeSELECTOR8: {
if (byteOffset < scriptSize) {
sigSelector = _selectorIdTable[sigValue];
if (sigSelector & 0xFF00)
@@ -2394,7 +2393,7 @@ int32 ScriptPatcher::findSignature(const SciScriptPatcherEntry *patchEntry, SciS
}
break;
}
- case SIG_BYTE:
+ case SIG_codeBYTE:
if (byteOffset < scriptSize) {
if (scriptData[byteOffset] != sigWord)
sigWord = SIG_MISMATCH;
@@ -2476,17 +2475,17 @@ void ScriptPatcher::initSignature(const SciScriptPatcherEntry *patchTable, bool
}
break;
}
- case SIG_ADDTOOFFSET: {
+ case SIG_codeADDTOOFFSET: {
magicOffset -= curValue;
if (magicDWordLeft)
error("Script-Patcher: Magic-DWORD contains AddToOffset command\nFaulty patch: '%s'", curEntry->description);
break;
}
- case SIG_UINT16:
- case SIG_SELECTOR16: {
+ case SIG_codeUINT16:
+ case SIG_codeSELECTOR16: {
// UINT16 or 1
switch (curCommand) {
- case SIG_UINT16: {
+ case SIG_codeUINT16: {
curData++; curWord = *curData;
if (curWord & SIG_COMMANDMASK)
error("Script-Patcher: signature entry inconsistent\nFaulty patch: '%s'", curEntry->description);
@@ -2499,7 +2498,7 @@ void ScriptPatcher::initSignature(const SciScriptPatcherEntry *patchTable, bool
}
break;
}
- case SIG_SELECTOR16: {
+ case SIG_codeSELECTOR16: {
curSelector = _selectorIdTable[curValue];
if (curSelector == -1) {
curSelector = g_sci->getKernel()->findSelector(selectorNameTable[curValue]);
@@ -2530,9 +2529,9 @@ void ScriptPatcher::initSignature(const SciScriptPatcherEntry *patchTable, bool
}
break;
}
- case SIG_BYTE:
- case SIG_SELECTOR8: {
- if (curCommand == SIG_SELECTOR8) {
+ case SIG_codeBYTE:
+ case SIG_codeSELECTOR8: {
+ if (curCommand == SIG_codeSELECTOR8) {
curSelector = _selectorIdTable[curValue];
if (curSelector == -1) {
curSelector = g_sci->getKernel()->findSelector(selectorNameTable[curValue]);
diff --git a/engines/sci/engine/script_patches.h b/engines/sci/engine/script_patches.h
index 5d3ee22f7a..d634db8089 100644
--- a/engines/sci/engine/script_patches.h
+++ b/engines/sci/engine/script_patches.h
@@ -27,41 +27,47 @@
namespace Sci {
-#define SIG_END 0xFFFF
-#define SIG_MISMATCH 0xFFFE
-#define SIG_COMMANDMASK 0xF000
-#define SIG_VALUEMASK 0x0FFF
-#define SIG_BYTEMASK 0x00FF
-#define SIG_MAGICDWORD 0xF000
-#define SIG_ADDTOOFFSET 0xE000
-#define SIG_SELECTOR16 0x9000
-#define SIG_SELECTOR8 0x8000
-#define SIG_UINT16 0x1000
-#define SIG_BYTE 0x0000
-
-#define PATCH_END SIG_END
-#define PATCH_COMMANDMASK SIG_COMMANDMASK
-#define PATCH_VALUEMASK SIG_VALUEMASK
-#define PATCH_BYTEMASK SIG_BYTEMASK
-#define PATCH_ADDTOOFFSET SIG_ADDTOOFFSET
-#define PATCH_GETORIGINALBYTE 0xD000
-#define PATCH_GETORIGINALBYTEADJUST 0xC000
-#define PATCH_SELECTOR16 SIG_SELECTOR16
-#define PATCH_SELECTOR8 SIG_SELECTOR8
-#define PATCH_UINT16 SIG_UINT16
-#define PATCH_BYTE SIG_BYTE
+// Please do not use the #defines, that are called SIG_code* / PATCH_code* inside signature/patch-tables
+#define SIG_END 0xFFFF
+#define SIG_MISMATCH 0xFFFE
+#define SIG_COMMANDMASK 0xF000
+#define SIG_VALUEMASK 0x0FFF
+#define SIG_BYTEMASK 0x00FF
+#define SIG_MAGICDWORD 0xF000
+#define SIG_codeADDTOOFFSET 0xE000
+#define SIG_ADDTOOFFSET(_offset_) SIG_codeADDTOOFFSET | _offset_
+#define SIG_codeSELECTOR16 0x9000
+#define SIG_SELECTOR16(_selectorID_) SIG_codeSELECTOR16 | _selectorID_
+#define SIG_codeSELECTOR8 0x8000
+#define SIG_SELECTOR8(_selectorID_) SIG_codeSELECTOR8 | _selectorID_
+#define SIG_codeUINT16 0x1000
+#define SIG_UINT16(_value_) SIG_codeUINT16 | (_value_ & 0xFF), (_value_ >> 8)
+#define SIG_codeBYTE 0x0000
+
+#define PATCH_END SIG_END
+#define PATCH_COMMANDMASK SIG_COMMANDMASK
+#define PATCH_VALUEMASK SIG_VALUEMASK
+#define PATCH_BYTEMASK SIG_BYTEMASK
+#define PATCH_codeADDTOOFFSET SIG_codeADDTOOFFSET
+#define PATCH_ADDTOOFFSET(_offset_) SIG_codeADDTOOFFSET | _offset_
+#define PATCH_GETORIGINALBYTE 0xD000
+#define PATCH_GETORIGINALBYTEADJUST 0xC000
+#define PATCH_codeSELECTOR16 SIG_codeSELECTOR16
+#define PATCH_SELECTOR16(_selectorID_) SIG_codeSELECTOR16 | _selectorID_
+#define PATCH_codeSELECTOR8 SIG_codeSELECTOR8
+#define PATCH_SELECTOR8(_selectorID_) SIG_codeSELECTOR8 | _selectorID_
+#define PATCH_codeUINT16 SIG_codeUINT16
+#define PATCH_UINT16(_value_) SIG_codeUINT16 | (_value_ & 0xFF), (_value_ >> 8)
+#define PATCH_codeBYTE SIG_codeBYTE
// defines maximum scratch area for getting original bytes from unpatched script data
#define PATCH_VALUELIMIT 4096
struct SciScriptPatcherEntry {
bool defaultActive;
-// bool active;
uint16 scriptNr;
const char *description;
int16 applyCount;
-// uint32 magicDWord;
-// int magicOffset;
const uint16 *signatureData;
const uint16 *patchData;
};