BWAPI
SnippyHolloW-BroodwarBotQ-f01ab56/src/Macro/InformationManager.h
Go to the documentation of this file.
00001 #pragma once
00002 #include <BWAPI.h>
00003 #include <BWTA.h>
00004 #include <map>
00005 class InformationManager
00006 {
00007   public:
00008     static InformationManager* create();
00009     static void destroy();
00010     void onUnitDiscover(BWAPI::Unit* unit);
00011     void onUnitEvade(BWAPI::Unit* unit);
00012     void onUnitDestroy(BWAPI::Unit* unit);
00013     BWAPI::Player* getPlayer(BWAPI::Unit* unit) const;
00014     BWAPI::UnitType getType(BWAPI::Unit* unit) const;
00015     BWAPI::Position getLastPosition(BWAPI::Unit* unit) const;
00016     int getLastSeenTime(BWAPI::Unit* unit) const;
00017     bool exists(BWAPI::Unit* unit) const;
00018     bool enemyHasBuilt(BWAPI::UnitType type) const;
00019     int getBuildTime(BWAPI::UnitType type) const;
00020     const std::set<BWTA::BaseLocation*>& getEnemyBases() const;
00021     void setBaseEmpty(BWTA::BaseLocation* base);
00022         void addEnemyBase(BWTA::BaseLocation* base);
00023   private:
00024     InformationManager();
00025     ~InformationManager();
00026     class UnitData
00027     {
00028       public:
00029         UnitData();
00030         BWAPI::Position position;
00031         BWAPI::UnitType type;
00032         BWAPI::Player* player;
00033         int lastSeenTime;
00034         bool exists;
00035     };
00036     void updateBuildTime(BWAPI::UnitType type, int time);
00037     std::map<BWAPI::Unit*, UnitData> savedData;
00038     std::map<BWAPI::UnitType, int> buildTime;
00039     std::set<BWTA::BaseLocation*> enemyBases;
00040     std::map<BWTA::BaseLocation*,BWAPI::Unit*> enemyBaseCenters;
00041     std::set<BWTA::BaseLocation*> startLocationCouldContainEnemy;
00042     bool scoutedAnEnemyBase;
00043 };
00044 extern InformationManager* TheInformationManager;
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines