aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
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();