$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/include/pathfinder.h File Reference

#include <queue>
#include "vec2i.h"

Go to the source code of this file.


Classes

class  PathFinderInput
class  PathFinderOutput
class  PathFinderData
class  TerrainTraversal
struct  TerrainTraversal::PosNode

pathfinder.h - The path finder headerfile.

#define STDCALL
#define AstarDebugPrint(x)
enum  _move_return_ {
  PF_FAILED = -3, PF_UNREACHABLE = -2, PF_REACHED = -1, PF_WAIT = 0,
  PF_MOVE = 1
}
enum  VisitResult { VisitResult_Finished, VisitResult_DeadEnd, VisitResult_Ok, VisitResult_Cancel }
int AStarFixedUnitCrossingCost
 cost associated to move on a tile occupied by a fixed unit
int AStarMovingUnitCrossingCost
 cost associated to move on a tile occupied by a moving unit
bool AStarKnowUnseenTerrain
 Whether to have knowledge of terrain that we haven't visited yet.
int AStarUnknownTerrainCost
 Cost of using a square we haven't seen before.
const int Heading2X [9]
const int Heading2Y [9]
const int XY2Heading [3][3]
void InitPathfinder ()
 Init the pathfinder.
void FreePathfinder ()
 Free the pathfinder.
int NextPathElement (CUnit &unit, short int *xdp, short int *ydp)
 Returns the next element of the path.
int UnitReachable (const CUnit &unit, const CUnit &dst, int range)
 Return distance to unit.
int PlaceReachable (const CUnit &src, const Vec2i &pos, int w, int h, int minrange, int maxrange)
 Can the unit 'src' reach the place x,y.
void SetAStarFixedUnitCrossingCost (int cost)
int GetAStarFixedUnitCrossingCost ()
void SetAStarMovingUnitCrossingCost (int cost)
int GetAStarMovingUnitCrossingCost ()
void SetAStarUnknownTerrainCost (int cost)
int GetAStarUnknownTerrainCost ()
void PathfinderCclRegister ()

Define Documentation

#define AstarDebugPrint (  ) 

#define STDCALL


Enumeration Type Documentation

Result codes of the pathfinder.

Todo:
Another idea is SINT_MAX as reached, SINT_MIN as unreachable stop others how far to goal.
Enumerator:
PF_FAILED 
PF_UNREACHABLE  This Pathfinder failed, try another.
PF_REACHED  Unreachable stop.
PF_WAIT  Reached goal stop.
PF_MOVE  Wait, no time or blocked.

Enumerator:
VisitResult_Finished 
VisitResult_DeadEnd 
VisitResult_Ok 
VisitResult_Cancel 


Function Documentation

void FreePathfinder (  ) 

Free the pathfinder.

Free the pathfinder

int GetAStarFixedUnitCrossingCost (  ) 

int GetAStarMovingUnitCrossingCost (  ) 

int GetAStarUnknownTerrainCost (  ) 

void InitPathfinder (  ) 

Init the pathfinder.

Init the pathfinder

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.

void PathfinderCclRegister (  ) 

Register CCL features for pathfinder.

int PlaceReachable ( const CUnit src,
const Vec2i pos,
int  w,
int  h,
int  minrange,
int  maxrange 
)

Can the unit 'src' reach the place x,y.

void SetAStarFixedUnitCrossingCost ( int  cost  ) 

void SetAStarMovingUnitCrossingCost ( int  cost  ) 

void SetAStarUnknownTerrainCost ( int  cost  ) 

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.


Variable Documentation

cost associated to move on a tile occupied by a fixed unit

Whether to have knowledge of terrain that we haven't visited yet.

cost associated to move on a tile occupied by a moving unit

Cost of using a square we haven't seen before.

const int Heading2X[9]

const int Heading2Y[9]

const int XY2Heading[3][3]

(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.