diff options
author | Travis Howell | 2005-05-28 08:37:44 +0000 |
---|---|---|
committer | Travis Howell | 2005-05-28 08:37:44 +0000 |
commit | 151f09ed539ea5ba70712041345d75597d33a7ec (patch) | |
tree | fd027ea67436d945f27fcff94e1b889226ea04a6 /scumm/script_v72he.cpp | |
parent | b65974b7b40d2a93a8e33d0979fa235381a05c7d (diff) | |
download | scummvm-rg350-151f09ed539ea5ba70712041345d75597d33a7ec.tar.gz scummvm-rg350-151f09ed539ea5ba70712041345d75597d33a7ec.tar.bz2 scummvm-rg350-151f09ed539ea5ba70712041345d75597d33a7ec.zip |
Sync opcode names and add HE72+ version of o_systemOps.
svn-id: r18278
Diffstat (limited to 'scumm/script_v72he.cpp')
-rw-r--r-- | scumm/script_v72he.cpp | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp index d4929821c2..1ab4f0620c 100644 --- a/scumm/script_v72he.cpp +++ b/scumm/script_v72he.cpp @@ -261,7 +261,7 @@ void ScummEngine_v72he::setupOpcodes() { /* AC */ OPCODE(o6_invalid), OPCODE(o6_isAnyOf), - OPCODE(o70_quitPauseRestart), + OPCODE(o72_systemOps), OPCODE(o6_isActorInBox), /* B0 */ OPCODE(o6_delay), @@ -1563,6 +1563,42 @@ void ScummEngine_v72he::o72_arrayOps() { } } +void ScummEngine_v72he::o72_systemOps() { + byte string[1024]; + + byte subOp = fetchScriptByte(); + + switch (subOp) { + case 22: // HE80+ + clearDrawObjectQueue(); + break; + case 26: // HE80+ + gdi.copyVirtScreenBuffers(Common::Rect(_screenWidth, _screenHeight)); + updatePalette(); + break; + case 158: + restart(); + break; + case 160: + // Confirm shutdown + shutDown(); + break; + case 244: + shutDown(); + break; + case 251: + copyScriptString(string, sizeof(string)); + debug(0, "Start executable (%s)", string); + break; + case 252: + copyScriptString(string, sizeof(string)); + debug(0, "Start game (%s)", string); + break; + default: + error("o72_systemOps invalid case %d", subOp); + } +} + void ScummEngine_v72he::o72_talkActor() { Actor *a; |