Skip to content

Commit 3c49f87

Browse files
authored
Fix default value of mod enabled_by_default field (#105)
1 parent d2f9a32 commit 3c49f87

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

librecomp/include/librecomp/mods.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ namespace recomp {
238238
Version minimum_recomp_version;
239239
Version version;
240240
bool runtime_toggleable;
241-
bool enabled_by_default = true;
241+
bool enabled_by_default;
242242

243243
std::vector<NativeLibraryManifest> native_libraries;
244244
std::unique_ptr<ModFileHandle> file_handle;

librecomp/src/mod_manifest.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -240,14 +240,14 @@ static bool parse_dependency(const std::string& val, recomp::mods::Dependency& o
240240
}
241241

242242
template <typename T1, typename T2>
243-
recomp::mods::ModOpenError try_get(T2& out, const nlohmann::json& data, const std::string& key, bool required, std::string& error_param) {
243+
recomp::mods::ModOpenError try_get(T2& out, const nlohmann::json& data, const std::string& key, bool required, std::string& error_param, T2 default_value = {}) {
244244
auto find_it = data.find(key);
245245
if (find_it == data.end()) {
246246
if (required) {
247247
error_param = key;
248248
return recomp::mods::ModOpenError::MissingManifestField;
249249
}
250-
out = {};
250+
out = default_value;
251251
return recomp::mods::ModOpenError::Good;
252252
}
253253

@@ -574,8 +574,8 @@ recomp::mods::ModOpenError recomp::mods::parse_manifest(ModManifest& ret, const
574574
return current_error;
575575
}
576576

577-
// Enabled by default (optional)
578-
current_error = try_get<json::boolean_t>(ret.enabled_by_default, manifest_json, enabled_by_default_key, false, error_param);
577+
// Enabled by default (optional, true if not present)
578+
current_error = try_get<json::boolean_t>(ret.enabled_by_default, manifest_json, enabled_by_default_key, false, error_param, true);
579579
if (current_error != ModOpenError::Good) {
580580
return current_error;
581581
}
@@ -795,6 +795,7 @@ recomp::mods::ModOpenError recomp::mods::ModContext::open_mod(const std::filesys
795795
manifest.version.major = 0;
796796
manifest.version.minor = 0;
797797
manifest.version.patch = 0;
798+
manifest.enabled_by_default = true;
798799
}
799800
}
800801
else {

0 commit comments

Comments
 (0)