BWAPI
SnippyHolloW-BroodwarBotQ-f01ab56/src/Macro/BasesManager.h
Go to the documentation of this file.
00001 #pragma once
00002 #include <map>
00003 #include <set>
00004 #include <BWAPI.h>
00005 #include <BWTA.h>
00006 #include "Macro/Arbitrator.h"
00007 #include <Macro/Base.h>
00008 #include <Macro/BorderManager.h>
00009 
00010 class BasesManager
00011 {
00012 public:
00013         static BasesManager* create();
00014         static void destroy();
00015 
00016         void setBorderManager(BorderManager* borderManager);
00017         void update();
00018 
00019         Base* getBase(BWTA::BaseLocation* location);
00020         void expand(BWTA::BaseLocation* location = NULL);
00021         void setFirstGasPop(int pop);
00022 
00023         const std::list<Base*>& getAllBases() const;
00024         std::set<BWTA::Region*> getRegionsBases() const;
00025         const std::set<Base*>& getActiveBases() const;
00026         const std::set<Base*>& getReadyBases() const;
00027         const std::set<Base*>& getDestroyedBases() const;
00028 
00029         std::string getName();
00030         void onUnitDestroy(BWAPI::Unit* unit);
00031 
00032 private:
00033         int firstGasPop;
00034         bool expanding;
00035         BasesManager();
00036         ~BasesManager();
00037         std::list<Base*> allBases;
00038         std::map<BWTA::BaseLocation*, Base*> location2base;
00039         std::set<Base*> activeBases;
00040         std::set<Base*> readyBases;
00041         std::set<Base*> destroyedBases;
00042 };
00043 extern BasesManager* TheBasesManager;
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines