BWAPI
Skynet/Skynet/ScoutManager.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Interface.h"
00004 
00005 #include "Singleton.h"
00006 #include "ScoutData.h"
00007 #include "Base.h"
00008 #include "WorkerScoutTask.h"
00009 #include "ObserverScoutTask.h"
00010 
00011 class ScoutManagerClass
00012 {
00013 public:
00014         ScoutManagerClass(){}
00015 
00016         void onBegin();
00017         void update();
00018 
00019         void updateWorkerScouts();
00020         void updateObserverScouts();
00021 
00022         void updateLastScoutType(ScoutData data, ScoutType type);
00023 
00024         ScoutData getScoutData(ScoutUnitType unit);
00025 
00026         int getLastScoutTime(Base base) { return mLastScoutTime[base]; }
00027         ScoutType getLastScoutType(Base base) { return mLastScoutType[base]; }
00028         ScoutType getCurrentScoutType(Base base) { return mCurrentScoutType[base]; }
00029 
00030 private:
00031         std::set<ScoutData> mAllScoutData;
00032         std::list<ScoutData> mDataRequiringScout;
00033 
00034         std::map<Base, int> mLastScoutTime;
00035         std::map<Base, ScoutType> mLastScoutType;
00036         std::map<Base, ScoutType> mCurrentScoutType;
00037 
00038         std::set<WorkerScoutTaskPointer> mWorkerScouts;
00039         std::set<ObserverScoutTaskPointer> mObserverScouts;
00040 };
00041 
00042 typedef Singleton<ScoutManagerClass> ScoutManager;
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines