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.
44 lines
1.5 KiB
44 lines
1.5 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// tf_bot_vision.h |
|
// Team Fortress NextBot vision interface |
|
// Michael Booth, May 2009 |
|
|
|
#ifndef TF_BOT_VISION_H |
|
#define TF_BOT_VISION_H |
|
|
|
#include "NextBotVisionInterface.h" |
|
|
|
//---------------------------------------------------------------------------- |
|
class CTFBotVision : public IVision |
|
{ |
|
public: |
|
CTFBotVision( INextBot *bot ) : IVision( bot ) |
|
{ |
|
} |
|
|
|
virtual ~CTFBotVision() { } |
|
|
|
virtual void Update( void ); // update internal state |
|
|
|
/** |
|
* Populate "potentiallyVisible" with the set of all entities we could potentially see. |
|
* Entities in this set will be tested for visibility/recognition in IVision::Update() |
|
*/ |
|
virtual void CollectPotentiallyVisibleEntities( CUtlVector< CBaseEntity * > *potentiallyVisible ); |
|
|
|
virtual bool IsIgnored( CBaseEntity *subject ) const; // return true to completely ignore this entity (may not be in sight when this is called) |
|
virtual bool IsVisibleEntityNoticed( CBaseEntity *subject ) const; // return true if we 'notice' the subject, even though we have LOS to it |
|
|
|
virtual float GetMaxVisionRange( void ) const; // return maximum distance vision can reach |
|
virtual float GetMinRecognizeTime( void ) const; // return VISUAL reaction time |
|
|
|
private: |
|
CUtlVector< CHandle< CBaseCombatCharacter > > m_potentiallyVisibleNPCVector; |
|
CountdownTimer m_potentiallyVisibleUpdateTimer; |
|
void UpdatePotentiallyVisibleNPCVector( void ); |
|
|
|
CountdownTimer m_scanTimer; |
|
}; |
|
|
|
|
|
#endif // TF_BOT_VISION_H
|