ModVerificationInfo.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. if (!mod.second.parent.empty())
  22. modWriter["parent"].String() = mod.second.parent;
  23. modWriter["version"].String() = mod.second.version.toString();
  24. output.Vector().push_back(modWriter);
  25. }
  26. return output;
  27. }
  28. ModCompatibilityInfo ModVerificationInfo::jsonDeserializeList(const JsonNode & input)
  29. {
  30. ModCompatibilityInfo output;
  31. for(const auto & mod : input.Vector())
  32. {
  33. ModVerificationInfo info;
  34. info.version = CModVersion::fromString(mod["version"].String());
  35. info.name = mod["name"].String();
  36. info.parent = mod["parent"].String();
  37. info.checksum = 0;
  38. info.impactsGameplay = true;
  39. if(!mod["modId"].isNull())
  40. output[mod["modId"].String()] = info;
  41. else
  42. output[mod["name"].String()] = info;
  43. }
  44. return output;
  45. }