diff options
Diffstat (limited to 'scumm/script_v80he.cpp')
-rw-r--r-- | scumm/script_v80he.cpp | 28 |
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(); |