2023-11-07 18:32:40 +02:00
|
|
|
/*
|
|
|
|
* 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_BEGIN
|
|
|
|
|
2024-04-14 14:45:13 +02:00
|
|
|
class JsonNode;
|
|
|
|
struct ModVerificationInfo;
|
|
|
|
using ModCompatibilityInfo = std::map<std::string, ModVerificationInfo>;
|
|
|
|
|
2023-11-07 18:32:40 +02:00
|
|
|
struct 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;
|
|
|
|
|
2024-04-14 14:45:13 +02:00
|
|
|
static JsonNode jsonSerializeList(const ModCompatibilityInfo & input);
|
|
|
|
static ModCompatibilityInfo jsonDeserializeList(const JsonNode & input);
|
|
|
|
|
2023-11-07 18:32:40 +02:00
|
|
|
template <typename Handler>
|
2024-01-20 20:34:51 +02:00
|
|
|
void serialize(Handler & h)
|
2023-11-07 18:32:40 +02:00
|
|
|
{
|
|
|
|
h & name;
|
|
|
|
h & version;
|
|
|
|
h & checksum;
|
|
|
|
h & parent;
|
|
|
|
h & impactsGameplay;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
VCMI_LIB_NAMESPACE_END
|