|
BWAPI
|
00001 #pragma once 00002 00003 #include "Interface.h" 00004 00005 #include "Singleton.h" 00006 #include "BorderPosition.h" 00007 00008 class BorderTrackerClass 00009 { 00010 public: 00011 BorderTrackerClass(){} 00012 00013 const std::map<PositionType, std::set<BorderPosition>>& getBorderPositions() const { return mBorderPositions; } 00014 const std::set<BorderPosition>& getBorderPositions(PositionType type) { return mBorderPositions[type]; } 00015 00016 void onBegin(); 00017 void update(); 00018 00019 void toggleDebugInfo() { mShowDebugInfo = !mShowDebugInfo; } 00020 00021 private: 00022 void recalculateBorders(); 00023 00024 std::map<PositionType, std::set<BorderPosition>> mBorderPositions; 00025 00026 std::set<Base> mMyBases; 00027 std::set<Base> mEnemyBases; 00028 00029 std::set<Region> mMyRegions; 00030 std::set<Region> mMyForwardRegions; 00031 std::set<Region> mEnemyRegions; 00032 00033 std::set<Chokepoint> mMyBorder; 00034 std::set<Chokepoint> mMyForwardBorder; 00035 std::set<Chokepoint> mEnemyBorder; 00036 00037 bool mShowDebugInfo; 00038 00039 std::set<Region> mLargeRegions; 00040 00041 void drawDebugInfo(std::map<PositionType, std::set<BorderPosition>>::const_iterator it); 00042 }; 00043 00044 typedef Singleton<BorderTrackerClass> BorderTracker;
1.7.6.1