|
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().
1.7.6.1