public static GossipQuestOption ReadGossipQuestTextData(Packet packet, params object[] idx) { var gossipQuest = new GossipQuestOption(); gossipQuest.QuestId = (uint)packet.ReadInt32("QuestID", idx); if (ClientVersion.AddedInVersion(ClientType.Shadowlands)) { packet.ReadInt32("ContentTuningID", idx); } packet.ReadInt32("QuestType", idx); if (ClientVersion.RemovedInVersion(ClientType.Shadowlands) || ClientVersion.IsClassicClientVersionBuild(ClientVersion.Build)) { packet.ReadInt32("QuestLevel", idx); if (ClientVersion.AddedInVersion(ClientVersionBuild.V7_3_5_25848)) { packet.ReadInt32("QuestMaxScalingLevel", idx); } } for (int j = 0; j < 2; ++j) { packet.ReadInt32("QuestFlags", idx, j); } packet.ResetBitReader(); packet.ReadBit("Repeatable", idx); if (ClientVersion.RemovedInVersion(ClientVersionBuild.V7_2_0_23826)) { packet.ReadBit("Ignored"); } int titleBits; if (ClientVersion.InVersion(ClientVersionBuild.V8_1_0_28724, ClientVersionBuild.V8_1_5_29683)) { titleBits = 10; } else { titleBits = 9; } uint questTitleLen = packet.ReadBits(titleBits); gossipQuest.Title = packet.ReadWoWString("QuestTitle", questTitleLen, idx); return(gossipQuest); }
public static GossipQuestOption ReadGossipQuestTextData(Packet packet, params object[] idx) { var gossipQuest = new GossipQuestOption(); gossipQuest.QuestId = (uint)packet.ReadInt32("QuestID", idx); packet.ReadInt32("QuestType", idx); packet.ReadInt32("QuestLevel", idx); for (int j = 0; j < 2; ++j) { packet.ReadInt32("QuestFlags", idx, j); } packet.ResetBitReader(); packet.ReadBit("Repeatable", idx); uint questTitleLen = packet.ReadBits(9); gossipQuest.Title = packet.ReadWoWString("QuestTitle", questTitleLen, idx); return(gossipQuest); }