diff options
author | Martin Kiewitz | 2010-07-07 18:35:07 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-07-07 18:35:07 +0000 |
commit | 322d57a1dd2f72bb9d5fb4e00ddf82acab637e36 (patch) | |
tree | 62252e3558b642f7981a98bd53b442ac2ca08b84 /engines/sci/engine/kernel.h | |
parent | 61a200dcdd03e8b0c1f35dea50842b6356e13e17 (diff) | |
download | scummvm-rg350-322d57a1dd2f72bb9d5fb4e00ddf82acab637e36.tar.gz scummvm-rg350-322d57a1dd2f72bb9d5fb4e00ddf82acab637e36.tar.bz2 scummvm-rg350-322d57a1dd2f72bb9d5fb4e00ddf82acab637e36.zip |
SCI: adding support to kernel signatures that invalid references may also get allowed - doing exactly this for kGraph(restoreBox) - fixes castle of dr. brain when quitting the game - maybe a game specific workaround would be better?!?!
svn-id: r50737
Diffstat (limited to 'engines/sci/engine/kernel.h')
-rw-r--r-- | engines/sci/engine/kernel.h | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h index 719db41e8d..7aa565fe34 100644 --- a/engines/sci/engine/kernel.h +++ b/engines/sci/engine/kernel.h @@ -101,14 +101,15 @@ enum { SIG_TYPE_NULL = 0x01, // may be 0:0 [0] SIG_TYPE_INTEGER = 0x02, // may be 0:* [i], automatically also allows null SIG_TYPE_UNINITIALIZED = 0x04, // may be FFFF:* -> not allowable, only used for comparsion - SIG_TYPE_INVALID = 0x08, // invalid segment or offset -> not allowable, only used for comparsion - SIG_TYPE_OBJECT = 0x10, // may be object [o] - SIG_TYPE_REFERENCE = 0x20, // may be reference [r] - SIG_TYPE_LIST = 0x40, // may be list [l] - SIG_TYPE_NODE = 0x80, // may be node [n] - SIG_IS_OPTIONAL = 0x100, // is optional - SIG_NEEDS_MORE = 0x200, // needs at least one additional parameter following - SIG_MORE_MAY_FOLLOW = 0x400 // may have more parameters of the same type following + SIG_TYPE_OBJECT = 0x08, // may be object [o] + SIG_TYPE_REFERENCE = 0x10, // may be reference [r] + SIG_TYPE_LIST = 0x20, // may be list [l] + SIG_TYPE_NODE = 0x40, // may be node [n] + SIG_TYPE_ERROR = 0x80, // happens, when there is a identification error - only used for comparsion + SIG_IS_INVALID = 0x100, // ptr is invalid [!] -> invalid offset + SIG_IS_OPTIONAL = 0x200, // is optional + SIG_NEEDS_MORE = 0x400, // needs at least one additional parameter following + SIG_MORE_MAY_FOLLOW = 0x800 // may have more parameters of the same type following }; // this does not include SIG_TYPE_UNINITIALIZED, because we can not allow uninitialized values anywhere @@ -196,7 +197,7 @@ public: * KSIG_INVALID set if the type of reg can be determined, but is invalid. * 0 on error. */ - int findRegType(reg_t reg); + uint16 findRegType(reg_t reg); /******************** Text functionality ********************/ /** |