#pragma once #include #include #include #include #include #include namespace BWTA { void readMap(); void analyze(); const std::set& getRegions(); const std::set& getChokepoints(); const std::set& getBaseLocations(); const std::set& getStartLocations(); const std::set& getUnwalkablePolygons(); BaseLocation* getStartLocation(BWAPI::Player* player); Region* getRegion(int x, int y); Region* getRegion(BWAPI::TilePosition tileposition); Region* getRegion(BWAPI::Position position); Chokepoint* getNearestChokepoint(int x, int y); Chokepoint* getNearestChokepoint(BWAPI::TilePosition tileposition); Chokepoint* getNearestChokepoint(BWAPI::Position position); BaseLocation* getNearestBaseLocation(int x, int y); BaseLocation* getNearestBaseLocation(BWAPI::TilePosition tileposition); BaseLocation* getNearestBaseLocation(BWAPI::Position position); Polygon* getNearestUnwalkablePolygon(int x, int y); Polygon* getNearestUnwalkablePolygon(BWAPI::TilePosition tileposition); BWAPI::Position getNearestUnwalkablePosition(BWAPI::Position position); bool isConnected(int x1, int y1, int x2, int y2); bool isConnected(BWAPI::TilePosition a, BWAPI::TilePosition b); double getGroundDistance(BWAPI::TilePosition start, BWAPI::TilePosition end); std::pair getNearestTilePosition(BWAPI::TilePosition start, const std::set& targets); std::map getGroundDistances(BWAPI::TilePosition start, const std::set& targets); void getGroundDistanceMap(BWAPI::TilePosition start, RectangleArray& distanceMap); void getGroundWalkDistanceMap(int walkx, int walky, RectangleArray& distanceMap); std::vector getShortestPath(BWAPI::TilePosition start, BWAPI::TilePosition end); std::vector getShortestPath(BWAPI::TilePosition start, const std::set& targets); }