aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorTorbjörn Andersson2006-04-26 19:49:13 +0000
committerTorbjörn Andersson2006-04-26 19:49:13 +0000
commit5dd3ef077f876a195a2f9378326f3849ef16db3b (patch)
treebb70a401cb81cecee196aae562d2e78b06abb00e /engines
parentbdf790e294e2b3f05d590238bc36e10210c3c2af (diff)
downloadscummvm-rg350-5dd3ef077f876a195a2f9378326f3849ef16db3b.tar.gz
scummvm-rg350-5dd3ef077f876a195a2f9378326f3849ef16db3b.tar.bz2
scummvm-rg350-5dd3ef077f876a195a2f9378326f3849ef16db3b.zip
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
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();