aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2004-10-04 01:19:05 +0000
committerTravis Howell2004-10-04 01:19:05 +0000
commita7570bf99db86433ecda0c7984f2325868c142cc (patch)
treefa17afee6dc6e6cbe8338ff580b7dd94f81c0fde /scumm
parentd48661766aaea62c1935dc74685997ec7998549c (diff)
downloadscummvm-rg350-a7570bf99db86433ecda0c7984f2325868c142cc.tar.gz
scummvm-rg350-a7570bf99db86433ecda0c7984f2325868c142cc.tar.bz2
scummvm-rg350-a7570bf99db86433ecda0c7984f2325868c142cc.zip
Add extra HE99+ cases for wizImageOps
svn-id: r15401
Diffstat (limited to 'scumm')
-rw-r--r--scumm/script_v90he.cpp53
1 files changed, 49 insertions, 4 deletions
diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp
index 3a2209b9eb..0d95777c1e 100644
--- a/scumm/script_v90he.cpp
+++ b/scumm/script_v90he.cpp
@@ -442,6 +442,13 @@ void ScummEngine_v90he::wizDraw(const WizParameters *params) {
case 3:
case 4:
case 6:
+ // HE 99+
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
warning("unhandled wizDraw mode %d", params->drawMode);
break;
default:
@@ -456,9 +463,11 @@ void ScummEngine_v90he::o90_wizImageOps() {
switch (subOp) {
case -14: // HE99+
+ _wizParams.drawFlags |= 0x20;
pop();
break;
case -13: // HE99+
+ _wizParams.drawFlags |= 0x40;
pop();
break;
case 0:
@@ -520,12 +529,17 @@ void ScummEngine_v90he::o90_wizImageOps() {
_wizParams.remapPos = 0;
_wizParams.img.flags = 0;
break;
+ case 16: // HE99+
+ _wizParams.drawFlags |= 0x80000;
+ pop();
+ break;
case 19:
_wizParams.drawFlags |= 1;
_wizParams.img.y1 = pop();
_wizParams.img.x1 = pop();
break;
case 20:
+ case 203: // HE98+
b = pop();
a = pop();
_wizParams.drawFlags |= 0x40;
@@ -546,7 +560,11 @@ void ScummEngine_v90he::o90_wizImageOps() {
_wizParams.box.top = pop();
_wizParams.box.left = pop();
break;
+ case 31: // HE99+
+ _wizParams.drawFlags |= 2;
+ break;
case 40: // HE99+
+ _wizParams.drawFlags |= 0x80;
pop();
break;
case 46:
@@ -557,14 +575,44 @@ void ScummEngine_v90he::o90_wizImageOps() {
_wizParams.drawFlags |= 4;
_wizParams.unk_15C = pop();
break;
+ case 85: // HE99+
+ _wizParams.drawFlags |= 0x1102;
+ _wizParams.drawMode = 7;
+ break;
case 87: // HE99+
+ _wizParams.drawFlags |= 0x60000;
+ _wizParams.drawMode = 9;
pop();
pop();
pop();
pop();
pop();
break;
+ case 88: // HE99+
+ _wizParams.drawFlags |= 0x60000;
+ _wizParams.drawMode = 10;
+ pop();
+ pop();
+ pop();
+ pop();
+ pop();
+ break;
+ case 89: // HE99+
+ _wizParams.drawFlags |= 0x60000;
+ _wizParams.drawMode = 11;
+ pop();
+ pop();
+ pop();
+ break;
+ case 90: // HE99+
+ _wizParams.drawFlags |= 0x60000;
+ _wizParams.drawMode = 12;
+ pop();
+ pop();
+ pop();
+ break;
case 91: // HE99+
+ _wizParams.drawFlags |= 0x10000;
pop();
break;
case 108:
@@ -573,16 +621,13 @@ void ScummEngine_v90he::o90_wizImageOps() {
_wizParams.img.x1 = pop();
break;
case 171: // HE99+
+ _wizParams.drawMode = 8;
break;
case 200:
_wizParams.drawFlags |= 0x23;
_wizParams.img.flags |= 0x40;
_wizParams.unk_160 = _wizParams.img.y1 = _wizParams.img.x1 = pop();
break;
- case 203: // HE98+
- pop();
- pop();
- break;
case 209:
wizDraw(&_wizParams);
break;