From 5dd3ef077f876a195a2f9378326f3849ef16db3b Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Wed, 26 Apr 2006 19:49:13 +0000 Subject: Add FF difference in isAdjNoun opcode. This makes it possible to get past the SAM / PEG puzzle, but do not ask me what, exactly, was wrong. I haven't a clue. svn-id: r22186 --- engines/simon/items.cpp | 13 +++++++++++++ engines/simon/simon.h | 1 + 2 files changed, 14 insertions(+) (limited to 'engines') diff --git a/engines/simon/items.cpp b/engines/simon/items.cpp index 5097467ac6..8aa4b74e4a 100644 --- a/engines/simon/items.cpp +++ b/engines/simon/items.cpp @@ -332,6 +332,7 @@ void SimonEngine::setupOpcodes() { opcode_table[134] = &SimonEngine::o3_listSaveGames; opcode_table[135] = &SimonEngine::o3_checkCD; opcode_table[161] = &SimonEngine::o3_screenTextBox; + opcode_table[165] = &SimonEngine::o3_isAdjNoun; opcode_table[171] = &SimonEngine::o3_hyperLinkOn; opcode_table[172] = &SimonEngine::o3_hyperLinkOff; opcode_table[173] = &SimonEngine::o3_checkPaths; @@ -1956,6 +1957,18 @@ void SimonEngine::o3_screenTextBox() { tl->width = getVarOrWord(); } +void SimonEngine::o3_isAdjNoun() { + // 165: item unk1 unk2 is + Item *item = getNextItemPtr(); + int16 a = getNextWord(), b = getNextWord(); + if (item->adjective == a && item->noun == b) + setScriptCondition(true); + else if (a == -1 && item->noun == b) + setScriptCondition(true); + else + setScriptCondition(false); +} + void SimonEngine::o3_hyperLinkOn() { // 171: oracle hyperlink on hyperLinkOn(getVarOrWord()); diff --git a/engines/simon/simon.h b/engines/simon/simon.h index 144f4cfa41..501e6801e4 100644 --- a/engines/simon/simon.h +++ b/engines/simon/simon.h @@ -994,6 +994,7 @@ public: void o3_listSaveGames(); void o3_checkCD(); void o3_screenTextBox(); + void o3_isAdjNoun(); void o3_hyperLinkOn(); void o3_hyperLinkOff(); void o3_checkPaths(); -- cgit v1.2.3