2
0

BattleUnitsChanged.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /*
  2. * api/netpacks/BattleUnitsChanged.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 "BattleUnitsChanged.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(BattleUnitsChangedProxy, "netpacks.BattleUnitsChanged");
  22. const std::vector<BattleUnitsChangedProxy::CustomRegType> BattleUnitsChangedProxy::REGISTER_CUSTOM =
  23. {
  24. {"new", &Wrapper::constructor, true},
  25. {"add", &BattleUnitsChangedProxy::add, false},
  26. {"update", &BattleUnitsChangedProxy::update, false},
  27. {"resetState", &BattleUnitsChangedProxy::resetState, false},
  28. {"remove", &BattleUnitsChangedProxy::remove, false},
  29. {"toNetpackLight", &PackForClientProxy<BattleUnitsChangedProxy>::toNetpackLight, false}
  30. };
  31. int BattleUnitsChangedProxy::add(lua_State * L)
  32. {
  33. LuaStack S(L);
  34. std::shared_ptr<BattleUnitsChanged> object;
  35. if(!S.tryGet(1, object))
  36. return S.retVoid();
  37. uint32_t id;
  38. if(!S.tryGet(2, id))
  39. return S.retVoid();
  40. UnitChanges changes(id, BattleChanges::EOperation::ADD);
  41. if(!S.tryGet(3, changes.data))
  42. return S.retVoid();
  43. if(!S.tryGet(4, changes.healthDelta))
  44. changes.healthDelta = 0;
  45. object->changedStacks.push_back(changes);
  46. return S.retVoid();
  47. }
  48. int BattleUnitsChangedProxy::update(lua_State * L)
  49. {
  50. LuaStack S(L);
  51. std::shared_ptr<BattleUnitsChanged> object;
  52. if(!S.tryGet(1, object))
  53. return S.retVoid();
  54. uint32_t id;
  55. if(!S.tryGet(2, id))
  56. return S.retVoid();
  57. UnitChanges changes(id, BattleChanges::EOperation::UPDATE);
  58. if(!S.tryGet(3, changes.data))
  59. return S.retVoid();
  60. if(!S.tryGet(4, changes.healthDelta))
  61. changes.healthDelta = 0;
  62. object->changedStacks.push_back(changes);
  63. return S.retVoid();
  64. }
  65. int BattleUnitsChangedProxy::resetState(lua_State * L)
  66. {
  67. LuaStack S(L);
  68. std::shared_ptr<BattleUnitsChanged> object;
  69. if(!S.tryGet(1, object))
  70. return S.retVoid();
  71. //todo
  72. return S.retVoid();
  73. }
  74. int BattleUnitsChangedProxy::remove(lua_State * L)
  75. {
  76. LuaStack S(L);
  77. std::shared_ptr<BattleUnitsChanged> object;
  78. if(!S.tryGet(1, object))
  79. return S.retVoid();
  80. //todo
  81. return S.retVoid();
  82. }
  83. }
  84. }
  85. }
  86. VCMI_LIB_NAMESPACE_END