Skip to content

Commit 24f7bb2

Browse files
committed
Update 11.2.0 packet structures
1 parent 83d6ff0 commit 24f7bb2

File tree

7 files changed

+160
-11
lines changed

7 files changed

+160
-11
lines changed

WowPacketParser/Enums/GameRule.cs

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
namespace WowPacketParser.Enums;
2+
3+
public enum GameRule
4+
{
5+
NoDebuffLimit = 1,
6+
CharNameReservationEnabled = 2,
7+
MaxCharReservationsPerRealm = 3,
8+
MaxAccountCharReservationsPerContentset = 4,
9+
EtaRealmLaunchTime = 5,
10+
TrivialGroupXPPercent = 7,
11+
CharReservationsPerRealmReopenThreshold = 8,
12+
DisablePct = 9,
13+
HardcoreRuleset = 10,
14+
ReplaceAbsentGmSeconds = 11,
15+
ReplaceGmRankLastOnlineSeconds = 12,
16+
GameMode = 13,
17+
CharacterlessLogin = 14,
18+
NoMultiboxing = 15,
19+
VanillaNpcKnockback = 16,
20+
Runecarving = 17,
21+
TalentRespecCostMin = 18,
22+
TalentRespecCostMax = 19,
23+
TalentRespecCostStep = 20,
24+
VanillaRageGenerationModifier = 21,
25+
SelfFoundAllowed = 22,
26+
DisableHonorDecay = 23,
27+
MaxLootDropLevel = 25,
28+
MicrobarScale = 26,
29+
MaxUnitNameDistance = 27,
30+
MaxNameplateDistance = 28,
31+
UserAddonsDisabled = 29,
32+
UserScriptsDisabled = 30,
33+
NonPlayerNameplateScale = 31,
34+
ForcedPartyFrameScale = 32,
35+
CustomActionbarOverlayHeightOffset = 33,
36+
ForcedChatLanguage = 34,
37+
LandingPageFactionID = 35,
38+
CollectionsPanelDisabled = 36,
39+
CharacterPanelDisabled = 37,
40+
SpellbookPanelDisabled = 38,
41+
TalentsPanelDisabled = 39,
42+
AchievementsPanelDisabled = 40,
43+
CommunitiesPanelDisabled = 41,
44+
EncounterJournalDisabled = 42,
45+
FinderPanelDisabled = 43,
46+
StoreDisabled = 44,
47+
HelpPanelDisabled = 45,
48+
GuildsDisabled = 46,
49+
QuestLogMicrobuttonDisabled = 47,
50+
MapPlunderstormCircle = 48,
51+
AfterDeathSpectatingUI = 49,
52+
FrontEndChat = 50,
53+
UniversalNameplateOcclusion = 51,
54+
FastAreaTriggerTick = 52,
55+
AllPlayersAreFastMovers = 53,
56+
IgnoreChrclassDisabledFlag = 54,
57+
CharacterCreateUseFixedBackgroundModel = 55,
58+
ForceAlteredFormsOn = 56,
59+
PlayerNameplateDifficultyIcon = 57,
60+
PlayerNameplateAlternateHealthColor = 58,
61+
AlwaysAllowAlliedRaces = 59,
62+
ActionbarIconIntroDisabled = 60,
63+
ReleaseSpiritGhostDisabled = 61,
64+
DeleteItemConfirmationDisabled = 62,
65+
ChatLinkLevelToastsDisabled = 63,
66+
BagsUIDisabled = 64,
67+
PetBattlesDisabled = 65,
68+
PerksProgramActivityTrackingDisabled = 66,
69+
MaximizeWorldMapDisabled = 67,
70+
WorldMapTrackingOptionsDisabled = 68,
71+
WorldMapTrackingPinDisabled = 69,
72+
WorldMapHelpPlateDisabled = 70,
73+
QuestLogPanelDisabled = 71,
74+
QuestLogSuperTrackingDisabled = 72,
75+
TutorialFrameDisabled = 73,
76+
IngameMailNotificationDisabled = 74,
77+
IngameCalendarDisabled = 75,
78+
IngameTrackingDisabled = 76,
79+
IngameWhoListDisabled = 77,
80+
RaceAlteredFormsDisabled = 78,
81+
IngameFriendsListDisabled = 79,
82+
MacrosDisabled = 80,
83+
CompactRaidFrameManagerDisabled = 81,
84+
EditModeDisabled = 82,
85+
InstanceDifficultyBannerDisabled = 83,
86+
FullCharacterCreateDisabled = 84,
87+
TargetFrameBuffsDisabled = 85,
88+
UnitFramePvPContextualDisabled = 86,
89+
BlockWhileSheathedAllowed = 88,
90+
VanillaAccountMailInstant = 91,
91+
ClearMailOnRealmTransfer = 92,
92+
PremadeGroupFinderStyle = 93,
93+
PlunderstormAreaSelection = 94,
94+
GroupFinderCapabilities = 98,
95+
WorldMapLegendDisabled = 99,
96+
WorldMapFrameStrata = 100,
97+
MerchantFilterDisabled = 101,
98+
SummoningStones = 108,
99+
TransmogEnabled = 109,
100+
MailGameRule = 132,
101+
LootMethodStyle = 157,
102+
}

