$treeview $search $mathjax
Stratagus  2.2.7
$projectbrief
$projectbrief
$searchbox
-->
         _________ __                 __
        /   _____//  |_____________ _/  |______     ____  __ __  ______
        \_____  \\   __\_  __ \__  \\   __\__  \   / ___\|  |  \/  ___/
        /        \|  |  |  | \// __ \|  |  / __ \_/ /_/  >  |  /\___ \
       /_______  /|__|  |__|  (____  /__| (____  /\___  /|____//____  >
               \/                  \/          \//_____/            \/
    ______________________                           ______________________
                          T H E   W A R   B E G I N S
                   Stratagus - A free fantasy real time strategy game engine

src/pathfinder/pathfinder.cpp File Reference

#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.
void FreeAStar ()
 free the a* data structures
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.
void InitPathfinder ()
 Init the pathfinder.
void FreePathfinder ()
 Free the pathfinder.
int PlaceReachable (const CUnit &src, const Vec2i &goalPos, int w, int h, int minrange, int range)
int UnitReachable (const CUnit &src, const CUnit &dst, int range)
 Return distance to unit.
static int NewPath (PathFinderInput &input, PathFinderOutput &output)
int NextPathElement (CUnit &unit, short int *pxd, short int *pyd)
 Returns the next element of the path.

Function Documentation

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.

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 int NewPath ( PathFinderInput input,
PathFinderOutput output 
) [static]

Find new path.

The destination could be a unit or a field. Range gives how far we must reach the goal.

Note:
The destination could become negative coordinates!
Parameters:
unit Path for this unit.
Returns:
>0 remaining path length, 0 wait for path, -1 reached goal, -2 can't reach the goal.

int NextPathElement ( CUnit unit,
short int *  pxd,
short int *  pyd 
)

Returns the next element of the path.

Returns the next element of a path.

Parameters:
unit Unit that wants the path element.
pxd Pointer for the x direction.
pyd Pointer for the y direction.
Returns:
>0 remaining path length, 0 wait for path, -1 reached goal, -2 can't reach the goal.

int PlaceReachable ( const CUnit src,
const Vec2i goalPos,
int  w,
int  h,
int  minrange,
int  range 
)

Can the unit 'src' reach the place goalPos.

Parameters:
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.
Returns:
Distance to place.

int UnitReachable ( const CUnit src,
const CUnit dst,
int  range 
)

Return distance to unit.

Can the unit 'src' reach the unit 'dst'.

Parameters:
src Unit for the path.
dst Unit to be reached.
range Range to unit.
Returns:
Distance to place.

(C) Copyright 1998-2012 by The Stratagus Project under the GNU General Public License.
All trademarks and copyrights on this page are owned by their respective owners.