diff options
| author | Martin Kiewitz | 2010-06-30 09:47:04 +0000 | 
|---|---|---|
| committer | Martin Kiewitz | 2010-06-30 09:47:04 +0000 | 
| commit | 7595e7c1bec5e56e9ddaabea4b6af43423e8e002 (patch) | |
| tree | eadfae6df959f0fcd3a4ff076a51e1f266a77d4a /engines/sci/engine/kernel.h | |
| parent | c7f6a5b286bad600c987922396b7328079890342 (diff) | |
| download | scummvm-rg350-7595e7c1bec5e56e9ddaabea4b6af43423e8e002.tar.gz scummvm-rg350-7595e7c1bec5e56e9ddaabea4b6af43423e8e002.tar.bz2 scummvm-rg350-7595e7c1bec5e56e9ddaabea4b6af43423e8e002.zip | |
SCI: implementing workarounds for kernel calls, removing original code workaround for kDisposeScript / qfg1 room 64 and adding it to workaround table
svn-id: r50520
Diffstat (limited to 'engines/sci/engine/kernel.h')
| -rw-r--r-- | engines/sci/engine/kernel.h | 16 | 
1 files changed, 15 insertions, 1 deletions
| diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h index 6f7b0d569d..b7cd9058e5 100644 --- a/engines/sci/engine/kernel.h +++ b/engines/sci/engine/kernel.h @@ -115,11 +115,25 @@ enum {  /* Generic description: */  typedef reg_t KernelFunc(EngineState *s, int argc, reg_t *argv); +struct SciWorkaroundEntry { +	SciGameId gameId; +	int scriptNr; +	int16 inheritanceLevel; +	const char *objectName; +	const char *methodName; +	int localCallOffset; +	int index; +	reg_t newValue; +}; + +#define SCI_WORKAROUNDENTRY_TERMINATOR { (SciGameId)0,       -1,  0,                 NULL, NULL,             -1,    0, { 0,   0 } } +  struct KernelFuncWithSignature {  	KernelFunc *func; /**< The actual function */ -	char *signature;  /**< KernelFunc signature */  	Common::String origName; /**< Original name, in case we couldn't map it */  	bool isDummy; +	char *signature; +	const SciWorkaroundEntry *workarounds;  };  enum AutoDetectedFeatures { | 
