BattleUnitsChanged.cpp 2.2 KB

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