ModVerificationInfo.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * ModVerificationInfo.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 "ModVerificationInfo.h"
  12. #include "../json/JsonNode.h"
  13. JsonNode ModVerificationInfo::jsonSerializeList(const ModCompatibilityInfo & input)
  14. {
  15. JsonNode output;
  16. for(const auto & mod : input)
  17. {
  18. JsonNode modWriter;
  19. modWriter["modId"].String() = mod.first;
  20. modWriter["name"].String() = mod.second.name;
  21. modWriter["parent"].String() = mod.second.parent;
  22. modWriter["version"].String() = mod.second.version.toString();
  23. output.Vector().push_back(modWriter);
  24. }
  25. return output;
  26. }
  27. ModCompatibilityInfo ModVerificationInfo::jsonDeserializeList(const JsonNode & input)
  28. {
  29. ModCompatibilityInfo output;
  30. for(const auto & mod : input.Vector())
  31. {
  32. ModVerificationInfo info;
  33. info.version = CModVersion::fromString(mod["version"].String());
  34. info.name = mod["name"].String();
  35. info.parent = mod["parent"].String();
  36. info.checksum = 0;
  37. info.impactsGameplay = true;
  38. if(!mod["modId"].isNull())
  39. output[mod["modId"].String()] = info;
  40. else
  41. output[mod["name"].String()] = info;
  42. }
  43. return output;
  44. }