BWAPI
Public Member Functions | Private Member Functions | Private Attributes
ReservedLocationClass Class Reference

#include <ReservedLocation.h>

Collaboration diagram for ReservedLocationClass:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ReservedLocationClass (BWAPI::UnitType type, BuildingLocation location)
 ReservedLocationClass (Unit unit)
TilePosition getTilePosition ()
Position getPosition ()
Base getBase ()
BWAPI::UnitType getUnitType ()
bool update ()
BuildingLocation getBuildLocation ()
Unit getUnitPrediction ()
bool isCalculated ()
void setStartTime (int time)
void forceCompleted ()

Private Member Functions

bool shouldFree ()
void setTilePosition (TilePosition position)

Private Attributes

ReservationType mType
BWAPI::UnitType mUnitType
BuildingLocation mLocation
Base mBase
TilePosition mTilePosition
Position mPosition
Unit mUnit
int mNextCalculationAttempt
int mStartTime
Unit mUnitPrediction
bool mForcedCompleted

Detailed Description

Definition at line 37 of file ReservedLocation.h.


Constructor & Destructor Documentation


Member Function Documentation

Definition at line 59 of file ReservedLocation.h.

References mForcedCompleted.

{ mForcedCompleted = true; }

Definition at line 46 of file ReservedLocation.h.

References mBase.

{ return mBase; }

Definition at line 52 of file ReservedLocation.h.

References mLocation.

{ return mLocation; }

Definition at line 44 of file ReservedLocation.h.

References mPosition.

{ return mPosition; }

Definition at line 43 of file ReservedLocation.h.

References mTilePosition.

{ return mTilePosition; }

Definition at line 53 of file ReservedLocation.h.

References mUnitPrediction.

{ return mUnitPrediction; }

Definition at line 48 of file ReservedLocation.h.

References mUnitType.

{ return mUnitType; }

Definition at line 55 of file ReservedLocation.h.

References mTilePosition, and BWAPI::BulletTypes::None.

Definition at line 120 of file ReservedLocation.cpp.

References mStartTime, and mUnitPrediction.

{
        mStartTime = time;

        if(mUnitPrediction)
                mUnitPrediction->setBuildTime(time);
}

Definition at line 99 of file ReservedLocation.cpp.

References BuildingLocationDef::Base, Singleton< T >::Instance(), mBase, mForcedCompleted, mLocation, mTilePosition, mUnitPrediction, mUnitType, and BWAPI::TilePositions::None.

Referenced by update().

{
        if(mTilePosition != BWAPI::TilePositions::None)
        {
                if(mForcedCompleted || (mUnitPrediction && mUnitPrediction->exists()))
                        return true;

                if(!BuildingPlacer::Instance().isLocationBuildable(mTilePosition, mUnitType, true))
                        return true;

                if(mLocation == BuildingLocation::Base)
                {
                        const std::vector<Base> &bases = BuildingPlacer::Instance().baseToBuildAtOrder(mUnitType);
                        if(std::find(bases.begin(), bases.end(), mBase) == bases.end())
                                return true;
                }
        }

        return false;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 64 of file ReservedLocation.cpp.

References BWAPI::Broodwar, ReservationTypeDef::BuildingPosition, BWAPI::Game::getFrameCount(), Singleton< T >::Instance(), ReservationTypeDef::LandingPosition, mBase, mForcedCompleted, mLocation, mNextCalculationAttempt, mTilePosition, mType, mUnit, mUnitPrediction, mUnitType, BWAPI::TilePositions::None, setTilePosition(), and shouldFree().

{
        bool isFinished = mUnitPrediction && mUnitPrediction->exists();
        if(shouldFree())
        {
                BuildingPlacer::Instance().free(shared_from_this());
                setTilePosition(BWAPI::TilePositions::None);
        }

        if(isFinished || mForcedCompleted)
                return true;

        if(mTilePosition == BWAPI::TilePositions::None && mNextCalculationAttempt <= BWAPI::Broodwar->getFrameCount())
        {
                std::pair<TilePosition, Base> locationPair;
                if(mType == ReservationType::BuildingPosition)
                        locationPair = BuildingPlacer::Instance().buildingLocationToTile(mLocation, mUnitType);
                else if(mType == ReservationType::LandingPosition)
                        locationPair = BuildingPlacer::Instance().getlandingLocation(mUnit);

                if(locationPair.first == BWAPI::TilePositions::None || BuildingPlacer::Instance().isLocationBuildable(locationPair.first, mUnitType, true))
                {
                        setTilePosition(locationPair.first);
                        mBase = locationPair.second;

                        if(mTilePosition == BWAPI::TilePositions::None)
                                mNextCalculationAttempt = BWAPI::Broodwar->getFrameCount() + 24;
                        else
                                BuildingPlacer::Instance().reserve(shared_from_this());
                }
        }

        return false;
}

Here is the call graph for this function:


Member Data Documentation

Definition at line 70 of file ReservedLocation.h.

Referenced by getBase(), shouldFree(), and update().

Definition at line 82 of file ReservedLocation.h.

Referenced by forceCompleted(), shouldFree(), and update().

Definition at line 68 of file ReservedLocation.h.

Referenced by getBuildLocation(), shouldFree(), and update().

Definition at line 76 of file ReservedLocation.h.

Referenced by update().

Definition at line 72 of file ReservedLocation.h.

Referenced by getPosition(), and setTilePosition().

Definition at line 78 of file ReservedLocation.h.

Referenced by setStartTime(), and setTilePosition().

Definition at line 71 of file ReservedLocation.h.

Referenced by getTilePosition(), isCalculated(), setTilePosition(), shouldFree(), and update().

Definition at line 65 of file ReservedLocation.h.

Referenced by update().

Definition at line 74 of file ReservedLocation.h.

Referenced by update().

Definition at line 66 of file ReservedLocation.h.

Referenced by getUnitType(), setTilePosition(), shouldFree(), and update().


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