diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/simon/items.cpp | 13 | ||||
-rw-r--r-- | engines/simon/simon.h | 1 |
2 files changed, 14 insertions, 0 deletions
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(); |