/// <summary> /// Creates necessary information for the Update-PacketParser /// </summary> public static void CreatePacketParserInfo(string wowFile, string outputFile) { WoWFile file = new WoWFile(wowFile); var fields = UpdateFieldExtractor.Extract(file); using (var writer = new StreamWriter(outputFile)) { for (UpdateFieldGroup g = UpdateFieldGroup.Object; g < UpdateFieldGroup.Count; g++) { foreach (var field in s_updateFieldsByGroup[(int)g]) { var size = field.Size; if (size > 1) { writer.WriteLine("SetType({0}, {1}, {2});", field.FullTypeName, field.FullName, field.Size); } else { writer.WriteLine("FieldTypes[{0}] = {1};", field.FullName, field.FullTypeName); } } } } }
static void AddToGroup(UpdateField field, UpdateFieldGroup group) { var groupList = s_updateFieldsByGroup.Get((uint)group); if (groupList == null) { s_updateFieldsByGroup[(uint)group] = groupList = new List <UpdateField>(200); } groupList.Add(field); field.Group = group; }
static void AddToGroup(UpdateField field, UpdateFieldGroup group) { var groupList = s_updateFieldsByGroup.Get((uint)group); if (groupList == null) { s_updateFieldsByGroup[(uint)group] = groupList = new List<UpdateField>(200); } groupList.Add(field); field.Group = group; }