BWAPI
Aiur/include/BWAPI/Game.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include <list>
00004 #include <map>
00005 #include <set>
00006 #include <vector>
00007 
00008 #include <BWAPI/Color.h>
00009 #include <BWAPI/CoordinateType.h>
00010 #include <BWAPI/Error.h>
00011 #include <BWAPI/Event.h>
00012 #include <BWAPI/Flag.h>
00013 #include <BWAPI/GameType.h>
00014 #include <BWAPI/Race.h>
00015 #include <BWAPI/Order.h>
00016 #include <BWAPI/Latency.h>
00017 #include <BWAPI/TilePosition.h>
00018 #include <BWAPI/UnitType.h>
00019 #include <BWAPI/TechType.h>
00020 #include <BWAPI/UpgradeType.h>
00021 #include <BWAPI/Input.h>
00022 namespace BWAPI
00023 {
00024   class Force;
00025   class Player;
00026   class Unit;
00027   class Bullet;
00028 
00033   class Game
00034   {
00035     public :
00037       virtual std::set< Force* >& getForces() = 0;
00038 
00041       virtual std::set< Player* >& getPlayers() = 0;
00042 
00046       virtual std::set< Unit* >& getAllUnits() = 0;
00047 
00049       virtual std::set< Unit* >& getMinerals() = 0;
00050 
00052       virtual std::set< Unit* >& getGeysers() = 0;
00053 
00055       virtual std::set< Unit* >& getNeutralUnits() = 0;
00056 
00058       virtual std::set< Unit* >& getStaticMinerals() = 0;
00059 
00061       virtual std::set< Unit* >& getStaticGeysers() = 0;
00062 
00064       virtual std::set< Unit* >& getStaticNeutralUnits() = 0;
00065 
00068       virtual std::set< Bullet* >& getBullets() = 0;
00069 
00072       virtual std::set< Position >& getNukeDots() = 0;
00073 
00075       virtual std::list< Event >& getEvents() = 0;
00076 
00078       virtual Force* getForce(int forceID) = 0;
00079 
00081       virtual Player* getPlayer(int playerID) = 0;
00082 
00084       virtual Unit* getUnit(int unitID) = 0;
00085 
00087       virtual Unit* indexToUnit(int unitIndex) = 0;
00088 
00090       virtual GameType getGameType() = 0;
00091 
00094       virtual int getLatency() = 0;
00095 
00099       virtual int getFrameCount() = 0;
00100 
00102       virtual int getFPS() = 0;
00103       virtual double getAverageFPS() = 0;
00104 
00107       virtual BWAPI::Position getMousePosition() = 0;
00108 
00111       virtual bool getMouseState(MouseButton button) = 0;
00112 
00114       virtual bool getMouseState(int button) = 0;
00115 
00121       virtual bool getKeyState(Key key) = 0;
00122 
00124       virtual bool getKeyState(int key) = 0;
00125 
00128       virtual BWAPI::Position getScreenPosition() = 0;
00129 
00132       virtual void setScreenPosition(int x, int y) = 0;
00133 
00135       virtual void setScreenPosition(BWAPI::Position p) = 0;
00136 
00138       virtual void pingMinimap(int x, int y) = 0;
00139 
00141       virtual void pingMinimap(BWAPI::Position p) = 0;
00142 
00145       virtual bool isFlagEnabled(int flag) = 0;
00146 
00149       virtual void enableFlag(int flag) = 0;
00150 
00152       virtual std::set<Unit*>& getUnitsOnTile(int tileX, int tileY) = 0;
00153 
00155       virtual std::set<Unit*>& getUnitsInRectangle(int left, int top, int right, int bottom) const = 0;
00156       virtual std::set<Unit*>& getUnitsInRectangle(BWAPI::Position topLeft, BWAPI::Position bottomRight) const = 0;
00157 
00159       virtual std::set<Unit*>& getUnitsInRadius(BWAPI::Position center, int radius) const = 0;
00160 
00163       virtual Error getLastError() const = 0;
00164 
00166       virtual bool setLastError(BWAPI::Error e) = 0;
00167 
00171       virtual int mapWidth() = 0;
00172 
00176       virtual int mapHeight() = 0;
00177 
00179       virtual std::string mapFileName() = 0;
00180 
00182       virtual std::string mapPathName() = 0;
00183 
00185       virtual std::string mapName() = 0;
00186 
00188       virtual std::string mapHash() = 0;
00189 
00194       virtual bool isWalkable(int walkX, int walkY) = 0;
00195 
00197       virtual int  getGroundHeight(int tileX, int tileY) = 0;
00199       virtual int  getGroundHeight(TilePosition position) = 0;
00200 
00204       virtual bool isBuildable(int tileX, int tileY, bool includeBuildings = false) = 0;
00206       virtual bool isBuildable(TilePosition position, bool includeBuildings = false) = 0;
00207 
00210       virtual bool isVisible(int tileX, int tileY) = 0;
00212       virtual bool isVisible(TilePosition position) = 0;
00213 
00216       virtual bool isExplored(int tileX, int tileY) = 0;
00218       virtual bool isExplored(TilePosition position) = 0;
00219 
00222       virtual bool hasCreep(int tileX, int tileY) = 0;
00224       virtual bool hasCreep(TilePosition position) = 0;
00225 
00227       virtual bool hasPower(int tileX, int tileY, UnitType unitType = UnitTypes::None) const = 0;
00229       virtual bool hasPower(TilePosition position, UnitType unitType = UnitTypes::None) const = 0;
00231       virtual bool hasPower(int tileX, int tileY, int tileWidth, int tileHeight, UnitType unitType = UnitTypes::None) const = 0;
00233       virtual bool hasPower(TilePosition position, int tileWidth, int tileHeight, UnitType unitType = UnitTypes::None) const = 0;
00235       virtual bool hasPowerPrecise(int x, int y, UnitType unitType = UnitTypes::None ) const = 0;
00237       virtual bool hasPowerPrecise(Position position, UnitType unitType = UnitTypes::None) const = 0;
00238 
00242       virtual bool canBuildHere(const Unit *builder, TilePosition position, UnitType type, bool checkExplored = false) = 0;
00243 
00247       virtual bool canMake(const Unit *builder, UnitType type) = 0;
00248 
00251       virtual bool canResearch(const Unit *unit, TechType type) = 0;
00252 
00256       virtual bool canUpgrade(const Unit *unit, UpgradeType type) = 0;
00257 
00260       virtual std::set< TilePosition >& getStartLocations() = 0;
00261 
00263       virtual void printf(const char *format, ...) = 0;
00264 
00268       virtual void sendText(const char *format, ...) = 0;
00269       virtual void sendTextEx(bool toAllies, const char *format, ...) = 0;
00270 
00273       virtual void changeRace(Race race) = 0;
00274 
00276       virtual bool isInGame() = 0;
00277 
00280       virtual bool isMultiplayer() = 0;
00281 
00284       virtual bool isBattleNet() = 0;
00285 
00288       virtual bool isPaused() = 0;
00289 
00291       virtual bool isReplay() = 0;
00292 
00295       virtual void startGame() = 0;
00296 
00299       virtual void pauseGame() = 0;
00300 
00302       virtual void resumeGame() = 0;
00303 
00305       virtual void leaveGame() = 0;
00306 
00309       virtual void restartGame() = 0;
00310 
00314       virtual void setLocalSpeed(int speed = -1) = 0;
00315 
00317       virtual bool issueCommand(const std::set<BWAPI::Unit*>& units, UnitCommand command) = 0;
00318 
00321       virtual std::set<Unit*>& getSelectedUnits() = 0;
00322 
00324       virtual Player* self() = 0;
00325 
00329       virtual Player* enemy() = 0;
00330 
00332       virtual Player* neutral() = 0;
00333 
00335       virtual std::set<BWAPI::Player*>& allies() = 0;
00336 
00338       virtual std::set<BWAPI::Player*>& enemies() = 0;
00339 
00341       virtual std::set<BWAPI::Player*>& observers() = 0;
00342 
00343       virtual void setTextSize(int size = 1) = 0;
00346       virtual void drawText(int ctype, int x, int y, const char *format, ...) = 0;
00347       virtual void drawTextMap(int x, int y, const char *format, ...) = 0;
00348       virtual void drawTextMouse(int x, int y, const char *format, ...) = 0;
00349       virtual void drawTextScreen(int x, int y, const char *format, ...) = 0;
00350 
00353       virtual void drawBox(int ctype, int left, int top, int right, int bottom, Color color, bool isSolid = false) = 0;
00354       virtual void drawBoxMap(int left, int top, int right, int bottom, Color color, bool isSolid = false) = 0;
00355       virtual void drawBoxMouse(int left, int top, int right, int bottom, Color color, bool isSolid = false) = 0;
00356       virtual void drawBoxScreen(int left, int top, int right, int bottom, Color color, bool isSolid = false) = 0;
00357 
00360       virtual void drawTriangle(int ctype, int ax, int ay, int bx, int by, int cx, int cy, Color color, bool isSolid = false) = 0;
00361       virtual void drawTriangleMap(int ax, int ay, int bx, int by, int cx, int cy, Color color, bool isSolid = false) = 0;
00362       virtual void drawTriangleMouse(int ax, int ay, int bx, int by, int cx, int cy, Color color, bool isSolid = false) = 0;
00363       virtual void drawTriangleScreen(int ax, int ay, int bx, int by, int cx, int cy, Color color, bool isSolid = false) = 0;
00364 
00367       virtual void drawCircle(int ctype, int x, int y, int radius, Color color, bool isSolid = false) = 0;
00368       virtual void drawCircleMap(int x, int y, int radius, Color color, bool isSolid = false) = 0;
00369       virtual void drawCircleMouse(int x, int y, int radius, Color color, bool isSolid = false) = 0;
00370       virtual void drawCircleScreen(int x, int y, int radius, Color color, bool isSolid = false) = 0;
00371 
00374       virtual void drawEllipse(int ctype, int x, int y, int xrad, int yrad, Color color, bool isSolid = false) = 0;
00375       virtual void drawEllipseMap(int x, int y, int xrad, int yrad, Color color, bool isSolid = false) = 0;
00376       virtual void drawEllipseMouse(int x, int y, int xrad, int yrad, Color color, bool isSolid = false) = 0;
00377       virtual void drawEllipseScreen(int x, int y, int xrad, int yrad, Color color, bool isSolid = false) = 0;
00378 
00380       virtual void drawDot(int ctype, int x, int y, Color color) = 0;
00381       virtual void drawDotMap(int x, int y, Color color) = 0;
00382       virtual void drawDotMouse(int x, int y, Color color) = 0;
00383       virtual void drawDotScreen(int x, int y, Color color) = 0;
00384 
00386       virtual void drawLine(int ctype, int x1, int y1, int x2, int y2, Color color) = 0;
00387       virtual void drawLineMap(int x1, int y1, int x2, int y2, Color color) = 0;
00388       virtual void drawLineMouse(int x1, int y1, int x2, int y2, Color color) = 0;
00389       virtual void drawLineScreen(int x1, int y1, int x2, int y2, Color color) = 0;
00390 
00392       virtual void *getScreenBuffer() = 0;
00393 
00395       virtual int getLatencyFrames() = 0;
00396       virtual int getLatencyTime() = 0;
00397       virtual int getRemainingLatencyFrames() = 0;
00398       virtual int getRemainingLatencyTime() = 0;
00399 
00401       virtual int getRevision() = 0;
00402 
00404       virtual bool isDebug() = 0;
00405 
00407       virtual bool isLatComEnabled() = 0;
00408 
00410       virtual void setLatCom(bool isEnabled) = 0;
00411 
00413       virtual int getReplayFrameCount() = 0;
00414 
00416       virtual void setGUI(bool enabled = true) = 0;
00417 
00419       virtual int  getInstanceNumber() = 0;
00420 
00422       virtual int getAPM(bool includeSelects = false) = 0;
00423 
00425       virtual bool setMap(const char *mapFileName) = 0;
00426 
00428       virtual void setFrameSkip(int frameSkip = 1) = 0;
00429 
00431       virtual bool hasPath(Position source, Position destination) const = 0;
00432 
00434       virtual bool setAlliance(BWAPI::Player *player, bool allied = true, bool alliedVictory = true) = 0;
00435 
00437       virtual bool setVision(BWAPI::Player *player, bool enabled = true) = 0;
00438 
00440       virtual int  elapsedTime() const = 0;
00441 
00447       virtual void setCommandOptimizationLevel(int level = 2) = 0;
00448   };
00449   extern Game* Broodwar;
00450 }
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines