aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2005-03-13 03:23:35 +0000
committerTravis Howell2005-03-13 03:23:35 +0000
commit10c09943934d2d2cdd3e99c0f2ee3e3afe6ca7dc (patch)
tree13828b9d3d40b17a7f22e2dd6733512a98e4fdf3 /scumm
parent82c354b9d4f1c5ca15a37fde10d6be88a90679db (diff)
downloadscummvm-rg350-10c09943934d2d2cdd3e99c0f2ee3e3afe6ca7dc.tar.gz
scummvm-rg350-10c09943934d2d2cdd3e99c0f2ee3e3afe6ca7dc.tar.bz2
scummvm-rg350-10c09943934d2d2cdd3e99c0f2ee3e3afe6ca7dc.zip
Scripts flags difference in HE100 needed in a few more opcodes.
svn-id: r17111
Diffstat (limited to 'scumm')
-rw-r--r--scumm/intern.h2
-rw-r--r--scumm/script_v100he.cpp29
2 files changed, 29 insertions, 2 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index 850001d83e..da8ec39872 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -1082,6 +1082,8 @@ protected:
void o100_loadSBNG();
void o100_dim2dim2Array();
void o100_paletteOps();
+ void o100_jumpToScriptUnk();
+ void o100_startScriptUnk();
void o100_redimArray();
void o100_roomOps();
void o100_startSound();
diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp
index 7b61949d78..e056fda5d7 100644
--- a/scumm/script_v100he.cpp
+++ b/scumm/script_v100he.cpp
@@ -152,8 +152,8 @@ void ScummEngine_v100he::setupOpcodes() {
OPCODE(o6_printSystem),
/* 58 */
OPCODE(o6_printCursor),
- OPCODE(o90_jumpToScriptUnk),
- OPCODE(o90_startScriptUnk),
+ OPCODE(o100_jumpToScriptUnk),
+ OPCODE(o100_startScriptUnk),
OPCODE(o6_pseudoRoom),
/* 5C */
OPCODE(o6_pushByte),
@@ -1517,6 +1517,31 @@ void ScummEngine_v100he::o100_paletteOps() {
debug(1, "o100_paletteOps stub (%d)", subOp);
}
+void ScummEngine_v100he::o100_jumpToScriptUnk() {
+ int args[25];
+ int script, cycle;
+ byte flags;
+
+ getStackList(args, ARRAYSIZE(args));
+ cycle = pop();
+ script = pop();
+ flags = fetchScriptByte();
+ stopObjectCode();
+ runScript(script, (flags == 128 || flags == 129), (flags == 130 || flags == 129), args, cycle);
+}
+
+void ScummEngine_v100he::o100_startScriptUnk() {
+ int args[25];
+ int script, cycle;
+ byte flags;
+
+ getStackList(args, ARRAYSIZE(args));
+ cycle = pop();
+ script = pop();
+ flags = fetchScriptByte();
+ runScript(script, (flags == 128 || flags == 129), (flags == 130 || flags == 129), args, cycle);
+}
+
void ScummEngine_v100he::o100_redimArray() {
int newX, newY;
newY = pop();