aboutsummaryrefslogtreecommitdiff
path: root/scumm/script_v72he.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/script_v72he.cpp')
-rw-r--r--scumm/script_v72he.cpp33
1 files changed, 30 insertions, 3 deletions
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp
index ab9d5d3a8f..39112daf7f 100644
--- a/scumm/script_v72he.cpp
+++ b/scumm/script_v72he.cpp
@@ -156,8 +156,8 @@ void ScummEngine_v72he::setupOpcodes() {
OPCODE(o6_invalid),
OPCODE(o6_wordVarDec),
/* 58 */
- OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o72_getTimer),
+ OPCODE(o72_setTimer),
OPCODE(o6_invalid),
OPCODE(o72_wordArrayDec),
/* 5C */
@@ -303,7 +303,7 @@ void ScummEngine_v72he::setupOpcodes() {
/* CC */
OPCODE(o6_pickOneOfDefault),
OPCODE(o6_stampObject),
- OPCODE(o6_invalid),
+ OPCODE(o72_unknownCE),
OPCODE(o6_invalid),
/* D0 */
OPCODE(o6_getDateTime),
@@ -619,6 +619,24 @@ void ScummEngine_v72he::o72_objectY() {
push(_objs[objnum].y_pos);
}
+void ScummEngine_v72he::o72_getTimer() {
+ int b = pop();
+ int a = fetchScriptByte();
+ warning("o72_getTimer stub (%d, %d)", b, a);
+ if (a == 10)
+ push(1);
+ else
+ push(0);
+}
+
+void ScummEngine_v72he::o72_setTimer() {
+ int b = pop();
+ int a = fetchScriptByte();
+ if (a != 158)
+ error("TIMER command %d?", a);
+ warning("o72_setTimer stub (%d, %d)", b, a);
+}
+
void ScummEngine_v72he::o72_wordArrayDec() {
int var = fetchScriptWord();
int base = pop();
@@ -821,6 +839,15 @@ void ScummEngine_v72he::o72_dim2dimArray() {
defineArray(fetchScriptWord(), data, 0, a, 0, b);
}
+void ScummEngine_v72he::o72_unknownCE() {
+ int a = pop();
+ int b = pop();
+ int c = pop();
+ int d = pop();
+ warning("o72_unknownCE stub (%d, %d, %d, %d)", d, c, b, a);
+ push(4000);
+}
+
void ScummEngine_v72he::shuffleArray(int num, int minIdx, int maxIdx) {
int range = maxIdx - minIdx;
int count = range * 2;