diff options
author | Eugene Sandulenko | 2013-09-28 17:31:12 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2013-09-28 17:31:42 +0300 |
commit | aeee6e624125af2569bf68cbe541b7bfce38291e (patch) | |
tree | bb902f29fb894ef5fce4062ea944bb3e6d48bcf3 /engines/fullpipe | |
parent | 68d446c919763132bcf4fb01f657557d55e71021 (diff) | |
download | scummvm-rg350-aeee6e624125af2569bf68cbe541b7bfce38291e.tar.gz scummvm-rg350-aeee6e624125af2569bf68cbe541b7bfce38291e.tar.bz2 scummvm-rg350-aeee6e624125af2569bf68cbe541b7bfce38291e.zip |
FULLPIPE: Implement Movement::calcSomeXY()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r-- | engines/fullpipe/statics.cpp | 31 |
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; } |