diff options
author | Travis Howell | 2005-02-14 08:58:02 +0000 |
---|---|---|
committer | Travis Howell | 2005-02-14 08:58:02 +0000 |
commit | 993ae4a3e6d5ca6f195a7b2075b46f0bf6e356c3 (patch) | |
tree | 3fe38f4f6453f668190543f5ca6c02bfd5987175 /scumm | |
parent | 23d02ee03f894b5da60cb354dee3e85d16f1b49c (diff) | |
download | scummvm-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.h | 1 | ||||
-rw-r--r-- | scumm/script_v100he.cpp | 30 |
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() { |