From 3c49f87ac6ec935c6e56199ecece9e3f7861be16 Mon Sep 17 00:00:00 2001 From: Wiseguy <68165316+Mr-Wiseguy@users.noreply.github.com> Date: Wed, 9 Apr 2025 20:16:25 -0400 Subject: [PATCH] Fix default value of mod enabled_by_default field (#105) --- librecomp/include/librecomp/mods.hpp | 2 +- librecomp/src/mod_manifest.cpp | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/librecomp/include/librecomp/mods.hpp b/librecomp/include/librecomp/mods.hpp index 4ccc92b..08e661d 100644 --- a/librecomp/include/librecomp/mods.hpp +++ b/librecomp/include/librecomp/mods.hpp @@ -238,7 +238,7 @@ namespace recomp { Version minimum_recomp_version; Version version; bool runtime_toggleable; - bool enabled_by_default = true; + bool enabled_by_default; std::vector native_libraries; std::unique_ptr file_handle; diff --git a/librecomp/src/mod_manifest.cpp b/librecomp/src/mod_manifest.cpp index 768dd18..14a8e60 100644 --- a/librecomp/src/mod_manifest.cpp +++ b/librecomp/src/mod_manifest.cpp @@ -240,14 +240,14 @@ static bool parse_dependency(const std::string& val, recomp::mods::Dependency& o } template -recomp::mods::ModOpenError try_get(T2& out, const nlohmann::json& data, const std::string& key, bool required, std::string& error_param) { +recomp::mods::ModOpenError try_get(T2& out, const nlohmann::json& data, const std::string& key, bool required, std::string& error_param, T2 default_value = {}) { auto find_it = data.find(key); if (find_it == data.end()) { if (required) { error_param = key; return recomp::mods::ModOpenError::MissingManifestField; } - out = {}; + out = default_value; return recomp::mods::ModOpenError::Good; } @@ -574,8 +574,8 @@ recomp::mods::ModOpenError recomp::mods::parse_manifest(ModManifest& ret, const return current_error; } - // Enabled by default (optional) - current_error = try_get(ret.enabled_by_default, manifest_json, enabled_by_default_key, false, error_param); + // Enabled by default (optional, true if not present) + current_error = try_get(ret.enabled_by_default, manifest_json, enabled_by_default_key, false, error_param, true); if (current_error != ModOpenError::Good) { return current_error; } @@ -795,6 +795,7 @@ recomp::mods::ModOpenError recomp::mods::ModContext::open_mod(const std::filesys manifest.version.major = 0; manifest.version.minor = 0; manifest.version.patch = 0; + manifest.enabled_by_default = true; } } else {