changeset 16182:b1ef6e220ca1 draft

(svn r20882) -Codechange: Make Hash_Set a method.
author alberth <alberth@openttd.org>
date Sat, 02 Oct 2010 19:41:25 +0000
parents c8d6a1838be5
children 56b05c9b2e56
files src/pathfinder/npf/aystar.cpp src/pathfinder/npf/queue.cpp src/pathfinder/npf/queue.h
diffstat 3 files changed, 13 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/pathfinder/npf/aystar.cpp
+++ b/src/pathfinder/npf/aystar.cpp
@@ -43,7 +43,7 @@
 	/* Add a node to the ClosedList */
 	PathNode *new_node = MallocT<PathNode>(1);
 	*new_node = *node;
-	Hash_Set(&this->ClosedListHash, node->node.tile, node->node.direction, new_node);
+	this->ClosedListHash.Set(node->node.tile, node->node.direction, new_node);
 }
 
 /* Checks if a node is in the OpenList
@@ -76,7 +76,7 @@
 	new_node->g = g;
 	new_node->path.parent = parent;
 	new_node->path.node = *node;
-	Hash_Set(&this->OpenListHash, node->tile, node->direction, new_node);
+	this->OpenListHash.Set(node->tile, node->direction, new_node);
 
 	/* Add it to the queue */
 	this->OpenListQueue.Push(new_node, f);
--- a/src/pathfinder/npf/queue.cpp
+++ b/src/pathfinder/npf/queue.cpp
@@ -470,11 +470,14 @@
 	return result;
 }
 
-
-void *Hash_Set(Hash *h, uint key1, uint key2, void *value)
+/**
+ * Sets the value associated with the given key pair to the given value.
+ * Returns the old value if the value was replaced, NULL when it was not yet present.
+ */
+void *Hash::Set(uint key1, uint key2, void *value)
 {
 	HashNode *prev;
-	HashNode *node = Hash_FindNode(h, key1, key2, &prev);
+	HashNode *node = Hash_FindNode(this, key1, key2, &prev);
 
 	if (node != NULL) {
 		/* Found it */
@@ -486,9 +489,9 @@
 	/* It is not yet present, let's add it */
 	if (prev == NULL) {
 		/* The bucket is still empty */
-		uint hash = h->hash(key1, key2);
-		h->buckets_in_use[hash] = true;
-		node = h->buckets + hash;
+		uint hash = this->hash(key1, key2);
+		this->buckets_in_use[hash] = true;
+		node = this->buckets + hash;
 	} else {
 		/* Add it after prev */
 		node = MallocT<HashNode>(1);
@@ -498,7 +501,7 @@
 	node->key1 = key1;
 	node->key2 = key2;
 	node->value = value;
-	h->size++;
+	this->size++;
 	return NULL;
 }
 
--- a/src/pathfinder/npf/queue.h
+++ b/src/pathfinder/npf/queue.h
@@ -87,6 +87,7 @@
 	bool *buckets_in_use;
 
 	void *Get(uint key1, uint key2) const;
+	void *Set(uint key1, uint key2, void *value);
 
 	/**
 	 * Gets the current size of the hash.
@@ -105,11 +106,6 @@
  * is _not_ free()'d!
  */
 void *Hash_Delete(Hash *h, uint key1, uint key2);
-/**
- * Sets the value associated with the given key pair to the given value.
- * Returns the old value if the value was replaced, NULL when it was not yet present.
- */
-void *Hash_Set(Hash *h, uint key1, uint key2, void *value);
 
 /* Call these function to create/destroy a hash */