PerGameSettings Null toggles (#453)

This commit is contained in:
kadu04t
2026-07-19 19:30:13 -03:00
committed by GitHub
parent 327018e80a
commit 184e24fbb6
2 changed files with 73 additions and 1 deletions
+13 -1
View File
@@ -49,7 +49,7 @@ public sealed class PerGameSettings
var path = PathFor(titleId);
if (File.Exists(path))
{
return JsonSerializer.Deserialize<PerGameSettings>(File.ReadAllText(path), SerializerOptions);
return NormalizeFromJson(File.ReadAllText(path));
}
}
catch (Exception)
@@ -59,6 +59,18 @@ public sealed class PerGameSettings
return null;
}
// A null list inherits global settings; only entries in a present list are sanitized.
internal static PerGameSettings? NormalizeFromJson(string json)
{
var settings = JsonSerializer.Deserialize<PerGameSettings>(json, SerializerOptions);
if (settings?.EnvironmentToggles is { } toggles)
{
settings.EnvironmentToggles = toggles.Where(entry => !string.IsNullOrEmpty(entry)).ToList();
}
return settings;
}
public void Save(string titleId)
{
if (string.IsNullOrWhiteSpace(titleId))