diff options
author | Martin Kiewitz | 2010-07-17 12:46:57 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-07-17 12:46:57 +0000 |
commit | e9ed821953c3008b8bcfd836cd1afaa2428c6c16 (patch) | |
tree | b510bd4cf0362a90f838cb279ed010786c5210ce | |
parent | 1d31c278e6234d9624d4698aef9c9e3da8ea8ee1 (diff) | |
download | scummvm-rg350-e9ed821953c3008b8bcfd836cd1afaa2428c6c16.tar.gz scummvm-rg350-e9ed821953c3008b8bcfd836cd1afaa2428c6c16.tar.bz2 scummvm-rg350-e9ed821953c3008b8bcfd836cd1afaa2428c6c16.zip |
SCI: add hack for iceman to skip [!*] in kSaid, fixes green board / depth affirmative not recognized
svn-id: r50958
-rw-r--r-- | engines/sci/parser/said.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/sci/parser/said.cpp b/engines/sci/parser/said.cpp index f49704372a..231485b030 100644 --- a/engines/sci/parser/said.cpp +++ b/engines/sci/parser/said.cpp @@ -2025,6 +2025,14 @@ static int said_parse_spec(byte *spec) { } while ((nextitem != SAID_TERM) && (said_tokens_nr < MAX_SAID_TOKENS)); + if ((said_tokens_nr > 2) && (said_tokens[0] == 0xF500) && (said_tokens[1] == 0xFFE) && (said_tokens[2] == 0xF600)) { + // HACK: "[!*]" found at the start, remove it - occurs in iceman + for (int saidNr = 3; saidNr < said_tokens_nr; saidNr++) { + said_tokens[saidNr - 3] = said_tokens[saidNr]; + } + // FIXME: this should get properly implemented, but the parser code goes way over my head + } + if (nextitem == SAID_TERM) yyparse(); else { |