aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/intern.h1
-rw-r--r--scumm/script_v7he.cpp22
2 files changed, 19 insertions, 4 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index 97234f3da2..e669673597 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -622,6 +622,7 @@ protected:
byte stringLen(byte *);
/* Version 7 script opcodes */
+ void o7_getString();
void o7_objectX();
void o7_objectY();
void o7_stringLen();
diff --git a/scumm/script_v7he.cpp b/scumm/script_v7he.cpp
index 28090ea287..f1f8672ad4 100644
--- a/scumm/script_v7he.cpp
+++ b/scumm/script_v7he.cpp
@@ -57,7 +57,7 @@ void ScummEngine_v7he::setupOpcodes() {
OPCODE(o6_pushByteVar),
OPCODE(o6_pushWordVar),
/* 04 */
- OPCODE(o6_invalid),
+ OPCODE(o7_getString),
OPCODE(o6_invalid),
OPCODE(o6_byteArrayRead),
OPCODE(o6_wordArrayRead),
@@ -419,12 +419,26 @@ void ScummEngine_v7he::o7_objectY() {
push(_objs[objnum].y_pos);
}
+void ScummEngine_v7he::o7_getString() {
+ int len;
+
+ len = resStrLen(_scriptPointer);
+ warning("stub o7_getString(\"%s\")", _scriptPointer);
+ _scriptPointer += len;
+ fetchScriptWord();
+ fetchScriptWord();
+}
+
void ScummEngine_v7he::o7_unknownFA() {
int len, a = fetchScriptByte();
- len = resStrLen(_scriptPointer);
- warning("stub o7_unknownFA(%d, \"%s\")", a, _scriptPointer);
- _scriptPointer += len + 1;
+ if (_heversion <= 71) {
+ int len = resStrLen(_scriptPointer);
+ warning("stub o7_unknownFA(%d, \"%s\")", a, _scriptPointer);
+ _scriptPointer += len + 1;
+ } else {
+ warning("stub o7_unknownFA(%d)", a);
+ }
}
void ScummEngine_v7he::o7_stringLen() {