WowPacketParserModule.V11_0_0_55666/Parsers/MiscellaneousHandler.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,12 @@ public static void HandleStopMirrorTimer(Packet packet)
2929
{
3030
packet.ReadByteE<MirrorTimerType>("Timer");
3131
}
32+
33+
[Parser(Opcode.SMSG_SET_ANIM_TIER, ClientVersionBuild.V11_2_0_62213)]
34+
public static void HandleSetAnimTier(Packet packet)
35+
{
36+
packet.ReadPackedGuid128("Unit");
37+
packet.ReadByte("Tier");
38+
}
3239
}
3340
}

WowPacketParserModule.V11_0_0_55666/Parsers/UpdateFieldsHandler1120.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6338,11 +6338,11 @@ public static IAreaTriggerSplineCalculator ReadCreateAreaTriggerSplineCalculator
63386338
var data = new AreaTriggerSplineCalculator();
63396339
packet.ResetBitReader();
63406340
data.Points.Resize(packet.ReadBits(16));
6341+
data.Catmullrom = packet.ReadBit("Catmullrom", indexes);
63416342
for (var i = 0; i < data.Points.Count; ++i)
63426343
{
63436344
data.Points[i] = packet.ReadVector3("Points", indexes, i);
63446345
}
6345-
data.Catmullrom = packet.ReadBit("Catmullrom", indexes);
63466346
return data;
63476347
}
63486348

WowPacketParserModule.V11_0_0_55666/Parsers/UpdateHandler.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,9 +657,12 @@ private static MovementInfo ReadMovementUpdateBlock(Packet packet, CreateObject
657657
if (hasAnimationTierTransition)
658658
{
659659
packet.ReadInt32("TierTransitionID", index);
660+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_0_62213))
661+
packet.ReadByte("AnimTier", index);
660662
packet.ReadInt32("StartTime", index);
661663
packet.ReadInt32("EndTime", index);
662-
packet.ReadByte("AnimTier", index);
664+
if (ClientVersion.RemovedInVersion(ClientVersionBuild.V11_2_0_62213))
665+
packet.ReadByte("AnimTier", index);
663666
}
664667

665668
if (hasUnknown901)

WowPacketParserModule.V8_0_1_27101/Parsers/GroupHandler.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public static void HandlePartyUpdate(Packet packet)
2121
packet.ReadByte("LeaderFactionGroup");
2222

