aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kstring.cpp
diff options
context:
space:
mode:
authorMatthew Hoops2009-12-30 16:00:56 +0000
committerMatthew Hoops2009-12-30 16:00:56 +0000
commit5382aa1ab0ac0b42a33a4b73664e3a8064b4211b (patch)
tree17ad3256bc97d181433414aac36b8cf224e22e71 /engines/sci/engine/kstring.cpp
parentfd2d0fc7182e97fedf901b276bc7e48dcdcb4c13 (diff)
downloadscummvm-rg350-5382aa1ab0ac0b42a33a4b73664e3a8064b4211b.tar.gz
scummvm-rg350-5382aa1ab0ac0b42a33a4b73664e3a8064b4211b.tar.bz2
scummvm-rg350-5382aa1ab0ac0b42a33a4b73664e3a8064b4211b.zip
SCI32:
- Set signature for Array/String - Add the kernel table differences for the GK2 demo - Implement kMessage changes in SCI32 - Use an empty string as the default path for all games now (and modify kValidPath to accept that only as valid) - Add dereferencing for Arrays svn-id: r46756
Diffstat (limited to 'engines/sci/engine/kstring.cpp')
-rw-r--r--engines/sci/engine/kstring.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/sci/engine/kstring.cpp b/engines/sci/engine/kstring.cpp
index b32edf7a68..19c3f1540f 100644
--- a/engines/sci/engine/kstring.cpp
+++ b/engines/sci/engine/kstring.cpp
@@ -639,6 +639,16 @@ reg_t kGetMessage(EngineState *s, int argc, reg_t *argv) {
reg_t kMessage(EngineState *s, int argc, reg_t *argv) {
uint func = argv[0].toUint16();
+
+#ifdef ENABLE_SCI32
+ if (getSciVersion() >= SCI_VERSION_2) {
+ // In complete weirdness, SCI32 bumps up subops 3-8 to 4-9 and stubs off subop 3.
+ if (func == 3)
+ warning("SCI32 kMessage(3)");
+ else if (func > 3)
+ func--;
+ }
+#endif
if ((func != K_MESSAGE_NEXT) && (argc < 2)) {
warning("Message: not enough arguments passed to subfunction %d", func);