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

peres001 at users.sourceforge.net peres001 at users.sourceforge.net
Sun Mar 18 20:59:56 CET 2007


Revision: 26227
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26227&view=rev
Author:   peres001
Date:     2007-03-18 12:59:56 -0700 (Sun, 18 Mar 2007)

Log Message:
-----------
changed code to use WalkNode constructors

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

Modified: scummvm/trunk/engines/parallaction/defs.h
===================================================================
--- scummvm/trunk/engines/parallaction/defs.h	2007-03-18 19:35:54 UTC (rev 26226)
+++ scummvm/trunk/engines/parallaction/defs.h	2007-03-18 19:59:56 UTC (rev 26227)
@@ -54,6 +54,9 @@
 	WalkNode(int32 x, int32 y) : _x(x), _y(y) {
 	}
 
+	WalkNode(const WalkNode& w) : _x(w._x), _y(w._y) {
+	}
+
 	void getPoint(Common::Point &p) const {
 		p.x = _x;
 		p.y = _y;

Modified: scummvm/trunk/engines/parallaction/location.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/location.cpp	2007-03-18 19:35:54 UTC (rev 26226)
+++ scummvm/trunk/engines/parallaction/location.cpp	2007-03-18 19:59:56 UTC (rev 26227)
@@ -236,9 +236,10 @@
 
 		if (!scumm_stricmp(_tokens[0], "COORD")) {
 
-			WalkNode *v4 = (WalkNode*)malloc(sizeof(WalkNode));
-			v4->_x = atoi(_tokens[1]) - _vm->_char._ani.width()/2;
-			v4->_y = atoi(_tokens[2]) - _vm->_char._ani.height();
+			WalkNode *v4 = new WalkNode(
+				atoi(_tokens[1]) - _vm->_char._ani.width()/2,
+				atoi(_tokens[2]) - _vm->_char._ani.height()
+			);
 
 			addNode(list, v4);
 

Modified: scummvm/trunk/engines/parallaction/walk.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/walk.cpp	2007-03-18 19:35:54 UTC (rev 26226)
+++ scummvm/trunk/engines/parallaction/walk.cpp	2007-03-18 19:59:56 UTC (rev 26227)
@@ -111,19 +111,14 @@
 	}
 	debugC(1, kDebugWalk, "found closest path point at (%i, %i)", to.x, to.y);
 
-	WalkNode *v48 = (WalkNode*)malloc(sizeof(WalkNode));
-	WalkNode *v44 = (WalkNode*)malloc(sizeof(WalkNode));
+	WalkNode *v48 = new WalkNode(to.x - _vm->_char._ani.width() / 2, to.y - _vm->_char._ani.height());
+	WalkNode *v44 = new WalkNode(*v48);
 
-	v48->_x = to.x - _vm->_char._ani.width() / 2; 		// target top left coordinates
-	v48->_y = to.y - _vm->_char._ani.height();
-	v48->_next = NULL;
-	memcpy(v44, v48, sizeof(WalkNode));
-
 	uint16 v38 = walkFunc1(to.x, to.y, v44);
 	if (v38 == 1) {
 		// destination directly reachable
 		debugC(1, kDebugWalk, "direct move to (%i, %i)", to.x, to.y);
-		free(v44);
+		delete v44;
 		return v48;
 	}
 
@@ -131,7 +126,6 @@
 	debugC(1, kDebugWalk, "trying to build walk path to (%i, %i)", to.x, to.y);
 
 	WalkNode	v58;
-	memset(&v58, 0, sizeof(WalkNode));
 
 	int16 _si = v48->_x;						// _si, _di: target top left coordinates
 	int16 _di = v48->_y;
@@ -181,10 +175,8 @@
 
 			if (_closest_node_found == 0) break;
 
-			WalkNode *_newnode = (WalkNode*)malloc(sizeof(WalkNode));
-			memcpy( _newnode, _closest_node, sizeof(WalkNode));
-			v20.x = _newnode->_x;
-			v20.y = _newnode->_y;
+			WalkNode *_newnode = new WalkNode(*_closest_node);
+			_newnode->getPoint(v20);
 
 			Common::Point tmp(_si - v20.x, _di - v20.y);
 
@@ -224,7 +216,7 @@
 	}
 
 
-	free(v44);
+	delete v44;
 	return (WalkNode*)v58._next;
 }
 


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