BWAPI
Public Member Functions | Private Attributes
BaseTrackerClass Class Reference

#include <BaseTracker.h>

List of all members.

Public Member Functions

 BaseTrackerClass ()
Base createBase (std::set< TilePosition > tiles, Region region, bool startLocation, TilePosition position=BWAPI::TilePositions::None, const UnitGroup &resources=UnitGroup())
void update ()
void onDiscover (Unit unit)
void onMorphRenegade (Unit unit, Player previousPlayer, BWAPI::UnitType previousType)
void onDestroy (Unit unit)
const std::set< Base > & getAllBases () const
std::set< BasegetResourceBases ()
std::set< BasegetActiveBases (bool activeInFuture=false, Player player=BWAPI::Broodwar->self())
std::set< BasegetEnemyActiveBases (bool activeInFuture=false)
std::set< BasegetEnemyBases ()
std::set< BasegetAllyBases ()
std::set< BasegetPlayerBases (Player player=BWAPI::Broodwar->self())
std::set< BasegetImportantBases (Player player=BWAPI::Broodwar->self())
std::set< BasegetEnemyImportantBases ()
Base getBase (TilePosition location)

Private Attributes

std::set< BasemBases
std::map< TilePosition, BasemTileToBase

Detailed Description

Definition at line 8 of file BaseTracker.h.


Constructor & Destructor Documentation

Definition at line 6 of file BaseTracker.cpp.

{
}

Member Function Documentation

Base BaseTrackerClass::createBase ( std::set< TilePosition tiles,
Region  region,
bool  startLocation,
TilePosition  position = BWAPI::TilePositions::None,
const UnitGroup resources = UnitGroup() 
)

Definition at line 10 of file BaseTracker.cpp.

References mBases, mTileToBase, and BWAPI::TilePositions::None.

{
        Base base;
        if(position != BWAPI::TilePositions::None)
                base = Base(new BaseClass(position, resources, region, tiles, startLocation));
        else
                base = Base(new BaseClass(region, tiles, startLocation));

        for each(TilePosition tile in tiles)
                mTileToBase[tile] = base;
        
        mBases.insert(base);

        return base;
}
std::set< Base > BaseTrackerClass::getActiveBases ( bool  activeInFuture = false,
Player  player = BWAPI::Broodwar->self() 
)

Definition at line 74 of file BaseTracker.cpp.

References mBases.

{
        std::set<Base> bases;

        for each(Base base in mBases)
        {
                if(base->isActive(activeInFuture) && base->getPlayer() == player)
                        bases.insert(base);
        }

        return bases;
}
const std::set<Base>& BaseTrackerClass::getAllBases ( ) const [inline]

Definition at line 20 of file BaseTracker.h.

References mBases.

{ return mBases; };

Definition at line 113 of file BaseTracker.cpp.

References BWAPI::Broodwar, and mBases.

{
        std::set<Base> bases;

        for each(Base base in mBases)
        {
                if(BWAPI::Broodwar->self()->isAlly(base->getPlayer()))
                        bases.insert(base);
        }

        return bases;
}

Definition at line 30 of file BaseTracker.h.

References mTileToBase.

{ return mTileToBase[location]; }
std::set< Base > BaseTrackerClass::getEnemyActiveBases ( bool  activeInFuture = false)

Definition at line 87 of file BaseTracker.cpp.

References BWAPI::Broodwar, BWAPI::Player::isEnemy(), mBases, and BWAPI::Game::self().

{
        std::set<Base> bases;

        for each(Base base in mBases)
        {
                if(base->isActive(activeInFuture) && BWAPI::Broodwar->self()->isEnemy(base->getPlayer()))
                        bases.insert(base);
        }

        return bases;
}

Here is the call graph for this function:

Definition at line 100 of file BaseTracker.cpp.

References BWAPI::Broodwar, and mBases.

{
        std::set<Base> bases;

        for each(Base base in mBases)
        {
                if(BWAPI::Broodwar->self()->isEnemy(base->getPlayer()))
                        bases.insert(base);
        }

        return bases;
}

Definition at line 152 of file BaseTracker.cpp.

References BWAPI::Broodwar, and mBases.

{
        std::set<Base> bases;

        for each(Base base in mBases)
        {
                if(BWAPI::Broodwar->self()->isEnemy(base->getPlayer()) && (base->isActive(true) || base->getNumberOfTechBuildings() > 0))
                        bases.insert(base);
        }

        return bases;
}

Definition at line 139 of file BaseTracker.cpp.

References mBases.

{
        std::set<Base> bases;

        for each(Base base in mBases)
        {
                if(base->getPlayer() == player && (base->isActive(true) || base->getNumberOfTechBuildings() >= 2))
                        bases.insert(base);
        }

        return bases;
}
std::set< Base > BaseTrackerClass::getPlayerBases ( Player  player = BWAPI::Broodwar->self())

Definition at line 126 of file BaseTracker.cpp.

References mBases.

{
        std::set<Base> bases;

        for each(Base base in mBases)
        {
                if(base->getPlayer() == player)
                        bases.insert(base);
        }

        return bases;
}

Definition at line 61 of file BaseTracker.cpp.

References mBases.

{
        std::set<Base> bases;

        for each(Base base in mBases)
        {
                if(!base->isMinedOut())
                        bases.insert(base);
        }

        return bases;
}

Definition at line 53 of file BaseTracker.cpp.

References mBases.

{
        for each(Base base in mBases)
        {
                base->onDestroy(unit);
        }
}

Definition at line 37 of file BaseTracker.cpp.

References mBases.

{
        for each(Base base in mBases)
        {
                base->onDiscover(unit);
        }
}
void BaseTrackerClass::onMorphRenegade ( Unit  unit,
Player  previousPlayer,
BWAPI::UnitType  previousType 
)

Definition at line 45 of file BaseTracker.cpp.

References mBases.

{
        for each(Base base in mBases)
        {
                base->onMorphRenegade(unit, previousPlayer, previousType);
        }
}

Definition at line 26 of file BaseTracker.cpp.

References mBases.

{
        for each(Base base in mBases)
        {
                //TODO: track flying buildings, they can move between bases
                base->update();

                //base->drawDebugInfo();
        }
}

Member Data Documentation

std::set<Base> BaseTrackerClass::mBases [private]

Definition at line 34 of file BaseTracker.h.

Referenced by createBase(), and getBase().


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