home *** CD-ROM | disk | FTP | other *** search
/ AI Game Programming Wisdom / AIGameProgrammingWisdom.iso / SourceCode / 02 Useful Techniques / 02 Orkin / Agent.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-07-01  |  1.2 KB  |  44 lines

  1. #ifndef __AGENT_H__
  2. #define __AGENT_H__
  3.  
  4. #pragma warning(disable:4786)
  5. #include "Vector.h"
  6.  
  7. struct TriggerRecordStruct;
  8.  
  9.  
  10. class CAgent 
  11. {
  12. public:
  13.  
  14.     CAgent();
  15.  
  16.     const Vector&        GetPosition() const { return m_vPos; }
  17.     const unsigned long    GetTriggerFlags() const { return m_flagTriggerFlags; }
  18.     const float            GetTriggerUpdateRate() const { return m_fTriggerUpdateRate; }
  19.     const float            GetTriggerDistance() const { return m_fTriggerDistance; }
  20.     const unsigned long    GetNextTriggerUpdate() const { return m_nNextTriggerUpdate; }
  21.  
  22.     void                SetID(unsigned long id) { m_id = id; }
  23.     void                SetPosition(Vector& vPos) { m_vPos = vPos; }
  24.     void                SetTriggerFlags(unsigned long flags) { m_flagTriggerFlags = flags; }
  25.     void                SetNextTriggerUpdate(unsigned long nNextTriggerUpdate) { m_nNextTriggerUpdate = nNextTriggerUpdate; }
  26.  
  27.     virtual bool        HandleTrigger(TriggerRecordStruct* pRecord);
  28.  
  29. protected:
  30.  
  31.     unsigned long    m_id;
  32.     Vector            m_vPos;
  33.     float            m_fTriggerUpdateRate; 
  34.     unsigned long    m_nNextTriggerUpdate;
  35.     unsigned long    m_lastTriggerTime;
  36.     float            m_fTriggerDistance;
  37.     unsigned long    m_flagTriggerFlags;
  38. };
  39.  
  40. extern CAgent* g_pAgentList[100];
  41. extern unsigned long g_nNumAgents;
  42.  
  43. #endif
  44.