From aeee6e624125af2569bf68cbe541b7bfce38291e Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 28 Sep 2013 17:31:12 +0300 Subject: FULLPIPE: Implement Movement::calcSomeXY() --- engines/fullpipe/statics.cpp | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'engines') 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; } -- cgit v1.2.3