Fix default value of mod enabled_by_default field

This commit is contained in:
Mr-Wiseguy 2025-04-09 20:12:19 -04:00
parent d2f9a32b90
commit 4e1d494ece
2 changed files with 6 additions and 5 deletions

View file

@ -238,7 +238,7 @@ namespace recomp {
Version minimum_recomp_version; Version minimum_recomp_version;
Version version; Version version;
bool runtime_toggleable; bool runtime_toggleable;
bool enabled_by_default = true; bool enabled_by_default;
std::vector<NativeLibraryManifest> native_libraries; std::vector<NativeLibraryManifest> native_libraries;
std::unique_ptr<ModFileHandle> file_handle; std::unique_ptr<ModFileHandle> file_handle;

View file

@ -240,14 +240,14 @@ static bool parse_dependency(const std::string& val, recomp::mods::Dependency& o
} }
template <typename T1, typename T2> template <typename T1, typename T2>
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); auto find_it = data.find(key);
if (find_it == data.end()) { if (find_it == data.end()) {
if (required) { if (required) {
error_param = key; error_param = key;
return recomp::mods::ModOpenError::MissingManifestField; return recomp::mods::ModOpenError::MissingManifestField;
} }
out = {}; out = default_value;
return recomp::mods::ModOpenError::Good; return recomp::mods::ModOpenError::Good;
} }
@ -574,8 +574,8 @@ recomp::mods::ModOpenError recomp::mods::parse_manifest(ModManifest& ret, const
return current_error; return current_error;
} }
// Enabled by default (optional) // Enabled by default (optional, true if not present)
current_error = try_get<json::boolean_t>(ret.enabled_by_default, manifest_json, enabled_by_default_key, false, error_param); current_error = try_get<json::boolean_t>(ret.enabled_by_default, manifest_json, enabled_by_default_key, false, error_param, true);
if (current_error != ModOpenError::Good) { if (current_error != ModOpenError::Good) {
return current_error; return current_error;
} }
@ -795,6 +795,7 @@ recomp::mods::ModOpenError recomp::mods::ModContext::open_mod(const std::filesys
manifest.version.major = 0; manifest.version.major = 0;
manifest.version.minor = 0; manifest.version.minor = 0;
manifest.version.patch = 0; manifest.version.patch = 0;
manifest.enabled_by_default = true;
} }
} }
else { else {