public override bool Parse() { ResetPosition(); var playername = new WoW.CacheObjects.PlayerName(); if (ClientBuildAmount > 9551) { playername.Guid = ReadPackedWoWGuid("Guid"); playername.Unk = ReadByte("Unk"); // added in 3.1 if (playername.Unk != 1) { playername.Name = ReadCString("Name"); // 6898 = Name comes first playername.BGRealm = ReadCString("BGRealm"); // realm name for cross realm BG usage playername.Race = ReadEnum<Race>("Race", TypeCode.Byte); playername.Gender = ReadEnum<Gender>("Gender", TypeCode.Byte); playername.Class = ReadEnum<Class>("Class", TypeCode.Byte); } } else { playername.Guid = ReadWoWGuid("guid"); if (ClientBuildAmount > 6803) { playername.Name = ReadCString("Name"); // 6898 = Name comes first playername.BGRealm = ReadCString("BGRealm"); // realm name for cross realm BG usage } else { playername.BGRealm = ReadCString("BGRealm"); // realm name for cross realm BG usage playername.Name = ReadCString("Name"); // 6898 = Name comes first } playername.Race = ReadEnum<Race>("Race", TypeCode.UInt32); playername.Gender = ReadEnum<Gender>("Gender", TypeCode.UInt32); playername.Class = ReadEnum<Class>("Class", TypeCode.UInt32); } if (ClientBuildAmount > 7799 && playername.Unk != 1) { playername.Declined = ReadByte("Declined"); if (playername.Declined == 1) { for (int i = 0; i < 5; ++i) //MAX_DECLINED_NAME_CASES { playername.DeclinedNames.Add(ReadCString("declinename" + i)); } } } Core.Cache.AddPlayerName(playername); return Validate(); }
public override bool Parse() { ResetPosition(); var playername = new WoW.CacheObjects.PlayerName(); if (ClientBuildAmount > 9551) { playername.guid = ReadPackedWoWGuid("guid"); playername.unk = ReadByte("unk"); // added in 3.1 if (playername.unk != 1) { playername.name = ReadCString("name"); // 6898 = Name comes first playername.bgrealm = ReadCString("bgrealm"); // realm name for cross realm BG usage playername.race = ReadByte("race"); playername.gender = ReadByte("gender"); playername.class_ = ReadByte("class"); } } else { playername.guid = ReadWoWGuid("guid"); if (ClientBuildAmount > 6803) { playername.name = ReadCString("name"); // 6898 = Name comes first playername.bgrealm = ReadCString("bgrealm"); // realm name for cross realm BG usage } else { playername.bgrealm = ReadCString("bgrealm"); // realm name for cross realm BG usage playername.name = ReadCString("name"); // 6898 = Name comes first } playername.race = (byte)ReadUInt32("race"); playername.gender = (byte)ReadUInt32("gender"); playername.class_ = (byte)ReadUInt32("class_"); } if (ClientBuildAmount > 7799) { playername.declined = ReadByte("declined"); if (playername.declined == 1) { for (int i = 0; i < 5; ++i) //MAX_DECLINED_NAME_CASES { playername.declinename.Add(ReadCString("declinename" + i)); } } } Core.Cache.AddPlayerName(playername); return Validate(); }