aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kernel.h
diff options
context:
space:
mode:
authorMartin Kiewitz2010-07-07 18:35:07 +0000
committerMartin Kiewitz2010-07-07 18:35:07 +0000
commit322d57a1dd2f72bb9d5fb4e00ddf82acab637e36 (patch)
tree62252e3558b642f7981a98bd53b442ac2ca08b84 /engines/sci/engine/kernel.h
parent61a200dcdd03e8b0c1f35dea50842b6356e13e17 (diff)
downloadscummvm-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.h19
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 ********************/
/**