diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/parser/grammar.cpp | 22 | ||||
-rw-r--r-- | engines/sci/parser/vocabulary.cpp | 6 |
2 files changed, 6 insertions, 22 deletions
diff --git a/engines/sci/parser/grammar.cpp b/engines/sci/parser/grammar.cpp index 8d99100fa7..b330a432e3 100644 --- a/engines/sci/parser/grammar.cpp +++ b/engines/sci/parser/grammar.cpp @@ -603,28 +603,6 @@ int Vocabulary::parseGNF(const ResultWordListList &words, bool verbose) { results = work; - if (g_sci->getGameId() == GID_QFG2 && words.size() == 3 && results->next) { - // WORKAROUND: - // This is a serious hack to temporarily fix bug #3288328. - // The groups below spell out "buy healing pills" in QfG2. - // It results in four valid expansions, but only the second one - // matches the said spec in the apothecary script, so we force - // that one. - - bool ok = true; - words_iter = words.begin(); - if (words_iter->size() != 1 || words_iter->begin()->_group != 0x3f4) - ok = false; - words_iter++; - if (words_iter->size() != 2 || words_iter->begin()->_group != 0xa88) - ok = false; - words_iter++; - if (words_iter->size() != 1 || words_iter->begin()->_group != 0xad3) - ok = false; - if (ok) - results = results->next; - } - if (verbose) { con->DebugPrintf("All results (excluding the surrounding '(141 %03x' and ')'):\n", _parserBranches[0].id); results->print(); diff --git a/engines/sci/parser/vocabulary.cpp b/engines/sci/parser/vocabulary.cpp index 25043401cc..11d214b28d 100644 --- a/engines/sci/parser/vocabulary.cpp +++ b/engines/sci/parser/vocabulary.cpp @@ -398,6 +398,12 @@ void Vocabulary::lookupWord(ResultWordList& retval, const char *word, int word_l if (getSciVersion() < SCI_VERSION_01) return; + // WORKAROUND: + // This is a hack to temporarily fix bug #3288328. + // On the master branch this return is unconditional. + if (g_sci->getGameId() == GID_QFG2 && strcmp(word, "healing") == 0) + return; + } // Now try all suffixes |