From 6e7b13fcbeca9eca8457edb6bbc37dffe606f3a7 Mon Sep 17 00:00:00 2001 From: nordsoft Date: Mon, 28 Aug 2023 16:21:46 +0400 Subject: [PATCH 1/4] Add compatibility with minor version --- lib/modding/CModVersion.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/modding/CModVersion.h b/lib/modding/CModVersion.h index 6e43fb2b6..7d7ff03de 100644 --- a/lib/modding/CModVersion.h +++ b/lib/modding/CModVersion.h @@ -31,7 +31,7 @@ struct DLL_LINKAGE CModVersion static CModVersion fromString(std::string from); std::string toString() const; - bool compatible(const CModVersion & other, bool checkMinor = false, bool checkPatch = false) const; + bool compatible(const CModVersion & other, bool checkMinor = true, bool checkPatch = false) const; bool isNull() const; template void serialize(Handler &h, const int version) From 0a6ea63b09098d7d343fffe7d28dd3cfdfe9960f Mon Sep 17 00:00:00 2001 From: nordsoft Date: Mon, 28 Aug 2023 17:41:00 +0400 Subject: [PATCH 2/4] Revert "Add compatibility with minor version" This reverts commit 6e7b13fcbeca9eca8457edb6bbc37dffe606f3a7. --- lib/modding/CModVersion.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/modding/CModVersion.h b/lib/modding/CModVersion.h index 7d7ff03de..6e43fb2b6 100644 --- a/lib/modding/CModVersion.h +++ b/lib/modding/CModVersion.h @@ -31,7 +31,7 @@ struct DLL_LINKAGE CModVersion static CModVersion fromString(std::string from); std::string toString() const; - bool compatible(const CModVersion & other, bool checkMinor = true, bool checkPatch = false) const; + bool compatible(const CModVersion & other, bool checkMinor = false, bool checkPatch = false) const; bool isNull() const; template void serialize(Handler &h, const int version) From 925bde68ff894ea2b2b71b6ce1a20c6f8d05957e Mon Sep 17 00:00:00 2001 From: nordsoft Date: Mon, 28 Aug 2023 17:43:33 +0400 Subject: [PATCH 3/4] Fix compatibility check with game version --- lib/modding/CModInfo.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/modding/CModInfo.cpp b/lib/modding/CModInfo.cpp index 7b6d66f25..9d1905e54 100644 --- a/lib/modding/CModInfo.cpp +++ b/lib/modding/CModInfo.cpp @@ -108,8 +108,8 @@ void CModInfo::loadLocalData(const JsonNode & data) } //check compatibility - implicitlyEnabled &= (vcmiCompatibleMin.isNull() || CModVersion::GameVersion().compatible(vcmiCompatibleMin)); - implicitlyEnabled &= (vcmiCompatibleMax.isNull() || vcmiCompatibleMax.compatible(CModVersion::GameVersion())); + implicitlyEnabled &= (vcmiCompatibleMin.isNull() || CModVersion::GameVersion().compatible(vcmiCompatibleMin, true)); + implicitlyEnabled &= (vcmiCompatibleMax.isNull() || vcmiCompatibleMax.compatible(CModVersion::GameVersion(), true)); if(!implicitlyEnabled) logGlobal->warn("Mod %s is incompatible with current version of VCMI and cannot be enabled", name); From 93f14c984d028fbd3e2f84849ab678d5e0570322 Mon Sep 17 00:00:00 2001 From: nordsoft Date: Mon, 28 Aug 2023 17:49:13 +0400 Subject: [PATCH 4/4] Fix compatibility check with patch version --- lib/modding/CModInfo.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/modding/CModInfo.cpp b/lib/modding/CModInfo.cpp index 9d1905e54..4baab342a 100644 --- a/lib/modding/CModInfo.cpp +++ b/lib/modding/CModInfo.cpp @@ -108,8 +108,8 @@ void CModInfo::loadLocalData(const JsonNode & data) } //check compatibility - implicitlyEnabled &= (vcmiCompatibleMin.isNull() || CModVersion::GameVersion().compatible(vcmiCompatibleMin, true)); - implicitlyEnabled &= (vcmiCompatibleMax.isNull() || vcmiCompatibleMax.compatible(CModVersion::GameVersion(), true)); + implicitlyEnabled &= (vcmiCompatibleMin.isNull() || CModVersion::GameVersion().compatible(vcmiCompatibleMin, true, true)); + implicitlyEnabled &= (vcmiCompatibleMax.isNull() || vcmiCompatibleMax.compatible(CModVersion::GameVersion(), true, true)); if(!implicitlyEnabled) logGlobal->warn("Mod %s is incompatible with current version of VCMI and cannot be enabled", name);