public static void Parse(Replay replay, byte[] buffer) { const int headerSize = 5; var attributes = new ReplayAttribute[BitConverter.ToInt32(buffer, headerSize)]; var initialOffset = 4 + headerSize; for (var i = 0; i < attributes.Length; i++) { var currentOffset = initialOffset + (i * 13); var attribute = new ReplayAttribute { Header = BitConverter.ToInt32(buffer, currentOffset), AttributeType = (ReplayAttributeEventType)BitConverter.ToInt32(buffer, currentOffset + 4), PlayerId = buffer[currentOffset + 8], Value = new byte[4] }; Array.Copy(buffer, currentOffset + 9, attribute.Value, 0, 4); attributes[i] = attribute; } ApplyAttributes(replay, attributes.OrderBy(i => i.AttributeType).ToArray()); /* var stringList = attributes.OrderBy(i => i.AttributeType); * Console.WriteLine(stringList.Count()); */ }
public static void Parse(Replay replay, byte[] buffer) { var headerSize = 5; var numAttributes = BitConverter.ToInt32(buffer, headerSize); var attributes = new ReplayAttribute[numAttributes]; var initialOffset = 4 + headerSize; for (int i = 0; i < numAttributes; i++) attributes[i] = ReplayAttribute.Parse(buffer, initialOffset + (i*13)); new ReplayAttributeEvents { Attributes = attributes.OrderBy(i => i.AttributeType).ToArray() }.ApplyAttributes(replay); /* var stringList = attributes.OrderBy(i => i.AttributeType); Console.WriteLine(stringList.Count()); */ }
public static void Parse(Replay replay, byte[] buffer) { var headerSize = 5; var numAttributes = BitConverter.ToInt32(buffer, headerSize); var attributes = new ReplayAttribute[numAttributes]; var initialOffset = 4 + headerSize; for (int i = 0; i < numAttributes; i++) { attributes[i] = ReplayAttribute.Parse(buffer, initialOffset + (i * 13)); } new ReplayAttributeEvents { Attributes = attributes.OrderBy(i => i.AttributeType).ToArray() }.ApplyAttributes(replay); /* var stringList = attributes.OrderBy(i => i.AttributeType); * Console.WriteLine(stringList.Count()); */ }