/// <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;
		}