BWAPI
|
#include <LatencyTracker.h>
Public Member Functions | |
LatencyTrackerClass () | |
void | update () |
void | placingStorm (Unit unit, Position pos) |
void | placingStasis (Unit unit, Position pos) |
bool | isStormInRange (Unit unit) |
bool | isStasisInRange (Unit unit) |
Private Attributes | |
std::map< Unit, std::pair < Position, int > > | mStormedPositions |
std::map< Unit, std::pair < Position, int > > | mStasisPositions |
Definition at line 8 of file LatencyTracker.h.
LatencyTrackerClass::LatencyTrackerClass | ( | ) | [inline] |
Definition at line 11 of file LatencyTracker.h.
{}
bool LatencyTrackerClass::isStasisInRange | ( | Unit | unit | ) |
Definition at line 50 of file LatencyTracker.cpp.
References mStasisPositions, and StasisRadius.
{ if(mStasisPositions.empty()) return false; for(std::map<Unit, std::pair<Position, int>>::iterator it = mStasisPositions.begin(); it != mStasisPositions.end(); ++it) { if(it->second.first.getApproxDistance(unit->getPosition()) <= StasisRadius) return true; } return false; }
bool LatencyTrackerClass::isStormInRange | ( | Unit | unit | ) |
Definition at line 36 of file LatencyTracker.cpp.
References mStormedPositions, and StormRadius.
{ if(mStormedPositions.empty()) return false; for(std::map<Unit, std::pair<Position, int>>::iterator it = mStormedPositions.begin(); it != mStormedPositions.end(); ++it) { if(it->second.first.getApproxDistance(unit->getPosition()) <= StormRadius) return true; } return false; }
void LatencyTrackerClass::placingStasis | ( | Unit | unit, |
Position | pos | ||
) |
Definition at line 31 of file LatencyTracker.cpp.
References BWAPI::Broodwar, and mStasisPositions.
{ mStasisPositions[unit] = std::make_pair(pos, BWAPI::Broodwar->getFrameCount() + BWAPI::Broodwar->getRemainingLatencyFrames()); }
void LatencyTrackerClass::placingStorm | ( | Unit | unit, |
Position | pos | ||
) |
Definition at line 26 of file LatencyTracker.cpp.
References BWAPI::Broodwar, and mStormedPositions.
{ mStormedPositions[unit] = std::make_pair(pos, BWAPI::Broodwar->getFrameCount() + BWAPI::Broodwar->getRemainingLatencyFrames()); }
void LatencyTrackerClass::update | ( | ) |
Definition at line 6 of file LatencyTracker.cpp.
References BWAPI::Broodwar, BWAPI::Orders::CastPsionicStorm, BWAPI::Orders::CastStasisField, BWAPI::Game::getFrameCount(), mStasisPositions, and mStormedPositions.
{ const int time = BWAPI::Broodwar->getFrameCount(); for(std::map<Unit, std::pair<Position, int>>::iterator it = mStormedPositions.begin(); it != mStormedPositions.end();) { if(!it->first->exists() || (it->first->getOrder() != BWAPI::Orders::CastPsionicStorm && time > it->second.second)) mStormedPositions.erase(it++); else ++it; } for(std::map<Unit, std::pair<Position, int>>::iterator it = mStasisPositions.begin(); it != mStasisPositions.end();) { if(!it->first->exists() || (it->first->getOrder() != BWAPI::Orders::CastStasisField && time > it->second.second)) mStasisPositions.erase(it++); else ++it; } }
std::map<Unit, std::pair<Position, int> > LatencyTrackerClass::mStasisPositions [private] |
Definition at line 23 of file LatencyTracker.h.
Referenced by isStasisInRange(), placingStasis(), and update().
std::map<Unit, std::pair<Position, int> > LatencyTrackerClass::mStormedPositions [private] |
Definition at line 22 of file LatencyTracker.h.
Referenced by isStormInRange(), placingStorm(), and update().