BWAPI
Skynet/Skynet/Chokepoint.cpp
Go to the documentation of this file.
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 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines