2
0

EntitiesChanged.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * api/netpacks/EntitiesChanged.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 "EntitiesChanged.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(EntitiesChangedProxy, "netpacks.EntitiesChanged");
  22. const std::vector<EntitiesChangedProxy::CustomRegType> EntitiesChangedProxy::REGISTER_CUSTOM =
  23. {
  24. {"new", &Wrapper::constructor, true},
  25. {"update", &EntitiesChangedProxy::update, false},
  26. {"toNetpackLight", &PackForClientProxy<EntitiesChangedProxy>::toNetpackLight, false}
  27. };
  28. int EntitiesChangedProxy::update(lua_State * L)
  29. {
  30. LuaStack S(L);
  31. std::shared_ptr<EntitiesChanged> object;
  32. if(!S.tryGet(1, object))
  33. return S.retVoid();
  34. EntityChanges changes;
  35. int32_t metaIndex = 0;
  36. if(!S.tryGet(2, metaIndex))
  37. return S.retVoid();
  38. changes.metatype = static_cast<Metatype>(metaIndex);
  39. if(!S.tryGet(3, changes.entityIndex))
  40. return S.retVoid();
  41. if(!S.tryGet(4, changes.data))
  42. return S.retVoid();
  43. object->changes.push_back(changes);
  44. return S.retVoid();
  45. }
  46. }
  47. }
  48. }
  49. VCMI_LIB_NAMESPACE_END