diff options
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/intern.h | 1 | ||||
-rw-r--r-- | scumm/script_v72he.cpp | 13 |
2 files changed, 13 insertions, 1 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index 655c624262..74ae480c74 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -686,6 +686,7 @@ protected: void o72_wordArrayWrite(); void o72_wordArrayIndexedWrite(); void o72_compareStackList(); + void o72_unknown50(); void o72_wordArrayInc(); void o72_objectX(); void o72_objectY(); diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp index 1932298b24..9f62462a9e 100644 --- a/scumm/script_v72he.cpp +++ b/scumm/script_v72he.cpp @@ -146,7 +146,7 @@ void ScummEngine_v72he::setupOpcodes() { OPCODE(o6_invalid), OPCODE(o6_wordVarInc), /* 50 */ - OPCODE(o6_invalid), + OPCODE(o72_unknown50), OPCODE(o6_invalid), OPCODE(o6_invalid), OPCODE(o72_wordArrayInc), @@ -573,6 +573,17 @@ void ScummEngine_v72he::o72_wordArrayIndexedWrite() { writeArray(fetchScriptWord(), pop(), base, val); } +void ScummEngine_v72he::o72_unknown50() { + int idx; + + idx = vm.cutSceneStackPointer; + vm.cutSceneStackPointer = 0; + vm.cutScenePtr[idx] = 0; + vm.cutSceneScript[idx] = 0; + + VAR(VAR_OVERRIDE) = 0; +} + void ScummEngine_v72he::o72_wordArrayInc() { int var = fetchScriptWord(); int base = pop(); |