BattleStackMoved.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /*
  2. * api/netpacks/BattleStackMoved.cpp, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #include "StdInc.h"
  11. #include "BattleStackMoved.h"
  12. #include "../../LuaStack.h"
  13. #include "../Registry.h"
  14. VCMI_LIB_NAMESPACE_BEGIN
  15. namespace scripting
  16. {
  17. namespace api
  18. {
  19. namespace netpacks
  20. {
  21. VCMI_REGISTER_SCRIPT_API(BattleStackMovedProxy, "netpacks.BattleStackMoved");
  22. const std::vector<BattleStackMovedProxy::CustomRegType> BattleStackMovedProxy::REGISTER_CUSTOM =
  23. {
  24. {"new", &Wrapper::constructor, true},
  25. {"addTileToMove", &BattleStackMovedProxy::addTileToMove, false},
  26. {"setUnitId", &BattleStackMovedProxy::setUnitId, false},
  27. {"setDistance", &BattleStackMovedProxy::setDistance, false},
  28. {"setTeleporting", &BattleStackMovedProxy::setTeleporting, false},
  29. {"toNetpackLight", &PackForClientProxy<BattleStackMovedProxy>::toNetpackLight, false}
  30. };
  31. int BattleStackMovedProxy::addTileToMove(lua_State * L)
  32. {
  33. LuaStack S(L);
  34. std::shared_ptr<BattleStackMoved> object;
  35. if(!S.tryGet(1, object))
  36. return S.retVoid();
  37. lua_Integer hex = 0;
  38. if(!S.tryGetInteger(2, hex))
  39. return S.retVoid();
  40. object->tilesToMove.emplace_back(hex);
  41. return S.retVoid();
  42. }
  43. int BattleStackMovedProxy::setUnitId(lua_State * L)
  44. {
  45. LuaStack S(L);
  46. std::shared_ptr<BattleStackMoved> object;
  47. if(!S.tryGet(1, object))
  48. return S.retVoid();
  49. S.tryGet(2, object->stack);
  50. return S.retVoid();
  51. }
  52. int BattleStackMovedProxy::setDistance(lua_State * L)
  53. {
  54. LuaStack S(L);
  55. std::shared_ptr<BattleStackMoved> object;
  56. if(!S.tryGet(1, object))
  57. return S.retVoid();
  58. S.tryGet(2, object->distance);
  59. return S.retVoid();
  60. }
  61. int BattleStackMovedProxy::setTeleporting(lua_State * L)
  62. {
  63. LuaStack S(L);
  64. std::shared_ptr<BattleStackMoved> object;
  65. if(!S.tryGet(1, object))
  66. return S.retVoid();
  67. S.tryGet(2, object->teleporting);
  68. return S.retVoid();
  69. }
  70. }
  71. }
  72. }
  73. VCMI_LIB_NAMESPACE_END