aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2013-09-03 16:47:50 +0300
committerEugene Sandulenko2013-09-06 14:51:24 +0300
commit8ffbbccbfc70ed0ce17e594b25c5b9efae248013 (patch)
treed99660acfbe6f1aae93fb68460b10b3ebd2de3ec /engines
parenteea48b4f12f819a2bd595f3750a23998e96ee560 (diff)
downloadscummvm-rg350-8ffbbccbfc70ed0ce17e594b25c5b9efae248013.tar.gz
scummvm-rg350-8ffbbccbfc70ed0ce17e594b25c5b9efae248013.tar.bz2
scummvm-rg350-8ffbbccbfc70ed0ce17e594b25c5b9efae248013.zip
FULLPIPE: Bugfix shadow drawing
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/gfx.cpp2
-rw-r--r--engines/fullpipe/statics.cpp12
2 files changed, 7 insertions, 7 deletions
diff --git a/engines/fullpipe/gfx.cpp b/engines/fullpipe/gfx.cpp
index d680d32790..131396c7f7 100644
--- a/engines/fullpipe/gfx.cpp
+++ b/engines/fullpipe/gfx.cpp
@@ -1065,7 +1065,7 @@ void Shadows::initMovement(Movement *mov) {
_items[0].height = point.y;
for (uint i = 1; i < num; i++) {
- _items[i].dynPhase = mov->getDynamicPhaseByIndex(i);
+ _items[i].dynPhase = mov->getDynamicPhaseByIndex(i - 1);
_items[i].dynPhase->getDimensions(&point);
_items[i].width = point.x;
_items[i].height = point.y;
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index 46d48d5d29..a44093b135 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -492,18 +492,18 @@ void StaticANIObject::draw() {
DynamicPhase *shd = g_fullpipe->_currentScene->_shadows->findSize(rect.width(), rect.height());
if (shd) {
shd->getDimensions(&point);
- int midx = _ox - shd->_x / 2 - dyn->_someX;
- int midy = _oy - shd->_y / 2 - dyn->_someY + rect.bottom - 3;
- int shdy = shd->_y;
+ int midx = _ox - point.x / 2 - dyn->_someX;
+ int midy = _oy - point.y / 2 - dyn->_someY + rect.bottom - 3;
+ int shdw = point.y;
int px;
- if (!_movement || _flags & 0x20 )
+ if (!_movement || (_flags & 0x20))
px = _statics->getCenter(&point)->x;
else
px = _movement->getCenter(&point)->x;
if (_shadowsOn != 1)
- midy = _shadowsOn - shdy / 2;
+ midy = _shadowsOn - shdw / 2;
shd->draw(px + midx, midy, 0, 0);
}
@@ -1589,7 +1589,7 @@ Common::Point *Movement::getCenter(Common::Point *p) {
if (_currMovement) {
Common::Point point;
- getDimensionsOfPhase(&point, _currDynamicPhaseIndex);
+ _currMovement->getDimensionsOfPhase(&point, _currDynamicPhaseIndex);
rect.moveTo(point.x - _currDynamicPhase->_rect->right, _currDynamicPhase->_rect->top);
}