aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/script_v90he.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp
index a3533fb20b..742a5d96d3 100644
--- a/scumm/script_v90he.cpp
+++ b/scumm/script_v90he.cpp
@@ -1806,6 +1806,12 @@ void ScummEngine_v90he::o90_getPolygonOverlap() {
r2.top += args2[2];
r2.bottom += args2[2];
}
+ if (n1 == 3) {
+ r1.left += args1[1];
+ r1.right += args1[1];
+ r1.top += args1[2];
+ r1.bottom += args1[2];
+ }
push(r2.intersects(r1) ? 1 : 0);
}
break;
@@ -1829,6 +1835,7 @@ void ScummEngine_v90he::o90_getPolygonOverlap() {
}
break;
case 8:
+ case 10: // TODO: redraw image
{
Common::Rect r1, r2;
getSpriteBounds(args2[0], true, r2);
@@ -1844,6 +1851,12 @@ void ScummEngine_v90he::o90_getPolygonOverlap() {
r2.top += args2[2];
r2.bottom += args2[2];
}
+ if (n1 == 3) {
+ r1.left += args1[1];
+ r1.right += args1[1];
+ r1.top += args1[2];
+ r1.bottom += args1[2];
+ }
push(r2.intersects(r1) ? 1 : 0);
}
break;
@@ -1866,9 +1879,6 @@ void ScummEngine_v90he::o90_getPolygonOverlap() {
push(r2.intersects(r1) ? 1 : 0);
}
break;
- case 10:
- push(0);
- break;
default:
error("o90_getPolygonOverlap: default case %d", subOp);
}