mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-31 02:19:09 +00:00
(svn r20874) -Codechange: Make init_AyStar a method.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
@@ -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 */
|
||||
|
@@ -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();
|
||||
}
|
||||
|
Reference in New Issue
Block a user