From 7ab283a21e1dd6d8dc86c1ffc992ef8c7dfb7ed2 Mon Sep 17 00:00:00 2001 From: BtbN Date: Wed, 17 Apr 2019 17:10:55 +0200 Subject: [PATCH] Add 2S8 and fix word/byteBuf parsing --- eAmuseCore/KBinXML/KBinXML.cs | 4 ++-- eAmuseCore/KBinXML/XmlTypes.cs | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/eAmuseCore/KBinXML/KBinXML.cs b/eAmuseCore/KBinXML/KBinXML.cs index cc2989c..0bcb4f1 100644 --- a/eAmuseCore/KBinXML/KBinXML.cs +++ b/eAmuseCore/KBinXML/KBinXML.cs @@ -123,7 +123,7 @@ namespace eAmuseCore.KBinXML { if (!dataByteBuf.Any()) { - dataByteBuf = dataBuf; + dataByteBuf = dataBuf.Take(4); dataBuf = dataBuf.Skip(4); } var res = dataByteBuf.Take(1); @@ -134,7 +134,7 @@ namespace eAmuseCore.KBinXML { if (!dataWordBuf.Any()) { - dataWordBuf = dataBuf; + dataWordBuf = dataBuf.Take(4); dataBuf = dataBuf.Skip(4); } var res = dataWordBuf.Take(2); diff --git a/eAmuseCore/KBinXML/XmlTypes.cs b/eAmuseCore/KBinXML/XmlTypes.cs index fc0ac7c..1225460 100644 --- a/eAmuseCore/KBinXML/XmlTypes.cs +++ b/eAmuseCore/KBinXML/XmlTypes.cs @@ -209,6 +209,33 @@ namespace eAmuseCore.KBinXML.XmlTypes static public KDouble FromBytes(IEnumerable input) => new KDouble(input.FirstD()); } + [KValue(16, "2s8", Count = 2, Size = 1)] + public class K2S8 : KValueList + { + public K2S8(S8 v1, S8 v2) + { + Add(v1); + Add(v2); + } + + static public K2S8 FromString(string input) + { + string[] fields = input.Split(' '); + if (fields.Length != 2) + throw new ArgumentException("input string had invalid field count", "input"); + return new K2S8( + S8.FromString(fields[0]), + S8.FromString(fields[1])); + } + + static public K2S8 FromBytes(IEnumerable input) + { + return new K2S8( + S8.FromBytes(input.Skip(0)), + S8.FromBytes(input.Skip(1))); + } + } + [KValue(27, "3u8", Count = 3, Size = 1)] public class K3U8 : KValueList {