aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/script_patches.h
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/sci/engine/script_patches.h
parent5253021fbd067f3d27f00f37ad4f34649e24166e (diff)
downloadscummvm-rg350-1d77c9f0cf710e1f9f439ad371cb1b49624aed75.tar.gz
scummvm-rg350-1d77c9f0cf710e1f9f439ad371cb1b49624aed75.tar.bz2
scummvm-rg350-1d77c9f0cf710e1f9f439ad371cb1b49624aed75.zip
SCI: script patcher cleanup
Diffstat (limited to 'engines/sci/engine/script_patches.h')
-rw-r--r--engines/sci/engine/script_patches.h58
1 files changed, 32 insertions, 26 deletions
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;
};