BWAPI
|
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 };