diff options
author | Walter van Niftrik | 2009-05-12 12:31:09 +0000 |
---|---|---|
committer | Walter van Niftrik | 2009-05-12 12:31:09 +0000 |
commit | c299dbeb26b38342e2a5c6b9e59b810e48572cd6 (patch) | |
tree | 1a51acd1e061a713644a5340bf16f05661b9ffad /engines/sci/engine | |
parent | a79716e3671f7a6c619fe3a38f5f5fd7589f9e81 (diff) | |
download | scummvm-rg350-c299dbeb26b38342e2a5c6b9e59b810e48572cd6.tar.gz scummvm-rg350-c299dbeb26b38342e2a5c6b9e59b810e48572cd6.tar.bz2 scummvm-rg350-c299dbeb26b38342e2a5c6b9e59b810e48572cd6.zip |
SCI: Merged Message() and GetMessage(). Set SCI1.1 to use SCI1 kernel table (for now).
svn-id: r40481
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/kernel.cpp | 1 | ||||
-rw-r--r-- | engines/sci/engine/kernel.h | 1 | ||||
-rw-r--r-- | engines/sci/engine/kstring.cpp | 42 | ||||
-rw-r--r-- | engines/sci/engine/message.cpp | 2 |
4 files changed, 22 insertions, 24 deletions
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp index d5a1ba2bf5..a507a2b89a 100644 --- a/engines/sci/engine/kernel.cpp +++ b/engines/sci/engine/kernel.cpp @@ -201,7 +201,6 @@ SciKernelFunction kfunct_mappers[] = { /*(?)*/ DEFUN("TimesCot", kTimesCot, "ii"), /*(?)*/ DEFUN("TimesTan", kTimesTan, "ii"), DEFUN("Message", kMessage, ".*"), - DEFUN("GetMessage", kGetMessage, "iiir"), DEFUN("DoAudio", kDoAudio, ".*"), DEFUN("DoSync", kDoSync, ".*"), diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h index ece37d1f6c..e8d2e82caf 100644 --- a/engines/sci/engine/kernel.h +++ b/engines/sci/engine/kernel.h @@ -451,7 +451,6 @@ reg_t kGetSaveDir(EngineState *s, int funct_nr, int argc, reg_t *argv); reg_t kTextSize(EngineState *s, int funct_nr, int argc, reg_t *argv); reg_t kIsItSkip(EngineState *s, int funct_nr, int argc, reg_t *argv); reg_t kMessage(EngineState *s, int funct_nr, int argc, reg_t *argv); -reg_t kGetMessage(EngineState *s, int funct_nr, int argc, reg_t *argv); reg_t kDoAudio(EngineState *s, int funct_nr, int argc, reg_t *argv); reg_t kDoSync(EngineState *s, int funct_nr, int argc, reg_t *argv); reg_t k_Unknown(EngineState *s, int funct_nr, int argc, reg_t *argv); diff --git a/engines/sci/engine/kstring.cpp b/engines/sci/engine/kstring.cpp index 21ca298d18..046c8a8419 100644 --- a/engines/sci/engine/kstring.cpp +++ b/engines/sci/engine/kstring.cpp @@ -729,6 +729,27 @@ static MessageState state; reg_t kMessage(EngineState *s, int funct_nr, int argc, reg_t *argv) { MessageTuple tuple; + if (argc == 4) { + // Earlier version of of this function (GetMessage) + tuple.noun = UKPV(0); + int module = UKPV(1); + tuple.verb = UKPV(2); + tuple.cond = 0; + tuple.seq = 1; + + if (state.loadRes(s->resmgr, module, true) && state.getMessage(&tuple)) { + int len = state.getLength(); + char *buffer = kernel_dereference_char_pointer(s, argv[3], len + 1); + + if (buffer) { + state.getText(buffer); + return argv[3]; + } + } + + return NULL_REG; + } + switch (UKPV(0)) { case 0: case 2: @@ -807,25 +828,4 @@ reg_t kMessage(EngineState *s, int funct_nr, int argc, reg_t *argv) { return NULL_REG; } -reg_t kGetMessage(EngineState *s, int funct_nr, int argc, reg_t *argv) { - MessageTuple tuple; - tuple.noun = UKPV(0); - int module = UKPV(1); - tuple.verb = UKPV(2); - tuple.cond = 0; - tuple.seq = 0; - - if (state.loadRes(s->resmgr, module, true) && state.getMessage(&tuple)) { - int len = state.getLength(); - char *buffer = kernel_dereference_char_pointer(s, argv[3], len + 1); - - if (buffer) { - state.getText(buffer); - return argv[3]; - } - } - - return NULL_REG; -} - } // End of namespace Sci diff --git a/engines/sci/engine/message.cpp b/engines/sci/engine/message.cpp index 3e06ee419a..0a6754fa03 100644 --- a/engines/sci/engine/message.cpp +++ b/engines/sci/engine/message.cpp @@ -33,7 +33,7 @@ void MessageState::parse(IndexRecordCursor *cursor, MessageTuple *t) { t->verb = *(cursor->index_record + 1); if (_version == 2101) { t->cond = 0; - t->seq = 0; + t->seq = 1; } else { t->cond = *(cursor->index_record + 2); t->seq = *(cursor->index_record + 3); |