aboutsummaryrefslogtreecommitdiff
path: root/scumm/script_v72he.cpp
diff options
context:
space:
mode:
authorTravis Howell2005-05-28 08:37:44 +0000
committerTravis Howell2005-05-28 08:37:44 +0000
commit151f09ed539ea5ba70712041345d75597d33a7ec (patch)
treefd027ea67436d945f27fcff94e1b889226ea04a6 /scumm/script_v72he.cpp
parentb65974b7b40d2a93a8e33d0979fa235381a05c7d (diff)
downloadscummvm-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.cpp38
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;