[Scummvm-cvs-logs] CVS: scummvm/saga actor.cpp,1.182,1.183 actor.h,1.94,1.95 isomap.cpp,1.60,1.61

Andrew Kurushin h00ligan at users.sourceforge.net
Sun Sep 4 10:41:20 CEST 2005


Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19476

Modified Files:
	actor.cpp actor.h isomap.cpp 
Log Message:
fix #1269037 Rif walks off-screen when looking at screen at desk 


Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.cpp,v
retrieving revision 1.182
retrieving revision 1.183
diff -u -d -r1.182 -r1.183
--- actor.cpp	3 Sep 2005 07:56:41 -0000	1.182
+++ actor.cpp	4 Sep 2005 17:40:16 -0000	1.183
@@ -1975,13 +1975,14 @@
 
 			pointBest = actor->_walkStepsPoints[actor->_walkStepsCount - 1];
 
+			pointBest.x &= ~1;
 			delta.x = ABS(pointFrom.x - pointTo.x);
 			delta.y = ABS(pointFrom.y - pointTo.y);
 
 			bestDelta.x = ABS(pointBest.x - pointTo.x);
 			bestDelta.y = ABS(pointBest.y - pointTo.y);
 
-			if (delta.x + delta.y <= bestDelta.x + bestDelta.y && (actor->_flags & kFollower)) {
+			if ((delta.x + delta.y <= bestDelta.x + bestDelta.y) && (actor->_flags & kFollower)) {
 				actor->_actorFlags |= kActorNoFollow;
 			}
 
@@ -2542,7 +2543,6 @@
 				bestRating = currentRating;
 				bestPath = nextPoint;
 			}
-			pathDirection = &_pathDirectionList[i];
 		}
 		++i;
 	} while (i < _pathDirectionListCount);

Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.h,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -d -r1.94 -r1.95
--- actor.h	3 Sep 2005 07:56:42 -0000	1.94
+++ actor.h	4 Sep 2005 17:40:16 -0000	1.95
@@ -752,7 +752,7 @@
 
 inline int16 quickDistance(const Point &point1, const Point &point2) {
 	Point delta;
-	delta.x = ABS(point1.x - point2.x);
+	delta.x = ABS(point1.x - point2.x) / 2;
 	delta.y = ABS(point1.y - point2.y);
 	return ((delta.x < delta.y) ? (delta.y + delta.x / 2) : (delta.x + delta.y / 2));
 }

Index: isomap.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/isomap.cpp,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- isomap.cpp	3 Sep 2005 14:49:43 -0000	1.60
+++ isomap.cpp	4 Sep 2005 17:40:16 -0000	1.61
@@ -1416,40 +1416,40 @@
 
 		switch (tilePoint->direction) {
 			case kDirUpRight:
-				if (checkDragonPoint( tilePoint->u + 1, tilePoint->v + 0, 1)) {
-					pushDragonPoint( tilePoint->u + 2, tilePoint->v + 0, 1);
-					pushDragonPoint( tilePoint->u + 1, tilePoint->v + 1, 7);
-					pushDragonPoint( tilePoint->u + 1, tilePoint->v - 1, 3);
+				if (checkDragonPoint( tilePoint->u + 1, tilePoint->v + 0, kDirUpRight)) {
+					pushDragonPoint( tilePoint->u + 2, tilePoint->v + 0, kDirUpRight);
+					pushDragonPoint( tilePoint->u + 1, tilePoint->v + 1, kDirUpLeft);
+					pushDragonPoint( tilePoint->u + 1, tilePoint->v - 1, kDirDownRight);
 				}
 				break;
 			case kDirDownRight:
-				if (checkDragonPoint( tilePoint->u + 0, tilePoint->v - 1, 3)) {
-					pushDragonPoint( tilePoint->u + 0, tilePoint->v - 2, 3);
-					pushDragonPoint( tilePoint->u + 1, tilePoint->v - 1, 1);
-					pushDragonPoint( tilePoint->u - 1, tilePoint->v - 1, 5);
+				if (checkDragonPoint( tilePoint->u + 0, tilePoint->v - 1, kDirDownRight)) {
+					pushDragonPoint( tilePoint->u + 0, tilePoint->v - 2, kDirDownRight);
+					pushDragonPoint( tilePoint->u + 1, tilePoint->v - 1, kDirUpRight);
+					pushDragonPoint( tilePoint->u - 1, tilePoint->v - 1, kDirDownLeft);
 				}
 				break;
 			case kDirDownLeft:
-				if (checkDragonPoint( tilePoint->u - 1, tilePoint->v + 0, 5)) {
-					pushDragonPoint( tilePoint->u - 2, tilePoint->v + 0, 5);
-					pushDragonPoint( tilePoint->u - 1, tilePoint->v - 1, 3);
-					pushDragonPoint( tilePoint->u - 1, tilePoint->v + 1, 7);
+				if (checkDragonPoint( tilePoint->u - 1, tilePoint->v + 0, kDirDownLeft)) {
+					pushDragonPoint( tilePoint->u - 2, tilePoint->v + 0, kDirDownLeft);
+					pushDragonPoint( tilePoint->u - 1, tilePoint->v - 1, kDirDownRight);
+					pushDragonPoint( tilePoint->u - 1, tilePoint->v + 1, kDirUpLeft);
 				}
 				break;
 			case kDirUpLeft:
-				if (checkDragonPoint( tilePoint->u + 0, tilePoint->v + 1, 7)) {
-					pushDragonPoint( tilePoint->u + 0, tilePoint->v + 2, 7);
-					pushDragonPoint( tilePoint->u - 1, tilePoint->v + 1, 5);
-					pushDragonPoint( tilePoint->u + 1, tilePoint->v + 1, 1);
+				if (checkDragonPoint( tilePoint->u + 0, tilePoint->v + 1, kDirUpLeft)) {
+					pushDragonPoint( tilePoint->u + 0, tilePoint->v + 2, kDirUpLeft);
+					pushDragonPoint( tilePoint->u - 1, tilePoint->v + 1, kDirDownLeft);
+					pushDragonPoint( tilePoint->u + 1, tilePoint->v + 1, kDirUpRight);
 				}
 				break;
 		}
 
 		if (first && (_queueCount == _readCount)) {
-			pushDragonPoint( tilePoint->u + 1, tilePoint->v + 0, 1);
-			pushDragonPoint( tilePoint->u + 0, tilePoint->v - 1, 3);
-			pushDragonPoint( tilePoint->u - 1, tilePoint->v + 0, 5);
-			pushDragonPoint( tilePoint->u + 0, tilePoint->v + 1, 7);
+			pushDragonPoint( tilePoint->u + 1, tilePoint->v + 0, kDirUpRight);
+			pushDragonPoint( tilePoint->u + 0, tilePoint->v - 1, kDirDownRight);
+			pushDragonPoint( tilePoint->u - 1, tilePoint->v + 0, kDirDownLeft);
+			pushDragonPoint( tilePoint->u + 0, tilePoint->v + 1, kDirUpLeft);
 		}
 		first = false;
 	}





More information about the Scummvm-git-logs mailing list