-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathclass_b_w_a_p_i_1_1_game.html
1 lines (1 loc) · 252 KB
/
class_b_w_a_p_i_1_1_game.html
1
<!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>BWAPI: BWAPI::Game Class Reference</title><link rel="shortcut icon" href="favicon.ico" type="image/x-icon"><link rel="icon" href="favicon.ico" type="image/x-icon"><script>if(window.location.protocol!="file:"){(function(d,e,j,h,f,c,b){d.GoogleAnalyticsObject=f;d[f]=d[f]||function(){(d[f].q=d[f].q||[]).push(arguments)},d[f].l=1*new Date();c=e.createElement(j),b=e.getElementsByTagName(j)[0];c.async=1;c.src=h;b.parentNode.insertBefore(c,b)})(window,document,"script","//www.google-analytics.com/analytics.js","ga");ga("create","UA-11415685-4","auto");ga("send","pageview")};</script><link href="doxygen.css" rel="stylesheet"><script src="search/search.js"></script></head><body><div id="top"><div id="titlearea"><table><tbody><tr style="height: 56px;"><td id="projectlogo"><img style="width:110px;height:55px;" alt="Logo" src="logo.png"></td><td style="padding-left: 0.5em;"><div id="projectname">BWAPI <span id="projectnumber">4.2.0</span></div><div id="projectbrief">An API for interacting with Starcraft: Broodwar (1.16.1)</div></td></tr></tbody></table><div class="ribbon"><a href="//github.com/bwapi/bwapi">Fork me on GitHub</a></div></div><script>var searchBox=new SearchBox("searchBox","search",false,"Search");</script><div id="navrow1" class="tabs"><ul class="tablist"><li><a href="index.html"><span>Main Page</span></a></li><li><a href="modules.html"><span>Modules</span></a></li><li><a href="namespaces.html"><span>Namespaces</span></a></li><li class="current"><a href="annotated.html"><span>Classes</span></a></li><li><a href="//github.com/bwapi/bwapi/issues"><span>Issues</span></a></li><li><a href="//github.com/bwapi/bwapi/wiki"><span>Wiki</span></a></li><li><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""><input id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" src="search/close.png" alt=""></a></span></div></li></ul></div><div id="navrow2" class="tabs2"><ul class="tablist"><li><a href="annotated.html"><span>Class List</span></a></li><li><a href="classes.html"><span>Class Index</span></a></li><li><a href="inherits.html"><span>Class Hierarchy</span></a></li><li><a href="functions.html"><span>Class Members</span></a></li></ul></div><div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"></div><div id="MSearchResultsWindow"><iframe src="javascript:void(0)" name="MSearchResults" id="MSearchResults"></iframe></div><div id="nav-path" class="navpath"><ul><li class="navelem"><a class="el" href="namespace_b_w_a_p_i.html">BWAPI</a></li><li class="navelem"><a class="el" href="class_b_w_a_p_i_1_1_game.html">Game</a></li></ul></div></div><div class="header"><div class="summary"><a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="class_b_w_a_p_i_1_1_game-members.html">List of all members</a></div><div class="headertitle"><div class="title">BWAPI::Game Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group___interface.html">Interface Classes</a></div></div></div></div><div class="contents"><div class="dynheader"> Inheritance diagram for BWAPI::Game:</div><div class="dyncontent"><div class="center"><img src="class_b_w_a_p_i_1_1_game__inherit__graph.png" usemap="#_b_w_a_p_i_1_1_game_inherit__map" alt="Inheritance graph"></div><map name="_b_w_a_p_i_1_1_game_inherit__map" id="_b_w_a_p_i_1_1_game_inherit__map"><area shape="rect" id="node3" href="class_b_w_a_p_i_1_1_interface.html" title="This generalized class allows the application of features that are common to all interface classes..." alt="" coords="19,5,174,33"></map></div><table class="memberdecls"><tbody><tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods"></a> Public Member Functions</h2></td></tr><tr><td class="memItemLeft">virtual <a class="el" href="class_b_w_a_p_i_1_1_playerset.html">Playerset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a2a505ef21b781612d225732f1b8217a3">allies</a> ()=0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aeb27c5ae787797bd151fbb6998ee0d9d">canBuildHere</a> (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> position, <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> type, <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> builder=nullptr, bool checkExplored=false)=0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a7423b73d248e4d1b4afa6cd17d3bf8ca">canMake</a> (<a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> type, <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> builder=nullptr) const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ad10051a0a72568d2b767c17f2c60f352">canResearch</a> (<a class="el" href="class_b_w_a_p_i_1_1_tech_type.html">TechType</a> type, <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> unit=nullptr, bool checkCanIssueCommandType=true)=0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ae9953ba1c9fb93ed3269fa6b5e78f168">canUpgrade</a> (<a class="el" href="class_b_w_a_p_i_1_1_upgrade_type.html">UpgradeType</a> type, <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> unit=nullptr, bool checkCanIssueCommandType=true)=0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab365f165e1aa2c0d5e965a94b6d677e8">countdownTimer</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a69b1a233eaa971a95835ed5313a00de1">elapsedTime</a> () const =0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a4db25bc867384c505cacfafc3ee49314">enableFlag</a> (int flag)=0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="class_b_w_a_p_i_1_1_playerset.html">Playerset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab7c8b930c4abaacb2cbdaf41255bfc7d">enemies</a> ()=0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#acaa158943c1a6880d17fd834d2299639">enemy</a> () const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_regionset.html">Regionset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ae51891dcd9a0988415c6aa8215aa512c">getAllRegions</a> () const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a78cb9a8dd35a42ffded6f34bce55a425">getAllUnits</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a56f2067381fb3830dadfabb99c89ecfe">getAPM</a> (bool includeSelects=false) const =0</td></tr><tr><td class="memItemLeft">virtual double </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab0e35c6dda33f6620ae6194d78017258">getAverageFPS</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a3a3eddaf2757a5c3fe36b273109e5359">getBestUnit</a> (const <a class="el" href="namespace_b_w_a_p_i.html#a649b3e319528017f6f1f921802b1d9a8">BestUnitFilter</a> &best, const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> &pred, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> center=<a class="el" href="namespace_b_w_a_p_i_1_1_positions.html#afbb0901720907502320ccaeaf0e5484a">Positions::Origin</a>, int radius=999999) const =0</td></tr><tr><td class="memItemLeft"><a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a509aef285de00a0252be5816460b3325">getBuildLocation</a> (<a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> type, <a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> desiredPosition, int maxRange=64, bool creep=false) const </td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_bulletset.html">Bulletset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a5956598877c37a5422a2e32e061eac12">getBullets</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a380dfa9cd7a52c75a1b9d183fe0433bf">getClientVersion</a> () const =0</td></tr><tr><td class="memItemLeft"><a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a746733c12ae4e0aa57b3266fc4fac0cd">getClosestUnit</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> center, const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> &pred=nullptr, int radius=999999) const </td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a45fc79dceade5e7ca3c9f103a403bfcb">getClosestUnitInRectangle</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> center, const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> &pred=nullptr, int left=0, int top=0, int right=999999, int bottom=999999) const =0</td></tr><tr><td class="memItemLeft">int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a90d81ed614f211a6974eaca2a7c67a5a">getDamageFrom</a> (<a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> fromType, <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> toType, <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> fromPlayer=nullptr, <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> toPlayer=nullptr) const </td></tr><tr><td class="memItemLeft">int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ae8d78aaa9aaa835658d0964cb4207683">getDamageTo</a> (<a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> toType, <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> fromType, <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> toPlayer=nullptr, <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> fromPlayer=nullptr) const </td></tr><tr><td class="memItemLeft">virtual const <a class="elRef" href="//en.cppreference.com/w/cpp/container/list.html">std::list</a>< <a class="el" href="class_b_w_a_p_i_1_1_event.html">Event</a> > & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#af6fbe9a7bd78ae548dcafaae7ddc9d82">getEvents</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#af85e7ce6d3bc826da6660d97443fa65e">Force</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a1ccafeffb8702ec24480a809ea59f820">getForce</a> (int forceID) const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_forceset.html">Forceset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a8c0520c3e8470c1fd56ce71249bfa44a">getForces</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a36011b21829fee396e4e069e414c94a4">getFPS</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a6e5ca530091205a74d3a00a35db2b7c2">getFrameCount</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="class_b_w_a_p_i_1_1_game_type.html">GameType</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a576376a70aaf094de2554c1eefa70fc5">getGameType</a> () const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a04f71b9f6f54a1525945614cb25a3799">getGeysers</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a94eb3e3fe7850078c2086638a46214be">getGroundHeight</a> (int tileX, int tileY) const =0</td></tr><tr><td class="memItemLeft">int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a76e18cdd27b5375ad583f7129d5ce2b5">getGroundHeight</a> (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> position) const </td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a6baa5a6466110887a502629ef052a123">getInstanceNumber</a> () const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a4dcc8b25dcac03f5785c98f2dd0a661d">getKeyState</a> (<a class="el" href="namespace_b_w_a_p_i.html#a60af18fc1e748c8d041319c97535d18c">Key</a> key) const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="class_b_w_a_p_i_1_1_error.html">Error</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ac10b6a4c8fb868151bef1901b859f44e">getLastError</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab8ceb730bdc66dd596bf066829f83995">getLastEventTime</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0ec1daa41d2f0ce4f161f3e675b71980">getLatency</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a4f45dfffb32a07f75eef456ed56abebd">getLatencyFrames</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ac72459004bbd57fbc6f5b38b79edf00b">getLatencyTime</a> () const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a6f6e3fd680de7f1a872c60866584855f">getMinerals</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aff81a54688d35a32416999e50525a43c">getMousePosition</a> () const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ad18c4e59819981a1a1f32c0e6c8d4ea8">getMouseState</a> (<a class="el" href="namespace_b_w_a_p_i.html#aa3a4e57e26b16b6c0ed4346b4e494dd1">MouseButton</a> button) const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aa1d24833f994881c4dfe71de176f4bbd">getNeutralUnits</a> () const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_point.html#a34cd51ee137b6957d4bb1c772f9853ab">Position::list</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a76dc1ca27b5d53ff24daacf5b1af3366">getNukeDots</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a05b26bff9d67f74c2d33c2ba027c2880">getPlayer</a> (int playerID) const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_playerset.html">Playerset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0071619328c96a2f8ecf0f43b5ddde04">getPlayers</a> () const =0</td></tr><tr><td class="memItemLeft">virtual unsigned </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a203db548df086effe61557253a05104a">getRandomSeed</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#ac78a71851d96c2bd3da21d4dcb632450">Region</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a93b333635ff72f4872b72c2980205bd2">getRegion</a> (int regionID) const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#ac78a71851d96c2bd3da21d4dcb632450">BWAPI::Region</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#acc3240c18855fa1f2eff8ea798de3efd">getRegionAt</a> (int x, int y) const =0</td></tr><tr><td class="memItemLeft"><a class="el" href="namespace_b_w_a_p_i.html#ac78a71851d96c2bd3da21d4dcb632450">BWAPI::Region</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ad687259ba2956e582fd0c54f3cacf12d">getRegionAt</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> position) const </td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a7805a48b9ca0adfeaf8f547559ad3270">getRemainingLatencyFrames</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ac4c542dd75a3fd714d31314fb49e9acd">getRemainingLatencyTime</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#acbfd274d254f7247b4aa9099a2108e79">getReplayFrameCount</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0c8329832a12612fa0de1fef8d22036b">getRevision</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a06349a04bb616c10b4e3a96745a936b0">getScreenPosition</a> () const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#abf15581f8339d9f08515daeaf1152309">getSelectedUnits</a> () const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_point.html#a34cd51ee137b6957d4bb1c772f9853ab">TilePosition::list</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a72569ecde6fc619a505cb9822cc0baa6">getStartLocations</a> () const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aea6906daabf1aca55bf6c3e64c0bcc89">getStaticGeysers</a> () const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a44f74e3bd05e1c83123131624e8c758b">getStaticMinerals</a> () const =0</td></tr><tr><td class="memItemLeft">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a43fcf08cd979f3bb2c2e92726725134a">getStaticNeutralUnits</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a1d2e9ad9f6b6feb0e2fc7616dfb1fbf7">getUnit</a> (int unitID) const =0</td></tr><tr><td class="memItemLeft"><a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab4f31fc581a1cc34bd2e7a10a19f723e">getUnitsInRadius</a> (int x, int y, int radius, const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> &pred=nullptr) const </td></tr><tr><td class="memItemLeft"><a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a3e27b75d34b7df3992cfb13eef48d6b4">getUnitsInRadius</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> center, int radius, const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> &pred=nullptr) const </td></tr><tr><td class="memItemLeft">virtual <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#af8661d4b5de86516f05c7028c6750f49">getUnitsInRectangle</a> (int left, int top, int right, int bottom, const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> &pred=nullptr) const =0</td></tr><tr><td class="memItemLeft"><a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#abef6beac8fde7d2b5c9049a21cfadd4b">getUnitsInRectangle</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> topLeft, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> bottomRight, const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> &pred=nullptr) const </td></tr><tr><td class="memItemLeft"><a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ae1c994cce759dcf80e81598ae6cce5b8">getUnitsOnTile</a> (int tileX, int tileY, const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> &pred=nullptr) const </td></tr><tr><td class="memItemLeft"><a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#abded399330d1203bf28493370fff1468">getUnitsOnTile</a> (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">BWAPI::TilePosition</a> tile, const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> &pred=nullptr) const </td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aaefe9905f45a7c0b9baa2f66a42ae632">hasCreep</a> (int tileX, int tileY) const =0</td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a85f379c37397eed83707f3c278beef53">hasCreep</a> (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> position) const </td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#af5892c4c0aecc7fe230d2acfdf6ed94b">hasPath</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> source, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> destination) const </td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a6d117a95700724aeb669effb5f1ff2ff">hasPower</a> (int tileX, int tileY, <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> unitType=<a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a>) const </td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aac20fed99e56c28de1f239b372156ce6">hasPower</a> (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> position, <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> unitType=<a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a>) const </td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a82d66fa7f9f1b619edeee43ae20d1dec">hasPower</a> (int tileX, int tileY, int tileWidth, int tileHeight, <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> unitType=<a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a>) const </td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a584d3884a80e7c6089e88bc13cccf314">hasPower</a> (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> position, int tileWidth, int tileHeight, <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> unitType=<a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a>) const </td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a030f9d88f24c281ee3bf7c52f0f9a60c">hasPowerPrecise</a> (int x, int y, <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> unitType=<a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a>) const =0</td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a81f6462ec38c22697421ff1c0c3fbe39">hasPowerPrecise</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> position, <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> unitType=<a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a>) const </td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a8479f90f3dfdf713e6cb7bd0fa9903df">indexToUnit</a> (int unitIndex) const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a2ca302ccd853af6b5b026771b92737ab">isBattleNet</a> () const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a209c0a2968c7a91c1afcb2b7223b0684">isBuildable</a> (int tileX, int tileY, bool includeBuildings=false) const =0</td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ae08cb949b4d6095175245aca28eca292">isBuildable</a> (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> position, bool includeBuildings=false) const </td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab87f20cd6e5712204150d8c154d634ac">isDebug</a> () const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a78e18e2853421ea5273a9d959267be19">isExplored</a> (int tileX, int tileY) const =0</td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a24649800425078e3943a5b14d87ddb41">isExplored</a> (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> position) const </td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a255c267307d8d26ad74d4e8dd3047cb8">isFlagEnabled</a> (int flag) const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a20da1990a48f2e91a3556971cd0e8e19">isGUIEnabled</a> () const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a798a783218dfd44736cad7330f3bb722">isInGame</a> () const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a2f9409eade5638d269b08cf64121f783">isLatComEnabled</a> () const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a32d094a1e903641d9c57080dc5ea2b85">isMultiplayer</a> () const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aab0b5620d2ef5835a5e2e8999273aca4">isPaused</a> () const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aead46eb31eec3766efe0241d420fdb8a">isReplay</a> () const =0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aa729cca3c284cec49aecf59cfabaa84a">issueCommand</a> (const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> &units, <a class="el" href="class_b_w_a_p_i_1_1_unit_command.html">UnitCommand</a> command)=0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab4bd92271918d7f932959735ee78082d">isVisible</a> (int tileX, int tileY) const =0</td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a5877e23f238c1825c9eca6de3165ca79">isVisible</a> (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> position) const </td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a91153ca71797617ce225adf28d508510">isWalkable</a> (int walkX, int walkY) const =0</td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a3a81d3cabc4b74ea9a412bd747d7c4a7">isWalkable</a> (<a class="el" href="namespace_b_w_a_p_i.html#a102395122b5dfc54f83492c596feb29b">BWAPI::WalkPosition</a> position) const </td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a9e41514841958618f1867dd297fc4dac">leaveGame</a> ()=0</td></tr><tr><td class="memItemLeft">virtual <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a89945201b4c8bbaaf23973cb60ae8ffd">mapFileName</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ac21e845832b221c1ef706e05ed2d76d9">mapHash</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#afc1b7f26aeedac80afe77efa565feda0">mapHeight</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a7656d1603c92ec96c2f5dc996b2960ca">mapName</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a6cdcea81efe14f182eca58efebc73b4b">mapPathName</a> () const =0</td></tr><tr><td class="memItemLeft">virtual int </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a264f4abe209d047f027525bd8d192976">mapWidth</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aa653ae61f330533e79ff0eb0527fdeda">neutral</a> () const =0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="class_b_w_a_p_i_1_1_playerset.html">Playerset</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab5872385347778a186b1681f4dca2219">observers</a> ()=0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a79bf233045490ed0cfc5649ccfba8984">pauseGame</a> ()=0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a50b3dc73757dffca0a3c7cfc6022deaa">pingMinimap</a> (int x, int y)=0</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#afb4f26623cebdc524e7044ee08158697">pingMinimap</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> p)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a179153276873126ee522e108c7dc1af5">printf</a> (const char *format,...)</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#abe618329ee25aeac8914fd1e10ad11d4">restartGame</a> ()=0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ae4313d3b2c372cf4fdefade30bde30df">resumeGame</a> ()=0</td></tr><tr><td class="memItemLeft">virtual <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0fdd28532a098fb2ea0caa3bcd5f31dd">self</a> () const =0</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a1c962ad68ec74004b20e76d7cd3723f7">sendText</a> (const char *format,...)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a05194126be7eaed2a1f994353bcaabef">sendTextEx</a> (bool toAllies, const char *format,...)</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ad88def202d97fa727371d01fc49adb6d">setAlliance</a> (<a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">BWAPI::Player</a> player, bool allied=true, bool alliedVictory=true)=0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a2e44b952a0a55416da1628237bbc82ea">setCommandOptimizationLevel</a> (int level)=0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a166722909283eb4e75329ca4a8a8ef7a">setFrameSkip</a> (int frameSkip)=0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#af7801eafd1cd90beb0544f6f3275da7b">setGUI</a> (bool enabled)=0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a7381d0501a2bc665a60c4953e9a6a735">setLastError</a> (<a class="el" href="class_b_w_a_p_i_1_1_error.html">BWAPI::Error</a> e=<a class="el" href="namespace_b_w_a_p_i_1_1_errors.html#a05a1a72ca73d309a203e8a66c87acc05">Errors::None</a>) const =0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a6d87a7b6cf4546aea44403aa3e4822e1">setLatCom</a> (bool isEnabled)=0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#af137dd167774591584ecbd3f1e950b43">setLocalSpeed</a> (int speed)=0</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a83f6afbc9544225df9951700d7e369d1">setMap</a> (const char *<a class="el" href="class_b_w_a_p_i_1_1_game.html#a89945201b4c8bbaaf23973cb60ae8ffd">mapFileName</a>)=0</td></tr><tr><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a19666c06fdb7223e4fdbef64dbda6dcd">setMap</a> (const <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &<a class="el" href="class_b_w_a_p_i_1_1_game.html#a89945201b4c8bbaaf23973cb60ae8ffd">mapFileName</a>)</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ae7956ecdf28099fecf1caf03ba20d936">setRevealAll</a> (bool reveal=true)=0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a69c3a99f2e3374e5bfffd430ec5a4f32">setScreenPosition</a> (int x, int y)=0</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#affa7910d1f79b0b9138bb9b8561ffd3a">setScreenPosition</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> p)</td></tr><tr><td class="memItemLeft">virtual bool </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aa8011a1282e1c806bdf8517f18fd7c1a">setVision</a> (<a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">BWAPI::Player</a> player, bool enabled=true)=0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ac23ed4a1c3ea83de9cd67ac17f5021ec">vPrintf</a> (const char *format, <a class="elRef" href="//en.cppreference.com/w/cpp/utility/variadic/va_list.html">va_list</a> args)=0</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#af8569d3a10642248dbece5bacdbcbabe">vSendText</a> (const char *format, <a class="elRef" href="//en.cppreference.com/w/cpp/utility/variadic/va_list.html">va_list</a> args)</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a513201d75f9d17b1f28c77e89a9284a4">vSendTextEx</a> (bool toAllies, const char *format, <a class="elRef" href="//en.cppreference.com/w/cpp/utility/variadic/va_list.html">va_list</a> args)=0</td></tr><tr><td colspan="2"><div class="groupHeader">Debugging Members</div></td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0e9fa97a25efe4019ffcb5d719e41956">setTextSize</a> (<a class="el" href="namespace_b_w_a_p_i_1_1_text_1_1_size.html#a3a0e4e831aac8352247a1e559eab2588">Text::Size::Enum</a> size=<a class="el" href="namespace_b_w_a_p_i_1_1_text_1_1_size.html#a3a0e4e831aac8352247a1e559eab2588ac18974997391d0622f9654872f7df069">Text::Size::Default</a>)=0</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a33bd6019a44bfabc67ae54d9c4698587">vDrawText</a> (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> ctype, int x, int y, const char *format, <a class="elRef" href="//en.cppreference.com/w/cpp/utility/variadic/va_list.html">va_list</a> arg)=0</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aabef873c49a1f47a67e8463772e7430a">drawText</a> (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> ctype, int x, int y, const char *format,...)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a15e0b4df2b781f5f0ebf264808b2459b">drawTextMap</a> (int x, int y, const char *format,...)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a2b76b7604db96afb8ba4655c2c37d2a5">drawTextMap</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, const char *format,...)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a6dd46b9e4110243430696f0a975ca372">drawTextMouse</a> (int x, int y, const char *format,...)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a1821f66c8f8dd9fd4c31ff85b6999575">drawTextMouse</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, const char *format,...)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aa56e904bc958ae5744fdb459f27486d5">drawTextScreen</a> (int x, int y, const char *format,...)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a384489209bbd2d2109aab2195a3d16d0">drawTextScreen</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, const char *format,...)</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a432ebde5ab87282b9d126611d15182b8">drawBox</a> (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> ctype, int left, int top, int right, int bottom, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)=0</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab95ec92170644810c0581aa7d0164ed5">drawBoxMap</a> (int left, int top, int right, int bottom, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a3518dffe1e84a49ec6dc0849df02d0de">drawBoxMap</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> leftTop, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> rightBottom, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a65959b21ce28aeff12732ac7c4124dd2">drawBoxMouse</a> (int left, int top, int right, int bottom, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#af44ce163d9b041adaa1e3b225a76d0b3">drawBoxMouse</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> leftTop, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> rightBottom, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a48765cd67c9f8ffa4f86f6f453852564">drawBoxScreen</a> (int left, int top, int right, int bottom, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0cbbf64d025b16224ba9823d7e3ceab5">drawBoxScreen</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> leftTop, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> rightBottom, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a333667667a8b006f26c39c9da164783f">drawTriangle</a> (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> ctype, int ax, int ay, int bx, int by, int cx, int cy, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)=0</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a7c5fb4fc1681c6e45b44b2b5e464ab1b">drawTriangleMap</a> (int ax, int ay, int bx, int by, int cx, int cy, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a8c99f0ab04cf4067a5cc442612f25dc8">drawTriangleMap</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> a, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> b, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> c, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a93bd9c68f3dc2f4ecbecab89b2af1d85">drawTriangleMouse</a> (int ax, int ay, int bx, int by, int cx, int cy, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a3cd0050e06205c223f1ba6a349809c18">drawTriangleMouse</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> a, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> b, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> c, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a62a30130d802f0b62dbc31cb426681d6">drawTriangleScreen</a> (int ax, int ay, int bx, int by, int cx, int cy, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a9b1a7247e5259681abfa1ced67a58baf">drawTriangleScreen</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> a, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> b, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> c, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a14345bf7deb242bfe53919511fdca3c2">drawCircle</a> (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> ctype, int x, int y, int radius, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)=0</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#acce16a24c29642702459a228b4288531">drawCircleMap</a> (int x, int y, int radius, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a548cb981901ea3fcd60bea1695dec4b2">drawCircleMap</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, int radius, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0dde7c1bd0cb4ad3521864379a8d631b">drawCircleMouse</a> (int x, int y, int radius, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a109437bba0242a6288f9691e3a7cd2eb">drawCircleMouse</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, int radius, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a73fc75f350dc5c8f982ed9a389829c81">drawCircleScreen</a> (int x, int y, int radius, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a9a4e9fd7323073d2db8a744a0f723bf7">drawCircleScreen</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, int radius, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ac17073c7c913cbec70303ac1d689d0b6">drawEllipse</a> (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> ctype, int x, int y, int xrad, int yrad, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)=0</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ad3a6e50cbfa7e0892a8c86fa7a80d950">drawEllipseMap</a> (int x, int y, int xrad, int yrad, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a17d1c3e0a4ab5f5b8c53e9aae8f96157">drawEllipseMap</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, int xrad, int yrad, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#abc853368965217204c6cb49f37564ecf">drawEllipseMouse</a> (int x, int y, int xrad, int yrad, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#af2fa147a737bebd5af97aa3b59e6a93f">drawEllipseMouse</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, int xrad, int yrad, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a9c4266b85a20e73e51d612726889b460">drawEllipseScreen</a> (int x, int y, int xrad, int yrad, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a180cb6df24e4a202a6b0e82bbf68cd73">drawEllipseScreen</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, int xrad, int yrad, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color, bool isSolid=false)</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0cc1049c4768695a7d59a87100f2a4db">drawDot</a> (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> ctype, int x, int y, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)=0</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a69760027cec996aa40f1eb5e47e36854">drawDotMap</a> (int x, int y, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a7a0b033b0e22370febea4ec9d4c9453e">drawDotMap</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a555aa424eb2ff0d2979d1443c00c5a7f">drawDotMouse</a> (int x, int y, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a3900680c0a3a2280f4263122e2624108">drawDotMouse</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a4d2fcd44467c232ea6abeacea584c22f">drawDotScreen</a> (int x, int y, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab0e90dc512b86282d5675d0dfbcefade">drawDotScreen</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> p, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr><tr><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a5014319fbd034e65fc416a29198a91ab">drawLine</a> (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> ctype, int x1, int y1, int x2, int y2, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)=0</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a02901e37c8e65a5f1b4d082729120dd4">drawLineMap</a> (int x1, int y1, int x2, int y2, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a1701d31e81908ed267a711aea3a7f325">drawLineMap</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> a, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> b, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0e09042cfbda3d35baeeeb54daf19556">drawLineMouse</a> (int x1, int y1, int x2, int y2, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#aebd889d4cda911c8409573ee49509051">drawLineMouse</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> a, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> b, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a30bdd1109494f1cc9470fd19b0882066">drawLineScreen</a> (int x1, int y1, int x2, int y2, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr><tr><td class="memItemLeft">void </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a519f22b3762b10a72747d41e937adac8">drawLineScreen</a> (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> a, <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> b, <a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> color)</td></tr></tbody></table><table class="memberdecls"><tbody><tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods"></a> Protected Member Functions</h2></td></tr><tr><td class="memItemLeft"><a class="el" href="class_b_w_a_p_i_1_1_game.html">Game</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#a043b40ee231d630d531e29d06ff32b2a">operator=</a> (const <a class="el" href="class_b_w_a_p_i_1_1_game.html">Game</a> &other)=delete</td></tr><tr><td class="memItemLeft"><a class="el" href="class_b_w_a_p_i_1_1_game.html">Game</a> & </td><td class="memItemRight"><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab83b7303dea28175b156ebb8852e9e5f">operator=</a> (<a class="el" href="class_b_w_a_p_i_1_1_game.html">Game</a> &&other)=delete</td></tr></tbody></table><a id="details"></a><h2 class="groupheader">Detailed Description</h2><div class="textblock"><p>The abstract <a class="el" href="class_b_w_a_p_i_1_1_game.html" title="The abstract Game class is implemented by BWAPI and is the primary means of obtaining all game state ...">Game</a> class is implemented by <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> and is the primary means of obtaining all game state information from Starcraft Broodwar. </p><p><a class="el" href="class_b_w_a_p_i_1_1_game.html" title="The abstract Game class is implemented by BWAPI and is the primary means of obtaining all game state ...">Game</a> state information includes all units, resources, players, forces, bullets, terrain, fog of war, regions, etc. </p></div><h2 class="groupheader">Member Function Documentation</h2><a class="anchor" id="a043b40ee231d630d531e29d06ff32b2a"></a><div class="memitem"><div class="memproto"><a class="el" href="class_b_w_a_p_i_1_1_game.html">Game</a>& BWAPI::Game::operator= (const <a class="el" href="class_b_w_a_p_i_1_1_game.html">Game</a> & <span class="paramname"><em>other</em></span>) <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">delete</span></span></div><div class="memdoc"></div></div><a class="anchor" id="ab83b7303dea28175b156ebb8852e9e5f"></a><div class="memitem"><div class="memproto"><a class="el" href="class_b_w_a_p_i_1_1_game.html">Game</a>& BWAPI::Game::operator= (<a class="el" href="class_b_w_a_p_i_1_1_game.html">Game</a> && <span class="paramname"><em>other</em></span>) <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">delete</span></span></div><div class="memdoc"></div></div><a class="anchor" id="a8c0520c3e8470c1fd56ce71249bfa44a"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_forceset.html">Forceset</a>& BWAPI::Game::getForces () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all teams/forces. </p><p>Forces are commonly seen in <a class="el" href="namespace_b_w_a_p_i_1_1_game_types.html#ad49903c20bd1fa93215f8f0f23d07008">Use Map Settings</a> game types and some others such as <a class="el" href="namespace_b_w_a_p_i_1_1_game_types.html#a150ff5f9a25a8bb88f35087815ad6dac">Top vs Bottom</a> and the team versions of game types.</p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_forceset.html" title="A container that holds a group of Forces. ">Forceset</a> containing all forces in the game. </dd></dl></div></div><a class="anchor" id="a0071619328c96a2f8ecf0f43b5ddde04"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_playerset.html">Playerset</a>& BWAPI::Game::getPlayers () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all players in the match. </p><p>This includes the neutral player, which owns all the resources and critters by default.</p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_playerset.html" title="A set containing Player objects.">Playerset</a> containing all players in the game. </dd></dl></div></div><a class="anchor" id="a78cb9a8dd35a42ffded6f34bce55a425"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a>& BWAPI::Game::getAllUnits () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all accessible units. </p><p>If <a class="el" href="namespace_b_w_a_p_i_1_1_flag.html#a394478b7ea50a1fea08f7a73bbad04aeaf6d5058525d1ce926407b5644594d790" title="Enable to get information about all units on the map, not just the visible units.">Flag::CompleteMapInformation</a> is enabled, then the set also includes units that are not visible to the player.</p><dl class="section note"><dt>Note</dt><dd>Units that are inside refineries are not included in this set.</dd></dl><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> containing all known units in the game. </dd></dl></div></div><a class="anchor" id="a6f6e3fd680de7f1a872c60866584855f"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a>& BWAPI::Game::getMinerals () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all accessible <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ae7f62b7ccccd3720612d29db0081974b">Mineral Fields</a> in the game. </p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> containing <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ae7f62b7ccccd3720612d29db0081974b">Mineral Fields</a></dd></dl></div></div><a class="anchor" id="a04f71b9f6f54a1525945614cb25a3799"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a>& BWAPI::Game::getGeysers () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all accessible <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a8285b43105508081a114c127ba2050a1">Vespene Geysers</a> in the game. </p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> containing <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a8285b43105508081a114c127ba2050a1">Vespene Geysers</a></dd></dl></div></div><a class="anchor" id="aa1d24833f994881c4dfe71de176f4bbd"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a>& BWAPI::Game::getNeutralUnits () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all accessible neutral units in the game. </p><p>This includes <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ae7f62b7ccccd3720612d29db0081974b">Mineral Fields</a>, <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a8285b43105508081a114c127ba2050a1">Vespene Geysers</a>, and <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a258b7c3abdc36ca7eef7214efdd9328b">Critters</a>.</p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> containing all neutral units. </dd></dl></div></div><a class="anchor" id="a44f74e3bd05e1c83123131624e8c758b"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a>& BWAPI::Game::getStaticMinerals () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ae7f62b7ccccd3720612d29db0081974b">Mineral Fields</a> that were available at the beginning of the game. </p><dl class="section note"><dt>Note</dt><dd>This set includes resources that have been mined out or are inaccessible.</dd></dl><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> containing static <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ae7f62b7ccccd3720612d29db0081974b">Mineral Fields</a></dd></dl></div></div><a class="anchor" id="aea6906daabf1aca55bf6c3e64c0bcc89"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a>& BWAPI::Game::getStaticGeysers () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a8285b43105508081a114c127ba2050a1">Vespene Geysers</a> that were available at the beginning of the game. </p><dl class="section note"><dt>Note</dt><dd>This set includes resources that are inaccessible.</dd></dl><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> containing static <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a8285b43105508081a114c127ba2050a1">Vespene Geysers</a></dd></dl></div></div><a class="anchor" id="a43fcf08cd979f3bb2c2e92726725134a"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a>& BWAPI::Game::getStaticNeutralUnits () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all units owned by the neutral player (resources, critters, etc.) that were available at the beginning of the game. </p><dl class="section note"><dt>Note</dt><dd>This set includes units that are inaccessible.</dd></dl><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> containing static neutral units </dd></dl></div></div><a class="anchor" id="a5956598877c37a5422a2e32e061eac12"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_bulletset.html">Bulletset</a>& BWAPI::Game::getBullets () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all accessible bullets. </p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_bulletset.html" title="A container for a set of Bullet objects.">Bulletset</a> containing all accessible Bullet objects. </dd></dl></div></div><a class="anchor" id="a76dc1ca27b5d53ff24daacf5b1af3366"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_point.html#a34cd51ee137b6957d4bb1c772f9853ab">Position::list</a>& BWAPI::Game::getNukeDots () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all accessible <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a87d101b816a45827a552bb2c4f11fac3">Nuke</a> dots. </p><dl class="section note"><dt>Note</dt><dd>Nuke dots are the red dots painted by a <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a487c2a236b1864b0b977d2b9e843215c">Ghost</a> when using the nuclear strike ability.</dd></dl><dl class="section return"><dt>Returns</dt><dd>Set of <a class="el" href="namespace_b_w_a_p_i_1_1_positions.html" title="List of special Position constants.">Positions</a> giving the coordinates of nuke locations. </dd></dl></div></div><a class="anchor" id="af6fbe9a7bd78ae548dcafaae7ddc9d82"></a><div class="memitem"><div class="memproto">virtual const <a class="elRef" href="//en.cppreference.com/w/cpp/container/list.html">std::list</a>< <a class="el" href="class_b_w_a_p_i_1_1_event.html">Event</a> >& BWAPI::Game::getEvents () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the list of all unhandled game events. </p><dl class="section return"><dt>Returns</dt><dd><a class="elRef" href="//en.cppreference.com/w/cpp/container/list.html" title="STL class. ">std::list</a> containing <a class="el" href="class_b_w_a_p_i_1_1_event.html">Event</a> objects. </dd></dl></div></div><a class="anchor" id="a1ccafeffb8702ec24480a809ea59f820"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#af85e7ce6d3bc826da6660d97443fa65e">Force</a> BWAPI::Game::getForce (int <span class="paramname"><em>forceID</em></span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the Force interface object associated with a given identifier. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">forceID</td><td>The identifier for the Force object. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>Force interface object mapped to the given <code>forceID</code>. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">nullptr</td><td>if the given identifier is invalid. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a05b26bff9d67f74c2d33c2ba027c2880"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> BWAPI::Game::getPlayer (int <span class="paramname"><em>playerID</em></span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the Player interface object associated with a given identifier. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">playerID</td><td>The identifier for the Player object. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>Player interface object mapped to the given <code>playerID</code>. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">nullptr</td><td>if the given identifier is invalid. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a1d2e9ad9f6b6feb0e2fc7616dfb1fbf7"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> BWAPI::Game::getUnit (int <span class="paramname"><em>unitID</em></span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the Unit interface object associated with a given identifier. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">unitID</td><td>The identifier for the Unit object. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>Unit interface object mapped to the given <code>unitID</code>. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">nullptr</td><td>if the given identifier is invalid. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a8479f90f3dfdf713e6cb7bd0fa9903df"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> BWAPI::Game::indexToUnit (int <span class="paramname"><em>unitIndex</em></span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves a Unit interface object from a given unit index. </p><p>The value given as an index maps directly to Broodwar's unit array index and matches the index found in replay files. In order to use this function, CompleteMapInformation must be enabled.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">unitIndex</td><td>The unitIndex to identify the Unit with. A valid index is 0 <= unitIndex & 0x7FF < 1700. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>Unit interface object that matches the given <code>unitIndex</code>. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">nullptr</td><td>if the given index is invalid. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a93b333635ff72f4872b72c2980205bd2"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#ac78a71851d96c2bd3da21d4dcb632450">Region</a> BWAPI::Game::getRegion (int <span class="paramname"><em>regionID</em></span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the Region interface object associated with a given identifier. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">regionID</td><td>The identifier for the Region object. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>Region interface object mapped to the given <code>regionID</code>. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">nullptr</td><td>if the given ID is invalid. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a576376a70aaf094de2554c1eefa70fc5"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="class_b_w_a_p_i_1_1_game_type.html">GameType</a> BWAPI::Game::getGameType () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the <a class="el" href="class_b_w_a_p_i_1_1_game_type.html" title="A class that represents game types in Broodwar. ">GameType</a> of the current game. </p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game_type.html" title="A class that represents game types in Broodwar. ">GameType</a> indicating the rules of the match. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game_type.html" title="A class that represents game types in Broodwar. ">GameType</a></dd></dl></div></div><a class="anchor" id="a0ec1daa41d2f0ce4f161f3e675b71980"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getLatency () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the current latency setting that the game is set to. </p><p><a class="el" href="namespace_b_w_a_p_i_1_1_latency.html" title="Contains enumeration of known latency values. ">Latency</a> indicates the delay between issuing a command and having it processed.</p><dl class="section return"><dt>Returns</dt><dd>The latency setting of the game, which is of <a class="el" href="namespace_b_w_a_p_i_1_1_latency.html#a2899444e2659944e7b339f7eff3b2ca9" title="Contains enumeration of known latency values. ">Latency::Enum</a>. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="namespace_b_w_a_p_i_1_1_latency.html#a2899444e2659944e7b339f7eff3b2ca9" title="Contains enumeration of known latency values. ">Latency::Enum</a></dd></dl></div></div><a class="anchor" id="a6e5ca530091205a74d3a00a35db2b7c2"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getFrameCount () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the number of logical frames since the beginning of the match. </p><p>If the game is paused, then getFrameCount will not increase.</p><dl class="section return"><dt>Returns</dt><dd>Number of logical frames that have elapsed since the game started as an integer. </dd></dl></div></div><a class="anchor" id="acbfd274d254f7247b4aa9099a2108e79"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getReplayFrameCount () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the maximum number of logical frames that have been recorded in a replay. </p><p>If the game is not a replay, then the value returned is undefined.</p><dl class="section return"><dt>Returns</dt><dd>The number of logical frames that the replay contains. </dd></dl></div></div><a class="anchor" id="a36011b21829fee396e4e069e414c94a4"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getFPS () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the logical frame rate of the game in frames per second (FPS). </p><p>Example: </p><div class="fragment"><div class="line"><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>->setLocalSpeed(0);</div><div class="line"></div><div class="line"><span class="comment">// Log and display the best logical FPS seen in the game</span></div><div class="line"><span class="keyword">static</span><span class="keywordtype">int</span> bestFPS = 0;</div><div class="line">bestFPS = <a class="codeRef" href="//en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(bestFPS, <a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>-><a class="code" href="class_b_w_a_p_i_1_1_game.html#a36011b21829fee396e4e069e414c94a4">getFPS</a>());</div><div class="line"><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>->drawTextScreen(<a class="code" href="namespace_b_w_a_p_i_1_1_positions.html#afbb0901720907502320ccaeaf0e5484a">BWAPI::Positions::Origin</a>, <span class="stringliteral">"%cBest: %d GFPS\nCurrent: %d GFPS"</span>, <a class="code" href="namespace_b_w_a_p_i_1_1_text.html#a944232c0d5b699bd4e51e36b37394555a81936fb286e3c905981ccf1e18fcb1ab">BWAPI::Text::White</a>, bestFPS, <a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>-><a class="code" href="class_b_w_a_p_i_1_1_game.html#a36011b21829fee396e4e069e414c94a4">getFPS</a>());</div></div><dl class="section return"><dt>Returns</dt><dd>Logical frames per second that the game is currently running at as an integer. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab0e35c6dda33f6620ae6194d78017258" title="Retrieves the average logical frame rate of the game in frames per second (FPS). ">getAverageFPS</a></dd></dl></div></div><a class="anchor" id="ab0e35c6dda33f6620ae6194d78017258"></a><div class="memitem"><div class="memproto">virtual double BWAPI::Game::getAverageFPS () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the average logical frame rate of the game in frames per second (FPS). </p><dl class="section return"><dt>Returns</dt><dd>Average logical frames per second that the game is currently running at as a double. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a36011b21829fee396e4e069e414c94a4" title="Retrieves the logical frame rate of the game in frames per second (FPS). ">getFPS</a></dd></dl></div></div><a class="anchor" id="aff81a54688d35a32416999e50525a43c"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> BWAPI::Game::getMousePosition () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the position of the user's mouse on the screen, in Position coordinates. </p><dl class="section return"><dt>Returns</dt><dd>Position indicating the location of the mouse. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname"><a class="el" href="namespace_b_w_a_p_i_1_1_positions.html#ae2581b77eb8c4d58663ce871f555973b">Positions::Unknown</a></td><td>if <a class="el" href="namespace_b_w_a_p_i_1_1_flag.html#a394478b7ea50a1fea08f7a73bbad04aea74a41a92f61bc4e7d1da3468de118d34" title="Enable to get information from the user (what units are selected, chat messages the user enters...">Flag::UserInput</a> is disabled. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="ad18c4e59819981a1a1f32c0e6c8d4ea8"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::getMouseState (<a class="el" href="namespace_b_w_a_p_i.html#aa3a4e57e26b16b6c0ed4346b4e494dd1">MouseButton</a> <span class="paramname"><em>button</em></span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the state of the given mouse button. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">button</td><td>A MouseButton enum member indicating which button on the mouse to check. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>A bool indicating the state of the given <code>button</code>. true if the button was pressed and false if it was not. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">false</td><td>always if <a class="el" href="namespace_b_w_a_p_i_1_1_flag.html#a394478b7ea50a1fea08f7a73bbad04aea74a41a92f61bc4e7d1da3468de118d34" title="Enable to get information from the user (what units are selected, chat messages the user enters...">Flag::UserInput</a> is disabled.</td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="namespace_b_w_a_p_i.html#aa3a4e57e26b16b6c0ed4346b4e494dd1" title="An enumeration of mouse button inputs. ">MouseButton</a></dd></dl></div></div><a class="anchor" id="a4dcc8b25dcac03f5785c98f2dd0a661d"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::getKeyState (<a class="el" href="namespace_b_w_a_p_i.html#a60af18fc1e748c8d041319c97535d18c">Key</a> <span class="paramname"><em>key</em></span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the state of the given keyboard key. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">key</td><td>A Key enum member indicating which key on the keyboard to check. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>A bool indicating the state of the given <code>key</code>. true if the key was pressed and false if it was not. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">false</td><td>always if <a class="el" href="namespace_b_w_a_p_i_1_1_flag.html#a394478b7ea50a1fea08f7a73bbad04aea74a41a92f61bc4e7d1da3468de118d34" title="Enable to get information from the user (what units are selected, chat messages the user enters...">Flag::UserInput</a> is disabled.</td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="namespace_b_w_a_p_i.html#a60af18fc1e748c8d041319c97535d18c" title="An enumeration of keyboard input values. ">Key</a></dd></dl></div></div><a class="anchor" id="a06349a04bb616c10b4e3a96745a936b0"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> BWAPI::Game::getScreenPosition () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the top left position of the viewport from the top left corner of the map, in pixels. </p><dl class="section return"><dt>Returns</dt><dd>Position containing the coordinates of the top left corner of the game's viewport. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname"><a class="el" href="namespace_b_w_a_p_i_1_1_positions.html#ae2581b77eb8c4d58663ce871f555973b">Positions::Unknown</a></td><td>always if <a class="el" href="namespace_b_w_a_p_i_1_1_flag.html#a394478b7ea50a1fea08f7a73bbad04aea74a41a92f61bc4e7d1da3468de118d34" title="Enable to get information from the user (what units are selected, chat messages the user enters...">Flag::UserInput</a> is disabled. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a69c3a99f2e3374e5bfffd430ec5a4f32" title="Moves the top left corner of the viewport to the provided position relative to the map's origin (top ...">setScreenPosition</a></dd></dl></div></div><a class="anchor" id="a69c3a99f2e3374e5bfffd430ec5a4f32"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::setScreenPosition (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Moves the top left corner of the viewport to the provided position relative to the map's origin (top left (0,0)). </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">x</td><td>The x coordinate to move the screen to, in pixels. </td></tr><tr><td class="paramname">y</td><td>The y coordinate to move the screen to, in pixels. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a06349a04bb616c10b4e3a96745a936b0" title="Retrieves the top left position of the viewport from the top left corner of the map, in pixels. ">getScreenPosition</a></dd></dl></div></div><a class="anchor" id="affa7910d1f79b0b9138bb9b8561ffd3a"></a><div class="memitem"><div class="memproto">void BWAPI::Game::setScreenPosition (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> <span class="paramname"><em>p</em></span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a50b3dc73757dffca0a3c7cfc6022deaa"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::pingMinimap (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Pings the minimap at the given position. </p><p>Minimap pings are visible to allied players.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">x</td><td>The x coordinate to ping at, in pixels, from the map's origin (left). </td></tr><tr><td class="paramname">y</td><td>The y coordinate to ping at, in pixels, from the map's origin (top). </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="afb4f26623cebdc524e7044ee08158697"></a><div class="memitem"><div class="memproto">void BWAPI::Game::pingMinimap (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> <span class="paramname"><em>p</em></span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a255c267307d8d26ad74d4e8dd3047cb8"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isFlagEnabled (int <span class="paramname"><em>flag</em></span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if the state of the given flag is enabled or not. </p><dl class="section note"><dt>Note</dt><dd>Flags may only be enabled at the start of the match during the <a class="el" href="class_b_w_a_p_i_1_1_a_i_module.html#aa1068e4f30fd50cb52a678bbf7a7c6f9" title="Called only once at the beginning of a game. ">AIModule::onStart</a> callback.</dd></dl><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">flag</td><td>The <a class="el" href="namespace_b_w_a_p_i_1_1_flag.html#a394478b7ea50a1fea08f7a73bbad04ae" title="Contains flag enumerations for BWAPI. ">Flag::Enum</a> entry describing the flag's effects on <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a>. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>true if the given <code>flag</code> is enabled, false if the flag is disabled.</dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="namespace_b_w_a_p_i_1_1_flag.html#a394478b7ea50a1fea08f7a73bbad04ae" title="Contains flag enumerations for BWAPI. ">Flag::Enum</a></dd></dl></div></div><a class="anchor" id="a4db25bc867384c505cacfafc3ee49314"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::enableFlag (int <span class="paramname"><em>flag</em></span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Enables the state of a given flag. </p><dl class="section note"><dt>Note</dt><dd>Flags may only be enabled at the start of the match during the <a class="el" href="class_b_w_a_p_i_1_1_a_i_module.html#aa1068e4f30fd50cb52a678bbf7a7c6f9" title="Called only once at the beginning of a game. ">AIModule::onStart</a> callback.</dd></dl><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">flag</td><td>The <a class="el" href="namespace_b_w_a_p_i_1_1_flag.html#a394478b7ea50a1fea08f7a73bbad04ae" title="Contains flag enumerations for BWAPI. ">Flag::Enum</a> entry describing the flag's effects on <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a>. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="namespace_b_w_a_p_i_1_1_flag.html#a394478b7ea50a1fea08f7a73bbad04ae" title="Contains flag enumerations for BWAPI. ">Flag::Enum</a></dd></dl></div></div><a class="anchor" id="ae1c994cce759dcf80e81598ae6cce5b8"></a><div class="memitem"><div class="memproto"><a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> BWAPI::Game::getUnitsOnTile (int <span class="paramname"><em>tileX</em>, </span>int <span class="paramname"><em>tileY</em>, </span>const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> & <span class="paramname"><em>pred</em> = <code>nullptr</code> </span>) const</div><div class="memdoc"><p>Retrieves the set of accessible units that are on a given build tile. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">tileX</td><td>The X position, in tiles. </td></tr><tr><td class="paramname">tileY</td><td>The Y position, in tiles. </td></tr><tr><td class="paramname">pred</td><td>(optional) A function predicate that indicates which units are included in the returned set. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> object consisting of all the units that have any part of them on the given build tile. </dd></dl></div></div><a class="anchor" id="abded399330d1203bf28493370fff1468"></a><div class="memitem"><div class="memproto"><a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> BWAPI::Game::getUnitsOnTile (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">BWAPI::TilePosition</a> <span class="paramname"><em>tile</em>, </span>const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> & <span class="paramname"><em>pred</em> = <code>nullptr</code> </span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="af8661d4b5de86516f05c7028c6750f49"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> BWAPI::Game::getUnitsInRectangle (int <span class="paramname"><em>left</em>, </span>int <span class="paramname"><em>top</em>, </span>int <span class="paramname"><em>right</em>, </span>int <span class="paramname"><em>bottom</em>, </span>const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> & <span class="paramname"><em>pred</em> = <code>nullptr</code> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of accessible units that are in a given rectangle. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">left</td><td>The X coordinate of the left position of the bounding box, in pixels. </td></tr><tr><td class="paramname">top</td><td>The Y coordinate of the top position of the bounding box, in pixels. </td></tr><tr><td class="paramname">right</td><td>The X coordinate of the right position of the bounding box, in pixels. </td></tr><tr><td class="paramname">bottom</td><td>The Y coordinate of the bottom position of the bounding box, in pixels. </td></tr><tr><td class="paramname">pred</td><td>(optional) A function predicate that indicates which units are included in the returned set. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> object consisting of all the units that have any part of them within the given rectangle bounds. </dd></dl></div></div><a class="anchor" id="abef6beac8fde7d2b5c9049a21cfadd4b"></a><div class="memitem"><div class="memproto"><a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> BWAPI::Game::getUnitsInRectangle (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> <span class="paramname"><em>topLeft</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> <span class="paramname"><em>bottomRight</em>, </span>const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> & <span class="paramname"><em>pred</em> = <code>nullptr</code> </span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="ab4f31fc581a1cc34bd2e7a10a19f723e"></a><div class="memitem"><div class="memproto"><a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> BWAPI::Game::getUnitsInRadius (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>int <span class="paramname"><em>radius</em>, </span>const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> & <span class="paramname"><em>pred</em> = <code>nullptr</code> </span>) const</div><div class="memdoc"><p>Retrieves the set of accessible units that are within a given radius of a position. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">x</td><td>The x coordinate of the center, in pixels. </td></tr><tr><td class="paramname">y</td><td>The y coordinate of the center, in pixels. </td></tr><tr><td class="paramname">radius</td><td>The radius from the center, in pixels, to include units. </td></tr><tr><td class="paramname">pred</td><td>(optional) A function predicate that indicates which units are included in the returned set. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> object consisting of all the units that have any part of them within the given radius from the center position. </dd></dl></div></div><a class="anchor" id="a3e27b75d34b7df3992cfb13eef48d6b4"></a><div class="memitem"><div class="memproto"><a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> BWAPI::Game::getUnitsInRadius (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> <span class="paramname"><em>center</em>, </span>int <span class="paramname"><em>radius</em>, </span>const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> & <span class="paramname"><em>pred</em> = <code>nullptr</code> </span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a746733c12ae4e0aa57b3266fc4fac0cd"></a><div class="memitem"><div class="memproto"><a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> BWAPI::Game::getClosestUnit (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>center</em>, </span>const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> & <span class="paramname"><em>pred</em> = <code>nullptr</code>, </span>int <span class="paramname"><em>radius</em> = <code>999999</code> </span>) const</div><div class="memdoc"><p>Retrieves the closest unit to center that matches the criteria of the callback pred within an optional radius. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">center</td><td>The position to start searching for the closest unit. </td></tr><tr><td class="paramname">pred</td><td>(optional) The UnitFilter predicate to determine which units should be included. This includes all units by default. </td></tr><tr><td class="paramname">radius</td><td>(optional) The radius to search in. If omitted, the entire map will be searched. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>The desired unit that is closest to center. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">nullptr</td><td>If a suitable unit was not found.</td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a3a3eddaf2757a5c3fe36b273109e5359" title="Compares all units with pred to determine which of them is the best. ">getBestUnit</a>, <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a></dd></dl></div></div><a class="anchor" id="a45fc79dceade5e7ca3c9f103a403bfcb"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> BWAPI::Game::getClosestUnitInRectangle (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>center</em>, </span>const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> & <span class="paramname"><em>pred</em> = <code>nullptr</code>, </span>int <span class="paramname"><em>left</em> = <code>0</code>, </span>int <span class="paramname"><em>top</em> = <code>0</code>, </span>int <span class="paramname"><em>right</em> = <code>999999</code>, </span>int <span class="paramname"><em>bottom</em> = <code>999999</code> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the closest unit to center that matches the criteria of the callback pred within an optional rectangle. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">center</td><td>The position to start searching for the closest unit. </td></tr><tr><td class="paramname">pred</td><td>(optional) The UnitFilter predicate to determine which units should be included. This includes all units by default. </td></tr><tr><td class="paramname">left</td><td>(optional) The left position of the rectangle. This value is 0 by default. </td></tr><tr><td class="paramname">top</td><td>(optional) The top position of the rectangle. This value is 0 by default. </td></tr><tr><td class="paramname">right</td><td>(optional) The right position of the rectangle. This value includes the entire map width by default. </td></tr><tr><td class="paramname">bottom</td><td>(optional) The bottom position of the rectangle. This value includes the entire map height by default. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a></dd></dl></div></div><a class="anchor" id="a3a3eddaf2757a5c3fe36b273109e5359"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> BWAPI::Game::getBestUnit (const <a class="el" href="namespace_b_w_a_p_i.html#a649b3e319528017f6f1f921802b1d9a8">BestUnitFilter</a> & <span class="paramname"><em>best</em>, </span>const <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a> & <span class="paramname"><em>pred</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>center</em> = <code><a class="el" href="namespace_b_w_a_p_i_1_1_positions.html#afbb0901720907502320ccaeaf0e5484a">Positions::Origin</a></code>, </span>int <span class="paramname"><em>radius</em> = <code>999999</code> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Compares all units with pred to determine which of them is the best. </p><p>All units are checked. If center and radius are specified, then it will check all units that are within the radius of the position.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">best</td><td>A BestUnitFilter that determines which parameters should be considered when calculating which units are better than others. </td></tr><tr><td class="paramname">pred</td><td>A UnitFilter that determines which units to include in calculations. </td></tr><tr><td class="paramname">center</td><td>(optional) The position to use in the search. If omitted, then the entire map is searched. </td></tr><tr><td class="paramname">radius</td><td>(optional) The distance from <code>center</code> to search for units. If omitted, then the entire map is searched. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>The desired unit that best matches the given criteria. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">nullptr</td><td>if a suitable unit was not found.</td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a746733c12ae4e0aa57b3266fc4fac0cd" title="Retrieves the closest unit to center that matches the criteria of the callback pred within an optiona...">getClosestUnit</a>, <a class="el" href="namespace_b_w_a_p_i.html#a649b3e319528017f6f1f921802b1d9a8">BestUnitFilter</a>, <a class="el" href="namespace_b_w_a_p_i.html#ae155ef3afa59e0748a252274f9a635f3">UnitFilter</a></dd></dl></div></div><a class="anchor" id="ac10b6a4c8fb868151bef1901b859f44e"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="class_b_w_a_p_i_1_1_error.html">Error</a> BWAPI::Game::getLastError () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Returns the last error that was set using setLastError. </p><p>If a function call in <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> has failed, you can use this function to retrieve the reason it failed.</p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_error.html" title="The Error object is generally used to determine why certain functions in BWAPI have failed...">Error</a> type containing the reason for failure.</dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a7381d0501a2bc665a60c4953e9a6a735" title="Sets the last error so that future calls to getLastError will return the value that was set...">setLastError</a>, <a class="el" href="namespace_b_w_a_p_i_1_1_errors.html" title="Namespace containing error codes">Errors</a></dd></dl></div></div><a class="anchor" id="a7381d0501a2bc665a60c4953e9a6a735"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::setLastError (<a class="el" href="class_b_w_a_p_i_1_1_error.html">BWAPI::Error</a> <span class="paramname"><em>e</em> = <code><a class="el" href="namespace_b_w_a_p_i_1_1_errors.html#a05a1a72ca73d309a203e8a66c87acc05">Errors::None</a></code></span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Sets the last error so that future calls to getLastError will return the value that was set. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">e</td><td>(optional) The error code to set. If omitted, then the last error will be cleared. </td></tr></tbody></table></dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">true</td><td>If the type passed was <a class="el" href="namespace_b_w_a_p_i_1_1_errors.html#a05a1a72ca73d309a203e8a66c87acc05">Errors::None</a>, clearing the last error. </td></tr><tr><td class="paramname">false</td><td>If any other error type was passed. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#ac10b6a4c8fb868151bef1901b859f44e" title="Returns the last error that was set using setLastError. ">getLastError</a>, <a class="el" href="namespace_b_w_a_p_i_1_1_errors.html" title="Namespace containing error codes">Errors</a></dd></dl></div></div><a class="anchor" id="a264f4abe209d047f027525bd8d192976"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::mapWidth () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the width of the map in build tile units. </p><dl class="section return"><dt>Returns</dt><dd>Width of the map in tiles. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#afc1b7f26aeedac80afe77efa565feda0" title="Retrieves the height of the map in build tile units. ">mapHeight</a></dd></dl></div></div><a class="anchor" id="afc1b7f26aeedac80afe77efa565feda0"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::mapHeight () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the height of the map in build tile units. </p><dl class="section return"><dt>Returns</dt><dd>Height of the map in tiles. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#afc1b7f26aeedac80afe77efa565feda0" title="Retrieves the height of the map in build tile units. ">mapHeight</a></dd></dl></div></div><a class="anchor" id="a89945201b4c8bbaaf23973cb60ae8ffd"></a><div class="memitem"><div class="memproto">virtual <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> BWAPI::Game::mapFileName () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the file name of the currently loaded map. </p><dl class="section return"><dt>Returns</dt><dd>Map file name as <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html" title="STL class. ">std::string</a> object.</dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a6cdcea81efe14f182eca58efebc73b4b" title="Retrieves the full path name of the currently loaded map. ">mapPathName</a>, <a class="el" href="class_b_w_a_p_i_1_1_game.html#a7656d1603c92ec96c2f5dc996b2960ca" title="Retrieves the title of the currently loaded map. ">mapName</a></dd></dl></div></div><a class="anchor" id="a6cdcea81efe14f182eca58efebc73b4b"></a><div class="memitem"><div class="memproto">virtual <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> BWAPI::Game::mapPathName () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the full path name of the currently loaded map. </p><dl class="section return"><dt>Returns</dt><dd>Map file name as <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html" title="STL class. ">std::string</a> object.</dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a89945201b4c8bbaaf23973cb60ae8ffd" title="Retrieves the file name of the currently loaded map. ">mapFileName</a>, <a class="el" href="class_b_w_a_p_i_1_1_game.html#a7656d1603c92ec96c2f5dc996b2960ca" title="Retrieves the title of the currently loaded map. ">mapName</a></dd></dl></div></div><a class="anchor" id="a7656d1603c92ec96c2f5dc996b2960ca"></a><div class="memitem"><div class="memproto">virtual <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> BWAPI::Game::mapName () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the title of the currently loaded map. </p><dl class="section return"><dt>Returns</dt><dd>Map title as <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html" title="STL class. ">std::string</a> object.</dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a89945201b4c8bbaaf23973cb60ae8ffd" title="Retrieves the file name of the currently loaded map. ">mapFileName</a>, <a class="el" href="class_b_w_a_p_i_1_1_game.html#a6cdcea81efe14f182eca58efebc73b4b" title="Retrieves the full path name of the currently loaded map. ">mapPathName</a></dd></dl></div></div><a class="anchor" id="ac21e845832b221c1ef706e05ed2d76d9"></a><div class="memitem"><div class="memproto">virtual <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> BWAPI::Game::mapHash () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Calculates the SHA-1 hash of the currently loaded map file. </p><dl class="section return"><dt>Returns</dt><dd><a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html" title="STL class. ">std::string</a> object containing SHA-1 hash.</dd></dl><dl class="section note"><dt>Note</dt><dd>Campaign maps will return a hash of their internal map chunk components(.chk), while standard maps will return a hash of their entire map archive (.scm,.scx).</dd></dl></div></div><a class="anchor" id="a91153ca71797617ce225adf28d508510"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isWalkable (int <span class="paramname"><em>walkX</em>, </span>int <span class="paramname"><em>walkY</em> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if the given mini-tile position is walkable. </p><dl class="section note"><dt>Note</dt><dd>This function only checks if the static terrain is walkable. Its current occupied state is excluded from this check. To see if the space is currently occupied or not, then see <a class="el" href="class_b_w_a_p_i_1_1_game.html#af8661d4b5de86516f05c7028c6750f49" title="Retrieves the set of accessible units that are in a given rectangle. ">getUnitsInRectangle</a> .</dd></dl><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">walkX</td><td>The x coordinate of the mini-tile, in mini-tile units (8 pixels). </td></tr><tr><td class="paramname">walkY</td><td>The y coordinate of the mini-tile, in mini-tile units (8 pixels). </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>true if the mini-tile is walkable and false if it is impassable for ground units. </dd></dl></div></div><a class="anchor" id="a3a81d3cabc4b74ea9a412bd747d7c4a7"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::isWalkable (<a class="el" href="namespace_b_w_a_p_i.html#a102395122b5dfc54f83492c596feb29b">BWAPI::WalkPosition</a> <span class="paramname"><em>position</em></span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a94eb3e3fe7850078c2086638a46214be"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getGroundHeight (int <span class="paramname"><em>tileX</em>, </span>int <span class="paramname"><em>tileY</em> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Returns the ground height at the given tile position. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">tileX</td><td>X position to query, in tiles </td></tr><tr><td class="paramname">tileY</td><td>Y position to query, in tiles </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>The tile height as an integer. Possible values are:<ul><li>0: Low ground</li><li>1: Low ground doodad</li><li>2: High ground</li><li>3: High ground doodad</li><li>4: Very high ground</li><li>5: Very high ground doodad</li></ul></dd></dl></div></div><a class="anchor" id="a76e18cdd27b5375ad583f7129d5ce2b5"></a><div class="memitem"><div class="memproto">int BWAPI::Game::getGroundHeight (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> <span class="paramname"><em>position</em></span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a209c0a2968c7a91c1afcb2b7223b0684"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isBuildable (int <span class="paramname"><em>tileX</em>, </span>int <span class="paramname"><em>tileY</em>, </span>bool <span class="paramname"><em>includeBuildings</em> = <code>false</code> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if a given tile position is buildable. </p><p>This means that, if all other requirements are met, a structure can be placed on this tile. This function uses static map data.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">tileX</td><td>The x value of the tile to check. </td></tr><tr><td class="paramname">tileY</td><td>The y value of the tile to check. </td></tr><tr><td class="paramname">includeBuildings</td><td>(optional) If this is true, then this function will also check if any visible structures are occupying the space. If this value is false, then it only checks the static map data for tile buildability. This value is false by default. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>boolean identifying if the given tile position is buildable (true) or not (false). If <code>includeBuildings</code> was provided, then it will return false if a structure is currently occupying the tile. </dd></dl></div></div><a class="anchor" id="ae08cb949b4d6095175245aca28eca292"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::isBuildable (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> <span class="paramname"><em>position</em>, </span>bool <span class="paramname"><em>includeBuildings</em> = <code>false</code> </span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="ab4bd92271918d7f932959735ee78082d"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isVisible (int <span class="paramname"><em>tileX</em>, </span>int <span class="paramname"><em>tileY</em> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if a given tile position is visible to the current player. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">tileX</td><td>The x value of the tile to check. </td></tr><tr><td class="paramname">tileY</td><td>The y value of the tile to check. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>boolean identifying the visibility of the tile. If the given tile is visible, then the value is true. If the given tile is concealed by the fog of war, then this value will be false. </dd></dl></div></div><a class="anchor" id="a5877e23f238c1825c9eca6de3165ca79"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::isVisible (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> <span class="paramname"><em>position</em></span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a78e18e2853421ea5273a9d959267be19"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isExplored (int <span class="paramname"><em>tileX</em>, </span>int <span class="paramname"><em>tileY</em> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if a given tile position has been explored by the player. </p><p>An explored tile position indicates that the player has seen the location at some point in the match, partially revealing the fog of war for the remainder of the match.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">tileX</td><td>The x tile coordinate to check. </td></tr><tr><td class="paramname">tileY</td><td>The y tile coordinate to check. </td></tr></tbody></table></dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">true</td><td>If the player has explored the given tile position (partially revealed fog). </td></tr><tr><td class="paramname">false</td><td>If the tile position was never explored (completely black fog).</td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab4bd92271918d7f932959735ee78082d" title="Checks if a given tile position is visible to the current player. ">isVisible</a></dd></dl></div></div><a class="anchor" id="a24649800425078e3943a5b14d87ddb41"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::isExplored (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> <span class="paramname"><em>position</em></span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="aaefe9905f45a7c0b9baa2f66a42ae632"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::hasCreep (int <span class="paramname"><em>tileX</em>, </span>int <span class="paramname"><em>tileY</em> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if the given tile position has <a class="el" href="namespace_b_w_a_p_i_1_1_races.html#ad34de4d5faa0d1703a174337fc36ab97">Zerg</a> creep on it. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">tileX</td><td>The x tile coordinate to check. </td></tr><tr><td class="paramname">tileY</td><td>The y tile coordinate to check. </td></tr></tbody></table></dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">true</td><td>If the given tile has creep on it. </td></tr><tr><td class="paramname">false</td><td>If the given tile does not have creep, or if it is concealed by the fog of war. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a85f379c37397eed83707f3c278beef53"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::hasCreep (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> <span class="paramname"><em>position</em></span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a030f9d88f24c281ee3bf7c52f0f9a60c"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::hasPowerPrecise (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>unitType</em> = <code><a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a></code> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if the given pixel position is powered by an owned <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a346680c9f2748c5612e5241251cd9d2d">Protoss Pylon</a> for an optional unit type. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">x</td><td>The x pixel coordinate to check. </td></tr><tr><td class="paramname">y</td><td>The y pixel coordinate to check. </td></tr><tr><td class="paramname">unitType</td><td>(optional) Checks if the given <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html" title="The UnitType is used to get information about a particular type of unit, such as its cost...">UnitType</a> requires power or not. If ommitted, then it will assume that the position requires power for any unit type. </td></tr></tbody></table></dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">true</td><td>if the type at the given position will have power. </td></tr><tr><td class="paramname">false</td><td>if the type at the given position will be unpowered. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a81f6462ec38c22697421ff1c0c3fbe39"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::hasPowerPrecise (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>position</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>unitType</em> = <code><a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a></code> </span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a6d117a95700724aeb669effb5f1ff2ff"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::hasPower (int <span class="paramname"><em>tileX</em>, </span>int <span class="paramname"><em>tileY</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>unitType</em> = <code><a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a></code> </span>) const</div><div class="memdoc"><p>Checks if the given tile position if powered by an owned <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a346680c9f2748c5612e5241251cd9d2d">Protoss Pylon</a> for an optional unit type. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">tileX</td><td>The x tile coordinate to check. </td></tr><tr><td class="paramname">tileY</td><td>The y tile coordinate to check. </td></tr><tr><td class="paramname">unitType</td><td>(optional) Checks if the given <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html" title="The UnitType is used to get information about a particular type of unit, such as its cost...">UnitType</a> will be powered if placed at the given tile position. If omitted, then only the immediate tile position is checked for power, and the function will assume that the location requires power for any unit type. </td></tr></tbody></table></dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">true</td><td>if the type at the given tile position will receive power. </td></tr><tr><td class="paramname">false</td><td>if the type will be unpowered at the given tile position. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="aac20fed99e56c28de1f239b372156ce6"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::hasPower (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> <span class="paramname"><em>position</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>unitType</em> = <code><a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a></code> </span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a82d66fa7f9f1b619edeee43ae20d1dec"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::hasPower (int <span class="paramname"><em>tileX</em>, </span>int <span class="paramname"><em>tileY</em>, </span>int <span class="paramname"><em>tileWidth</em>, </span>int <span class="paramname"><em>tileHeight</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>unitType</em> = <code><a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a></code> </span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a584d3884a80e7c6089e88bc13cccf314"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::hasPower (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> <span class="paramname"><em>position</em>, </span>int <span class="paramname"><em>tileWidth</em>, </span>int <span class="paramname"><em>tileHeight</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>unitType</em> = <code><a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ac28dcf3f736c72a39f2e90b82b9a18f7">UnitTypes::None</a></code> </span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="aeb27c5ae787797bd151fbb6998ee0d9d"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::canBuildHere (<a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> <span class="paramname"><em>position</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>type</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> <span class="paramname"><em>builder</em> = <code>nullptr</code>, </span>bool <span class="paramname"><em>checkExplored</em> = <code>false</code> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if the given unit type can be built at the given build tile position. </p><p>This function checks for creep, power, and resource distance requirements in addition to the tiles' buildability and possible units obstructing the build location.</p><dl class="section note"><dt>Note</dt><dd>If the type is an addon and a builer is provided, then the location of the addon will be placed 4 tiles to the right and 1 tile down from the given <code>position</code>. If the builder is not given, then the check for the addon will be conducted at position.</dd><dd> If <code>type</code> is <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ad99d3c0ce3571efd7aaa1c2709a9f0c1" title="A special unit that indicates a player's starting location. ">UnitTypes::Special_Start_Location</a>, then the area for a resource depot (<a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#aa2eca0b2f1c369567020ade86c569b46">Command Center</a>, <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a9dd8fad5da92ccf6a9488a6b984d6f4f">Hatchery</a>, <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ad4929b0d518de23e6de8465c628213d0">Nexus</a>) is checked as normal, but any potential obstructions (existing structures, creep, units, etc.) are ignored.</dd></dl><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">position</td><td>Indicates the tile position that the top left corner of the structure is intended to go. </td></tr><tr><td class="paramname">type</td><td>The <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html" title="The UnitType is used to get information about a particular type of unit, such as its cost...">UnitType</a> to check for. </td></tr><tr><td class="paramname">builder</td><td>(optional) The intended unit that will build the structure. If specified, then this function will also check if there is a path to the build site and exclude the builder from the set of units that may be blocking the build site. </td></tr><tr><td class="paramname">checkExplored</td><td>(optional) If this parameter is true, it will also check if the target position has been explored by the current player. This value is false by default, ignoring the explored state of the build site. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>true indicating that the structure can be placed at the given tile position, and false if something may be obstructing the build location. </dd></dl></div></div><a class="anchor" id="a7423b73d248e4d1b4afa6cd17d3bf8ca"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::canMake (<a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>type</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> <span class="paramname"><em>builder</em> = <code>nullptr</code> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks all the requirements in order to make a given unit type for the current player. </p><p>These include resources, supply, technology tree, availability, and required units.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">type</td><td>The <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html" title="The UnitType is used to get information about a particular type of unit, such as its cost...">UnitType</a> to check. </td></tr><tr><td class="paramname">builder</td><td>(optional) The Unit that will be used to build/train the provided unit <code>type</code>. If this value is nullptr or excluded, then the builder will be excluded in the check. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>true indicating that the type can be made. If <code>builder</code> is provided, then it is only true if <code>builder</code> can make the <code>type</code>. Otherwise it will return false, indicating that the unit type can not be made. </dd></dl></div></div><a class="anchor" id="ad10051a0a72568d2b767c17f2c60f352"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::canResearch (<a class="el" href="class_b_w_a_p_i_1_1_tech_type.html">TechType</a> <span class="paramname"><em>type</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> <span class="paramname"><em>unit</em> = <code>nullptr</code>, </span>bool <span class="paramname"><em>checkCanIssueCommandType</em> = <code>true</code> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks all the requirements in order to research a given technology type for the current player. </p><p>These include resources, technology tree, availability, and required units.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">type</td><td>The <a class="el" href="class_b_w_a_p_i_1_1_tech_type.html" title="The TechType (or Technology Type, also referred to as an Ability) represents a Unit's ability which c...">TechType</a> to check. </td></tr><tr><td class="paramname">unit</td><td>(optional) The Unit that will be used to research the provided technology <code>type</code>. If this value is nullptr or excluded, then the unit will be excluded in the check. </td></tr><tr><td class="paramname">checkCanIssueCommandType</td><td>(optional) TODO fill this in </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>true indicating that the type can be researched. If <code>unit</code> is provided, then it is only true if <code>unit</code> can research the <code>type</code>. Otherwise it will return false, indicating that the technology can not be researched. </dd></dl></div></div><a class="anchor" id="ae9953ba1c9fb93ed3269fa6b5e78f168"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::canUpgrade (<a class="el" href="class_b_w_a_p_i_1_1_upgrade_type.html">UpgradeType</a> <span class="paramname"><em>type</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#afa82675af468ff71f8b884f63d200a54">Unit</a> <span class="paramname"><em>unit</em> = <code>nullptr</code>, </span>bool <span class="paramname"><em>checkCanIssueCommandType</em> = <code>true</code> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks all the requirements in order to upgrade a given upgrade type for the current player. </p><p>These include resources, technology tree, availability, and required units.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">type</td><td>The <a class="el" href="class_b_w_a_p_i_1_1_upgrade_type.html" title="The upgrade type represents a passive upgrade that can be obtained with UnitInterface::upgrade. ">UpgradeType</a> to check. </td></tr><tr><td class="paramname">unit</td><td>(optional) The Unit that will be used to upgrade the provided upgrade <code>type</code>. If this value is nullptr or excluded, then the unit will be excluded in the check. </td></tr><tr><td class="paramname">checkCanIssueCommandType</td><td>(optional) TODO fill this in </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>true indicating that the type can be upgraded. If <code>unit</code> is provided, then it is only true if <code>unit</code> can upgrade the <code>type</code>. Otherwise it will return false, indicating that the upgrade can not be upgraded. </dd></dl></div></div><a class="anchor" id="a72569ecde6fc619a505cb9822cc0baa6"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_point.html#a34cd51ee137b6957d4bb1c772f9853ab">TilePosition::list</a>& BWAPI::Game::getStartLocations () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all starting locations for the current map. </p><p>A starting location is essentially a candidate for a player's spawn point.</p><dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="class_b_w_a_p_i_1_1_point.html#a34cd51ee137b6957d4bb1c772f9853ab">TilePosition::list</a> containing all the TilePosition objects that indicate a start location. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_player_interface.html#a10406581d9c94622084313d1abe47976" title="Retrieve's the player's starting location. ">PlayerInterface::getStartLocation</a></dd></dl></div></div><a class="anchor" id="a179153276873126ee522e108c7dc1af5"></a><div class="memitem"><div class="memproto">void BWAPI::Game::printf (const char * <span class="paramname"><em>format</em>, </span> <span class="paramname"><em>...</em> </span>)</div><div class="memdoc"><p>Prints text to the screen as a notification. </p><p>This function allows text formatting using <a class="el" href="namespace_b_w_a_p_i_1_1_text.html#a944232c0d5b699bd4e51e36b37394555" title="Enumeration of text formatting codes">Text::Enum</a> members. The behaviour of this function is the same as printf, located in header cstdio.</p><dl class="section note"><dt>Note</dt><dd>That text printed through this function is not seen by other players or in replays.</dd></dl><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">format</td><td><a class="el" href="namespace_b_w_a_p_i_1_1_text.html" title="Namespace containing text formatting codes. ">Text</a> formatting. See <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a> for more information. Refrain from passing non-constant strings directly in this parameter. </td></tr><tr><td class="paramname">...</td><td>The arguments that will be formatted using the given text formatting. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="namespace_b_w_a_p_i_1_1_text.html#a944232c0d5b699bd4e51e36b37394555" title="Enumeration of text formatting codes">Text::Enum</a>, <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a></dd></dl></div></div><a class="anchor" id="ac23ed4a1c3ea83de9cd67ac17f5021ec"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::vPrintf (const char * <span class="paramname"><em>format</em>, </span><a class="elRef" href="//en.cppreference.com/w/cpp/utility/variadic/va_list.html">va_list</a> <span class="paramname"><em>args</em> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Prints text to the screen as a notification. </p><p>This function allows text formatting using <a class="el" href="namespace_b_w_a_p_i_1_1_text.html#a944232c0d5b699bd4e51e36b37394555" title="Enumeration of text formatting codes">Text::Enum</a> members. The behaviour of this function is the same as printf, located in header cstdio.</p><dl class="section note"><dt>Note</dt><dd>That text printed through this function is not seen by other players or in replays.</dd></dl><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">format</td><td><a class="el" href="namespace_b_w_a_p_i_1_1_text.html" title="Namespace containing text formatting codes. ">Text</a> formatting. See <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a> for more information. Refrain from passing non-constant strings directly in this parameter. </td></tr><tr><td class="paramname">...</td><td>The arguments that will be formatted using the given text formatting. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="namespace_b_w_a_p_i_1_1_text.html#a944232c0d5b699bd4e51e36b37394555" title="Enumeration of text formatting codes">Text::Enum</a>, <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a></dd></dl><p>This function is intended to forward an already-existing argument list.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">args</td><td>The argument list that will be formatted. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a179153276873126ee522e108c7dc1af5" title="Prints text to the screen as a notification. ">printf</a></dd></dl></div></div><a class="anchor" id="a1c962ad68ec74004b20e76d7cd3723f7"></a><div class="memitem"><div class="memproto">void BWAPI::Game::sendText (const char * <span class="paramname"><em>format</em>, </span> <span class="paramname"><em>...</em> </span>)</div><div class="memdoc"><p>Sends a text message to all other players in the game. </p><p>The behaviour of this function is the same as <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a>, located in header cstdio.</p><dl class="section note"><dt>Note</dt><dd>In a single player game this function can be used to execute cheat codes.</dd></dl><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">format</td><td><a class="el" href="namespace_b_w_a_p_i_1_1_text.html" title="Namespace containing text formatting codes. ">Text</a> formatting. See <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a> for more information. Refrain from passing non-constant strings directly in this parameter. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a05194126be7eaed2a1f994353bcaabef" title="An extended version of Game::sendText which allows messages to be forwarded to allies. ">sendTextEx</a>, <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a></dd></dl></div></div><a class="anchor" id="af8569d3a10642248dbece5bacdbcbabe"></a><div class="memitem"><div class="memproto">void BWAPI::Game::vSendText (const char * <span class="paramname"><em>format</em>, </span><a class="elRef" href="//en.cppreference.com/w/cpp/utility/variadic/va_list.html">va_list</a> <span class="paramname"><em>args</em> </span>)</div><div class="memdoc"><p>Sends a text message to all other players in the game. </p><p>The behaviour of this function is the same as <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a>, located in header cstdio.</p><dl class="section note"><dt>Note</dt><dd>In a single player game this function can be used to execute cheat codes.</dd></dl><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">format</td><td><a class="el" href="namespace_b_w_a_p_i_1_1_text.html" title="Namespace containing text formatting codes. ">Text</a> formatting. See <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a> for more information. Refrain from passing non-constant strings directly in this parameter. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a05194126be7eaed2a1f994353bcaabef" title="An extended version of Game::sendText which allows messages to be forwarded to allies. ">sendTextEx</a>, <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a></dd></dl><p>This function is intended to forward an already-existing argument list.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">args</td><td>The argument list that will be formatted. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a1c962ad68ec74004b20e76d7cd3723f7" title="Sends a text message to all other players in the game. ">sendText</a></dd></dl></div></div><a class="anchor" id="a05194126be7eaed2a1f994353bcaabef"></a><div class="memitem"><div class="memproto">void BWAPI::Game::sendTextEx (bool <span class="paramname"><em>toAllies</em>, </span>const char * <span class="paramname"><em>format</em>, </span> <span class="paramname"><em>...</em> </span>)</div><div class="memdoc"><p>An extended version of <a class="el" href="class_b_w_a_p_i_1_1_game.html#a1c962ad68ec74004b20e76d7cd3723f7" title="Sends a text message to all other players in the game. ">Game::sendText</a> which allows messages to be forwarded to allies. </p><p>The behaviour of this function is the same as <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a>, located in header cstdio.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">toAllies</td><td>If this parameter is set to true, then the message is only sent to allied players, otherwise it will be sent to all players. </td></tr><tr><td class="paramname">format</td><td><a class="el" href="namespace_b_w_a_p_i_1_1_text.html" title="Namespace containing text formatting codes. ">Text</a> formatting. See <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a> for more information. Refrain from passing non-constant strings directly in this parameter. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a1c962ad68ec74004b20e76d7cd3723f7" title="Sends a text message to all other players in the game. ">sendText</a>, <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a></dd></dl></div></div><a class="anchor" id="a513201d75f9d17b1f28c77e89a9284a4"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::vSendTextEx (bool <span class="paramname"><em>toAllies</em>, </span>const char * <span class="paramname"><em>format</em>, </span><a class="elRef" href="//en.cppreference.com/w/cpp/utility/variadic/va_list.html">va_list</a> <span class="paramname"><em>args</em> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>An extended version of <a class="el" href="class_b_w_a_p_i_1_1_game.html#a1c962ad68ec74004b20e76d7cd3723f7" title="Sends a text message to all other players in the game. ">Game::sendText</a> which allows messages to be forwarded to allies. </p><p>The behaviour of this function is the same as <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a>, located in header cstdio.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">toAllies</td><td>If this parameter is set to true, then the message is only sent to allied players, otherwise it will be sent to all players. </td></tr><tr><td class="paramname">format</td><td><a class="el" href="namespace_b_w_a_p_i_1_1_text.html" title="Namespace containing text formatting codes. ">Text</a> formatting. See <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a> for more information. Refrain from passing non-constant strings directly in this parameter. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a1c962ad68ec74004b20e76d7cd3723f7" title="Sends a text message to all other players in the game. ">sendText</a>, <a class="elRef" href="//en.cppreference.com/w/cpp/io/c/fprintf.html">std::printf</a></dd></dl><p>This function is intended to forward an already-existing argument list.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">args</td><td>The argument list that will be formatted. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a05194126be7eaed2a1f994353bcaabef" title="An extended version of Game::sendText which allows messages to be forwarded to allies. ">sendTextEx</a></dd></dl></div></div><a class="anchor" id="a798a783218dfd44736cad7330f3bb722"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isInGame () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if the current client is inside a game. </p><dl class="section return"><dt>Returns</dt><dd>true if the client is in a game, and false if it is not. </dd></dl></div></div><a class="anchor" id="a32d094a1e903641d9c57080dc5ea2b85"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isMultiplayer () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if the current client is inside a multiplayer game. </p><dl class="section return"><dt>Returns</dt><dd>true if the client is in a multiplayer game, and false if it is a single player game, a replay, or some other state. </dd></dl></div></div><a class="anchor" id="a2ca302ccd853af6b5b026771b92737ab"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isBattleNet () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if the client is in a game that was created through the Battle.net multiplayer gaming service. </p><dl class="section return"><dt>Returns</dt><dd>true if the client is in a multiplayer Battle.net game and false if it is not. </dd></dl></div></div><a class="anchor" id="aab0b5620d2ef5835a5e2e8999273aca4"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isPaused () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if the current game is paused. </p><p>While paused, <a class="el" href="class_b_w_a_p_i_1_1_a_i_module.html#a5fd6ec7878a556942a7666c5e68141ab" title="Called once for every execution of a logical frame in Broodwar. ">AIModule::onFrame</a> will still be called.</p><dl class="section return"><dt>Returns</dt><dd>true if the game is paused and false otherwise </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a79bf233045490ed0cfc5649ccfba8984" title="Pauses the game. ">pauseGame</a>, <a class="el" href="class_b_w_a_p_i_1_1_game.html#ae4313d3b2c372cf4fdefade30bde30df" title="Resumes the game from a paused state. ">resumeGame</a></dd></dl></div></div><a class="anchor" id="aead46eb31eec3766efe0241d420fdb8a"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isReplay () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if the client is watching a replay. </p><dl class="section return"><dt>Returns</dt><dd>true if the client is watching a replay and false otherwise </dd></dl></div></div><a class="anchor" id="a79bf233045490ed0cfc5649ccfba8984"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::pauseGame () <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Pauses the game. </p><p>While paused, <a class="el" href="class_b_w_a_p_i_1_1_a_i_module.html#a5fd6ec7878a556942a7666c5e68141ab" title="Called once for every execution of a logical frame in Broodwar. ">AIModule::onFrame</a> will still be called. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#ae4313d3b2c372cf4fdefade30bde30df" title="Resumes the game from a paused state. ">resumeGame</a></dd></dl></div></div><a class="anchor" id="ae4313d3b2c372cf4fdefade30bde30df"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::resumeGame () <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Resumes the game from a paused state. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a79bf233045490ed0cfc5649ccfba8984" title="Pauses the game. ">pauseGame</a></dd></dl></div></div><a class="anchor" id="a9e41514841958618f1867dd297fc4dac"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::leaveGame () <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Leaves the current game by surrendering and enters the post-game statistics/score screen. </p></div></div><a class="anchor" id="abe618329ee25aeac8914fd1e10ad11d4"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::restartGame () <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Restarts the match. </p><p>Works the same as if the match was restarted from the in-game menu (F10). This option is only available in single player games.</p></div></div><a class="anchor" id="af137dd167774591584ecbd3f1e950b43"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::setLocalSpeed (int <span class="paramname"><em>speed</em></span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Sets the number of milliseconds Broodwar spends in each frame. </p><p>The default values are as follows:</p><ul><li>Fastest: 42ms/frame</li><li>Faster: 48ms/frame</li><li>Fast: 56ms/frame</li><li>Normal: 67ms/frame</li><li>Slow: 83ms/frame</li><li>Slower: 111ms/frame</li><li>Slowest: 167ms/frame</li></ul><dl class="section note"><dt>Note</dt><dd>Specifying a value of 0 will not guarantee that logical frames are executed as fast as possible. If that is the intention, use this in combination with <a class="el" href="class_b_w_a_p_i_1_1_game.html#a166722909283eb4e75329ca4a8a8ef7a" title="Sets the number of graphical frames for every logical frame. ">setFrameSkip</a>.</dd></dl><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">speed</td><td>The time spent per frame, in milliseconds. A value of 0 indicates that frames are executed immediately with no delay. Negative values will restore the default value as listed above. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a166722909283eb4e75329ca4a8a8ef7a" title="Sets the number of graphical frames for every logical frame. ">setFrameSkip</a>, <a class="el" href="class_b_w_a_p_i_1_1_game.html#a36011b21829fee396e4e069e414c94a4" title="Retrieves the logical frame rate of the game in frames per second (FPS). ">getFPS</a></dd></dl></div></div><a class="anchor" id="aa729cca3c284cec49aecf59cfabaa84a"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::issueCommand (const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a> & <span class="paramname"><em>units</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_unit_command.html">UnitCommand</a> <span class="paramname"><em>command</em> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Issues a given command to a set of units. </p><p>This function automatically splits the set into groups of 12 and issues the same command to each of them. If a unit is not capable of executing the command, then it is simply ignored.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">units</td><td>A <a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> containing all the units to issue the command for. </td></tr><tr><td class="paramname">command</td><td>A <a class="el" href="class_b_w_a_p_i_1_1_unit_command.html">UnitCommand</a> object containing relevant information about the command to be issued. The Unit interface object associated with the command will be ignored. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>true if any one of the units in the <a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> were capable of executing the command, and false if none of the units were capable of executing the command. </dd></dl></div></div><a class="anchor" id="abf15581f8339d9f08515daeaf1152309"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_unitset.html">Unitset</a>& BWAPI::Game::getSelectedUnits () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of units that are currently selected by the user outside of <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a>. </p><p>This function requires that <a class="el" href="namespace_b_w_a_p_i_1_1_flag.html#a394478b7ea50a1fea08f7a73bbad04aea74a41a92f61bc4e7d1da3468de118d34" title="Enable to get information from the user (what units are selected, chat messages the user enters...">Flag::UserInput</a> be enabled.</p><dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="class_b_w_a_p_i_1_1_unitset.html" title="The Unitset is a container for a set of pointers to Unit objects. ">Unitset</a> containing the user's selected units. If <a class="el" href="namespace_b_w_a_p_i_1_1_flag.html#a394478b7ea50a1fea08f7a73bbad04aea74a41a92f61bc4e7d1da3468de118d34" title="Enable to get information from the user (what units are selected, chat messages the user enters...">Flag::UserInput</a> is disabled, then this set is always empty.</dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a4db25bc867384c505cacfafc3ee49314" title="Enables the state of a given flag. ">enableFlag</a></dd></dl></div></div><a class="anchor" id="a0fdd28532a098fb2ea0caa3bcd5f31dd"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> BWAPI::Game::self () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the player object that <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> is controlling. </p><dl class="section return"><dt>Returns</dt><dd>Pointer to Player interface object representing the current player. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">nullptr</td><td>if the current game is a replay.</td></tr></tbody></table></dd></dl><p>Example usage </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> ExampleAIModule::onStart()</div><div class="line">{</div><div class="line"><span class="keywordflow">if</span> ( <a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>-><span class="keyword">self</span>() )</div><div class="line"><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>->sendText(<span class="stringliteral">"Hello, my name is %s."</span>, <a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>-><span class="keyword">self</span>()->getName().c_str());</div><div class="line">}</div></div></div></div><a class="anchor" id="acaa158943c1a6880d17fd834d2299639"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> BWAPI::Game::enemy () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the Player interface that represents the enemy player. </p><p>If there is more than one enemy, and that enemy is destroyed, then this function will still retrieve the same, defeated enemy. If you wish to handle multiple opponents, see the <a class="el" href="class_b_w_a_p_i_1_1_game.html#ab7c8b930c4abaacb2cbdaf41255bfc7d" title="Retrieves a set of all the current player's remaining enemies. ">Game::enemies</a> function.</p><dl class="section return"><dt>Returns</dt><dd>Player interface representing an enemy player. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">nullptr</td><td>If there is no enemy or the current game is a replay. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#ab7c8b930c4abaacb2cbdaf41255bfc7d" title="Retrieves a set of all the current player's remaining enemies. ">enemies</a></dd></dl></div></div><a class="anchor" id="aa653ae61f330533e79ff0eb0527fdeda"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> BWAPI::Game::neutral () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the Player interface object representing the neutral player. </p><p>The neutral player owns all the resources and critters on the map by default.</p><dl class="section return"><dt>Returns</dt><dd>Player interface indicating the neutral player. </dd></dl></div></div><a class="anchor" id="a2a505ef21b781612d225732f1b8217a3"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="class_b_w_a_p_i_1_1_playerset.html">Playerset</a>& BWAPI::Game::allies () <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves a set of all the current player's remaining allies. </p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_playerset.html" title="A set containing Player objects.">Playerset</a> containing all allied players. </dd></dl></div></div><a class="anchor" id="ab7c8b930c4abaacb2cbdaf41255bfc7d"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="class_b_w_a_p_i_1_1_playerset.html">Playerset</a>& BWAPI::Game::enemies () <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves a set of all the current player's remaining enemies. </p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_playerset.html" title="A set containing Player objects.">Playerset</a> containing all enemy players. </dd></dl></div></div><a class="anchor" id="ab5872385347778a186b1681f4dca2219"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="class_b_w_a_p_i_1_1_playerset.html">Playerset</a>& BWAPI::Game::observers () <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves a set of all players currently observing the game. </p><p>An observer is defined typically in a <a class="el" href="namespace_b_w_a_p_i_1_1_game_types.html#ad49903c20bd1fa93215f8f0f23d07008">Use Map Settings</a> game type as not having any impact on the game. This means an observer cannot start with any units, and cannot have any active trigger actions that create units for it.</p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_playerset.html" title="A set containing Player objects.">Playerset</a> containing all currently active observer players </dd></dl></div></div><a class="anchor" id="a0e9fa97a25efe4019ffcb5d719e41956"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::setTextSize (<a class="el" href="namespace_b_w_a_p_i_1_1_text_1_1_size.html#a3a0e4e831aac8352247a1e559eab2588">Text::Size::Enum</a> <span class="paramname"><em>size</em> = <code><a class="el" href="namespace_b_w_a_p_i_1_1_text_1_1_size.html#a3a0e4e831aac8352247a1e559eab2588ac18974997391d0622f9654872f7df069">Text::Size::Default</a></code></span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Sets the size of the text for all calls to drawText following this one. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">size</td><td>(optional) The size of the text. This value is one of <a class="el" href="namespace_b_w_a_p_i_1_1_text_1_1_size.html#a3a0e4e831aac8352247a1e559eab2588" title="Enumeration of available text sizes">Text::Size::Enum</a>. If this value is omitted, then a default value of <a class="el" href="namespace_b_w_a_p_i_1_1_text_1_1_size.html#a3a0e4e831aac8352247a1e559eab2588ac18974997391d0622f9654872f7df069" title="The standard text size, used for most things in the game such as chat messages.">Text::Size::Default</a> is used. </td></tr></tbody></table></dd></dl><p>Example usage </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> ExampleAIModule::onFrame()</div><div class="line">{</div><div class="line"><span class="comment">// Centers the name of the player in the upper middle of the screen</span></div><div class="line"><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>->setTextSize(<a class="code" href="namespace_b_w_a_p_i_1_1_text_1_1_size.html#a3a0e4e831aac8352247a1e559eab2588a30d93b4f555e7cc24a47d8463a014616">BWAPI::Text::Size::Large</a>);</div><div class="line"><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>->drawTextScreen(<a class="code" href="namespace_b_w_a_p_i_1_1_positions.html#afbb0901720907502320ccaeaf0e5484a">BWAPI::Positions::Origin</a>, <span class="stringliteral">"%c%c%s"</span>,</div><div class="line"><a class="code" href="namespace_b_w_a_p_i_1_1_text.html#a944232c0d5b699bd4e51e36b37394555accb48f458b8e7abb5d7d96b13a3fecf5">BWAPI::Text::Align_Center</a>,</div><div class="line"><a class="code" href="namespace_b_w_a_p_i_1_1_text.html#a944232c0d5b699bd4e51e36b37394555aa2b0f1f4624c857795fca33b74cf8e64">BWAPI::Text::Green</a>,</div><div class="line"><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>-><span class="keyword">self</span>()->getName().c_str() );</div><div class="line"><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>->setTextSize(); <span class="comment">// Set text size back to default</span></div><div class="line">}</div></div><dl class="section see"><dt>See also</dt><dd><a class="el" href="namespace_b_w_a_p_i_1_1_text_1_1_size.html#a3a0e4e831aac8352247a1e559eab2588" title="Enumeration of available text sizes">Text::Size::Enum</a></dd></dl></div></div><a class="anchor" id="a33bd6019a44bfabc67ae54d9c4698587"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::vDrawText (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> <span class="paramname"><em>ctype</em>, </span>int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>const char * <span class="paramname"><em>format</em>, </span><a class="elRef" href="//en.cppreference.com/w/cpp/utility/variadic/va_list.html">va_list</a> <span class="paramname"><em>arg</em> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Draws text on the screen at the given coordinates. </p><p><a class="el" href="namespace_b_w_a_p_i_1_1_text.html" title="Namespace containing text formatting codes. ">Text</a> can be drawn in different colors or formatted using the <a class="el" href="namespace_b_w_a_p_i_1_1_text.html#a944232c0d5b699bd4e51e36b37394555" title="Enumeration of text formatting codes">Text::Enum</a> members.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">ctype</td><td>The coordinate type. Indicates the relative position to draw the shape. </td></tr><tr><td class="paramname">x</td><td>The x coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">y</td><td>The y coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">format</td><td>The string formatting portion. This is the same as printf style formatting. </td></tr><tr><td class="paramname">arg</td><td>Arglist containing the intermediate list of arguments to format before finally sending the string to Broodwar. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="aabef873c49a1f47a67e8463772e7430a"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawText (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> <span class="paramname"><em>ctype</em>, </span>int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>const char * <span class="paramname"><em>format</em>, </span> <span class="paramname"><em>...</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a15e0b4df2b781f5f0ebf264808b2459b"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTextMap (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>const char * <span class="paramname"><em>format</em>, </span> <span class="paramname"><em>...</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a2b76b7604db96afb8ba4655c2c37d2a5"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTextMap (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span>const char * <span class="paramname"><em>format</em>, </span> <span class="paramname"><em>...</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a6dd46b9e4110243430696f0a975ca372"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTextMouse (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>const char * <span class="paramname"><em>format</em>, </span> <span class="paramname"><em>...</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a1821f66c8f8dd9fd4c31ff85b6999575"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTextMouse (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span>const char * <span class="paramname"><em>format</em>, </span> <span class="paramname"><em>...</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="aa56e904bc958ae5744fdb459f27486d5"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTextScreen (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>const char * <span class="paramname"><em>format</em>, </span> <span class="paramname"><em>...</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a384489209bbd2d2109aab2195a3d16d0"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTextScreen (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span>const char * <span class="paramname"><em>format</em>, </span> <span class="paramname"><em>...</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a432ebde5ab87282b9d126611d15182b8"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::drawBox (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> <span class="paramname"><em>ctype</em>, </span>int <span class="paramname"><em>left</em>, </span>int <span class="paramname"><em>top</em>, </span>int <span class="paramname"><em>right</em>, </span>int <span class="paramname"><em>bottom</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Draws a rectangle on the screen with the given color. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">ctype</td><td>The coordinate type. Indicates the relative position to draw the shape. </td></tr><tr><td class="paramname">left</td><td>The x coordinate, in pixels, relative to ctype, of the left edge of the rectangle. </td></tr><tr><td class="paramname">top</td><td>The y coordinate, in pixels, relative to ctype, of the top edge of the rectangle. </td></tr><tr><td class="paramname">right</td><td>The x coordinate, in pixels, relative to ctype, of the right edge of the rectangle. </td></tr><tr><td class="paramname">bottom</td><td>The y coordinate, in pixels, relative to ctype, of the bottom edge of the rectangle. </td></tr><tr><td class="paramname">color</td><td>The color of the rectangle. </td></tr><tr><td class="paramname">isSolid</td><td>(optional) If true, then the shape will be filled and drawn as a solid, otherwise it will be drawn as an outline. If omitted, this value will default to false. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="ab95ec92170644810c0581aa7d0164ed5"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawBoxMap (int <span class="paramname"><em>left</em>, </span>int <span class="paramname"><em>top</em>, </span>int <span class="paramname"><em>right</em>, </span>int <span class="paramname"><em>bottom</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a3518dffe1e84a49ec6dc0849df02d0de"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawBoxMap (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>leftTop</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>rightBottom</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a65959b21ce28aeff12732ac7c4124dd2"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawBoxMouse (int <span class="paramname"><em>left</em>, </span>int <span class="paramname"><em>top</em>, </span>int <span class="paramname"><em>right</em>, </span>int <span class="paramname"><em>bottom</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="af44ce163d9b041adaa1e3b225a76d0b3"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawBoxMouse (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>leftTop</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>rightBottom</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a48765cd67c9f8ffa4f86f6f453852564"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawBoxScreen (int <span class="paramname"><em>left</em>, </span>int <span class="paramname"><em>top</em>, </span>int <span class="paramname"><em>right</em>, </span>int <span class="paramname"><em>bottom</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a0cbbf64d025b16224ba9823d7e3ceab5"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawBoxScreen (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>leftTop</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>rightBottom</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a333667667a8b006f26c39c9da164783f"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::drawTriangle (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> <span class="paramname"><em>ctype</em>, </span>int <span class="paramname"><em>ax</em>, </span>int <span class="paramname"><em>ay</em>, </span>int <span class="paramname"><em>bx</em>, </span>int <span class="paramname"><em>by</em>, </span>int <span class="paramname"><em>cx</em>, </span>int <span class="paramname"><em>cy</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Draws a triangle on the screen with the given color. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">ctype</td><td>The coordinate type. Indicates the relative position to draw the shape. </td></tr><tr><td class="paramname">ax</td><td>The x coordinate, in pixels, relative to ctype, of the first point. </td></tr><tr><td class="paramname">ay</td><td>The y coordinate, in pixels, relative to ctype, of the first point. </td></tr><tr><td class="paramname">bx</td><td>The x coordinate, in pixels, relative to ctype, of the second point. </td></tr><tr><td class="paramname">by</td><td>The y coordinate, in pixels, relative to ctype, of the second point. </td></tr><tr><td class="paramname">cx</td><td>The x coordinate, in pixels, relative to ctype, of the third point. </td></tr><tr><td class="paramname">cy</td><td>The y coordinate, in pixels, relative to ctype, of the third point. </td></tr><tr><td class="paramname">color</td><td>The color of the triangle. </td></tr><tr><td class="paramname">isSolid</td><td>(optional) If true, then the shape will be filled and drawn as a solid, otherwise it will be drawn as an outline. If omitted, this value will default to false. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a7c5fb4fc1681c6e45b44b2b5e464ab1b"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTriangleMap (int <span class="paramname"><em>ax</em>, </span>int <span class="paramname"><em>ay</em>, </span>int <span class="paramname"><em>bx</em>, </span>int <span class="paramname"><em>by</em>, </span>int <span class="paramname"><em>cx</em>, </span>int <span class="paramname"><em>cy</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a8c99f0ab04cf4067a5cc442612f25dc8"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTriangleMap (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>a</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>b</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>c</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a93bd9c68f3dc2f4ecbecab89b2af1d85"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTriangleMouse (int <span class="paramname"><em>ax</em>, </span>int <span class="paramname"><em>ay</em>, </span>int <span class="paramname"><em>bx</em>, </span>int <span class="paramname"><em>by</em>, </span>int <span class="paramname"><em>cx</em>, </span>int <span class="paramname"><em>cy</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a3cd0050e06205c223f1ba6a349809c18"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTriangleMouse (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>a</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>b</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>c</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a62a30130d802f0b62dbc31cb426681d6"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTriangleScreen (int <span class="paramname"><em>ax</em>, </span>int <span class="paramname"><em>ay</em>, </span>int <span class="paramname"><em>bx</em>, </span>int <span class="paramname"><em>by</em>, </span>int <span class="paramname"><em>cx</em>, </span>int <span class="paramname"><em>cy</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a9b1a7247e5259681abfa1ced67a58baf"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawTriangleScreen (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>a</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>b</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>c</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a14345bf7deb242bfe53919511fdca3c2"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::drawCircle (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> <span class="paramname"><em>ctype</em>, </span>int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>int <span class="paramname"><em>radius</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Draws a circle on the screen with the given color. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">ctype</td><td>The coordinate type. Indicates the relative position to draw the shape. </td></tr><tr><td class="paramname">x</td><td>The x coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">y</td><td>The y coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">radius</td><td>The radius of the circle, in pixels. </td></tr><tr><td class="paramname">color</td><td>The color of the circle. </td></tr><tr><td class="paramname">isSolid</td><td>(optional) If true, then the shape will be filled and drawn as a solid, otherwise it will be drawn as an outline. If omitted, this value will default to false. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="acce16a24c29642702459a228b4288531"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawCircleMap (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>int <span class="paramname"><em>radius</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a548cb981901ea3fcd60bea1695dec4b2"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawCircleMap (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span>int <span class="paramname"><em>radius</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a0dde7c1bd0cb4ad3521864379a8d631b"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawCircleMouse (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>int <span class="paramname"><em>radius</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a109437bba0242a6288f9691e3a7cd2eb"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawCircleMouse (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span>int <span class="paramname"><em>radius</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a73fc75f350dc5c8f982ed9a389829c81"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawCircleScreen (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>int <span class="paramname"><em>radius</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a9a4e9fd7323073d2db8a744a0f723bf7"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawCircleScreen (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span>int <span class="paramname"><em>radius</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="ac17073c7c913cbec70303ac1d689d0b6"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::drawEllipse (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> <span class="paramname"><em>ctype</em>, </span>int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>int <span class="paramname"><em>xrad</em>, </span>int <span class="paramname"><em>yrad</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Draws an ellipse on the screen with the given color. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">ctype</td><td>The coordinate type. Indicates the relative position to draw the shape. </td></tr><tr><td class="paramname">x</td><td>The x coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">y</td><td>The y coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">xrad</td><td>The x radius of the ellipse, in pixels. </td></tr><tr><td class="paramname">yrad</td><td>The y radius of the ellipse, in pixels. </td></tr><tr><td class="paramname">color</td><td>The color of the ellipse. </td></tr><tr><td class="paramname">isSolid</td><td>(optional) If true, then the shape will be filled and drawn as a solid, otherwise it will be drawn as an outline. If omitted, this value will default to false. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="ad3a6e50cbfa7e0892a8c86fa7a80d950"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawEllipseMap (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>int <span class="paramname"><em>xrad</em>, </span>int <span class="paramname"><em>yrad</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a17d1c3e0a4ab5f5b8c53e9aae8f96157"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawEllipseMap (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span>int <span class="paramname"><em>xrad</em>, </span>int <span class="paramname"><em>yrad</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="abc853368965217204c6cb49f37564ecf"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawEllipseMouse (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>int <span class="paramname"><em>xrad</em>, </span>int <span class="paramname"><em>yrad</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="af2fa147a737bebd5af97aa3b59e6a93f"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawEllipseMouse (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span>int <span class="paramname"><em>xrad</em>, </span>int <span class="paramname"><em>yrad</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a9c4266b85a20e73e51d612726889b460"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawEllipseScreen (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span>int <span class="paramname"><em>xrad</em>, </span>int <span class="paramname"><em>yrad</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a180cb6df24e4a202a6b0e82bbf68cd73"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawEllipseScreen (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span>int <span class="paramname"><em>xrad</em>, </span>int <span class="paramname"><em>yrad</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em>, </span>bool <span class="paramname"><em>isSolid</em> = <code>false</code> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a0cc1049c4768695a7d59a87100f2a4db"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::drawDot (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> <span class="paramname"><em>ctype</em>, </span>int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Draws a dot on the map or screen with a given color. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">ctype</td><td>The coordinate type. Indicates the relative position to draw the shape. </td></tr><tr><td class="paramname">x</td><td>The x coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">y</td><td>The y coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">color</td><td>The color of the dot. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a69760027cec996aa40f1eb5e47e36854"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawDotMap (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a7a0b033b0e22370febea4ec9d4c9453e"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawDotMap (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a555aa424eb2ff0d2979d1443c00c5a7f"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawDotMouse (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a3900680c0a3a2280f4263122e2624108"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawDotMouse (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a4d2fcd44467c232ea6abeacea584c22f"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawDotScreen (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="ab0e90dc512b86282d5675d0dfbcefade"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawDotScreen (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>p</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a5014319fbd034e65fc416a29198a91ab"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::drawLine (<a class="el" href="namespace_b_w_a_p_i_1_1_coordinate_type.html#a44abdfdfcf5c0fd00406ca992937b254">CoordinateType::Enum</a> <span class="paramname"><em>ctype</em>, </span>int <span class="paramname"><em>x1</em>, </span>int <span class="paramname"><em>y1</em>, </span>int <span class="paramname"><em>x2</em>, </span>int <span class="paramname"><em>y2</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Draws a line on the map or screen with a given color. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">ctype</td><td>The coordinate type. Indicates the relative position to draw the shape. </td></tr><tr><td class="paramname">x1</td><td>The starting x coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">y1</td><td>The starting y coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">x2</td><td>The ending x coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">y2</td><td>The ending y coordinate, in pixels, relative to ctype. </td></tr><tr><td class="paramname">color</td><td>The color of the line. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a02901e37c8e65a5f1b4d082729120dd4"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawLineMap (int <span class="paramname"><em>x1</em>, </span>int <span class="paramname"><em>y1</em>, </span>int <span class="paramname"><em>x2</em>, </span>int <span class="paramname"><em>y2</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a1701d31e81908ed267a711aea3a7f325"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawLineMap (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>a</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>b</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a0e09042cfbda3d35baeeeb54daf19556"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawLineMouse (int <span class="paramname"><em>x1</em>, </span>int <span class="paramname"><em>y1</em>, </span>int <span class="paramname"><em>x2</em>, </span>int <span class="paramname"><em>y2</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="aebd889d4cda911c8409573ee49509051"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawLineMouse (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>a</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>b</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a30bdd1109494f1cc9470fd19b0882066"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawLineScreen (int <span class="paramname"><em>x1</em>, </span>int <span class="paramname"><em>y1</em>, </span>int <span class="paramname"><em>x2</em>, </span>int <span class="paramname"><em>y2</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a519f22b3762b10a72747d41e937adac8"></a><div class="memitem"><div class="memproto">void BWAPI::Game::drawLineScreen (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>a</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>b</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_color.html">Color</a> <span class="paramname"><em>color</em> </span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a4f45dfffb32a07f75eef456ed56abebd"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getLatencyFrames () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the maximum delay, in number of frames, between a command being issued and the command being executed by Broodwar. </p><dl class="section note"><dt>Note</dt><dd>In Broodwar, latency is used to keep the game synchronized between players without introducing lag.</dd></dl><dl class="section return"><dt>Returns</dt><dd>Difference in frames between commands being sent and executed. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#ac72459004bbd57fbc6f5b38b79edf00b" title="Retrieves the maximum delay, in milliseconds, between a command being issued and the command being ex...">getLatencyTime</a>, <a class="el" href="class_b_w_a_p_i_1_1_game.html#a7805a48b9ca0adfeaf8f547559ad3270" title="Retrieves the number of frames it will take before a command sent in the current frame will be execut...">getRemainingLatencyFrames</a></dd></dl></div></div><a class="anchor" id="ac72459004bbd57fbc6f5b38b79edf00b"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getLatencyTime () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the maximum delay, in milliseconds, between a command being issued and the command being executed by Broodwar. </p><dl class="section return"><dt>Returns</dt><dd>Difference in milliseconds between commands being sent and executed. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a4f45dfffb32a07f75eef456ed56abebd" title="Retrieves the maximum delay, in number of frames, between a command being issued and the command bein...">getLatencyFrames</a>, <a class="el" href="class_b_w_a_p_i_1_1_game.html#ac4c542dd75a3fd714d31314fb49e9acd" title="Retrieves the number of milliseconds it will take before a command sent in the current frame will be ...">getRemainingLatencyTime</a></dd></dl></div></div><a class="anchor" id="a7805a48b9ca0adfeaf8f547559ad3270"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getRemainingLatencyFrames () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the number of frames it will take before a command sent in the current frame will be executed by the game. </p><dl class="section return"><dt>Returns</dt><dd>Number of frames until a command is executed if it were sent in the current frame. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#ac4c542dd75a3fd714d31314fb49e9acd" title="Retrieves the number of milliseconds it will take before a command sent in the current frame will be ...">getRemainingLatencyTime</a>, <a class="el" href="class_b_w_a_p_i_1_1_game.html#a4f45dfffb32a07f75eef456ed56abebd" title="Retrieves the maximum delay, in number of frames, between a command being issued and the command bein...">getLatencyFrames</a></dd></dl></div></div><a class="anchor" id="ac4c542dd75a3fd714d31314fb49e9acd"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getRemainingLatencyTime () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the number of milliseconds it will take before a command sent in the current frame will be executed by Broodwar. </p><dl class="section return"><dt>Returns</dt><dd>Amount of time, in milliseconds, until a command is executed if it were sent in the current frame. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a7805a48b9ca0adfeaf8f547559ad3270" title="Retrieves the number of frames it will take before a command sent in the current frame will be execut...">getRemainingLatencyFrames</a>, <a class="el" href="class_b_w_a_p_i_1_1_game.html#ac72459004bbd57fbc6f5b38b79edf00b" title="Retrieves the maximum delay, in milliseconds, between a command being issued and the command being ex...">getLatencyTime</a></dd></dl></div></div><a class="anchor" id="a0c8329832a12612fa0de1fef8d22036b"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getRevision () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the current revision of <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a>. </p><dl class="section return"><dt>Returns</dt><dd>The revision number of the current <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> interface.</dd></dl><dl class="section note"><dt>Note</dt><dd>This function is considered thread-safe. </dd></dl></div></div><a class="anchor" id="a380dfa9cd7a52c75a1b9d183fe0433bf"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getClientVersion () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the version that the <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> client is using for compatibility checks. </p><dl class="section return"><dt>Returns</dt><dd>The version number for the <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> client.</dd></dl><dl class="section note"><dt>Note</dt><dd>This function is considered thread-safe. </dd></dl><dl class="section since"><dt>Since</dt><dd>4.2.0 </dd></dl></div></div><a class="anchor" id="ab87f20cd6e5712204150d8c154d634ac"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isDebug () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the debug state of the <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> build. </p><dl class="section return"><dt>Returns</dt><dd>true if the <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> module is a DEBUG build, and false if it is a RELEASE build.</dd></dl><dl class="section note"><dt>Note</dt><dd>This function is considered thread-safe. </dd></dl></div></div><a class="anchor" id="a2f9409eade5638d269b08cf64121f783"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isLatComEnabled () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks the state of latency compensation. </p><dl class="section return"><dt>Returns</dt><dd>true if latency compensation is enabled, false if it is disabled. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a6d87a7b6cf4546aea44403aa3e4822e1" title="Changes the state of latency compensation. ">setLatCom</a></dd></dl></div></div><a class="anchor" id="a6d87a7b6cf4546aea44403aa3e4822e1"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::setLatCom (bool <span class="paramname"><em>isEnabled</em></span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Changes the state of latency compensation. </p><p><a class="el" href="namespace_b_w_a_p_i_1_1_latency.html" title="Contains enumeration of known latency values. ">Latency</a> compensation modifies the state of <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a>'s representation of units to reflect the implications of issuing a command immediately after the command was performed, instead of waiting consecutive frames for the results. <a class="el" href="namespace_b_w_a_p_i_1_1_latency.html" title="Contains enumeration of known latency values. ">Latency</a> compensation is enabled by default.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">isEnabled</td><td>Set whether the latency compensation feature will be enabled (true) or disabled (false). </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a2f9409eade5638d269b08cf64121f783" title="Checks the state of latency compensation. ">isLatComEnabled</a>. </dd></dl></div></div><a class="anchor" id="a20da1990a48f2e91a3556971cd0e8e19"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::isGUIEnabled () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Checks if the GUI is enabled. </p><p>The GUI includes all drawing functions of <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a>, as well as screen updates from Broodwar.</p><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">true</td><td>If the GUI is enabled, and everything is visible </td></tr><tr><td class="paramname">false</td><td>If the GUI is disabled and drawing functions are rejected</td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#af7801eafd1cd90beb0544f6f3275da7b" title="Sets the rendering state of the Starcraft GUI. ">setGUI</a></dd></dl></div></div><a class="anchor" id="af7801eafd1cd90beb0544f6f3275da7b"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::setGUI (bool <span class="paramname"><em>enabled</em></span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Sets the rendering state of the Starcraft GUI. </p><p>This typically gives Starcraft a very low graphical frame rate and disables all drawing functionality in <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a>.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">enabled</td><td>A boolean value that determines the state of the GUI. Passing false to this function will disable the GUI, and true will enable it. </td></tr></tbody></table></dd></dl><p>Example Usage: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> ExampleAIModule::onStart()</div><div class="line">{ <span class="comment">// Make our bot run thousands of games as fast as possible!</span></div><div class="line"><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">Broodwar</a>->setLocalSpeed(0);</div><div class="line"><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">Broodwar</a>->setGUI(<span class="keyword">false</span>);</div><div class="line">}</div></div><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a20da1990a48f2e91a3556971cd0e8e19" title="Checks if the GUI is enabled. ">isGUIEnabled</a></dd></dl></div></div><a class="anchor" id="a6baa5a6466110887a502629ef052a123"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getInstanceNumber () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the Starcraft instance number recorded by <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> to identify which Starcraft instance an AI module belongs to. </p><p>The very first instance should return 0.</p><dl class="section return"><dt>Returns</dt><dd>An integer value representing the instance number.</dd></dl><dl class="section note"><dt>Note</dt><dd>This function is considered thread-safe. </dd></dl></div></div><a class="anchor" id="a56f2067381fb3830dadfabb99c89ecfe"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getAPM (bool <span class="paramname"><em>includeSelects</em> = <code>false</code></span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the Actions Per Minute (APM) that the bot is producing. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">includeSelects</td><td>(optional) If true, the return value will include selections as individual commands, otherwise it will exclude selections. This value is false by default. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>The number of actions that the bot has executed per minute, on average. </dd></dl></div></div><a class="anchor" id="a83f6afbc9544225df9951700d7e369d1"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::setMap (const char * <span class="paramname"><em>mapFileName</em></span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Changes the map to the one specified. </p><p>Once restarted, the game will load the map that was provided. Changes do not take effect unless the game is restarted.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">mapFileName</td><td>A string containing the path and file name to the desired map. </td></tr></tbody></table></dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">true</td><td>if the function succeeded and has changed the map. </td></tr><tr><td class="paramname">false</td><td>if the function failed, does not have permission from the tournament module, failed to find the map specified, or received an invalid parameter. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a19666c06fdb7223e4fdbef64dbda6dcd"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::setMap (const <a class="elRef" href="//en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> & <span class="paramname"><em>mapFileName</em></span>)</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="a166722909283eb4e75329ca4a8a8ef7a"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::setFrameSkip (int <span class="paramname"><em>frameSkip</em></span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Sets the number of graphical frames for every logical frame. </p><p>This allows the game to run more logical frames per graphical frame, increasing the speed at which the game runs.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">frameSkip</td><td>Number of graphical frames per logical frame. If this value is 0 or less, then it will default to 1. </td></tr></tbody></table></dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#af137dd167774591584ecbd3f1e950b43" title="Sets the number of milliseconds Broodwar spends in each frame. ">setLocalSpeed</a></dd></dl></div></div><a class="anchor" id="af5892c4c0aecc7fe230d2acfdf6ed94b"></a><div class="memitem"><div class="memproto">bool BWAPI::Game::hasPath (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>source</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">Position</a> <span class="paramname"><em>destination</em> </span>) const</div><div class="memdoc"><p>Checks if there is a path from source to destination. </p><p>This only checks if the source position is connected to the destination position. This function does not check if all units can actually travel from source to destination. Because of this limitation, it has an O(1) complexity, and cases where this limitation hinders gameplay is uncommon at best.</p><dl class="section note"><dt>Note</dt><dd>If making queries on a unit, it's better to call <a class="el" href="class_b_w_a_p_i_1_1_unit_interface.html#a2e89fc5eea87b9aa79aed267a98442b8" title="Using data provided by Starcraft, checks if there is a path available from this unit to the given tar...">UnitInterface::hasPath</a>, since it is a more lenient version of this function that accounts for some edge cases.</dd></dl><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">source</td><td>The source position. </td></tr><tr><td class="paramname">destination</td><td>The destination position. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>true if there is a path between the two positions, and false if there is not. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_unit_interface.html#a2e89fc5eea87b9aa79aed267a98442b8" title="Using data provided by Starcraft, checks if there is a path available from this unit to the given tar...">UnitInterface::hasPath</a></dd></dl></div></div><a class="anchor" id="ad88def202d97fa727371d01fc49adb6d"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::setAlliance (<a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">BWAPI::Player</a> <span class="paramname"><em>player</em>, </span>bool <span class="paramname"><em>allied</em> = <code>true</code>, </span>bool <span class="paramname"><em>alliedVictory</em> = <code>true</code> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Sets the alliance state of the current player with the target player. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">player</td><td>The target player to set alliance with. </td></tr><tr><td class="paramname">allied</td><td>(optional) If true, the current player will ally the target player. If false, the current player will make the target player an enemy. This value is true by default. </td></tr><tr><td class="paramname">alliedVictory</td><td>(optional) Sets the state of "allied victory". If true, the game will end in a victory if all allied players have eliminated their opponents. Otherwise, the game will only end if no other players are remaining in the game. This value is true by default. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="aa8011a1282e1c806bdf8517f18fd7c1a"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::setVision (<a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">BWAPI::Player</a> <span class="paramname"><em>player</em>, </span>bool <span class="paramname"><em>enabled</em> = <code>true</code> </span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>In a game, this function sets the vision of the current <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> player with the target player. </p><p>In a replay, this function toggles the visibility of the target player.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">player</td><td>The target player to toggle vision. </td></tr><tr><td class="paramname">enabled</td><td>(optional) The vision state. If true, and in a game, the current player will enable shared vision with the target player, otherwise it will unshare vision. If in a replay, the vision of the target player will be shown, otherwise the target player will be hidden. This value is true by default. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a69b1a233eaa971a95835ed5313a00de1"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::elapsedTime () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves current amount of time in seconds that the game has elapsed. </p><dl class="section return"><dt>Returns</dt><dd>Time, in seconds, that the game has elapsed as an integer. </dd></dl></div></div><a class="anchor" id="a2e44b952a0a55416da1628237bbc82ea"></a><div class="memitem"><div class="memproto">virtual void BWAPI::Game::setCommandOptimizationLevel (int <span class="paramname"><em>level</em></span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Sets the command optimization level. </p><p>Command optimization is a feature in <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> that tries to reduce the APM of the bot by grouping or eliminating unnecessary game actions. For example, suppose the bot told 24 <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#aecc7b465c9d18ee06c189bd43267e86a">Zerglings</a> to <a class="el" href="namespace_b_w_a_p_i_1_1_tech_types.html#a803597e2d289ec0c22fdcb8a25395554">Burrow</a>. At command optimization level 0, <a class="el" href="namespace_b_w_a_p_i.html" title="The primary namespace for the BWAPI interface. ">BWAPI</a> is designed to select each Zergling to burrow individually, which costs 48 actions. With command optimization level 1, it can perform the same behaviour using only 4 actions. The command optimizer also reduces the amount of bytes used for each action if it can express the same action using a different command. For example, Right_Click uses less bytes than Move.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">level</td><td>An integer representation of the aggressiveness for which commands are optimized. A lower level means less optimization, and a higher level means more optimization. </td></tr></tbody></table></dd></dl><p>The values for <code>level</code> are as follows:</p><ul><li>0: No optimization.</li><li>1: Some optimization.<ul><li>Is not detected as a hack.</li><li>Does not alter behaviour.</li><li>Units performing the following actions are grouped and ordered 12 at a time:<ul><li>Attack_Unit</li><li>Morph (<a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a30167e04ab1bf2e89cc91085f08f6f5c">Larva</a> only)</li><li>Hold_Position</li><li>Stop</li><li>Follow</li><li>Gather</li><li>Return_Cargo</li><li>Repair</li><li>Burrow</li><li>Unburrow</li><li>Cloak</li><li>Decloak</li><li>Siege</li><li>Unsiege</li><li>Right_Click_Unit</li><li>Halt_Construction</li><li>Cancel_Train (<a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a6e7975149f92d898a7dd08203aa4caae">Carrier</a> and <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a284a350329f0d38a2a753481f312a5ed">Reaver</a> only)</li><li>Cancel_Train_Slot (<a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a6e7975149f92d898a7dd08203aa4caae">Carrier</a> and <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a284a350329f0d38a2a753481f312a5ed">Reaver</a> only)</li><li>Cancel_Morph (for non-buildings only)</li><li>Use_Tech</li><li>Use_Tech_Unit</li></ul></li><li>The following order transformations are applied to allow better grouping:<ul><li>Attack_Unit becomes Right_Click_Unit if the target is an enemy</li><li>Move becomes Right_Click_Position</li><li>Gather becomes Right_Click_Unit if the target contains resources</li><li>Set_Rally_Position becomes Right_Click_Position for buildings</li><li>Set_Rally_Unit becomes Right_Click_Unit for buildings</li><li>Use_Tech_Unit with Infestation becomes Right_Click_Unit if the target is valid</li></ul></li></ul></li><li>2: More optimization by grouping structures.<ul><li>Includes the optimizations made by all previous levels.</li><li>May be detected as a hack by some replay utilities.</li><li>Does not alter behaviour.</li><li>Units performing the following actions are grouped and ordered 12 at a time:<ul><li>Attack_Unit (<a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#aca0ab7e2cc0527ad58584b35e701380d">Turrets</a>, <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#adf35c51ae2c02cd00ca8de4379e7b07a">Photon Cannons</a>, <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a83b23060c0cd1b3b963f06ab7d2b2b38">Sunkens</a>, <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a98546972725dae4adccd9f8baefc1725">Spores</a>)</li><li>Train</li><li>Morph</li><li>Set_Rally_Unit</li><li>Lift</li><li>Cancel_Construction</li><li>Cancel_Addon</li><li>Cancel_Train</li><li>Cancel_Train_Slot</li><li>Cancel_Morph</li><li>Cancel_Research</li><li>Cancel_Upgrade</li></ul></li></ul></li><li>3: Extensive optimization<ul><li>Includes the optimizations made by all previous levels.</li><li>Units may behave or move differently than expected.</li><li>Units performing the following actions are grouped and ordered 12 at a time:<ul><li>Attack_Move</li><li>Set_Rally_Position</li><li>Move</li><li>Patrol</li><li>Unload_All</li><li>Unload_All_Position</li><li>Right_Click_Position</li><li>Use_Tech_Position</li></ul></li></ul></li><li>4: Aggressive optimization<ul><li>Includes the optimizations made by all previous levels.</li><li><a class="el" href="namespace_b_w_a_p_i_1_1_positions.html" title="List of special Position constants.">Positions</a> used in commands will be rounded to multiples of 32.</li><li><a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a76ff943e5b183f34f3f175927205ad36">High Templar</a> and <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#ad234846951f00e09011ec67c56f72ba1">Dark Templar</a> that merge into <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a39e3c935ac3753b8c47811d9a9a8b421">Archons</a> will be grouped and may choose a different target to merge with. It will not merge with a target that wasn't included.</li></ul></li></ul></div></div><a class="anchor" id="ab365f165e1aa2c0d5e965a94b6d677e8"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::countdownTimer () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Returns the remaining countdown time. </p><p>The countdown timer is used in <a class="el" href="namespace_b_w_a_p_i_1_1_game_types.html#ac3e90cb3d63591e8d5a4c20619c7ab7b">Capture The Flag</a> and <a class="el" href="namespace_b_w_a_p_i_1_1_game_types.html#ad49903c20bd1fa93215f8f0f23d07008">Use Map Settings</a> game types.</p><p>Example usage: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> ExampleAIModule::onStart()</div><div class="line">{</div><div class="line"><span class="comment">// Register a callback that only occurs once when the countdown timer reaches 0</span></div><div class="line"><span class="keywordflow">if</span> ( <a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>-><a class="code" href="class_b_w_a_p_i_1_1_game.html#a576376a70aaf094de2554c1eefa70fc5">getGameType</a>() == <a class="code" href="namespace_b_w_a_p_i_1_1_game_types.html#ac3e90cb3d63591e8d5a4c20619c7ab7b">BWAPI::GameTypes::Capture_The_Flag</a> ||</div><div class="line"><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>-><a class="code" href="class_b_w_a_p_i_1_1_game.html#a576376a70aaf094de2554c1eefa70fc5">getGameType</a>() == <a class="code" href="namespace_b_w_a_p_i_1_1_game_types.html#a3ca5e568ec8a5ca06d9e41a7c3d945e1">BWAPI::GameTypes::Team_Capture_The_Flag</a> )</div><div class="line"> {</div><div class="line"><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>->registerEvent([](<a class="code" href="class_b_w_a_p_i_1_1_game.html">BWAPI::Game</a>*){ <a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>->sendText(<span class="stringliteral">"Try to find my flag!"</span>); }, <span class="comment">// action</span></div><div class="line"> [](<a class="code" href="class_b_w_a_p_i_1_1_game.html">BWAPI::Game</a>*){ <span class="keywordflow">return</span><a class="code" href="namespace_b_w_a_p_i.html#a0858264e08a7273886488efc5f5ba64c">BWAPI::Broodwar</a>->countdownTimer() == 0; }, <span class="comment">// condition</span></div><div class="line"> 1); <span class="comment">// times to run (once)</span></div><div class="line"> }</div><div class="line">}</div></div><dl class="section return"><dt>Returns</dt><dd>Integer containing the time (in game seconds) on the countdown timer. </dd></dl></div></div><a class="anchor" id="ae51891dcd9a0988415c6aa8215aa512c"></a><div class="memitem"><div class="memproto">virtual const <a class="el" href="class_b_w_a_p_i_1_1_regionset.html">Regionset</a>& BWAPI::Game::getAllRegions () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the set of all regions on the map. </p><dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_regionset.html" title="A container that holds a set of Region objects.">Regionset</a> containing all map regions. </dd></dl></div></div><a class="anchor" id="acc3240c18855fa1f2eff8ea798de3efd"></a><div class="memitem"><div class="memproto">virtual <a class="el" href="namespace_b_w_a_p_i.html#ac78a71851d96c2bd3da21d4dcb632450">BWAPI::Region</a> BWAPI::Game::getRegionAt (int <span class="paramname"><em>x</em>, </span>int <span class="paramname"><em>y</em> </span>) const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the region at a given position. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">x</td><td>The x coordinate, in pixels. </td></tr><tr><td class="paramname">y</td><td>The y coordinate, in pixels. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>Pointer to the Region interface at the given position. </dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">nullptr</td><td>if the provided position is not valid (i.e. not within the map bounds).</td></tr></tbody></table></dd></dl><dl class="section note"><dt>Note</dt><dd>If the provided position is invalid, the error <a class="el" href="namespace_b_w_a_p_i_1_1_errors.html#a19af971f27f8c4fa0ff5649aedcfba8a" title="Invalid Parameter. ">Errors::Invalid_Parameter</a> is set. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#ae51891dcd9a0988415c6aa8215aa512c" title="Retrieves the set of all regions on the map. ">getAllRegions</a>, <a class="el" href="class_b_w_a_p_i_1_1_game.html#a93b333635ff72f4872b72c2980205bd2" title="Retrieves the Region interface object associated with a given identifier. ">getRegion</a></dd></dl></div></div><a class="anchor" id="ad687259ba2956e582fd0c54f3cacf12d"></a><div class="memitem"><div class="memproto"><a class="el" href="namespace_b_w_a_p_i.html#ac78a71851d96c2bd3da21d4dcb632450">BWAPI::Region</a> BWAPI::Game::getRegionAt (<a class="el" href="namespace_b_w_a_p_i.html#ac3d7867eeb5adc1fc7983e2db5edb7c6">BWAPI::Position</a> <span class="paramname"><em>position</em></span>) const</div><div class="memdoc"><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p></div></div><a class="anchor" id="ab8ceb730bdc66dd596bf066829f83995"></a><div class="memitem"><div class="memproto">virtual int BWAPI::Game::getLastEventTime () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the amount of time (in milliseconds) that has elapsed when running the last AI module callback. </p><p>This is used by tournament modules to penalize AI modules that use too much processing time.</p><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname">0</td><td>When called from an AI module. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>Time in milliseconds spent in last AI module call. </dd></dl></div></div><a class="anchor" id="ae7956ecdf28099fecf1caf03ba20d936"></a><div class="memitem"><div class="memproto">virtual bool BWAPI::Game::setRevealAll (bool <span class="paramname"><em>reveal</em> = <code>true</code></span>) <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Sets the state of the fog of war when watching a replay. </p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">reveal</td><td>(optional) The state of the reveal all flag. If false, all fog of war will be enabled. If true, then the fog of war will be revealed. It is true by default. </td></tr></tbody></table></dd></dl></div></div><a class="anchor" id="a509aef285de00a0252be5816460b3325"></a><div class="memitem"><div class="memproto"><a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> BWAPI::Game::getBuildLocation (<a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>type</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#af10e9d3456f11a2d2969ace281a9961f">TilePosition</a> <span class="paramname"><em>desiredPosition</em>, </span>int <span class="paramname"><em>maxRange</em> = <code>64</code>, </span>bool <span class="paramname"><em>creep</em> = <code>false</code> </span>) const</div><div class="memdoc"><p>Retrieves a basic build position just as the default Computer AI would. </p><p>This allows users to find simple build locations without relying on external libraries.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">type</td><td>A valid <a class="el" href="class_b_w_a_p_i_1_1_unit_type.html" title="The UnitType is used to get information about a particular type of unit, such as its cost...">UnitType</a> representing the unit type to accomodate space for. </td></tr><tr><td class="paramname">desiredPosition</td><td>A valid TilePosition containing the desired placement position. </td></tr><tr><td class="paramname">maxRange</td><td>(optional) The maximum distance (in tiles) to build from <code>desiredPosition</code>. </td></tr><tr><td class="paramname">creep</td><td>(optional) A special boolean value that changes the behaviour of <a class="el" href="namespace_b_w_a_p_i_1_1_unit_types.html#a112bc94cbe33d50ced179da6612c3ba0">Creep Colony</a> placement. </td></tr></tbody></table></dd></dl><dl class="retval"><dt>Return values</dt><dd><table class="retval"><tbody><tr><td class="paramname"><a class="el" href="namespace_b_w_a_p_i_1_1_tile_positions.html#a09e1fc82b5ba88ef4c9ecb17c3e5b627">TilePositions::Invalid</a></td><td>If a build location could not be found within <code>maxRange</code>. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>A TilePosition containing the location that the structure should be constructed at. </dd></dl></div></div><a class="anchor" id="a90d81ed614f211a6974eaca2a7c67a5a"></a><div class="memitem"><div class="memproto">int BWAPI::Game::getDamageFrom (<a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>fromType</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>toType</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> <span class="paramname"><em>fromPlayer</em> = <code>nullptr</code>, </span><a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> <span class="paramname"><em>toPlayer</em> = <code>nullptr</code> </span>) const</div><div class="memdoc"><p>Calculates the damage received for a given player. </p><p>It can be understood as the damage from <code>fromType</code> to <code>toType</code>. Does not include shields in calculation. Includes upgrades if players are provided.</p><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">fromType</td><td>The unit type that will be dealing the damage. </td></tr><tr><td class="paramname">toType</td><td>The unit type that will be receiving the damage. </td></tr><tr><td class="paramname">fromPlayer</td><td>(optional) The player owner of the given type that will be dealing the damage. If omitted, then no player will be used to calculate the upgrades for <code>fromType</code>. </td></tr><tr><td class="paramname">toPlayer</td><td>(optional) The player owner of the type that will be receiving the damage. If omitted, then this parameter will default to Broodwar-><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0fdd28532a098fb2ea0caa3bcd5f31dd" title="Retrieves the player object that BWAPI is controlling. ">self()</a>. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>The amount of damage that fromType would deal to toType. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#ae8d78aaa9aaa835658d0964cb4207683" title="Calculates the damage dealt for a given player. ">getDamageTo</a></dd></dl></div></div><a class="anchor" id="ae8d78aaa9aaa835658d0964cb4207683"></a><div class="memitem"><div class="memproto">int BWAPI::Game::getDamageTo (<a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>toType</em>, </span><a class="el" href="class_b_w_a_p_i_1_1_unit_type.html">UnitType</a> <span class="paramname"><em>fromType</em>, </span><a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> <span class="paramname"><em>toPlayer</em> = <code>nullptr</code>, </span><a class="el" href="namespace_b_w_a_p_i.html#ab8daa67d10dc7eaa154a2636ec1784f8">Player</a> <span class="paramname"><em>fromPlayer</em> = <code>nullptr</code> </span>) const</div><div class="memdoc"><p>Calculates the damage dealt for a given player. </p><p>It can be understood as the damage to <code>toType</code> from <code>fromType</code>. Does not include shields in calculation. Includes upgrades if players are provided.</p><dl class="section note"><dt>Note</dt><dd>This function is nearly the same as <a class="el" href="class_b_w_a_p_i_1_1_game.html#a90d81ed614f211a6974eaca2a7c67a5a" title="Calculates the damage received for a given player. ">getDamageFrom</a>. The only difference is that the last parameter is intended to default to Broodwar-><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0fdd28532a098fb2ea0caa3bcd5f31dd" title="Retrieves the player object that BWAPI is controlling. ">self()</a>.</dd></dl><dl class="params"><dt>Parameters</dt><dd><table class="params"><tbody><tr><td class="paramname">toType</td><td>The unit type that will be receiving the damage. </td></tr><tr><td class="paramname">fromType</td><td>The unit type that will be dealing the damage. </td></tr><tr><td class="paramname">toPlayer</td><td>(optional) The player owner of the type that will be receiving the damage. If omitted, then no player will be used to calculate the upgrades for <code>toType</code>. </td></tr><tr><td class="paramname">fromPlayer</td><td>(optional) The player owner of the given type that will be dealing the damage. If omitted, then this parameter will default to Broodwar-><a class="el" href="class_b_w_a_p_i_1_1_game.html#a0fdd28532a098fb2ea0caa3bcd5f31dd" title="Retrieves the player object that BWAPI is controlling. ">self()</a>. </td></tr></tbody></table></dd></dl><dl class="section return"><dt>Returns</dt><dd>The amount of damage that fromType would deal to toType. </dd></dl><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_b_w_a_p_i_1_1_game.html#a90d81ed614f211a6974eaca2a7c67a5a" title="Calculates the damage received for a given player. ">getDamageFrom</a></dd></dl></div></div><a class="anchor" id="a203db548df086effe61557253a05104a"></a><div class="memitem"><div class="memproto">virtual unsigned BWAPI::Game::getRandomSeed () const <span class="mlabels"><span class="mlabel">pure virtual</span></span></div><div class="memdoc"><p>Retrieves the initial random seed that was used in this game's creation. </p><p>This is used to identify the seed that started this game, in case an error occurred, so that developers can deterministically reproduce the error. Works in both games and replays.</p><dl class="section return"><dt>Returns</dt><dd>This game's random seed. </dd></dl><dl class="section since"><dt>Since</dt><dd>4.2.0 </dd></dl></div></div></div><hr class="footer"><address class="footer"><div style="float:left;" id="google_translate_element"></div><script>if(window.location.protocol!="file:"){function googleTranslateElementInit(){new google.translate.TranslateElement({pageLanguage:"en",layout:google.translate.TranslateElement.InlineLayout.HORIZONTAL},"google_translate_element")}var js=document.createElement("script");js.type="text/javascript";js.src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit";document.body.appendChild(js)};</script><small> Generated on Wed Apr 19 2017 09:26:58 for BWAPI by <a href="//www.doxygen.org/index.html"><img style="width:104px;height:31px;" class="footer" src="doxygen.png" alt="doxygen"></a> 1.8.11 </small></address><script src="jquery.js"></script><script src="dynsections.js"></script><script>$(document).ready(function(){searchBox.OnSelectItem(0);$(".memberdecls, .memname, .memproto, .paramname, .fieldname, .entry, .fragment").addClass("notranslate");$("#MSearchResultsWindow").addClass("notranslate");$(".qindex, .qindex + table").addClass("notranslate");$(".contents > ul").addClass("notranslate");$(".contents > h3").addClass("notranslate");$("#navrow4 > .tablist > li > a").addClass("notranslate");$("a.el, a.elRef").addClass("notranslate")});</script></body></html>