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 | |
| parent | 68d446c919763132bcf4fb01f657557d55e71021 (diff) | |
| download | scummvm-rg350-aeee6e624125af2569bf68cbe541b7bfce38291e.tar.gz scummvm-rg350-aeee6e624125af2569bf68cbe541b7bfce38291e.tar.bz2 scummvm-rg350-aeee6e624125af2569bf68cbe541b7bfce38291e.zip | |
FULLPIPE: Implement Movement::calcSomeXY()
| -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;  } | 
