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