BWAPI
trunk/bwapi/BWAPI/Source/BW/OrderTypes.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include <Util/Types.h>
00004 
00005 #include <BWAPI/UnitType.h>
00006 #include <BWAPI/Position.h>
00007 #include <BWAPI/Unit.h>
00008 
00009 #include "PositionUnitTarget.h"
00010 #include "Race.h"
00011 #include <BW/TilePosition.h>
00012 
00013 namespace BWAPI { class UnitImpl; }
00014 #pragma pack(1)
00015 namespace BW
00016 {
00018   namespace Orders
00019   {
00021     class Attack
00022     {
00023       public :
00025         Attack(const BW::Position& target, int order, bool queued = false);
00026         Attack(int x, int y, int order, bool queued = false);
00027         Attack(const BWAPI::Position& target, int order, bool queued = false);
00029         Attack(BWAPI::Unit* target, int order, bool queued = false);
00031         Attack(const PositionUnitTarget& target, int order, bool queued = false);
00032       private :
00034         u8 always0x15;
00035         BW::PositionUnitTarget target;
00036         u16 always0xe4;
00037         u8 order;
00038         u8 type;
00039     };
00041     class RightClick
00042     {
00043       public :
00045         RightClick(const BW::Position& target, bool queued = false);
00046         RightClick(int x, int y, bool queued = false);
00048         RightClick(BWAPI::Unit* target, bool queued = false);
00050         RightClick(const PositionUnitTarget& target, bool queued = false);
00051       private :
00053         u8 always0x14;
00054         BW::PositionUnitTarget target;
00055         u16 always0xe4;
00056         u8  type;
00057     };
00059     class SelectAdd
00060     {
00061       public :
00062         SelectAdd(int count, BWAPI::UnitImpl **units);
00063         SelectAdd(int count, BW::Unit **units);
00065         u8         always0x0A;
00066         u8         targCount;
00067         UnitTarget targets[12];
00068         u32        size;
00069     };
00071     class Select
00072     {
00073       public :
00074         Select(int count, BWAPI::UnitImpl **units);
00075         Select(int count, BW::Unit **units);
00076         Select(const std::vector<BW::Unit*> &vUnits);
00077         Select(const std::vector<BWAPI::UnitImpl*> &vUnits);
00079         u8         always0x09;
00080         u8         targCount;
00081         UnitTarget targets[12];
00082         u32        size;
00083     };
00085     class TrainUnit
00086     {
00087       public :
00088         TrainUnit(int type);
00090         u8 always0x1f;
00092         u16 type;
00093     };
00095     class TrainFighter
00096     {
00097       public :
00098         TrainFighter();
00100         u8 always0x27;
00101     };
00103     class MakeBuilding
00104     {
00105       public :
00106         MakeBuilding(BW::TilePosition position, int type);
00107         MakeBuilding(int tileX, int tileY, int type);
00109         u8 always0x0c;
00111         u8 raceDependant;
00112         BW::TilePosition position;
00114         u16 type;
00115     };
00116 
00118     class PlaceCOP
00119     {
00120       public :
00121         PlaceCOP(BW::TilePosition position, int type);
00122         PlaceCOP(int x, int y, int type);
00124         u8 always0x0c;
00125         u8 always0x9B;
00126         BW::TilePosition position;
00128         u16 type;
00129     };
00130 
00132     class Invent
00133     {
00134       public :
00135         Invent(int type);
00137         u8 always0x30;
00139         u8 tech;
00140     };
00141     class Upgrade
00142     {
00143       public :
00144         Upgrade(int upgrade);
00146         u8 always0x32;
00148         u8 upgrade;
00149     };
00150     class MakeAddon
00151     {
00152       public :
00153         MakeAddon(BW::TilePosition position, int type);
00154         MakeAddon(BWAPI::TilePosition position, int type);
00155         MakeAddon(int tileX, int tileY, int type);
00157         u8 always0x0c;
00159         u8 always0x24;
00160         BW::TilePosition position;
00162         u16 type;
00163     };
00164     class MakeNydusExit
00165     {
00166       public :
00167         MakeNydusExit(BW::TilePosition position);
00168         MakeNydusExit(int tileX, int tileY);
00170         u8 always0x0c;
00172         u8 always0x2E;
00173         BW::TilePosition position;
00175         u16 type;
00176     };
00178     class ChangeSlot
00179     {
00180       public :
00181       typedef enum Slot
00182         {
00183           Computer = 0,
00184           Open = 1,
00185           Closed = 2
00186         };
00187         ChangeSlot(Slot slot, int slotID);
00188       private :
00190         u8 always0x44;
00192         u8 slotID;
00194         Slot slot;
00195     };
00197     class RequestChangeRace
00198     {
00199       public :
00200         RequestChangeRace(int slot, int slotID);
00201       private :
00203         u8 always0x41;
00205         u8 slotID;
00207         u8 race;
00208     };
00210     class UpdateSlot
00211     {
00212     public:
00213       UpdateSlot(int slot, int stormPlayerID, int owner, int newRace, int team);
00214     private:
00216       u8 always0x3E;
00218       u8 bSlot;
00220       u8 bStormPlayerID;
00222       u8 nType;
00224       u8 bNewRace;
00226       u8 nTeam;
00227     };
00229     class StartGame
00230     {
00231       public :
00232         StartGame();
00233       private :
00235         u8 always0x3c;
00236     };
00238     class PauseGame
00239     {
00240       public :
00241         PauseGame();
00242       private :
00244         u8 always0x10;
00245     };
00246     class ResumeGame
00247     {
00248       public :
00249         ResumeGame();
00250       private :
00252         u8 always0x11;
00253     };
00254     class LeaveGame
00255     {
00256       public :
00257         LeaveGame(int type);
00258       private :
00260         u8 always0x57;
00261         u8 type;
00262     };
00263 
00264     class MergeDarkArchon
00265     {
00266       public :
00267         MergeDarkArchon();
00268       private :
00270         u8 always0x5A;
00271     };
00272 
00273     class MergeArchon
00274     {
00275       public :
00276         MergeArchon();
00277       private :
00279         u8 always0x2A;
00280     };
00281 
00282     class MinimapPing
00283     {
00284       public :
00285         MinimapPing(BW::Position position);
00286         MinimapPing(BWAPI::Position position);
00287         MinimapPing(int x, int y);
00288       private :
00290         u8 always0x58;
00291         BW::Position position;
00292     };
00293 
00294     class UseStimPack
00295     {
00296       public :
00297         UseStimPack();
00298       private :
00300         u8 always0x36;
00301     };
00302 
00303     class BuildingMorph
00304     {
00305       public :
00306         BuildingMorph(int type);
00308         u8 always0x35;
00310         u16 type;
00311     };
00312 
00313     class CancelAddon
00314     {
00315       public :
00316         CancelAddon();
00317       private :
00318         u8 always0x34;
00319     };
00320 
00321     class CancelUpgrade
00322     {
00323       public :
00324         CancelUpgrade();
00325       private :
00326         u8 always0x33;
00327     };
00328 
00329     class CancelResearch
00330     {
00331       public :
00332         CancelResearch();
00333       private :
00334         u8 always0x31;
00335     };
00336 
00337     class CancelNuke
00338     {
00339       public :
00340         CancelNuke();
00341       private :
00342         u8 always0x2E;
00343     };
00344 
00345     class Lift
00346     {
00347       public :
00348         Lift();
00349       private :
00350         u8 always0x2F;
00351         u32 unknown;
00352     };
00353 
00354     class Land
00355     {
00356       public :
00357         Land(BW::TilePosition position, int type);
00358         Land(int x, int y, int type);
00359       private :
00360         u8 always0x0C;
00361         u8 always0x47;
00362         BW::TilePosition position;
00363         u16 type;
00364     };
00365 
00366     class Burrow
00367     {
00368       public :
00369         Burrow();
00370       private :
00371         u8 always0x2C;
00372         u8 unused;
00373     };
00374 
00375     class Unburrow
00376     {
00377       public :
00378         Unburrow();
00379       private :
00380         u8 always0x2D;
00381         u8 unused;
00382     };
00383 
00384     class HoldPosition
00385     {
00386       public :
00387         HoldPosition(bool queued = false);
00388       private :
00389         u8 always0x2B;
00390         u8 type;
00391     };
00392 
00393     class UnloadUnit
00394     {
00395       public :
00396         UnloadUnit(BWAPI::Unit* unload);
00398         u8 always0x29;
00400         UnitTarget target;
00401     };
00402 
00403     class UnloadAll
00404     {
00405       public :
00406         UnloadAll();
00407       private :
00408         u8 always0x28;
00409         u8 unused;
00410     };
00411 
00412     class Siege
00413     {
00414       public :
00415         Siege();
00416       private :
00417         u8 always0x26;
00418         u8 unused;
00419     };
00420 
00421     class Unsiege
00422     {
00423       public :
00424         Unsiege();
00425       private :
00426         u8 always0x25;
00427         u8 unused;
00428     };
00429 
00430     class UnitMorph
00431     {
00432       public :
00433         UnitMorph(int type);
00435         u8 always0x23;
00437         u16 type;
00438     };
00439 
00440     class Cloak
00441     {
00442       public :
00443         Cloak();
00444       private :
00445         u8 always0x21;
00446         u8 unused;
00447     };
00448 
00449     class Decloak
00450     {
00451       public :
00452         Decloak();
00453       private :
00454         u8 always0x22;
00455         u8 unused;
00456     };
00457 
00458     class ReturnCargo
00459     {
00460       public :
00461         ReturnCargo(bool queued = false);
00462       private :
00463         u8 always0x1E;
00464         u8 type;
00465     };
00466 
00467     class Stop
00468     {
00469       public :
00470         Stop(bool queued = false);
00471       private :
00472         u8 always0x1A;
00473         u8 type;
00474     };
00475 
00476     class ReaverStop
00477     {
00478       public :
00479         ReaverStop();
00480       private :
00481         u8 always0x1C;
00482     };
00483 
00484     class CarrierStop
00485     {
00486       public :
00487         CarrierStop();
00488       private :
00489         u8 always0x1B;
00490     };
00491 
00492     class CancelUnitMorph
00493     {
00494       public :
00495         CancelUnitMorph();
00496       private :
00497         u8 always0x19;
00498     };
00499 
00500     class CancelConstruction
00501     {
00502       public :
00503         CancelConstruction();
00504       private :
00505         u8 always0x18;
00506     };
00507 
00508     class CancelTrain
00509     {
00510       public :
00511         CancelTrain(int slot = -2);
00512       private :
00513         u8 always0x20;
00514         s8 slot;
00515         u8 unknown;
00516     };
00517 
00518     class UseCheat
00519     {
00520       public :
00521         UseCheat(u32 flags);
00522       private :
00523         u8 always0x12;
00524         u32 flags;
00525     };
00526 
00527     class RestartGame
00528     {
00529       public :
00530         RestartGame();
00531       private :
00532         u8 always0x08;
00533     };
00534 
00535     class SetAllies
00536     {
00537       public :
00538         SetAllies(u32 allies);
00539       private :
00540         u8  always0x0E;
00541         u32 allies;
00542     };
00543 
00544     class SetVision
00545     {
00546       public :
00547         SetVision(u16 vision);
00548       private :
00549         u8  always0x0D;
00550         u16 vision;
00551     };
00552   } // namespace orders
00553 }; // namespace BW
00554 #pragma pack()
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines