diff --git a/OpenRA.Game/FieldLoader.cs b/OpenRA.Game/FieldLoader.cs index 22274d27df..d26722144a 100644 --- a/OpenRA.Game/FieldLoader.cs +++ b/OpenRA.Game/FieldLoader.cs @@ -475,6 +475,23 @@ namespace OpenRA } else if (fieldType == typeof(bool)) return ParseYesNo(value, fieldType, fieldName); + else if (fieldType == typeof(int2[])) + { + if (value != null) + { + var parts = value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + if (parts.Length % 2 != 0) + return InvalidValueAction(value, fieldType, fieldName); + + var ints = new int2[parts.Length / 2]; + for (var i = 0; i < ints.Length; i++) + ints[i] = new int2(Exts.ParseIntegerInvariant(parts[2 * i]), Exts.ParseIntegerInvariant(parts[2 * i + 1])); + + return ints; + } + + return InvalidValueAction(value, fieldType, fieldName); + } else if (fieldType.IsArray && fieldType.GetArrayRank() == 1) { if (value == null)