2323
var playerCount = packet.ReadUInt32("PlayerListCount");
24+
var hasChallengeMode = ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_0_62213) && packet.ReadBit("HasChallengeMode");
2425
var hasLFG = packet.ReadBit("HasLfgInfo");
2526
var hasLootSettings = packet.ReadBit("HasLootSettings");
2627
var hasDifficultySettings = packet.ReadBit("HasDifficultySettings");
@@ -34,6 +35,20 @@ public static void HandlePartyUpdate(Packet packet)
3435
packet.ReadBit("Connected", i);
3536
packet.ReadBit("VoiceChatSilenced", i);
3637
packet.ReadBit("FromSocialQueue", i);
38+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_0_62213))
39+
{
40+
packet.ResetBitReader();
41+
packet.ReadPackedGuid128("BnetAccountGUID", "LeaverInfo");
42+
packet.ReadSingle("LeaveScore", "LeaverInfo");
43+
packet.ReadUInt32("SeasonID", "LeaverInfo");
44+
packet.ReadUInt32("TotalLeaves", "LeaverInfo");
45+
packet.ReadUInt32("TotalSuccesses", "LeaverInfo");
46+
packet.ReadInt32("ConsecutiveSuccesses", "LeaverInfo");
47+
packet.ReadTime64("LastPenaltyTime", "LeaverInfo");
48+
packet.ReadTime64("LeaverExpirationTime", "LeaverInfo");
49+
packet.ReadInt32("Unknown_1120", "LeaverInfo");
50+
packet.ReadBit("LeaverStatus", "LeaverInfo");
51+
}
3752

3853
packet.ReadPackedGuid128("Guid", i);
3954

@@ -66,6 +81,20 @@ public static void HandlePartyUpdate(Packet packet)
6681
packet.ReadUInt32("LegacyRaidDifficultyID");
6782
}
6883

84+
if (hasChallengeMode)
85+
{
86+
packet.ResetBitReader();
87+
packet.ReadInt32("Unknown_1120_1", "ChallengeMode");
88+
packet.ReadInt32("Unknown_1120_2", "ChallengeMode");
89+
packet.ReadUInt64("Unknown_1120_3", "ChallengeMode");
90+
packet.ReadInt64("Unknown_1120_4", "ChallengeMode");
91+
packet.ReadPackedGuid128("KeystoneOwnerGUID", "ChallengeMode");
92+
packet.ReadPackedGuid128("LeaverGUID", "ChallengeMode");
93+
packet.ReadBit("IsActive", "ChallengeMode");
94+
packet.ReadBit("HasRestrictions", "ChallengeMode");
95+
packet.ReadBit("CanVoteAbandon", "ChallengeMode");
96+
}
97+
6998
if (hasLFG)
7099
{
71100
packet.ResetBitReader();

WowPacketParserModule.V8_0_1_27101/Parsers/MovementHandler.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,12 @@ public static void ReadMovementSpline(Packet packet, Vector3 pos, params object[
175175
if (hasAnimTier)
176176
{
177177
packet.ReadInt32("TierTransitionID", indexes);
178+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_0_62213))
179+
packet.ReadByte("AnimTier", indexes);
178180
packet.ReadUInt32("StartTime", indexes);
179181
packet.ReadUInt32("EndTime", indexes);
180-
packet.ReadByte("AnimTier", indexes);
182+
if (ClientVersion.RemovedInVersion(ClientVersionBuild.V11_2_0_62213))
183+
packet.ReadByte("AnimTier", indexes);
181184
}
182185

183186
if (hasUnk901)

WowPacketParserModule.V9_0_1_36216/Parsers/MiscellaneousHandler.cs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public static class MiscellaneousHandler
1111
{
1212
public static void ReadGameRuleValuePair(Packet packet, params object[] indexes)
1313
{
14-
packet.ReadInt32("Rule", indexes);
14+
packet.ReadInt32E<GameRule>("Rule", indexes);
1515
packet.ReadInt32("Value", indexes);
1616
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_0_7_58123))
1717
packet.ReadSingle("ValueF", indexes);
@@ -80,7 +80,8 @@ public static void HandleFeatureSystemStatus(Packet packet)
8080
packet.ReadUInt32("KioskSessionDurationMinutes");
8181
packet.ReadInt64("RedeemForBalanceAmount");
8282

83-
packet.ReadUInt32("BpayStorePurchaseTimeout");
83+
if (ClientVersion.RemovedInVersion(ClientVersionBuild.V11_2_0_62213))
84+
packet.ReadUInt32("BpayStorePurchaseTimeout");
8485

8586
packet.ReadUInt32("ClubsPresenceDelay");
8687
packet.ReadUInt32("ClubPresenceUnsubscribeDelay");
@@ -127,11 +128,13 @@ public static void HandleFeatureSystemStatus(Packet packet)
127128
var hasEuropaTicketSystemStatus = packet.ReadBit("HasEuropaTicketSystemStatus");
128129
if (ClientVersion.RemovedInVersion(ClientVersionBuild.V10_0_5_47777))
129130
packet.ReadBit("ScrollOfResurrectionEnabled");
130-
packet.ReadBit("BpayStoreEnabled");
131+
if (ClientVersion.RemovedInVersion(ClientVersionBuild.V11_2_0_62213))
132+
packet.ReadBit("BpayStoreEnabled");
131133
packet.ReadBit("BpayStoreAvailable");
132134
packet.ReadBit("BpayStoreDisabledByParentalControls");
133135
packet.ReadBit("ItemRestorationButtonEnabled");
134-
packet.ReadBit("BrowserEnabled");
136+
if (ClientVersion.RemovedInVersion(ClientVersionBuild.V11_2_0_62213))
137+
packet.ReadBit("BrowserEnabled");
135138
var hasSessionAlert = packet.ReadBit("HasSessionAlert");
136139

137140
packet.ReadBit("Enabled", "RAFSystem");
@@ -204,15 +207,15 @@ public static void HandleFeatureSystemStatus(Packet packet)
204207
if (ClientVersion.AddedInVersion(ClientVersionBuild.V10_2_7_54577))
205208
{
206209
packet.ReadBit("PremadeGroupsEnabled");
207-
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_0_7_58123))
210+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_0_7_58123) && ClientVersion.RemovedInVersion(ClientVersionBuild.V11_1_5_60392))
208211
packet.ReadBit("UseActivePlayerDataQuestCompleted");
209212

210213
packet.ReadBit("Unused1027_1");
211214
packet.ReadBit("GuildEventsEditsEnabled");
212215
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_0_0_55666))
213216
packet.ReadBit("GuildTradeSkillsEnabled");
214217

215-
unknown1027StrLen = packet.ReadBits(7);
218+
unknown1027StrLen = packet.ReadBits(ClientVersion.AddedInVersion(ClientVersionBuild.V11_2_0_62213) ? 10 : 7);
216219
}
217220

218221
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_0_0_55666))
@@ -293,7 +296,8 @@ public static void HandleFeatureSystemStatus2(Packet packet)
293296
[Parser(Opcode.SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN)]
294297
public static void HandleFeatureSystemStatusGlueScreen(Packet packet)
295298
{
296-
packet.ReadBit("BpayStoreEnabled");
299+
if (ClientVersion.RemovedInVersion(ClientVersionBuild.V11_2_0_62213))
300+
packet.ReadBit("BpayStoreEnabled");
297301
packet.ReadBit("BpayStoreAvailable");
298302
packet.ReadBit("BpayStoreDisabledByParentalControls");
299303
packet.ReadBit("CharUndeleteEnabled");
@@ -361,7 +365,8 @@ public static void HandleFeatureSystemStatusGlueScreen(Packet packet)
361365
packet.ReadInt64("RedeemForBalanceAmount");
362366
packet.ReadInt32("MaxCharactersOnThisRealm");
363367
var liveRegionCharacterCopySourceRegionsCount = packet.ReadUInt32("LiveRegionCharacterCopySourceRegionsCount");
364-
packet.ReadUInt32("BpayStorePurchaseTimeout");
368+
if (ClientVersion.RemovedInVersion(ClientVersionBuild.V11_2_0_62213))
369+
packet.ReadUInt32("BpayStorePurchaseTimeout");
365370
packet.ReadInt32("ActiveBoostType");
366371
packet.ReadInt32("TrialBoostType");
367372
packet.ReadInt32("MinimumExpansionLevel");

0 commit comments

Comments
 (0)