BWAPI
SnippyHolloW-BroodwarBotQ-f01ab56/src/Intelligence/EUnitsFilter.h
Go to the documentation of this file.
00001 #pragma once
00002 #include "Defines.h"
00003 #include "Utils/CSingleton.h"
00004 #include "Utils/TimeManager.h"
00005 #include "EViewedUnit.h"
00006 #include <BWTA.h>
00007 #include <BWAPI.h>
00008 #include <map>
00009 #include <utility>
00010 
00011 // This class works closely tied to MapManager (see MapManager::update())
00012 class EUnitsFilter : public CSingleton<EUnitsFilter>
00013 {
00014     friend class CSingleton<EUnitsFilter>;
00015     EUnitsFilter();
00016     ~EUnitsFilter() { }
00017     TimeManager* timeManager;
00018     std::set<BWAPI::UnitType> _interestingTypes;
00019     std::map<BWAPI::Unit*, EViewedUnit> _eViewedUnits;
00020     std::map<BWAPI::Unit*, std::pair<BWAPI::UnitType, BWAPI::Position> > _invisibleUnits;
00021 public:
00022     //std::map<BWAPI::Unit*, EViewedUnit> _eViewedUnits;
00023 
00024     void update(BWAPI::Unit* u);
00025     void filter(BWAPI::Unit* u);
00026     void onUnitDestroy(BWAPI::Unit* u);
00027     void onUnitMorph(BWAPI::Unit* u);
00028     void onUnitShow(BWAPI::Unit* u);
00029     void onUnitHide(BWAPI::Unit* u);
00030     void onUnitRenegade(BWAPI::Unit* u);
00031 
00032     const std::map<BWAPI::Unit*, EViewedUnit>& getViewedUnits();
00033     EViewedUnit getViewedUnit(BWAPI::Unit* u);
00034     int getNumbersType(BWAPI::UnitType ut);
00035         BWAPI::Unit* getClosestCenter(BWTA::BaseLocation* b);
00036     const std::map<BWAPI::Unit*, std::pair<BWAPI::UnitType, BWAPI::Position> >& getInvisibleUnits();
00037     bool empty();
00038 #ifdef __DEBUG__
00039     void bwOutput();
00040 #endif
00041     virtual void update();
00042 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines