BWAPI
|
00001 #include "Chokepoint.h" 00002 00003 #include "Region.h" 00004 00005 ChokepointClass::ChokepointClass(Position side1, Position side2, int clearance) 00006 : mSides(side1, side2) 00007 , mClearance(clearance) 00008 , mCenter((side1.x() + side2.x()) / 2, (side1.y() + side2.y()) / 2) 00009 { 00010 } 00011 00012 void ChokepointClass::addChokepointTile(WeakRegion region, TilePosition tile) 00013 { 00014 if(region.lock() == mRegions.first.lock()) 00015 mChoketiles.first = tile; 00016 00017 if(region.lock() == mRegions.second.lock()) 00018 mChoketiles.second = tile; 00019 } 00020 00021 std::pair<Region, Region> ChokepointClass::getRegions() 00022 { 00023 return std::make_pair(mRegions.first.lock(), mRegions.second.lock()); 00024 } 00025 00026 void ChokepointClass::draw(BWAPI::Color color) 00027 { 00028 BWAPI::Broodwar->drawLine(BWAPI::CoordinateType::Map, mSides.first.x(), mSides.first.y(), mSides.second.x(), mSides.second.y(), color); 00029 00030 BWAPI::Broodwar->drawBox(BWAPI::CoordinateType::Map, mChoketiles.first.x()*32, mChoketiles.first.y()*32, mChoketiles.first.x()*32+31, mChoketiles.first.y()*32+31, color); 00031 BWAPI::Broodwar->drawBox(BWAPI::CoordinateType::Map, mChoketiles.second.x()*32, mChoketiles.second.y()*32, mChoketiles.second.x()*32+31, mChoketiles.second.y()*32+31, color); 00032 00033 BWAPI::Broodwar->drawLine(BWAPI::CoordinateType::Map, mChoketiles.first.x()*32+16, mChoketiles.first.y()*32+16, mCenter.x(), mCenter.y(), color); 00034 BWAPI::Broodwar->drawLine(BWAPI::CoordinateType::Map, mChoketiles.second.x()*32+16, mChoketiles.second.y()*32+16, mCenter.x(), mCenter.y(), color); 00035 00036 BWAPI::Broodwar->drawCircle(BWAPI::CoordinateType::Map, mCenter.x(), mCenter.y(), 32, color); 00037 }