BWAPI
SPAR/AIModule/SparAIModule/UnitData.h
Go to the documentation of this file.
00001 #pragma once
00002 #include <BWAPI.h>
00003 
00004 // Separate between OwnUnitData/NeutralUnitData/EnemyUnitData?
00005 
00006 class PrimitiveLocation;
00007 
00008 class UnitData
00009 {
00010 public:
00011   UnitData(BWAPI::Unit* unit)
00012     : m_unit(unit)
00013     , m_location(NULL)
00014     , m_data(NULL)
00015   {
00016     m_unit->setClientInfo(this);
00017   }
00018 
00019   virtual ~UnitData()
00020   {
00021     m_unit->setClientInfo(NULL);
00022   }
00023 
00024 protected:
00025   friend class UnitManager;
00026   // TODO: delete
00027   friend class PrimitiveLocation;
00028 
00029   DECLARE_EVENT(OnIndividualUnitDestroy);
00030   EVENT(OnIndividualUnitDestroy) m_individualUnitDestroyEvent;
00031 
00032   DECLARE_EVENT(OnIndividualUnitEvade);
00033   EVENT(OnIndividualUnitEvade) m_individualUnitEvadeEvent;
00034   
00035   DECLARE_EVENT(OnIndividualUnitMorph);
00036   EVENT(OnIndividualUnitMorph) m_individualUnitMorphEvent;
00037 
00038   DECLARE_EVENT(OnIndividualUnitRenegade);
00039   EVENT(OnIndividualUnitRenegade) m_individualUnitRenegadeEvent;
00040 
00041   BWAPI::Unit* const m_unit;
00042 
00043   PrimitiveLocation* m_location;
00044   void* m_data; // TODO: this is a ghetto fix to point on the UnitLocationData*
00045 
00046   std::list<UnitData*>::const_iterator m_posInManager;
00047 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines