aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2013-09-28 17:31:12 +0300
committerEugene Sandulenko2013-09-28 17:31:42 +0300
commitaeee6e624125af2569bf68cbe541b7bfce38291e (patch)
treebb902f29fb894ef5fce4062ea944bb3e6d48bcf3 /engines
parent68d446c919763132bcf4fb01f657557d55e71021 (diff)
downloadscummvm-rg350-aeee6e624125af2569bf68cbe541b7bfce38291e.tar.gz
scummvm-rg350-aeee6e624125af2569bf68cbe541b7bfce38291e.tar.bz2
scummvm-rg350-aeee6e624125af2569bf68cbe541b7bfce38291e.zip
FULLPIPE: Implement Movement::calcSomeXY()
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/statics.cpp31
1 files changed, 30 insertions, 1 deletions
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index a7805395ad..0e9daadd45 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -1246,7 +1246,36 @@ Common::Point *Movement::getCurrDynamicPhaseXY(Common::Point &p) {
}
Common::Point *Movement::calcSomeXY(Common::Point &p, int idx) {
- warning("STUB: Movement::calcSomeXY()");
+ int oldox = _ox;
+ int oldoy = _oy;
+ int oldidx = _currDynamicPhaseIndex;
+
+ int x = 0;
+ int y = 0;
+
+ if (!idx) {
+ Common::Point point;
+
+ _staticsObj1->getSomeXY(point);
+ int y1 = _my - point.y;
+ int x1 = _mx - point.x;
+
+ setDynamicPhaseIndex(0);
+
+ x = _currDynamicPhase->_someX + x1;
+ y = _currDynamicPhase->_someY + y1;
+ }
+
+ setOXY(x, y);
+
+ while (_currDynamicPhaseIndex != idx)
+ gotoNextFrame(0, 0);
+
+ p.x = _ox;
+ p.y = _oy;
+
+ setDynamicPhaseIndex(oldidx);
+ setOXY(oldox, oldoy);
return &p;
}