Ensure FieldLoader is left in its original state when loading Settings.
This commit is contained in:
@@ -288,7 +288,8 @@ namespace OpenRA
|
|||||||
// Override fieldloader to ignore invalid entries
|
// Override fieldloader to ignore invalid entries
|
||||||
var err1 = FieldLoader.UnknownFieldAction;
|
var err1 = FieldLoader.UnknownFieldAction;
|
||||||
var err2 = FieldLoader.InvalidValueAction;
|
var err2 = FieldLoader.InvalidValueAction;
|
||||||
|
try
|
||||||
|
{
|
||||||
FieldLoader.UnknownFieldAction = (s, f) => Console.WriteLine("Ignoring unknown field `{0}` on `{1}`".F(s, f.Name));
|
FieldLoader.UnknownFieldAction = (s, f) => Console.WriteLine("Ignoring unknown field `{0}` on `{1}`".F(s, f.Name));
|
||||||
|
|
||||||
if (File.Exists(settingsFile))
|
if (File.Exists(settingsFile))
|
||||||
@@ -305,10 +306,13 @@ namespace OpenRA
|
|||||||
foreach (var f in kv.Value.GetType().GetFields())
|
foreach (var f in kv.Value.GetType().GetFields())
|
||||||
if (args.Contains(kv.Key + "." + f.Name))
|
if (args.Contains(kv.Key + "." + f.Name))
|
||||||
FieldLoader.LoadField(kv.Value, f.Name, args.GetValue(kv.Key + "." + f.Name, ""));
|
FieldLoader.LoadField(kv.Value, f.Name, args.GetValue(kv.Key + "." + f.Name, ""));
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
FieldLoader.UnknownFieldAction = err1;
|
FieldLoader.UnknownFieldAction = err1;
|
||||||
FieldLoader.InvalidValueAction = err2;
|
FieldLoader.InvalidValueAction = err2;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void Save()
|
public void Save()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user