BattleStackMoved.cpp 1.9 KB

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