| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | /* * ModVerificationInfo.h, part of VCMI engine * * Authors: listed in file AUTHORS in main folder * * License: GNU General Public License v2.0 or later * Full text of license available in license.txt file, in main folder * */#pragma once#include "CModVersion.h"VCMI_LIB_NAMESPACE_BEGINclass JsonNode;struct ModVerificationInfo;using ModCompatibilityInfo = std::map<std::string, ModVerificationInfo>;enum class ModVerificationStatus{	NOT_INSTALLED, /// Mod is not installed locally	DISABLED, /// Mod is installed locally but not enabled	EXCESSIVE, /// Mod is enabled locally but must be disabled	VERSION_MISMATCH, /// Mod is present on both sides, but has different version	FULL_MATCH, /// No issues detected, everything matches};using ModListVerificationStatus = std::map<std::string, ModVerificationStatus>;struct DLL_LINKAGE ModVerificationInfo{	/// human-readable mod name	std::string name;	/// version of the mod	CModVersion version;	/// CRC-32 checksum of the mod	ui32 checksum = 0;	/// parent mod ID, empty if root-level mod	TModID parent;	/// for serialization purposes	bool impactsGameplay = true;	static JsonNode jsonSerializeList(const ModCompatibilityInfo & input);	static ModCompatibilityInfo jsonDeserializeList(const JsonNode & input);	static ModListVerificationStatus verifyListAgainstLocalMods(const ModCompatibilityInfo & input);	template <typename Handler>	void serialize(Handler & h)	{		h & name;		h & version;		h & checksum;		h & parent;		h & impactsGameplay;	}};VCMI_LIB_NAMESPACE_END
 |