aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2005-03-08 04:17:45 +0000
committerTravis Howell2005-03-08 04:17:45 +0000
commitb9393bc819e69ccdd7428f988026f76dc2b3e812 (patch)
treee4817ddc6d3e5fb9070811f80ca6ac0d612307f1
parentd2dab235106851ac25ca4992a07678863011045b (diff)
downloadscummvm-rg350-b9393bc819e69ccdd7428f988026f76dc2b3e812.tar.gz
scummvm-rg350-b9393bc819e69ccdd7428f988026f76dc2b3e812.tar.bz2
scummvm-rg350-b9393bc819e69ccdd7428f988026f76dc2b3e812.zip
Script flags are different in HE100
svn-id: r17034
-rw-r--r--scumm/intern.h2
-rw-r--r--scumm/script_v100he.cpp27
2 files changed, 27 insertions, 2 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index 448d4d7805..a7a2b34f9e 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -1079,6 +1079,7 @@ protected:
void o100_setSpriteGroupInfo();
void o100_resourceRoutines();
void o100_wizImageOps();
+ void o100_jumpToScript();
void o100_loadSBNG();
void o100_dim2dim2Array();
void o100_paletteOps();
@@ -1086,6 +1087,7 @@ protected:
void o100_roomOps();
void o100_startSound();
void o100_setSpriteInfo();
+ void o100_startScript();
void o100_quitPauseRestart();
void o100_cursorCommand();
void o100_wait();
diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp
index f27baaef37..56656f515e 100644
--- a/scumm/script_v100he.cpp
+++ b/scumm/script_v100he.cpp
@@ -62,7 +62,7 @@ void ScummEngine_v100he::setupOpcodes() {
OPCODE(o6_panCameraTo),
/* 10 */
OPCODE(o6_invalid),
- OPCODE(o72_jumpToScript),
+ OPCODE(o100_jumpToScript),
OPCODE(o6_setClass),
OPCODE(o60_closeFile),
/* 14 */
@@ -196,7 +196,7 @@ void ScummEngine_v100he::setupOpcodes() {
OPCODE(o6_stampObject),
OPCODE(o72_startObject),
/* 7C */
- OPCODE(o72_startScript),
+ OPCODE(o100_startScript),
OPCODE(o6_startScriptQuick),
OPCODE(o80_setState),
OPCODE(o6_stopObjectScript),
@@ -715,6 +715,18 @@ void ScummEngine_v100he::o100_arrayOps() {
}
}
+void ScummEngine_v100he::o100_jumpToScript() {
+ int args[25];
+ int script;
+ byte flags;
+
+ getStackList(args, ARRAYSIZE(args));
+ script = pop();
+ flags = fetchScriptByte();
+ stopObjectCode();
+ runScript(script, (flags == 128 || flags == 129), (flags == 130 || flags == 129), args);
+}
+
void ScummEngine_v100he::o100_loadSBNG() {
// Loads SBNG sound resource
byte subOp = fetchScriptByte();
@@ -1971,6 +1983,17 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
}
}
+void ScummEngine_v100he::o100_startScript() {
+ int args[25];
+ int script;
+ byte flags;
+
+ getStackList(args, ARRAYSIZE(args));
+ script = pop();
+ flags = fetchScriptByte();
+ runScript(script, (flags == 128 || flags == 129), (flags == 130 || flags == 129), args);
+}
+
void ScummEngine_v100he::o100_quitPauseRestart() {
byte subOp = fetchScriptByte();
subOp -= 61;