diff options
author | Martin Kiewitz | 2013-12-20 01:01:26 +0100 |
---|---|---|
committer | Martin Kiewitz | 2013-12-20 01:01:26 +0100 |
commit | 1d77c9f0cf710e1f9f439ad371cb1b49624aed75 (patch) | |
tree | c156d44c612fb48100f105790305e74df60d7839 /engines/sci/engine/script_patches.h | |
parent | 5253021fbd067f3d27f00f37ad4f34649e24166e (diff) | |
download | scummvm-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.h | 58 |
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; }; |