1
0
Fork 0

(svn r20874) -Codechange: Make init_AyStar a method.

release/1.1
alberth 2010-10-02 19:29:00 +00:00
parent a8af2c97c1
commit 9b21dfaeb0
3 changed files with 12 additions and 12 deletions

View File

@ -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);
}

View File

@ -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 */

View File

@ -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();
}