summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoralberth <alberth@openttd.org>2010-10-02 19:29:00 +0000
committeralberth <alberth@openttd.org>2010-10-02 19:29:00 +0000
commit9b21dfaeb0183d6e7813480d04e371827b1a073d (patch)
treee33a67b04e79f476ffb512b7cf7b45d5d58f3a0d /src
parenta8af2c97c1921fd6b87c8120d389052c261b6e17 (diff)
downloadopenttd-9b21dfaeb0183d6e7813480d04e371827b1a073d.tar.xz
(svn r20874) -Codechange: Make init_AyStar a method.
Diffstat (limited to 'src')
-rw-r--r--src/pathfinder/npf/aystar.cpp13
-rw-r--r--src/pathfinder/npf/aystar.h9
-rw-r--r--src/pathfinder/npf/npf.cpp2
3 files changed, 12 insertions, 12 deletions
diff --git a/src/pathfinder/npf/aystar.cpp b/src/pathfinder/npf/aystar.cpp
index b563a20d2..951ce9f32 100644
--- a/src/pathfinder/npf/aystar.cpp
+++ b/src/pathfinder/npf/aystar.cpp
@@ -277,15 +277,20 @@ void AyStar::AddStartNode(AyStarNode *start_node, uint g)
AyStarMain_OpenList_Add(this, NULL, start_node, 0, g);
}
-void init_AyStar(AyStar *aystar, Hash_HashProc hash, uint num_buckets)
+/**
+ * Initialize an #AyStar. You should fill all appropriate fields before
+ * calling #Init (see the declaration of #AyStar for which fields are
+ * internal.
+ */
+void AyStar::Init(Hash_HashProc hash, uint num_buckets)
{
/* Allocated the Hash for the OpenList and ClosedList */
- init_Hash(&aystar->OpenListHash, hash, num_buckets);
- init_Hash(&aystar->ClosedListHash, hash, num_buckets);
+ init_Hash(&this->OpenListHash, hash, num_buckets);
+ init_Hash(&this->ClosedListHash, hash, num_buckets);
/* Set up our sorting queue
* BinaryHeap allocates a block of 1024 nodes
* When that one gets full it reserves another one, till this number
* That is why it can stay this high */
- aystar->OpenListQueue.Init(102400);
+ this->OpenListQueue.Init(102400);
}
diff --git a/src/pathfinder/npf/aystar.h b/src/pathfinder/npf/aystar.h
index 199e3d944..92e8d39c8 100644
--- a/src/pathfinder/npf/aystar.h
+++ b/src/pathfinder/npf/aystar.h
@@ -139,6 +139,8 @@ struct AyStar {
AyStarNode neighbours[12];
byte num_neighbours;
+ void Init(Hash_HashProc hash, uint num_buckets);
+
/* These will contain the methods for manipulating the AyStar. Only
* Main() should be called externally */
void AddStartNode(AyStarNode *start_node, uint g);
@@ -159,11 +161,4 @@ struct AyStar {
Hash OpenListHash;
};
-
-/* Initialize an AyStar. You should fill all appropriate fields before
- * callling init_AyStar (see the declaration of AyStar for which fields are
- * internal */
-void init_AyStar(AyStar *aystar, Hash_HashProc hash, uint num_buckets);
-
-
#endif /* AYSTAR_H */
diff --git a/src/pathfinder/npf/npf.cpp b/src/pathfinder/npf/npf.cpp
index 2cad61e65..04213b405 100644
--- a/src/pathfinder/npf/npf.cpp
+++ b/src/pathfinder/npf/npf.cpp
@@ -1081,7 +1081,7 @@ void InitializeNPF()
static bool first_init = true;
if (first_init) {
first_init = false;
- init_AyStar(&_npf_aystar, NPFHash, NPF_HASH_SIZE);
+ _npf_aystar.Init(NPFHash, NPF_HASH_SIZE);
} else {
_npf_aystar.Clear();
}