BWAPI
|
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()