[Scummvm-cvs-logs] CVS: scummvm/queen walk.h,1.10,1.11 walk.cpp,1.18,1.19

Gregory Montoir cyx at users.sourceforge.net
Wed Nov 5 02:10:07 CET 2003


Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1:/tmp/cvs-serv10020

Modified Files:
	walk.h walk.cpp 
Log Message:
walking fixes (int16/uint16)

Index: walk.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/walk.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- walk.h	2 Nov 2003 16:47:31 -0000	1.10
+++ walk.h	5 Nov 2003 10:08:54 -0000	1.11
@@ -71,9 +71,9 @@
 
 	Walk(Logic *logic, Graphics *graphics);
 
-	int16 joeMove(int direction, uint16 endx, uint16 endy, bool inCutaway);
+	int16 joeMove(int direction, int16 endx, int16 endy, bool inCutaway);
 	
-	int16 personMove(const Person *pp, uint16 endx, uint16 endy, uint16 curImage, int direction);
+	int16 personMove(const Person *pp, int16 endx, int16 endy, uint16 curImage, int direction);
 
 	enum {
 		MAX_WALK_DATA = 16
@@ -88,10 +88,10 @@
 	void animatePerson(const MovePersonData *mpd, uint16 image, uint16 bobNum, uint16 bankNum, int direction);
 
 	//! compute transition coordinate
-	static uint16 calcC(uint16 c1, uint16 c2, uint16 c3, uint16 c4, uint16 lastc);
+	static int16 calcC(int16 c1, int16 c2, int16 c3, int16 c4, int16 lastc);
 	
 	//! find area for position
-	int16 findAreaPosition(uint16 *x, uint16 *y, bool recalibrate);
+	int16 findAreaPosition(int16 *x, int16 *y, bool recalibrate);
 
 	//! find an area not already struck
 	uint16 findFreeArea(uint16 area) const;
@@ -106,10 +106,10 @@
 	void initWalkData();
 	
 	//! add an area to the path
-	void incWalkData(uint16 px, uint16 py, uint16 x, uint16 y, uint16 area);
+	void incWalkData(int16 px, int16 py, int16 x, int16 y, uint16 area);
 	
 	//! compute path (and populates _walkData) from current position to the new one
-    void calc(uint16 oldPos, uint16 newPos, uint16 oldx, uint16 oldy, uint16 x, uint16 y);
+    void calc(uint16 oldPos, uint16 newPos, int16 oldx, int16 oldy, int16 x, int16 y);
 
 
 	WalkData _walkData[MAX_WALK_DATA];	

Index: walk.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/walk.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- walk.cpp	3 Nov 2003 14:48:07 -0000	1.18
+++ walk.cpp	5 Nov 2003 10:08:55 -0000	1.19
@@ -290,7 +290,7 @@
 }
 
 
-int16 Walk::joeMove(int direction, uint16 endx, uint16 endy, bool inCutaway) {
+int16 Walk::joeMove(int direction, int16 endx, int16 endy, bool inCutaway) {
 
 	_joeMoveBlock = false;
 	int16 can = 0;
@@ -342,7 +342,7 @@
 }
 
 
-int16 Walk::personMove(const Person *pp, uint16 endx, uint16 endy, uint16 curImage, int direction) {
+int16 Walk::personMove(const Person *pp, int16 endx, int16 endy, uint16 curImage, int direction) {
 
 	if (endx == 0 && endy == 0) {
 		warning("Walk::personMove() - endx == 0 && endy == 0");
@@ -422,7 +422,7 @@
 }
 
 
-void Walk::calc(uint16 oldPos, uint16 newPos, uint16 oldx, uint16 oldy, uint16 x, uint16 y) {
+void Walk::calc(uint16 oldPos, uint16 newPos, int16 oldx, int16 oldy, int16 x, int16 y) {
 	
 	// if newPos is outside of an AREA then traverse Y axis until an AREA is found
 	if (newPos == 0) { 
@@ -440,8 +440,8 @@
 	}
 	else if (calcPath(oldPos, newPos)) {
 		uint16 i;
-		uint16 px = oldx;
-		uint16 py = oldy;
+		int16 px = oldx;
+		int16 py = oldy;
 		for (i = 2; i <= _areaListCount; ++i) {
 			uint16 a1 = _areaList[i - 1];
 			uint16 a2 = _areaList[i];
@@ -458,11 +458,11 @@
 }
 
 
-uint16 Walk::calcC(uint16 c1, uint16 c2, uint16 c3, uint16 c4, uint16 lastc) {
+int16 Walk::calcC(int16 c1, int16 c2, int16 c3, int16 c4, int16 lastc) {
 
-	uint16 s1 = MAX(c1, c3);
-	uint16 s2 = MIN(c2, c4);
-	uint16 c;
+	int16 s1 = MAX(c1, c3);
+	int16 s2 = MIN(c2, c4);
+	int16 c;
 	if ((lastc >= s1 && lastc <= s2) || (lastc >= s2 && lastc <= s1)) {
 		c = lastc;
 	}
@@ -473,7 +473,7 @@
 }
 
 
-int16 Walk::findAreaPosition(uint16 *x, uint16 *y, bool recalibrate) {
+int16 Walk::findAreaPosition(int16 *x, int16 *y, bool recalibrate) {
 	// In order to locate the nearest available area, the original  algorithm
 	// computes the X (or Y) closest face distance for each available area. We
 	// simply added the case where the pointer is neither lying in the X range
@@ -600,9 +600,9 @@
 }
 
 
-void Walk::incWalkData(uint16 px, uint16 py, uint16 x, uint16 y, uint16 areaNum) {
+void Walk::incWalkData(int16 px, int16 py, int16 x, int16 y, uint16 areaNum) {
 
-	debug(9, "Walk::incWalkData(%d, %d, %d)", (int16)(x - px), (int16)(y - py), areaNum);
+	debug(9, "Walk::incWalkData(%d, %d, %d)", (x - px), (y - py), areaNum);
 
 	if (px != x || py != y) {
 		++_walkDataCount;





More information about the Scummvm-git-logs mailing list