aboutsummaryrefslogtreecommitdiff
path: root/engines/simon/items.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/simon/items.cpp')
-rw-r--r--engines/simon/items.cpp13
1 files changed, 13 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());