aboutsummaryrefslogtreecommitdiff
path: root/scumm/script_v80he.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/script_v80he.cpp')
-rw-r--r--scumm/script_v80he.cpp28
1 files changed, 27 insertions, 1 deletions
diff --git a/scumm/script_v80he.cpp b/scumm/script_v80he.cpp
index e19c61588d..9c30005eb8 100644
--- a/scumm/script_v80he.cpp
+++ b/scumm/script_v80he.cpp
@@ -141,7 +141,7 @@ void ScummEngine_v80he::setupOpcodes() {
OPCODE(o72_wordArrayIndexedWrite),
/* 4C */
OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o80_unknown4D),
OPCODE(o6_invalid),
OPCODE(o6_wordVarInc),
/* 50 */
@@ -386,6 +386,32 @@ void ScummEngine_v80he::o80_unknown49() {
debug(1,"o80_unknown49 stub (%d, %d)", b, a);
}
+void ScummEngine_v80he::o80_unknown4D() {
+ byte option[128], option2[128], option3[256];
+ int type, retval;
+
+ // we pretend that we don't have .ini file
+ copyScriptString(option);
+ copyScriptString(option2);
+ copyScriptString(option3);
+ type = fetchScriptByte();
+
+ switch (type) {
+ case 6: // number
+ push(0);
+ break;
+ case 7: // string
+ defineArray(0, kStringArray, 0, 0, 0, 0);
+ retval = readVar(0);
+ writeArray(0, 0, 0, 0);
+ push(retval); // var ID string
+ break;
+ default:
+ error("o80_unknown4D: default type %d", type);
+ }
+ debug(1, "o80_unknown4D (%d) %s %s %s", type, option, option2, option3);
+}
+
void ScummEngine_v80he::o80_setState() {
int state = pop();
int obj = pop();