diff options
author | Matthew Hoops | 2010-02-15 17:10:40 +0000 |
---|---|---|
committer | Matthew Hoops | 2010-02-15 17:10:40 +0000 |
commit | cf005b623838ae2ed0424296aa770bf9eed0098d (patch) | |
tree | 2a4ed902f96bcaa1890250bd6e6416b3866fe2bc /engines/sci/engine | |
parent | 9de580aa6e8466b1a4347450af37492c59a24189 (diff) | |
download | scummvm-rg350-cf005b623838ae2ed0424296aa770bf9eed0098d.tar.gz scummvm-rg350-cf005b623838ae2ed0424296aa770bf9eed0098d.tar.bz2 scummvm-rg350-cf005b623838ae2ed0424296aa770bf9eed0098d.zip |
SCI32 reorders the REF* subops in kMessage; fixes GK1 conversations.
svn-id: r48066
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/kstring.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/sci/engine/kstring.cpp b/engines/sci/engine/kstring.cpp index ad1811ece5..6499e038bd 100644 --- a/engines/sci/engine/kstring.cpp +++ b/engines/sci/engine/kstring.cpp @@ -475,10 +475,16 @@ reg_t kMessage(EngineState *s, int argc, reg_t *argv) { #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. + // In addition, SCI32 reorders the REF* subops. if (func == 3) - warning("SCI32 kMessage(3)"); - else if (func > 3) + error("SCI32 kMessage(3)"); + else if (func > 3) { func--; + if (func == K_MESSAGE_REFCOND) + func = K_MESSAGE_REFNOUN; + else if (func == K_MESSAGE_REFNOUN || func == K_MESSAGE_REFVERB) + func--; + } } #endif |