31 lines
620 B
C
31 lines
620 B
C
#ifndef PIXELDEFENSE_PATHFINDING_H
|
|
#define PIXELDEFENSE_PATHFINDING_H
|
|
|
|
#include <breeze.h>
|
|
|
|
#include "components.h"
|
|
|
|
typedef struct PathNode {
|
|
i32 weight; // fCost = g + h
|
|
i32 gCost; // from start cost
|
|
i32 hCost; // to target cost
|
|
bool visited;
|
|
TilePosition pos;
|
|
} PathNode;
|
|
|
|
typedef struct PathfindingDesc {
|
|
TilePosition start;
|
|
TilePosition target;
|
|
BzObjectPool *pool;
|
|
BzTileMap *map;
|
|
PathNode *openSet; // heap
|
|
Path *outPath;
|
|
} PathfindingDesc;
|
|
|
|
bool findPath(const PathfindingDesc *desc);
|
|
|
|
// TODO: Flowfield
|
|
void calculateFlowField();
|
|
|
|
#endif //PIXELDEFENSE_PATHFINDING_H
|