You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.7 KiB
58 lines
1.7 KiB
//========= 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 |
|
|
|
|
|
|