struct AgentPathfindingProperties { IAISystem::tNavCapMask navCapMask; float triangularResistanceFactor; float waypointResistanceFactor; float flightResistanceFactor; float volumeResistanceFactor; float roadResistanceFactor; float waterResistanceFactor; float maxWaterDepth; float minWaterDepth; float exposureFactor; float dangerCost; float zScale; uint32 customNavCapsMask; float radius; float height; float maxSlope; int id; bool avoidObstacles; };
IAgent.h
In practice, rather than modifying/setting all these values explicitly when making a pathfind request, I suggest you set up bunch of constant sets of properties, and use them.
bool avoidObstacles;
uint32 customNavCapsMask;
float dangerCost;
float exposureFactor;
float flightResistanceFactor;
float height;
int id;
NOTE Aug 17, 2009:
float maxSlope;
Only travel if water depth is between min and max values.
float maxWaterDepth;
float minWaterDepth;
IAISystem::tNavCapMask navCapMask;
Kind of nodes this agent can traverse. Expected to normally be set just once when the agent is created.
float radius;
float roadResistanceFactor;
float triangularResistanceFactor;
Basic extra costs associated with traversing each node type. Everything below here could be reasonably set/modified each time a pathfind request is made.
float volumeResistanceFactor;
Additional cost modifiers.
float waterResistanceFactor;
float waypointResistanceFactor;
Quantity the z component should be scaled by when calculating distances.
float zScale;
AgentPathfindingProperties();
AgentPathfindingProperties(IAISystem::tNavCapMask navCapMask, float triangularResistanceFactor, float waypointResistanceFactor, float flightResistanceFactor, float volumeResistanceFactor, float roadResistanceFactor, float waterResistanceFactor, float maxWaterDepth, float minWaterDepth, float exposureFactor, float dangerCost, float zScale, uint32 _customNavCapsMask = 0, float radius = 0.3f, float height = 2.0f, float maxSlope = 0.0f, int id = -1, bool avoidObstacles = true);
void SetToDefaults();