diff options
| author | Joost Peters | 2011-11-24 23:28:12 +0100 | 
|---|---|---|
| committer | Joost Peters | 2011-11-24 23:28:12 +0100 | 
| commit | 8b9b7773978a7b21ac6acda8cf053b87ecc00705 (patch) | |
| tree | 82fb17c23b8921e3ef68259f11c82e55a1286291 | |
| parent | 56690162250f577f448c4edc2cc455c99234513a (diff) | |
| download | scummvm-rg350-8b9b7773978a7b21ac6acda8cf053b87ecc00705.tar.gz scummvm-rg350-8b9b7773978a7b21ac6acda8cf053b87ecc00705.tar.bz2 scummvm-rg350-8b9b7773978a7b21ac6acda8cf053b87ecc00705.zip  | |
TOLTECS: findPath() endian fixes.
| -rw-r--r-- | engines/toltecs/segmap.cpp | 26 | 
1 files changed, 13 insertions, 13 deletions
diff --git a/engines/toltecs/segmap.cpp b/engines/toltecs/segmap.cpp index 75b0c633cd..10e5f56096 100644 --- a/engines/toltecs/segmap.cpp +++ b/engines/toltecs/segmap.cpp @@ -275,8 +275,6 @@ void plotProc(int x, int y, int color, void *data) {  void SegmentMap::findPath(int16 *pointsArray, int16 destX, int16 destY, int16 sourceX, int16 sourceY) { -	// TODO: Writes to pointsArray aren't endian-safe yet -  	int16 currentRectIndex, destRectIndex;  	int16 pointsCount; @@ -309,30 +307,32 @@ void SegmentMap::findPath(int16 *pointsArray, int16 destX, int16 destY, int16 so  				currentRectIndex = _closedPathRects[--_closedPathRectsCount];  			}  			for (int16 i = 0; i < _pathNodesCount; i++) { -				pointsArray[pointsCount++] = _pathNodes[i].y; -				pointsArray[pointsCount++] = _pathNodes[i].x; +				pointsArray[pointsCount++] = TO_LE_16(_pathNodes[i].y); +				pointsArray[pointsCount++] = TO_LE_16(_pathNodes[i].x);  			}  		} -		pointsArray[pointsCount++] = destY; -		pointsArray[pointsCount++] = destX; +		pointsArray[pointsCount++] = TO_LE_16(destY); +		pointsArray[pointsCount++] = TO_LE_16(destX);  		pointsArray[0] = 0; -		pointsArray[1] = _pathNodesCount + 1; +		pointsArray[1] = TO_LE_16(_pathNodesCount + 1);  	} -	debug(0, "SegmentMap::findPath() count = %d", pointsArray[1]); +	debug(0, "SegmentMap::findPath() count = %d", FROM_LE_16(pointsArray[1]));  #if 0 // DEBUG: Draw the path we found  	int sx = sourceX, sy = sourceY;  	LineData ld;  	ld.pitch = _vm->_sceneWidth;  	ld.surf = _vm->_screen->_backScreen; -	for (int16 i = 0; i < pointsArray[1] * 2; i+=2) { -		debug(0, "x = %d; y = %d", pointsArray[3+i], pointsArray[2+i]); -		Graphics::drawLine(sx, sy, pointsArray[3+i], pointsArray[2+i], 0xFF, plotProc, &ld); -		sx = pointsArray[3+i]; -		sy = pointsArray[2+i]; +	for (int16 i = 0; i < FROM_LE_16(pointsArray[1]) * 2; i+=2) { +		const int x = FROM_LE_16(pointsArray[3+i]); +		const int y = FROM_LE_16(pointsArray[2+1]); +		debug(0, "x = %d; y = %d", x, y); +		Graphics::drawLine(sx, sy, x, y, 0xFF, plotProc, &ld); +		sx = x; +		sy = y;  	}  #endif  | 
