diff --git a/OpenRA.FileFormats/FieldLoader.cs b/OpenRA.FileFormats/FieldLoader.cs index 2bede6b2a7..ab5557c539 100644 --- a/OpenRA.FileFormats/FieldLoader.cs +++ b/OpenRA.FileFormats/FieldLoader.cs @@ -29,26 +29,21 @@ namespace OpenRA.FileFormats public static void Load(object self, IniSection ini) { foreach (var x in ini) - { - var field = self.GetType().GetField(x.Key.Trim()); - if (field == null) - throw new NotImplementedException("Missing field `{0}` on `{1}`".F(x.Key.Trim(), self.GetType().Name)); - field.SetValue(self, GetValue(field.FieldType, x.Value.Trim())); - } + LoadField(self, x.Key, x.Value); } public static void Load(object self, MiniYaml my) { foreach (var x in my.Nodes) - LoadField( self, x.Key, x.Value ); + LoadField( self, x.Key, x.Value.Value ); } - public static void LoadField( object self, string key, MiniYaml value ) + public static void LoadField( object self, string key, string value ) { var field = self.GetType().GetField( key.Trim() ); if( field == null ) throw new NotImplementedException( "Missing field `{0}` on `{1}`".F( key.Trim(), self.GetType().Name ) ); - field.SetValue( self, GetValue( field.FieldType, value.Value ) ); + field.SetValue( self, GetValue( field.FieldType, value ) ); } public static object GetValue( Type fieldType, string x ) diff --git a/OpenRA.Game/Chrome/WidgetLoader.cs b/OpenRA.Game/Chrome/WidgetLoader.cs index bfa1a96542..b5c7ac9f21 100644 --- a/OpenRA.Game/Chrome/WidgetLoader.cs +++ b/OpenRA.Game/Chrome/WidgetLoader.cs @@ -16,7 +16,7 @@ namespace OpenRA foreach (var c in child.Value.Nodes) widget.AddChild(LoadWidget(c)); else - FieldLoader.LoadField(widget, child.Key, child.Value); + FieldLoader.LoadField(widget, child.Key, child.Value.Value); } return widget; }