aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2004-09-14 07:59:40 +0000
committerTravis Howell2004-09-14 07:59:40 +0000
commitb14a21970c343495ded778eb5c719df819eb6cae (patch)
tree3254fc398b46f37bdcdff16d5986f3036d051fe3 /scumm
parentb42731afabd4d7b229b4de241f8b24b2fb1b1cf8 (diff)
downloadscummvm-rg350-b14a21970c343495ded778eb5c719df819eb6cae.tar.gz
scummvm-rg350-b14a21970c343495ded778eb5c719df819eb6cae.tar.bz2
scummvm-rg350-b14a21970c343495ded778eb5c719df819eb6cae.zip
Report when polyogn Wiz image is used.
svn-id: r15108
Diffstat (limited to 'scumm')
-rw-r--r--scumm/intern.h1
-rw-r--r--scumm/script_v72he.cpp1
-rw-r--r--scumm/script_v7he.cpp2
-rw-r--r--scumm/script_v80he.cpp19
-rw-r--r--scumm/script_v90he.cpp2
5 files changed, 23 insertions, 2 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index 6dad8c7d47..e165e6987d 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -800,6 +800,7 @@ protected:
void o80_writeConfigFile();
void o80_cursorCommand();
void o80_setState();
+ void o80_drawWizPolygon();
};
class ScummEngine_v90he : public ScummEngine_v80he {
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp
index 68f69c135b..f9eed2a822 100644
--- a/scumm/script_v72he.cpp
+++ b/scumm/script_v72he.cpp
@@ -1392,6 +1392,7 @@ void ScummEngine_v72he::o72_drawWizImage() {
int y1 = pop();
int x1 = pop();
int resnum = pop();
+
if (_fullRedraw) {
assert(_wizImagesNum < ARRAYSIZE(_wizImages));
WizImage *pwi = &_wizImages[_wizImagesNum];
diff --git a/scumm/script_v7he.cpp b/scumm/script_v7he.cpp
index cd4420c799..403ab2198d 100644
--- a/scumm/script_v7he.cpp
+++ b/scumm/script_v7he.cpp
@@ -1130,6 +1130,8 @@ void ScummEngine_v7he::o7_polygonHit() {
}
int ScummEngine_v7he::polygonHit(int id, int x, int y) {
+ debug(1, "polygonHit(%d, %d, %d)", id, x, y);
+
for (int i = 0; i < _WizNumPolygons; i++) {
if ((!id || id == i) && _WizPolygons[i].bound.contains(x, y)) {
if (polygonContains(_WizPolygons[i], x, y)) {
diff --git a/scumm/script_v80he.cpp b/scumm/script_v80he.cpp
index 7f1bb8965f..0a0f31ece6 100644
--- a/scumm/script_v80he.cpp
+++ b/scumm/script_v80he.cpp
@@ -260,7 +260,7 @@ void ScummEngine_v80he::setupOpcodes() {
OPCODE(o6_getActorScaleX),
OPCODE(o6_getActorAnimCounter1),
/* AC */
- OPCODE(o6_invalid),
+ OPCODE(o80_drawWizPolygon),
OPCODE(o6_isAnyOf),
OPCODE(o7_quitPauseRestart),
OPCODE(o6_isActorInBox),
@@ -581,4 +581,21 @@ void ScummEngine_v80he::o80_setState() {
removeObjectFromDrawQue(obj);
}
+void ScummEngine_v80he::o80_drawWizPolygon() {
+ int xy1 = pop();
+ int resnum = pop();
+
+ if (_fullRedraw) {
+ assert(_wizImagesNum < ARRAYSIZE(_wizImages));
+ WizImage *pwi = &_wizImages[_wizImagesNum];
+ pwi->resnum = resnum;
+ pwi->x1 = xy1;
+ pwi->y1 = xy1;
+ pwi->flags = 64;
+ ++_wizImagesNum;
+ } else {
+ drawWizImage(rtImage, resnum, 0, xy1, xy1, 64);
+ }
+}
+
} // End of namespace Scumm
diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp
index f1fe987854..c1f6ae8f93 100644
--- a/scumm/script_v90he.cpp
+++ b/scumm/script_v90he.cpp
@@ -260,7 +260,7 @@ void ScummEngine_v90he::setupOpcodes() {
OPCODE(o6_getActorScaleX),
OPCODE(o6_getActorAnimCounter1),
/* AC */
- OPCODE(o6_invalid),
+ OPCODE(o80_drawWizPolygon),
OPCODE(o6_isAnyOf),
OPCODE(o7_quitPauseRestart),
OPCODE(o6_isActorInBox),