_________ __ __ / _____// |_____________ _/ |______ ____ __ __ ______ \_____ \\ __\_ __ \__ \\ __\__ \ / ___\| | \/ ___/ / \| | | | \// __ \| | / __ \_/ /_/ > | /\___ \ /_______ /|__| |__| (____ /__| (____ /\___ /|____//____ > \/ \/ \//_____/ \/ ______________________ ______________________ T H E W A R B E G I N S Stratagus - A free fantasy real time strategy game engine
#include "stratagus.h"
#include "pathfinder.h"
#include "actions.h"
#include "map.h"
#include "unittype.h"
#include "unit.h"
Functions | |
pathfinder.cpp - The path finder routines. | |
void | InitAStar (int mapWidth, int mapHeight) |
Init the a* data structures. More... | |
void | FreeAStar () |
free the a* data structures More... | |
int | AStarFindPath (const Vec2i &startPos, const Vec2i &goalPos, int gw, int gh, int tilesizex, int tilesizey, int minrange, int maxrange, char *path, int pathlen, const CUnit &unit) |
Find and a* path for a unit. More... | |
void | InitPathfinder () |
Init the pathfinder. More... | |
void | FreePathfinder () |
Free the pathfinder. More... | |
int | PlaceReachable (const CUnit &src, const Vec2i &goalPos, int w, int h, int minrange, int range, bool from_outside_container) |
Can the unit 'src' reach the place x,y. More... | |
int | UnitReachable (const CUnit &src, const CUnit &dst, int range, bool from_outside_container) |
Return path length to unit 'dst'. More... | |
int | CalcPathLengthToUnit (const CUnit &src, const CUnit &dst, const int minrange, const int range) |
Return path length to unit 'dst' or error code. More... | |
static int | NewPath (PathFinderInput &input, PathFinderOutput &output) |
int | NextPathElement (CUnit &unit, short int *pxd, short int *pyd) |
Returns the next element of the path. More... | |
int AStarFindPath | ( | const Vec2i & | startPos, |
const Vec2i & | goalPos, | ||
int | gw, | ||
int | gh, | ||
int | tilesizex, | ||
int | tilesizey, | ||
int | minrange, | ||
int | maxrange, | ||
char * | path, | ||
int | pathlen, | ||
const CUnit & | unit | ||
) |
Find and a* path for a unit.
Find path.
int CalcPathLengthToUnit | ( | const CUnit & | src, |
const CUnit & | dst, | ||
const int | minrange, | ||
const int | range | ||
) |
Return path length to unit 'dst' or error code.
Calc path length for the unit 'src' to reach the unit 'dst'.
src | Unit for the path. |
dst | Unit to be reached. |
minrange | min range to the tile |
range | Range to the tile. |
change Path Finder setting to don't count tiles with enemy units as passable
restore Path Finder setting
void FreeAStar | ( | ) |
free the a* data structures
Free A* data structure
void FreePathfinder | ( | ) |
Free the pathfinder.
Free the pathfinder
void InitAStar | ( | int | mapWidth, |
int | mapHeight | ||
) |
Init the a* data structures.
Init A* data structures
void InitPathfinder | ( | ) |
Init the pathfinder.
Init the pathfinder
|
static |
Find new path.
The destination could be a unit or a field. Range gives how far we must reach the goal.
unit | Path for this unit. |
int NextPathElement | ( | CUnit & | unit, |
short int * | pxd, | ||
short int * | pyd | ||
) |
Returns the next element of the path.
Returns the next element of a path.
unit | Unit that wants the path element. |
pxd | Pointer for the x direction. |
pyd | Pointer for the y direction. |
int PlaceReachable | ( | const CUnit & | src, |
const Vec2i & | goalPos, | ||
int | w, | ||
int | h, | ||
int | minrange, | ||
int | range, | ||
bool | from_outside_container | ||
) |
Can the unit 'src' reach the place x,y.
Can the unit 'src' reach the place goalPos.
src | Unit for the path. |
goalPos | Map tile position. |
w | Width of Goal |
h | Height of Goal |
minrange | min range to the tile |
range | Range to the tile. |
change Path Finder setting to don't count tiles with enemy units as passable
restore Path Finder setting