aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2005-02-14 08:58:02 +0000
committerTravis Howell2005-02-14 08:58:02 +0000
commit993ae4a3e6d5ca6f195a7b2075b46f0bf6e356c3 (patch)
tree3fe38f4f6453f668190543f5ca6c02bfd5987175 /scumm
parent23d02ee03f894b5da60cb354dee3e85d16f1b49c (diff)
downloadscummvm-rg350-993ae4a3e6d5ca6f195a7b2075b46f0bf6e356c3.tar.gz
scummvm-rg350-993ae4a3e6d5ca6f195a7b2075b46f0bf6e356c3.tar.bz2
scummvm-rg350-993ae4a3e6d5ca6f195a7b2075b46f0bf6e356c3.zip
Add opcode for HE100
svn-id: r16787
Diffstat (limited to 'scumm')
-rw-r--r--scumm/intern.h1
-rw-r--r--scumm/script_v100he.cpp30
2 files changed, 29 insertions, 2 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index 85fe6bc769..a7e7439a19 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -930,6 +930,7 @@ protected:
void o100_actorOps();
void o100_arrayOps();
void o100_dim2dimArray();
+ void o100_redim2dimArray();
void o100_dimArray();
void o100_drawObject();
void o100_unknown28();
diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp
index 55f93bc961..3d3b3bc414 100644
--- a/scumm/script_v100he.cpp
+++ b/scumm/script_v100he.cpp
@@ -132,7 +132,7 @@ void ScummEngine_v100he::setupOpcodes() {
OPCODE(o100_dim2dim2Array),
/* 48 */
OPCODE(o6_setObjectName),
- OPCODE(o6_invalid),
+ OPCODE(o100_redim2dimArray),
OPCODE(o6_not),
OPCODE(o6_invalid),
/* 4C */
@@ -1097,6 +1097,7 @@ void ScummEngine_v100he::o100_wizImageOps() {
pop();
pop();
_wizParams.compType = pop();
+ break;
case 64:
_wizParams.processFlags |= 0x800;
_wizParams.processMode = 4;
@@ -1246,6 +1247,31 @@ void ScummEngine_v100he::o100_dim2dim2Array() {
defineArray(fetchScriptWord(), data, dim2start, dim2end, dim1start, dim1end);
}
+void ScummEngine_v100he::o100_redim2dimArray() {
+ int a, b, c, d;
+ d = pop();
+ c = pop();
+ b = pop();
+ a = pop();
+
+ byte subOp = fetchScriptByte();
+
+ printf("o100_redim2dimArray: a %d b %d c %d d %d\n", a, b, c, d);
+ switch (subOp) {
+ case 42:
+ redimArray(fetchScriptWord(), a, b, c, d, kIntArray);
+ break;
+ case 43:
+ redimArray(fetchScriptWord(), a, b, c, d, kDwordArray);
+ break;
+ case 45:
+ redimArray(fetchScriptWord(), a, b, c, d, kByteArray);
+ break;
+ default:
+ error("o100_redim2dimArray: default type %d", subOp);
+ }
+}
+
void ScummEngine_v100he::o100_paletteOps() {
byte subOp = fetchScriptByte();
switch (subOp) {
@@ -1286,7 +1312,7 @@ void ScummEngine_v100he::o100_paletteOps() {
default:
error("o100_paletteOps: Unknown case %d", subOp);
}
- debug(0,"o100_paletteOps stub (%d)", subOp);
+ debug(1,"o100_paletteOps stub (%d)", subOp);
}
void ScummEngine_v100he::o100_redimArray() {