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