Fix default value of mod enabled_by_default field (#105)
Some checks failed
validate / ubuntu (arm64, Debug) (push) Has been cancelled
validate / ubuntu (arm64, Release) (push) Has been cancelled
validate / ubuntu (x64, Debug) (push) Has been cancelled
validate / ubuntu (x64, Release) (push) Has been cancelled
validate / windows (x64, Debug) (push) Has been cancelled
validate / windows (x64, Release) (push) Has been cancelled
validate / macos (arm64, Debug) (push) Has been cancelled
validate / macos (arm64, Release) (push) Has been cancelled
validate / macos (x64, Debug) (push) Has been cancelled
validate / macos (x64, Release) (push) Has been cancelled

This commit is contained in:
Wiseguy 2025-04-09 20:16:25 -04:00 committed by GitHub
parent d2f9a32b90
commit 3c49f87ac6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 5 deletions

View file

@ -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<NativeLibraryManifest> native_libraries;
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>
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<json::boolean_t>(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<json::boolean_t>(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 {