/Source/Common/SWIG/Interfaces/bwapi-bridge.i

http://bwapi-mono-bridge.googlecode.com/ · Swig · 108 lines · 97 code · 11 blank · 0 comment · 0 complexity · c1d618fe18840f41623d84ec82895fd0 MD5 · raw file

  1. %include <stl.i>
  2. %include "Enhance/std_set.i"
  3. %include "Enhance/std_list.i"
  4. %include "typemaps.i"
  5. %include "cpointer.i"
  6. //include headers in our generated code.
  7. %module bwapi
  8. %{
  9. #include "BWAPI.h"
  10. using namespace BWAPI;
  11. %}
  12. //special include for our dllimport attribute
  13. %include "dllimport.i"
  14. //enhance the built-in typemaps with extra functionality
  15. %include "Enhance/class-enhancement.i"
  16. //resolve ambiguities
  17. %include "ambiguities.i"
  18. //unimplemented functions in headers (or ones that should not be called)
  19. //uncomment these each new version of BWAPI to ensure they are not later implemented.
  20. #%ignore getPlayerUnits;
  21. #%ignore BWAPI::GameData::GameData;
  22. //fix up operator overrides.
  23. %rename (opAssign) *::operator =;
  24. %rename (opEquals) *::operator ==;
  25. %rename (opLessThan) *::operator <;
  26. %rename (opGreaterThan) *::operator >;
  27. %rename (opMinus) *::operator -;
  28. %rename (opNotEquals) *::operator !=;
  29. %rename (opPlus) *::operator +;
  30. %rename (opAdd) *::operator +=;
  31. %rename (opSubtract) *::operator -=;
  32. %rename (opInt) *::operator int;
  33. //fix up const strings.
  34. %apply const std::string & {std::string &};
  35. //BWAPI order of includes is important to stop SWIGTYPE_p etc class generation with and without namespace
  36. %include "BWAPI.h"
  37. %include "BWAPI/EventType.h"
  38. %include "BWAPI/GameType.h"
  39. %include "BWAPI/Race.h"
  40. %include "BWAPI/TechType.h"
  41. %include "BWAPI/UpgradeType.h"
  42. %include "BWAPI/Position.h"
  43. %include "BWAPI/AIModule.h"
  44. %include "BWAPI/Color.h"
  45. %include "BWAPI/Constants.h"
  46. %include "BWAPI/CoordinateType.h"
  47. %include "BWAPI/DamageType.h"
  48. %include "BWAPI/Error.h"
  49. %include "BWAPI/ExplosionType.h"
  50. %include "BWAPI/Flag.h"
  51. %include "BWAPI/Force.h"
  52. %include "BWAPI/Input.h"
  53. %include "BWAPI/Event.h"
  54. %include "BWAPI/Latency.h"
  55. %include "BWAPI/Order.h"
  56. %include "BWAPI/PlayerType.h"
  57. %include "BWAPI/Player.h"
  58. %include "BWAPI/BulletType.h"
  59. %include "BWAPI/Bullet.h"
  60. %include "BWAPI/TilePosition.h"
  61. %include "BWAPI/UnitCommandType.h"
  62. %include "BWAPI/UnitCommand.h"
  63. %include "BWAPI/Game.h"
  64. %include "BWAPI/Unit.h"
  65. %include "BWAPI/UnitSizeType.h"
  66. %include "BWAPI/UnitType.h"
  67. %include "BWAPI/WeaponType.h"
  68. //Instantiate our templates
  69. %template (PositionVector) std::vector<BWAPI::Position>;
  70. %template (BulletPtrSet) std::set<BWAPI::Bullet *>;
  71. %template (BulletTypeSet) std::set<BWAPI::BulletType>;
  72. %template (DamageTypeSet) std::set<BWAPI::DamageType>;
  73. %template (ErrorSet) std::set<BWAPI::Error>;
  74. %template (ExplosionTypeSet) std::set<BWAPI::ExplosionType>;
  75. %template (ForcePtrSet) std::set<BWAPI::Force *>;
  76. %template (GameTypeSet) std::set<BWAPI::GameType>;
  77. %template (OrderSet) std::set<BWAPI::Order>;
  78. %template (PlayerPtrSet) std::set<BWAPI::Player *>;
  79. %template (PlayerTypeSet) std::set<BWAPI::PlayerType>;
  80. %template (RaceSet) std::set<BWAPI::Race>;
  81. %template (TechTypeSet) std::set<BWAPI::TechType>;
  82. %template (TilePositionSet) std::set<BWAPI::TilePosition>;
  83. %template (UnitPtrSet) std::set<BWAPI::Unit*>;
  84. %template (UnitCommandTypeSet) std::set<BWAPI::UnitCommandType>;
  85. %template (UnitSizeTypeSet) std::set<BWAPI::UnitSizeType>;
  86. %template (UnitTypeSet) std::set<BWAPI::UnitType>;
  87. %template (UpgradeTypeSet) std::set<BWAPI::UpgradeType>;
  88. %template (WeaponTypeSet) std::set<BWAPI::WeaponType>;
  89. %template (EventList) std::list<BWAPI::Event>;
  90. %template (UnitTypeList) std::list<BWAPI::UnitType>;
  91. %template (TilePositionDoubleMap) std::map<BWAPI::TilePosition, double>;
  92. %template (UnitTypeIntMap) std::map<BWAPI::UnitType, int>;
  93. %template (PositionPair) std::pair<BWAPI::Position,BWAPI::Position>;
  94. %template (TilePositionDoublePair) std::pair<BWAPI::TilePosition, double>;
  95. %template (UnitTypeIntPair) std::pair<BWAPI::UnitType,int>;
  96. %template (TilePositionVector) std::vector<BWAPI::TilePosition>;
  97. %template (PositionSet) std::set<BWAPI::Position>;