BattleStackMoved.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. namespace scripting
  15. {
  16. namespace api
  17. {
  18. namespace netpacks
  19. {
  20. VCMI_REGISTER_SCRIPT_API(BattleStackMovedProxy, "netpacks.BattleStackMoved");
  21. const std::vector<BattleStackMovedProxy::RegType> BattleStackMovedProxy::REGISTER =
  22. {
  23. {
  24. "addTileToMove",
  25. &BattleStackMovedProxy::addTileToMove
  26. },
  27. {
  28. "setUnitId",
  29. &BattleStackMovedProxy::setUnitId
  30. },
  31. {
  32. "setDistance",
  33. &BattleStackMovedProxy::setDistance
  34. },
  35. {
  36. "setTeleporting",
  37. &BattleStackMovedProxy::setTeleporting
  38. },
  39. {
  40. "toNetpackLight",
  41. &PackForClientProxy<BattleStackMovedProxy>::toNetpackLight
  42. }
  43. };
  44. const std::vector<BattleStackMovedProxy::CustomRegType> BattleStackMovedProxy::REGISTER_CUSTOM =
  45. {
  46. {"new", &Wrapper::constructor, true}
  47. };
  48. int BattleStackMovedProxy::addTileToMove(lua_State * L, std::shared_ptr<BattleStackMoved> object)
  49. {
  50. LuaStack S(L);
  51. lua_Integer hex = 0;
  52. if(!S.tryGetInteger(1, hex))
  53. return S.retVoid();
  54. object->tilesToMove.emplace_back(hex);
  55. return S.retVoid();
  56. }
  57. int BattleStackMovedProxy::setUnitId(lua_State * L, std::shared_ptr<BattleStackMoved> object)
  58. {
  59. LuaStack S(L);
  60. S.tryGet(1, object->stack);
  61. return S.retVoid();
  62. }
  63. int BattleStackMovedProxy::setDistance(lua_State * L, std::shared_ptr<BattleStackMoved> object)
  64. {
  65. LuaStack S(L);
  66. S.tryGet(1, object->distance);
  67. return S.retVoid();
  68. }
  69. int BattleStackMovedProxy::setTeleporting(lua_State * L, std::shared_ptr<BattleStackMoved> object)
  70. {
  71. LuaStack S(L);
  72. S.tryGet(1, object->teleporting);
  73. return S.retVoid();
  74. }
  75. }
  76. }
  77. }