UFO: Alien Invasion
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
pqueue.h File Reference

Header file for the priority queue implementation. More...

#include "../shared/shared.h"

Go to the source code of this file.

Data Structures

struct  priorityQueueElement_s
 
struct  priorityQueue_s
 the priority queue struct the actual data is stored in priorityQueueElement_t More...
 

Macros

#define PQueueIsEmpty(pq)   ((pq)->currentSize == 0)
 

Typedefs

typedef int priorityQueueRating_t
 
typedef struct
priorityQueueElement_s 
priorityQueueElement_t
 
typedef struct priorityQueue_s priorityQueue_t
 the priority queue struct the actual data is stored in priorityQueueElement_t More...
 

Functions

void PQueueInitialise (priorityQueue_t *pq, uint32_t maxElements)
 initialise the priority queue with a maximum size of maxelements. More...
 
void PQueueFree (priorityQueue_t *pq)
 free up memory for pqueue More...
 
void PQueuePush (priorityQueue_t *pq, const pos4_t item, priorityQueueRating_t rating)
 
void PQueuePop (priorityQueue_t *pq, pos4_t item)
 remove the first node from the pqueue and provide a pointer to it More...
 

Detailed Description

Header file for the priority queue implementation.

Definition in file pqueue.h.

Macro Definition Documentation

#define PQueueIsEmpty (   pq)    ((pq)->currentSize == 0)

Definition at line 48 of file pqueue.h.

Referenced by Grid_CalcPathing(), Grid_FindPath(), and PQueuePop().

Typedef Documentation

the priority queue struct the actual data is stored in priorityQueueElement_t

Definition at line 28 of file pqueue.h.

Function Documentation

void PQueueFree ( priorityQueue_t pq)

free up memory for pqueue

Definition at line 83 of file pqueue.cpp.

References priorityQueue_s::elements, and Mem_Free.

Referenced by Grid_CalcPathing(), and Grid_FindPath().

void PQueueInitialise ( priorityQueue_t pq,
uint32_t  maxElements 
)

initialise the priority queue with a maximum size of maxelements.

Definition at line 36 of file pqueue.cpp.

References priorityQueue_s::currentSize, priorityQueue_s::elements, priorityQueue_s::maxSize, Mem_AllocTypeN, and Sys_Error().

Referenced by Grid_CalcPathing(), and Grid_FindPath().

void PQueuePop ( priorityQueue_t pq,
pos4_t  item 
)

remove the first node from the pqueue and provide a pointer to it

Definition at line 91 of file pqueue.cpp.

References priorityQueue_s::currentSize, priorityQueue_s::elements, i, priorityQueueElement_s::item, PQ_FIRST_ENTRY, PQ_LEFT_CHILD_INDEX, PQueueIsEmpty, and priorityQueueElement_s::rating.

Referenced by Grid_CalcPathing(), and Grid_FindPath().