From 8ade0350491cbd5b4009755bbf5e11c128186c8b Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Fri, 20 Nov 2015 22:31:42 +0000 Subject: [PATCH] Add support for loading CVec[] from yaml. --- OpenRA.Game/FieldLoader.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/OpenRA.Game/FieldLoader.cs b/OpenRA.Game/FieldLoader.cs index 7bd075e9f8..1258cdf91d 100644 --- a/OpenRA.Game/FieldLoader.cs +++ b/OpenRA.Game/FieldLoader.cs @@ -373,6 +373,28 @@ namespace OpenRA return InvalidValueAction(value, fieldType, fieldName); } + else if (fieldType == typeof(CVec[])) + { + if (value != null) + { + var parts = value.Split(','); + + if (parts.Length % 2 != 0) + return InvalidValueAction(value, fieldType, fieldName); + + var vecs = new CVec[parts.Length / 2]; + for (var i = 0; i < vecs.Length; i++) + { + int rx, ry; + if (int.TryParse(parts[2 * i], out rx) && int.TryParse(parts[2 * i + 1], out ry)) + vecs[i] = new CVec(rx, ry); + } + + return vecs; + } + + return InvalidValueAction(value, fieldType, fieldName); + } else if (fieldType.IsEnum) { try