aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/inter_v7.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gob/inter_v7.cpp')
-rw-r--r--engines/gob/inter_v7.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/engines/gob/inter_v7.cpp b/engines/gob/inter_v7.cpp
index 5d0fff81c9..7eafce9f81 100644
--- a/engines/gob/inter_v7.cpp
+++ b/engines/gob/inter_v7.cpp
@@ -56,6 +56,7 @@ void Inter_v7::setupOpcodesDraw() {
OPCODEDRAW(0x8C, o7_getSystemProperty);
OPCODEDRAW(0x90, o7_loadLBM);
OPCODEDRAW(0x93, o7_draw0x93);
+ OPCODEDRAW(0x95, o7_zeroVar);
OPCODEDRAW(0xA1, o7_getINIValue);
OPCODEDRAW(0xA2, o7_setINIValue);
OPCODEDRAW(0xA4, o7_draw0xA4);
@@ -124,9 +125,18 @@ void Inter_v7::o7_draw0x89() {
_vm->_game->_script->evalExpr(0);
Common::String str1 = _vm->_game->_script->getResultStr();
- int16 index0 = _vm->_game->_script->readVarIndex();
+ warning("Addy Stub Draw 0x89: \"%s\", \"%s\"", str0.c_str(), str1.c_str());
+
+ Common::ArchiveMemberList files;
+
+ SearchMan.listMatchingMembers(files, str0);
- warning("Addy Stub Draw 0x89: \"%s\", \"%s\", %d", str0.c_str(), str1.c_str(), index0);
+ if (files.empty()) {
+ storeValue(0);
+ return;
+ }
+
+ storeValue(1);
}
void Inter_v7::o7_findFile() {
@@ -204,6 +214,12 @@ void Inter_v7::o7_draw0x93() {
warning("Addy Stub Draw 0x93: %d", expr0);
}
+void Inter_v7::o7_zeroVar() {
+ uint16 index = _vm->_game->_script->readVarIndex();
+
+ WRITE_VARO_UINT32(index, 0);
+}
+
void Inter_v7::o7_getINIValue() {
_vm->_game->_script->evalExpr(0);