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
|