BWAPI
Public Member Functions | Private Attributes
LatencyTrackerClass Class Reference

#include <LatencyTracker.h>

List of all members.

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

Detailed Description

Definition at line 8 of file LatencyTracker.h.


Constructor & Destructor Documentation

Definition at line 11 of file LatencyTracker.h.

{}

Member Function Documentation

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;
}

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;
}

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());
}

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());
}

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;
        }
}

Here is the call graph for this function:


Member Data Documentation

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


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines