Skip to content

Commit 97ec2a4

Browse files
committed
Add packet structures for 11.2.7
1 parent 55bc914 commit 97ec2a4

17 files changed

Lines changed: 228 additions & 19 deletions

File tree

WowPacketParser/Store/Objects/GameObjectTemplate.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public sealed record GameObjectTemplate : IDataModel
4141
[DBFieldName("Data", TargetedDatabaseFlag.SinceShadowlands | TargetedDatabaseFlag.WotlkClassic | TargetedDatabaseFlag.SinceCataClassic, 35, true)]
4242
public int?[] Data;
4343

44-
[DBFieldName("RequiredLevel", TargetedDatabaseFlag.FromCataclysmTillBattleForAzeroth)]
44+
[DBFieldName("RequiredLevel", TargetedDatabaseFlag.FromCataclysmTillBattleForAzeroth | TargetedDatabaseFlag.SinceTheWarWithin)]
4545
public int? RequiredLevel;
4646

4747
[DBFieldName("ContentTuningId", TargetedDatabaseFlag.SinceShadowlands | TargetedDatabaseFlag.WotlkClassic | TargetedDatabaseFlag.SinceCataClassic)]

WowPacketParser/Store/Objects/QuestObjective.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ public sealed record QuestObjective : IDataModel
2828
[DBFieldName("Amount")]
2929
public int? Amount;
3030

31+
[DBFieldName("SecondaryAmount")]
32+
public int? SecondaryAmount;
33+
3134
[DBFieldName("Flags")]
3235
public uint? Flags;
3336

@@ -37,9 +40,15 @@ public sealed record QuestObjective : IDataModel
3740
[DBFieldName("ProgressBarWeight")]
3841
public float? ProgressBarWeight;
3942

43+
[DBFieldName("ParentObjectiveID")]
44+
public int? ParentObjectiveID;
45+
4046
[DBFieldName("Description", LocaleConstant.enUS)]
4147
public string Description;
4248

49+
[DBFieldName("Visible", TargetedDatabaseFlag.SinceTheWarWithin)]
50+
public bool? Visible;
51+
4352
[DBFieldName("VerifiedBuild")]
4453
public int? VerifiedBuild = ClientVersion.BuildInt;
4554
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using WowPacketParser.Misc;
2+
using WowPacketParser.SQL;
3+
4+
namespace WowPacketParser.Store.Objects
5+
{
6+
[DBTableName("quest_reward_house_decor")]
7+
public class QuestRewardHouseDecor : IDataModel
8+
{
9+
[DBFieldName("QuestID", true)]
10+
public uint? QuestID;
11+
12+
[DBFieldName("HouseDecorID", true)]
13+
public int? HouseDecorID;
14+
15+
[DBFieldName("OrderIndex", true)]
16+
public int? OrderIndex;
17+
18+
[DBFieldName("VerifiedBuild")]
19+
public int? VerifiedBuild = ClientVersion.BuildInt;
20+
}
21+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using WowPacketParser.Misc;
2+
using WowPacketParser.SQL;
3+
4+
namespace WowPacketParser.Store.Objects
5+
{
6+
[DBTableName("quest_reward_house_room")]
7+
public class QuestRewardHouseRoom : IDataModel
8+
{
9+
[DBFieldName("QuestID", true)]
10+
public uint? QuestID;
11+
12+
[DBFieldName("HouseRoomID", true)]
13+
public int? HouseRoomID;
14+
15+
[DBFieldName("OrderIndex", true)]
16+
public int? OrderIndex;
17+
18+
[DBFieldName("VerifiedBuild")]
19+
public int? VerifiedBuild = ClientVersion.BuildInt;
20+
}
21+
}

WowPacketParser/Store/Objects/QuestTreasurePickers.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using WowPacketParser.Enums;
2-
using WowPacketParser.Misc;
3-
using WowPacketParser.SQL;
1+
using WowPacketParser.SQL;
42

53
namespace WowPacketParser.Store.Objects
64
{

WowPacketParser/Store/Storage.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ public static class Storage
3838
public static readonly DataBag<QuestVisualEffect> QuestVisualEffects = new DataBag<QuestVisualEffect>(new List<SQLOutput> { SQLOutput.quest_template });
3939
public static readonly DataBag<QuestRewardDisplaySpell> QuestRewardDisplaySpells = new DataBag<QuestRewardDisplaySpell>(new List<SQLOutput> { SQLOutput.quest_template });
4040
public static readonly DataBag<QuestTreasurePickers> QuestTreasurePickersStorage = new DataBag<QuestTreasurePickers>(new List<SQLOutput> { SQLOutput.quest_template });
41+
public static readonly DataBag<QuestRewardHouseRoom> QuestRewardHouseRoomStorage = new DataBag<QuestRewardHouseRoom>(new List<SQLOutput> { SQLOutput.quest_template });
42+
public static readonly DataBag<QuestRewardHouseDecor> QuestRewardHouseDecorStorage = new DataBag<QuestRewardHouseDecor>(new List<SQLOutput> { SQLOutput.quest_template });
4143
public static readonly StoreDictionary<uint, CreatureTemplate> CreatureTemplates = new StoreDictionary<uint, CreatureTemplate>(new List<SQLOutput> { SQLOutput.creature_template });
4244
public static readonly DataBag<CreatureTemplateClassic> CreatureTemplatesClassic = new DataBag<CreatureTemplateClassic>(new List<SQLOutput> { SQLOutput.creature_template });
4345
public static readonly DataBag<CreatureTemplateNonWDB> CreatureTemplatesNonWDB = new DataBag<CreatureTemplateNonWDB>(new List<SQLOutput> { SQLOutput.creature_template });

WowPacketParserModule.V10_0_0_46181/Parsers/MiscellaneousHandler.cs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ public static void HandleSetupCurrency(Packet packet)
1616
{
1717
packet.ReadInt32("Type", i);
1818
packet.ReadInt32("Quantity", i);
19+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_5_63506))
20+
packet.ReadByte("Flags", i);
1921

2022
packet.ResetBitReader();
2123

@@ -26,14 +28,11 @@ public static void HandleSetupCurrency(Packet packet)
2628
var hasTotalEarned = packet.ReadBit();
2729
var hasHasNextRechargeTime = packet.ReadBit();
2830
var hasRechargeCycleStartTime = false;
29-
var hasOverflownCurrencyID = false;
3031
if (ClientVersion.AddedInVersion(ClientVersionBuild.V10_1_0_49407))
3132
hasRechargeCycleStartTime = packet.ReadBit();
3233

33-
if (ClientVersion.AddedInVersion(ClientVersionBuild.V10_2_0_52038))
34-
hasOverflownCurrencyID = packet.ReadBit();
35-
36-
packet.ReadBits("Flags", 5, i);
34+
if (ClientVersion.RemovedInVersion(ClientVersionBuild.V11_2_5_63506))
35+
packet.ReadBits("Flags", 5, i);
3736

3837
if (hasWeeklyQuantity)
3938
packet.ReadUInt32("WeeklyQuantity", i);
@@ -55,9 +54,6 @@ public static void HandleSetupCurrency(Packet packet)
5554

5655
if (hasRechargeCycleStartTime)
5756
packet.ReadTime64("RechargeCycleStartTime", i);
58-
59-
if (hasOverflownCurrencyID)
60-
packet.ReadInt32("OverflownCurrencyID", i);
6157
}
6258
}
6359

WowPacketParserModule.V10_0_0_46181/Parsers/QueryHandler.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ public static void HandleQuestQueryResponse(Packet packet)
152152
quest.AllowableRacesWod = packet.ReadUInt64("AllowableRaces");
153153
var treasurePickerCount = 0u;
154154
var treasurePickerCount2 = 0u;
155+
var rewardHouseRoomCount = 0u;
156+
var rewardHouseDecorCount = 0u;
155157
if (ClientVersion.RemovedInVersion(ClientType.TheWarWithin))
156158
quest.QuestRewardID = packet.ReadInt32("TreasurePickerID");
157159
else
@@ -168,6 +170,12 @@ public static void HandleQuestQueryResponse(Packet packet)
168170
var conditionalQuestDescriptionCount = packet.ReadUInt32();
169171
var conditionalQuestCompletionLogCount = packet.ReadUInt32();
170172

173+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_7_64632))
174+
{
175+
rewardHouseRoomCount = packet.ReadUInt32();
176+
rewardHouseDecorCount = packet.ReadUInt32();
177+
}
178+
171179
for (uint i = 0; i < rewardDisplaySpellCount; ++i)
172180
ReadQuestCompleteDisplaySpell(packet, (uint)id.Key, i, i, "RewardDisplaySpell");
173181

@@ -194,6 +202,27 @@ public static void HandleQuestQueryResponse(Packet packet)
194202
//};
195203
//Storage.QuestTreasurePickersStorage.Add(pickers);
196204
}
205+
206+
for (var i = 0; i < rewardHouseRoomCount; ++i)
207+
{
208+
Storage.QuestRewardHouseRoomStorage.Add(new QuestRewardHouseRoom
209+
{
210+
QuestID = quest.ID,
211+
HouseRoomID = packet.ReadInt32("RewardHouseRoomID", i),
212+
OrderIndex = i
213+
});
214+
}
215+
216+
for (var i = 0; i < rewardHouseDecorCount; ++i)
217+
{
218+
Storage.QuestRewardHouseDecorStorage.Add(new QuestRewardHouseDecor
219+
{
220+
QuestID = quest.ID,
221+
HouseDecorID = packet.ReadInt32("RewardHouseDecorID", i),
222+
OrderIndex = i
223+
});
224+
}
225+
197226
packet.ResetBitReader();
198227

199228
uint logTitleLen = packet.ReadBits("logTitleLen", 9);
@@ -228,11 +257,17 @@ public static void HandleQuestQueryResponse(Packet packet)
228257
questInfoObjective.Order = i;
229258
questInfoObjective.ObjectID = packet.ReadInt32("ObjectID", i);
230259
questInfoObjective.Amount = packet.ReadInt32("Amount", i);
260+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_7_64632))
261+
questInfoObjective.SecondaryAmount = packet.ReadInt32("SecondaryAmount", i);
262+
231263
questInfoObjective.Flags = packet.ReadUInt32("Flags", i);
232264
questInfoObjective.Flags2 = packet.ReadUInt32("Flags2", i);
233265
questInfoObjective.ProgressBarWeight = packet.ReadSingle("ProgressBarWeight", i);
234266

235267
var visualEffectsCount = packet.ReadInt32("VisualEffects", i);
268+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_7_64632))
269+
questInfoObjective.ParentObjectiveID = packet.ReadInt32("ParentObjectiveID", i);
270+
236271
for (var j = 0; j < visualEffectsCount; ++j)
237272
{
238273
QuestVisualEffect questVisualEffect = new QuestVisualEffect
@@ -248,6 +283,9 @@ public static void HandleQuestQueryResponse(Packet packet)
248283
packet.ResetBitReader();
249284

250285
var descriptionLength = packet.ReadBits(8);
286+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_7_64632))
287+
questInfoObjective.Visible = packet.ReadBit("Visible", i);
288+
251289
questInfoObjective.Description = packet.ReadWoWString("Description", descriptionLength, i);
252290

253291
if (ClientLocale.PacketLocale != LocaleConstant.enUS && questInfoObjective.Description != string.Empty)

WowPacketParserModule.V11_0_0_55666/Parsers/AuthenticationHandler.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,26 @@ public static void HandleServerAuthChallenge(Packet packet)
1515
packet.ReadByte("DosZeroBits");
1616
}
1717

18-
[Parser(Opcode.CMSG_AUTH_CONTINUED_SESSION, ClientVersionBuild.V11_0_7_58123)]
19-
public static void HandleRedirectAuthProof(Packet packet)
18+
[Parser(Opcode.CMSG_AUTH_CONTINUED_SESSION, ClientVersionBuild.V11_0_7_58123, ClientVersionBuild.V11_2_7_64632)]
19+
public static void HandleAuthContinuedSession1107(Packet packet)
2020
{
2121
packet.ReadInt64("DosResponse");
2222
packet.ReadInt64("Key");
2323
packet.ReadBytes("LocalChallenge", 32);
2424
packet.ReadBytes("Digest", 24);
2525
}
2626

27+
[Parser(Opcode.CMSG_AUTH_CONTINUED_SESSION, ClientVersionBuild.V11_2_7_64632)]
28+
public static void HandleAuthContinuedSession1127(Packet packet)
29+
{
30+
packet.ReadInt64("DosResponse");
31+
packet.ReadBytes("LocalChallenge", 32);
32+
packet.ReadBytes("Digest", 24);
33+
packet.ReadInt64("Key");
34+
packet.ReadUInt32("NativeRealmAddress");
35+
packet.ReadUInt32("Key3");
36+
}
37+
2738
[Parser(Opcode.CMSG_AUTH_SESSION, ClientVersionBuild.V11_0_7_58123)]
2839
public static void HandleAuthSession(Packet packet)
2940
{

WowPacketParserModule.V11_0_0_55666/Parsers/CharacterHandler.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,15 @@ public static void ReadCharacterRestrictionAndMailData(Packet packet, params obj
102102
{
103103
packet.ResetBitReader();
104104
packet.ReadBit("BoostInProgress", idx);
105-
packet.ReadBit("RpeResetAvailable", idx);
106-
packet.ReadBit("RpeResetQuestClearAvailable", idx);
105+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_7_64632))
106+
{
107+
packet.ReadBit("RpeAvailable", idx);
108+
}
109+
else
110+
{
111+
packet.ReadBit("RpeResetAvailable", idx);
112+
packet.ReadBit("RpeResetQuestClearAvailable", idx);
113+
}
107114

108115
packet.ReadUInt32("RestrictionFlags", idx);
109116
var mailSenderLengths = new uint[packet.ReadUInt32()];
@@ -144,6 +151,9 @@ public static void ReadWarbandGroupMember(Packet packet, params object[] idx)
144151
{
145152
packet.ReadInt32("WarbandScenePlacementID", idx);
146153
var type = packet.ReadInt32("Type", idx);
154+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_7_64632))
155+
packet.ReadInt32("ContentSetID", idx);
156+
147157
if (type == 0)
148158
packet.ReadPackedGuid128("Guid", idx);
149159
}
@@ -158,6 +168,9 @@ public static void ReadWarbandGroup(Packet packet, params object[] idx)
158168
packet.ReadUInt32("WarbandSceneID", idx);
159169

160170
packet.ReadInt32("Flags", idx);
171+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_7_64632))
172+
packet.ReadInt32("ContentSetID", idx);
173+
161174
var memberCount = packet.ReadUInt32();
162175
for (var i = 0u; i < memberCount; ++i)
163176
ReadWarbandGroupMember(packet, idx, "Members", i);
@@ -176,7 +189,10 @@ public static void ReadRaceLimitDisableInfo(Packet packet, params object[] idx)
176189
else
177190
packet.ReadInt32E<Race>("RaceID", idx);
178191

179-
packet.ReadInt32("BlockReason", idx);
192+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_7_64632))
193+
packet.ReadSByte("BlockReason", idx);
194+
else
195+
packet.ReadInt32("BlockReason", idx);
180196
}
181197

182198
public static void ReadRaceUnlockData(Packet packet, params object[] idx)
@@ -204,6 +220,8 @@ public static void HandleEnumCharactersResult(Packet packet)
204220
packet.ReadBit("IsNewPlayerRestricted");
205221
packet.ReadBit("IsNewPlayer");
206222
packet.ReadBit("IsTrialAccountRestricted");
223+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_7_64632))
224+
packet.ReadBit("Unused1127");
207225
var hasDisabledClassesMask = packet.ReadBit("HasDisabledClassesMask");
208226
packet.ReadBit("DontCreateCharacterDisplays");
209227

0 commit comments

Comments
 (0)