//========= Copyright Valve Corporation, All rights reserved. ============// // tf_path_follower.h // Simplified path following for TF2 // Author: Michael Booth, November 2010 #ifndef TF_PATH_FOLLOWER_H #define TF_PATH_FOLLOWER_H #include "nav_mesh.h" #include "nav_pathfind.h" #include "Path/NextBotPathFollow.h" class INextBot; class ILocomotion; //-------------------------------------------------------------------------------------------------------- /** * This is a simplified path follower that doesn't care about ladders, climbing, hindrances, etc. */ class CTFPathFollower : public PathFollower { public: CTFPathFollower( void ); virtual ~CTFPathFollower(); virtual void Invalidate( void ); // (EXTEND) cause the path to become invalid virtual void OnPathChanged( INextBot *bot, Path::ResultType result ); // invoked when the path is (re)computed (path is valid at the time of this call) virtual void Update( INextBot *bot ); // move bot along path virtual const Path::Segment *GetCurrentGoal( void ) const; // return current goal along the path we are trying to reach virtual void SetMinLookAheadDistance( float value ); // minimum range movement goal must be along path private: const Path::Segment *m_goal; // our current goal along the path float m_minLookAheadRange; // bool CheckProgress( INextBot *bot ); // bool IsAtGoal( INextBot *bot ) const; // return true if reached current path goal }; inline const Path::Segment *CTFPathFollower::GetCurrentGoal( void ) const { return m_goal; } inline void CTFPathFollower::SetMinLookAheadDistance( float value ) { m_minLookAheadRange = value; } #endif // TF_PATH_FOLLOWER_H