aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/script.h
diff options
context:
space:
mode:
authorMartin Kiewitz2010-08-06 18:54:58 +0000
committerMartin Kiewitz2010-08-06 18:54:58 +0000
commit753c431937ce3cb080b24c6a79f5e90548bfe431 (patch)
treea9856a95159b2a27f5607220d4753be15c4f9d82 /engines/sci/engine/script.h
parent993c8b70f29a90ecfc9b663836302af7f50afd2b (diff)
downloadscummvm-rg350-753c431937ce3cb080b24c6a79f5e90548bfe431.tar.gz
scummvm-rg350-753c431937ce3cb080b24c6a79f5e90548bfe431.tar.bz2
scummvm-rg350-753c431937ce3cb080b24c6a79f5e90548bfe431.zip
SCI: adding script patching
including a patch for hoyle 4 and commenting out the workaround code inside kDisposeWindow svn-id: r51795
Diffstat (limited to 'engines/sci/engine/script.h')
-rw-r--r--engines/sci/engine/script.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/engines/sci/engine/script.h b/engines/sci/engine/script.h
index 8334cc838c..4e38c68954 100644
--- a/engines/sci/engine/script.h
+++ b/engines/sci/engine/script.h
@@ -37,7 +37,7 @@ struct SciScriptSignature {
uint32 magicDWord;
int magicOffset;
const byte *data;
- const int16 *patch;
+ const uint16 *patch;
};
struct EngineState;
@@ -109,8 +109,9 @@ public:
void init(int script_nr, ResourceManager *resMan);
void load(ResourceManager *resMan);
- void matchSignatureAndPatch(uint16 scriptNr, const byte *scriptData, const uint32 scriptSize);
+ void matchSignatureAndPatch(uint16 scriptNr, byte *scriptData, const uint32 scriptSize);
int32 findSignature(const SciScriptSignature *signature, const byte *scriptData, const uint32 scriptSize);
+ void applyPatch(const uint16 *patch, byte *scriptData, const uint32 scriptSize, int32 signatureOffset);
virtual bool isValidOffset(uint16 offset) const;
virtual SegmentRef dereference(reg_t pointer);