[Scummvm-cvs-logs] SF.net SVN: scummvm: [25117] scummvm/trunk/engines/parallaction/walk.cpp

peres001 at users.sourceforge.net peres001 at users.sourceforge.net
Thu Jan 18 22:25:08 CET 2007


Revision: 25117
          http://scummvm.svn.sourceforge.net/scummvm/?rev=25117&view=rev
Author:   peres001
Date:     2007-01-18 13:25:02 -0800 (Thu, 18 Jan 2007)

Log Message:
-----------
fixed walk bug: characters now walk along complex paths

Modified Paths:
--------------
    scummvm/trunk/engines/parallaction/walk.cpp

Modified: scummvm/trunk/engines/parallaction/walk.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/walk.cpp	2007-01-18 17:14:42 UTC (rev 25116)
+++ scummvm/trunk/engines/parallaction/walk.cpp	2007-01-18 21:25:02 UTC (rev 25117)
@@ -216,6 +216,15 @@
 
 	debugC(1, kDebugWalk, "walk path completed");
 
+	WalkNode* tmp = &v58;
+	uint16 i = 1;
+	while (tmp->_node._next) {
+	    debugC(1, kDebugWalk, "node %i: %i, %i", i, tmp->_x, tmp->_y);
+        tmp = (WalkNode*)tmp->_node._next;
+        i++;
+	}
+
+
 	memFree(v44);
 	return (WalkNode*)v58._node._next;
 }
@@ -312,22 +321,30 @@
 	int16 _si = _yourself._zone.pos._position._x;
 	int16 _di = _yourself._zone.pos._position._y;
 
-    debugC(1, kDebugWalk, "jobWalk to (%i, %i)", node->_x + _yourself._cnv._width / 2, node->_y + _yourself._cnv._height);
+//    debugC(1, kDebugWalk, "jobWalk to (%i, %i)", node->_x + _yourself._cnv._width / 2, node->_y + _yourself._cnv._height);
 
 	_yourself._zone.pos._oldposition._x = _si;
 	_yourself._zone.pos._oldposition._y = _di;
 
-	if ((node->_x == 0) && (node->_y == 0)) {
+	if ((node->_x == _si) && (node->_y == _di)) {
 		if (node->_node._next == NULL) {
+
+			debugC(1, kDebugWalk, "jobWalk reached last node");
+
 			j->_finished = 1;
 			checkDoor();
 			memFree(node);
 			return;
 		}
 
+
+        WalkNode *tmp = (WalkNode*)node->_node._next;
 		j->_parm = node->_node._next;
 		memFree(node);
-		node = (WalkNode*)node->_node._next;
+
+        debugC(1, kDebugWalk, "jobWalk moving to next node (%i, %i)", tmp->_x, tmp->_y);
+
+		node = (WalkNode*)tmp;
 	}
 
 	Point dist = {


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list