diff options
| -rw-r--r-- | engines/fullpipe/motion.cpp | 106 | 
1 files changed, 105 insertions, 1 deletions
| diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp index 32f01acbb7..43f894247f 100644 --- a/engines/fullpipe/motion.cpp +++ b/engines/fullpipe/motion.cpp @@ -1920,6 +1920,110 @@ int MGM::recalcOffsets(int idx, int st1idx, int st2idx, bool flip, bool flop) {  }  Common::Point *MGM::calcLength(Common::Point *point, Movement *mov, int x, int y, int *x1, int *y1, int flag) { +#if 0 +	Common::Point point1; +	Common::Point point2; + +	v9 = mov->calcSomeXY(mov, &point1, 0); +	v10 = v9->x; +	v36 = v9->x; +	v37 = v9->y; +	v11 = abs(v9->x); +	v12 = abs(v37); +	v13 = v12 > v11; +	v35 = v12 > v11; +	v17 = 0; +	if (v12 > v11) { +		if (mov->calcSomeXY(&point2, 0)->y) { +			COERCE_DOUBLE(point1.x) = (double)y; +			v16 = mov->calcSomeXY(&point2, 0); +			v17 = (int)((double)point1.x / v16->y); +		} +	} else if (mov->calcSomeXY(&point1, 0)->x) { +		COERCE_DOUBLE(point1.x) = (double)x; +		v14 = mov->calcSomeXY(mov, &point2, 0); +		v17 = (int)((double)point1.x / v14->y); +	} + +	if (v17 < 0) +		v17 = 0; + +	*x1 = v17; +	if (flag) { +		if (v13) { +			v24 = abs(y); +			v1 = 1; +			if (abs(v37 * v17 + mov->calcSomeXY((POINT *)&x, 0)->y) >= v24) { +			LABEL_24: +				v23 = v1; +			} else { +				while (1) { +					v25 = mov->_currMovement; +					v26 = v25 ? v25->_dynamicPhases.size() : mov->_dynamicPhases.size(); +					v23 = v1; +					if (v1 >= v26) +						break; +					++v1; +					if (abs(v37 * v17 + mov->calcSomeXY((POINT *)&x, 0)->y) >= v24) +						goto LABEL_24; +				} +			} +		} else { +			v19 = v10 * v17; +			v2 = 1; +			v20 = abs(x); +			if (abs(v19 + mov->calcSomeXY((POINT *)&x, 0)->x) >= v20) { +			LABEL_17: +				v23 = v2; +			} else { +				while (1) { +					v21 = mov->_currMovement; +					v22 = v21 ? v21->_dynamicPhases.size() : mov->_dynamicPhases.size(); +					v23 = v2; +					if (v2 >= v22) +						break; +					++v2; +					if (abs(v19 + mov->calcSomeXY((POINT *)&x, 0)->x) >= v20) +						goto LABEL_17; +				} +			} +		} +		v10 = v36; +		v27 = v23 - 1; +		v18 = y1; +		*y1 = v27; +	} else { +		v18 = y1; +		*y1 = -1; +	} + +	v28 = 0; +	v29 = 0; +	v30 = *v18 == 0; +	v31 = *v18 < 0; + +	if (!*v18) { +		*v18 = -1; +		v30 = *v18 == 0; +		v31 = *v18 < 0; +	} + +	if (!v31 && !v30) { +		++*x1; +		v32 = *v18; +		v33 = mov->calcSomeXY((POINT *)&x, 0); +		v28 = v33->x; +		v29 = v33->y; + +		if (v35) +			v28 = v10; +		else +			v29 = v37; +	} + +	point->x = v28 + v10 * v17; +	point->y = v29 + v37 * v17; +#endif  	warning("STUB: MGM::calcLength()");  	return point; @@ -1957,7 +2061,7 @@ ExCommand2 *MGM::buildExCommand2(Movement *mov, int objId, int x1, int y1, Commo  			y2->y -= x2->y; -			if ( !y2->y ) +			if (!y2->y)  				x2->y = 0;  		}  	} | 
