diff options
Diffstat (limited to 'game/server/ai_eventresponse.h')
| -rw-r--r-- | game/server/ai_eventresponse.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/game/server/ai_eventresponse.h b/game/server/ai_eventresponse.h new file mode 100644 index 0000000..fedc140 --- /dev/null +++ b/game/server/ai_eventresponse.h @@ -0,0 +1,48 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: AI system that makes NPCs verbally respond to game events +// +//=============================================================================// + +#ifndef AI_EVENTRESPONSE_H +#define AI_EVENTRESPONSE_H + +#include "utldict.h" + +#define NPCEVENTRESPONSE_DISTANCE_SQR (768 * 768) // Maximum distance for responding to NPCs +#define NPCEVENTRESPONSE_REFIRE_TIME 15.0 // Time after giving a response before giving any more +#define NPCEVENTRESPONSE_GIVEUP_TIME 4.0 // Time after a response trigger was fired before discarding it without responding + +//----------------------------------------------------------------------------- +// Purpose: AI system that makes NPCs verbally respond to game events +//----------------------------------------------------------------------------- +class CNPCEventResponseSystem : public CAutoGameSystemPerFrame +{ +public: + CNPCEventResponseSystem( char const *name ) : CAutoGameSystemPerFrame( name ) + { + } + + void LevelInitPreEntity(); + void FrameUpdatePreEntityThink(); + void TriggerEvent( const char *pResponse, bool bForce, bool bCancelScript ); + +private: + float m_flNextEventPoll; + + struct storedevent_t + { + float flEventTime; + float flNextResponseTime; + bool bForce; + bool bCancelScript; + bool bPreventExpiration; + }; + + typedef CUtlDict< storedevent_t, int > EventMap; + EventMap m_ActiveEvents; +}; + +CNPCEventResponseSystem *NPCEventResponse(); + +#endif // AI_EVENTRESPONSE_H
\ No newline at end of file |