diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-10-10 16:21:55 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-10-10 16:21:55 +0200 |
| commit | 53068a94e88991ae7196fb247df4b7ca2e47e554 (patch) | |
| tree | 42afe6e6160b0317f72ddec25562988145d7a5ff /src/server/game/Server | |
| parent | a7d825c6deb2711392956abac2d494a8731f58c3 (diff) | |
Core: Updated to 11.2.5.63704
Diffstat (limited to 'src/server/game/Server')
38 files changed, 681 insertions, 584 deletions
diff --git a/src/server/game/Server/Packets/CalendarPackets.cpp b/src/server/game/Server/Packets/CalendarPackets.cpp index de56c390a6c..c5c0a71a413 100644 --- a/src/server/game/Server/Packets/CalendarPackets.cpp +++ b/src/server/game/Server/Packets/CalendarPackets.cpp @@ -332,7 +332,7 @@ WorldPacket const* CalendarInviteStatus::Write() _worldPacket << InviteGuid; _worldPacket << uint64(EventID); _worldPacket << Date; - _worldPacket << uint32(Flags); + _worldPacket << uint16(Flags); _worldPacket << uint8(Status); _worldPacket << ResponseTime; _worldPacket << Bits<1>(ClearPending); @@ -345,7 +345,7 @@ WorldPacket const* CalendarInviteRemoved::Write() { _worldPacket << InviteGuid; _worldPacket << uint64(EventID); - _worldPacket << uint32(Flags); + _worldPacket << uint16(Flags); _worldPacket << Bits<1>(ClearPending); _worldPacket.FlushBits(); @@ -367,7 +367,7 @@ WorldPacket const* CalendarInviteRemovedAlert::Write() { _worldPacket << uint64(EventID); _worldPacket << Date; - _worldPacket << uint32(Flags); + _worldPacket << uint16(Flags); _worldPacket << uint8(Status); return &_worldPacket; @@ -472,7 +472,7 @@ WorldPacket const* CalendarInviteStatusAlert::Write() { _worldPacket << uint64(EventID); _worldPacket << Date; - _worldPacket << uint32(Flags); + _worldPacket << uint16(Flags); _worldPacket << uint8(Status); return &_worldPacket; diff --git a/src/server/game/Server/Packets/CalendarPackets.h b/src/server/game/Server/Packets/CalendarPackets.h index f2457e803eb..ba1f63f97b0 100644 --- a/src/server/game/Server/Packets/CalendarPackets.h +++ b/src/server/game/Server/Packets/CalendarPackets.h @@ -293,7 +293,7 @@ namespace WorldPackets WorldPacket const* Write() override; - uint32 Flags = 0; + uint16 Flags = 0; uint64 EventID = 0; uint8 Status = 0; bool ClearPending = false; @@ -311,7 +311,7 @@ namespace WorldPackets ObjectGuid InviteGuid; uint64 EventID = 0; - uint32 Flags = 0; + uint16 Flags = 0; bool ClearPending = false; }; @@ -337,7 +337,7 @@ namespace WorldPackets uint64 EventID = 0; WowTime Date; - uint32 Flags = 0; + uint16 Flags = 0; uint8 Status = 0; }; @@ -543,7 +543,7 @@ namespace WorldPackets WorldPacket const* Write() override; uint64 EventID = 0; - uint32 Flags = 0; + uint16 Flags = 0; WowTime Date; uint8 Status = 0; }; diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index 88a897400aa..dafa4fbe1d6 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -86,11 +86,11 @@ EnumCharactersResult::CharacterInfoBasic::CharacterInfoBasic(Field const* fields // "characters.zone, characters.map, characters.position_x, characters.position_y, characters.position_z, " // 11 12 13 14 15 16 17 // "guild_member.guildid, characters.playerFlags, characters.at_login, character_pet.entry, character_pet.modelid, character_pet.level, characters.equipmentCache, " - // 18 19 20 21 22 - // "character_banned.guid, characters.slot, characters.logout_time, characters.activeTalentGroup, characters.lastLoginBuild, " - // 23 24 25 26 27 + // 18 19 20 21 22 23 + // "character_banned.guid, characters.slot, characters.createTime, characters.logout_time, characters.activeTalentGroup, characters.lastLoginBuild, " + // 24 25 26 27 28 // "characters.personalTabardEmblemStyle, characters.personalTabardEmblemColor, characters.personalTabardBorderStyle, characters.personalTabardBorderColor, characters.personalTabardBackgroundColor " - // 28 + // 29 // "character_declinedname.genitive" Guid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64()); @@ -129,7 +129,7 @@ EnumCharactersResult::CharacterInfoBasic::CharacterInfoBasic(Field const* fields if (fields[18].GetUInt64()) Flags |= CHARACTER_FLAG_LOCKED_BY_BILLING; - if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED) && !fields[28].GetStringView().empty()) + if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED) && !fields[29].GetStringView().empty()) Flags |= CHARACTER_FLAG_DECLINED; if (atLoginFlags & AT_LOGIN_CUSTOMIZE) @@ -172,17 +172,18 @@ EnumCharactersResult::CharacterInfoBasic::CharacterInfoBasic(Field const* fields std::vector<std::string_view> equipment = Trinity::Tokenize(fields[17].GetStringView(), ' ', false); ListPosition = fields[19].GetUInt8(); - LastActiveTime = fields[20].GetInt64(); - if (ChrSpecializationEntry const* spec = sDB2Manager.GetChrSpecializationByIndex(ClassID, fields[21].GetUInt8())) + CreateTime = fields[20].GetInt64(); + LastActiveTime = fields[21].GetInt64(); + if (ChrSpecializationEntry const* spec = sDB2Manager.GetChrSpecializationByIndex(ClassID, fields[22].GetUInt8())) SpecID = spec->ID; - LastLoginVersion = fields[22].GetUInt32(); + LastLoginVersion = fields[23].GetUInt32(); - PersonalTabard.EmblemStyle = fields[23].GetInt32(); - PersonalTabard.EmblemColor = fields[24].GetInt32(); - PersonalTabard.BorderStyle = fields[25].GetInt32(); - PersonalTabard.BorderColor = fields[26].GetInt32(); - PersonalTabard.BackgroundColor = fields[27].GetInt32(); + PersonalTabard.EmblemStyle = fields[24].GetInt32(); + PersonalTabard.EmblemColor = fields[25].GetInt32(); + PersonalTabard.BorderStyle = fields[26].GetInt32(); + PersonalTabard.BorderColor = fields[27].GetInt32(); + PersonalTabard.BackgroundColor = fields[28].GetInt32(); constexpr std::size_t equipmentFieldsPerSlot = 5; @@ -240,6 +241,7 @@ ByteBuffer& operator<<(ByteBuffer& data, EnumCharactersResult::CharacterInfoBasi data << visualItem; data << int32(charInfo.SaveVersion); + data << charInfo.CreateTime; data << charInfo.LastActiveTime; data << int32(charInfo.LastLoginVersion); data << charInfo.PersonalTabard; @@ -467,7 +469,7 @@ void CreateCharacter::Read() WorldPacket const* CreateChar::Write() { - _worldPacket << uint8(Code); + _worldPacket << uint32(Code); _worldPacket << Guid; return &_worldPacket; @@ -480,7 +482,7 @@ void CharDelete::Read() WorldPacket const* DeleteChar::Write() { - _worldPacket << uint8(Code); + _worldPacket << uint32(Code); return &_worldPacket; } @@ -497,7 +499,7 @@ void CharacterRenameRequest::Read() WorldPacket const* CharacterRenameResult::Write() { - _worldPacket << uint8(Result); + _worldPacket << uint32(Result); _worldPacket << OptionalInit(Guid); _worldPacket << SizedString::BitsSize<6>(Name); _worldPacket.FlushBits(); @@ -546,7 +548,7 @@ void CharRaceOrFactionChange::Read() WorldPacket const* CharFactionChangeResult::Write() { - _worldPacket << uint8(Result); + _worldPacket << uint32(Result); _worldPacket << Guid; _worldPacket << OptionalInit(Display); _worldPacket.FlushBits(); @@ -833,7 +835,7 @@ WorldPacket const* CharCustomizeSuccess::Write() WorldPacket const* CharCustomizeFailure::Write() { - _worldPacket << uint8(Result); + _worldPacket << uint32(Result); _worldPacket << CharGUID; return &_worldPacket; diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index 5a78c17d976..ba3092fd655 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -167,6 +167,7 @@ namespace WorldPackets uint32 Flags4 = 0; ///< Character flags 4 @todo research bool FirstLogin = false; uint8 CantLoginReason = 0; + Timestamp<> CreateTime; Timestamp<> LastActiveTime; uint16 SpecID = 0; uint32 SaveVersion = 0; @@ -336,7 +337,7 @@ namespace WorldPackets WorldPacket const* Write() override; - uint8 Code = 0; ///< Result code @see enum ResponseCodes + uint32 Code = 0; ///< Result code @see enum ResponseCodes ObjectGuid Guid; }; @@ -357,7 +358,7 @@ namespace WorldPackets WorldPacket const* Write() override; - uint8 Code = 0; ///< Result code @see enum ResponseCodes + uint32 Code = 0; ///< Result code @see enum ResponseCodes }; class CharacterRenameRequest final : public ClientPacket @@ -382,7 +383,7 @@ namespace WorldPackets WorldPacket const* Write() override; std::string Name; - uint8 Result = 0; + uint32 Result = 0; Optional<ObjectGuid> Guid; }; @@ -445,7 +446,7 @@ namespace WorldPackets WorldPacket const* Write() override; - uint8 Result = 0; ///< @see enum ResponseCodes + uint32 Result = 0; ///< @see enum ResponseCodes ObjectGuid Guid; Optional<CharFactionChangeDisplayInfo> Display; }; @@ -847,7 +848,7 @@ namespace WorldPackets WorldPacket const* Write() override; - uint8 Result = 0; + uint32 Result = 0; ObjectGuid CharGUID; }; diff --git a/src/server/game/Server/Packets/CombatLogPackets.cpp b/src/server/game/Server/Packets/CombatLogPackets.cpp index 8135eb6d5c1..ad2c672891e 100644 --- a/src/server/game/Server/Packets/CombatLogPackets.cpp +++ b/src/server/game/Server/Packets/CombatLogPackets.cpp @@ -52,6 +52,7 @@ WorldPacket const* SpellNonMeleeDamageLog::Write() *this << int32(Absorbed); *this << int32(Resisted); *this << int32(ShieldBlock); + *this << int32(Flags); *this << Size<uint32>(WorldTextViewers); *this << Size<uint32>(Supporters); @@ -59,7 +60,6 @@ WorldPacket const* SpellNonMeleeDamageLog::Write() *this << supportInfo; *this << Bits<1>(Periodic); - *this << Bits<7>(Flags); *this << Bits<1>(false); // Debug info WriteLogDataBit(); *this << OptionalInit(ContentTuning); diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp index e3701a7d09e..881a4db5507 100644 --- a/src/server/game/Server/Packets/GuildPackets.cpp +++ b/src/server/game/Server/Packets/GuildPackets.cpp @@ -89,12 +89,12 @@ ByteBuffer& operator<<(ByteBuffer& data, GuildRosterMemberData const& rosterMemb data << uint8(rosterMemberData.Gender); data << uint64(rosterMemberData.GuildClubMemberID); data << uint8(rosterMemberData.RaceID); + data << int32(rosterMemberData.TimerunningSeasonID); data << SizedString::BitsSize<6>(rosterMemberData.Name); data << SizedString::BitsSize<8>(rosterMemberData.Note); data << SizedString::BitsSize<8>(rosterMemberData.OfficerNote); data << Bits<1>(rosterMemberData.Authenticated); - data << Bits<1>(rosterMemberData.SorEligible); data.FlushBits(); data << rosterMemberData.DungeonScore; @@ -861,7 +861,7 @@ ByteBuffer& operator<<(ByteBuffer& data, GuildNewsEvent const& newsEvent) { data << int32(newsEvent.Id); data << newsEvent.CompletedDate; - data << int32(newsEvent.Type); + data << int8(newsEvent.Type); data << int32(newsEvent.Flags); for (std::size_t i = 0; i < newsEvent.Data.size(); ++i) @@ -870,7 +870,7 @@ ByteBuffer& operator<<(ByteBuffer& data, GuildNewsEvent const& newsEvent) data << newsEvent.MemberGuid; data << Size<uint32>(newsEvent.MemberList); - for (ObjectGuid memberGuid : newsEvent.MemberList) + for (ObjectGuid const& memberGuid : newsEvent.MemberList) data << memberGuid; data << OptionalInit(newsEvent.Item); diff --git a/src/server/game/Server/Packets/GuildPackets.h b/src/server/game/Server/Packets/GuildPackets.h index 566830dfa7c..186a29805e8 100644 --- a/src/server/game/Server/Packets/GuildPackets.h +++ b/src/server/game/Server/Packets/GuildPackets.h @@ -105,18 +105,18 @@ namespace WorldPackets int32 GuildReputation = 0; int32 GuildRepToCap = 0; float LastSave = 0.0f; - std::string Name; + std::string_view Name; uint32 VirtualRealmAddress = 0; - std::string Note; - std::string OfficerNote; + std::string_view Note; + std::string_view OfficerNote; uint8 Status = 0; uint8 Level = 0; uint8 ClassID = 0; uint8 Gender = 0; uint64 GuildClubMemberID = 0; uint8 RaceID = 0; + int32 TimerunningSeasonID = 0; bool Authenticated = false; - bool SorEligible = false; GuildRosterProfessionData Profession[2]; MythicPlus::DungeonScoreSummary DungeonScore; }; @@ -1069,7 +1069,7 @@ namespace WorldPackets { int32 Id = 0; WowTime CompletedDate; - int32 Type = 0; + int8 Type = 0; int32 Flags = 0; std::array<int32, 2> Data = { }; ObjectGuid MemberGuid; diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp index 0dcf8eacb17..26b2b6c2d04 100644 --- a/src/server/game/Server/Packets/ItemPackets.cpp +++ b/src/server/game/Server/Packets/ItemPackets.cpp @@ -107,7 +107,7 @@ void ItemPurchaseRefund::Read() WorldPacket const* ItemPurchaseRefundResult::Write() { _worldPacket << ItemGUID; - _worldPacket << uint8(Result); + _worldPacket << uint32(Result); _worldPacket << OptionalInit(Contents); _worldPacket.FlushBits(); if (Contents) diff --git a/src/server/game/Server/Packets/ItemPackets.h b/src/server/game/Server/Packets/ItemPackets.h index b783d6cc5a9..2375360cea7 100644 --- a/src/server/game/Server/Packets/ItemPackets.h +++ b/src/server/game/Server/Packets/ItemPackets.h @@ -145,7 +145,7 @@ namespace WorldPackets WorldPacket const* Write() override; - uint8 Result = 0; + uint32 Result = 0; ObjectGuid ItemGUID; Optional<ItemPurchaseContents> Contents; }; diff --git a/src/server/game/Server/Packets/LFGPackets.cpp b/src/server/game/Server/Packets/LFGPackets.cpp index b26ae5e1a53..de1a0d3e2ce 100644 --- a/src/server/game/Server/Packets/LFGPackets.cpp +++ b/src/server/game/Server/Packets/LFGPackets.cpp @@ -204,7 +204,7 @@ WorldPacket const* LFGUpdateStatus::Write() { _worldPacket << Ticket; _worldPacket << uint8(SubType); - _worldPacket << uint8(Reason); + _worldPacket << uint32(Reason); _worldPacket << Size<uint32>(Slots); _worldPacket << uint8(RequestedRoles); _worldPacket << Size<uint32>(SuspendedPlayers); diff --git a/src/server/game/Server/Packets/LFGPackets.h b/src/server/game/Server/Packets/LFGPackets.h index 438dcb32a9b..71ae7753269 100644 --- a/src/server/game/Server/Packets/LFGPackets.h +++ b/src/server/game/Server/Packets/LFGPackets.h @@ -224,7 +224,7 @@ namespace WorldPackets RideTicket Ticket; uint8 SubType = 0; - uint8 Reason = 0; + uint32 Reason = 0; std::vector<uint32> Slots; uint8 RequestedRoles = 0; std::vector<ObjectGuid> SuspendedPlayers; diff --git a/src/server/game/Server/Packets/MailPackets.cpp b/src/server/game/Server/Packets/MailPackets.cpp index 4764e9e240a..12ce2572dc0 100644 --- a/src/server/game/Server/Packets/MailPackets.cpp +++ b/src/server/game/Server/Packets/MailPackets.cpp @@ -293,7 +293,7 @@ WorldPacket const* MailQueryNextTimeResult::Write() _worldPacket << entry.SenderGuid; _worldPacket << float(entry.TimeLeft); _worldPacket << int32(entry.AltSenderID); - _worldPacket << int8(entry.AltSenderType); + _worldPacket << int32(entry.AltSenderType); _worldPacket << int32(entry.StationeryID); } diff --git a/src/server/game/Server/Packets/MailPackets.h b/src/server/game/Server/Packets/MailPackets.h index 40ae9cd8224..fd25fcd2311 100644 --- a/src/server/game/Server/Packets/MailPackets.h +++ b/src/server/game/Server/Packets/MailPackets.h @@ -214,7 +214,7 @@ namespace WorldPackets ObjectGuid SenderGuid; float TimeLeft = 0.0f; int32 AltSenderID = 0; - int8 AltSenderType = 0; + int32 AltSenderType = 0; int32 StationeryID = 0; }; diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index 99048b68644..b3a3ea8487d 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -121,6 +121,7 @@ WorldPacket const* SetupCurrency::Write() { _worldPacket << int32(data.Type); _worldPacket << int32(data.Quantity); + _worldPacket << uint8(data.Flags); _worldPacket << OptionalInit(data.WeeklyQuantity); _worldPacket << OptionalInit(data.MaxWeeklyQuantity); @@ -129,7 +130,6 @@ WorldPacket const* SetupCurrency::Write() _worldPacket << OptionalInit(data.TotalEarned); _worldPacket << OptionalInit(data.NextRechargeTime); _worldPacket << OptionalInit(data.RechargeCycleStartTime); - _worldPacket << Bits<5>(data.Flags); _worldPacket.FlushBits(); if (data.WeeklyQuantity) diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp index 629544a68de..07ff6f59274 100644 --- a/src/server/game/Server/Packets/MovementPackets.cpp +++ b/src/server/game/Server/Packets/MovementPackets.cpp @@ -340,27 +340,13 @@ ByteBuffer& operator<<(ByteBuffer& data, MonsterSplineUnknown901 const& unk) ByteBuffer& operator<<(ByteBuffer& data, MovementSpline const& movementSpline) { data << uint32(movementSpline.Flags); + data << uint8(movementSpline.Face); data << int32(movementSpline.Elapsed); data << uint32(movementSpline.MoveTime); data << uint32(movementSpline.FadeObjectTime); data << uint8(movementSpline.Mode); data << movementSpline.TransportGUID; data << int8(movementSpline.VehicleSeat); - data << Bits<2>(movementSpline.Face); - data << BitsSize<16>(movementSpline.Points); - data << Bits<1>(movementSpline.VehicleExitVoluntary); - data << Bits<1>(movementSpline.TaxiSmoothing); - data << BitsSize<16>(movementSpline.PackedDeltas); - data << OptionalInit(movementSpline.SplineFilter); - data << OptionalInit(movementSpline.SpellEffectExtraData); - data << OptionalInit(movementSpline.JumpExtraData); - data << OptionalInit(movementSpline.TurnData); - data << OptionalInit(movementSpline.AnimTierTransition); - data << OptionalInit(movementSpline.Unknown901); - data.FlushBits(); - - if (movementSpline.SplineFilter) - data << *movementSpline.SplineFilter; switch (movementSpline.Face) { @@ -376,6 +362,21 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementSpline const& movementSpline) break; } + data << BitsSize<16>(movementSpline.Points); + data << Bits<1>(movementSpline.VehicleExitVoluntary); + data << Bits<1>(movementSpline.TaxiSmoothing); + data << BitsSize<16>(movementSpline.PackedDeltas); + data << OptionalInit(movementSpline.SplineFilter); + data << OptionalInit(movementSpline.SpellEffectExtraData); + data << OptionalInit(movementSpline.JumpExtraData); + data << OptionalInit(movementSpline.TurnData); + data << OptionalInit(movementSpline.AnimTierTransition); + data << OptionalInit(movementSpline.Unknown901); + data.FlushBits(); + + if (movementSpline.SplineFilter) + data << *movementSpline.SplineFilter; + for (TaggedPosition<Position::XYZ> const& pos : movementSpline.Points) data << pos; diff --git a/src/server/game/Server/Packets/NPCPackets.cpp b/src/server/game/Server/Packets/NPCPackets.cpp index b05a44c5864..643048900b6 100644 --- a/src/server/game/Server/Packets/NPCPackets.cpp +++ b/src/server/game/Server/Packets/NPCPackets.cpp @@ -42,8 +42,8 @@ ByteBuffer& operator<<(ByteBuffer& data, TreasureLootList const& treasureLootLis ByteBuffer& operator<<(ByteBuffer& data, ClientGossipOptions const& gossipOption) { data << int32(gossipOption.GossipOptionID); + data << int32(gossipOption.OptionFlags); data << uint8(gossipOption.OptionNPC); - data << int8(gossipOption.OptionFlags); data << uint64(gossipOption.OptionCost); data << uint32(gossipOption.OptionLanguage); data << int32(gossipOption.Flags); @@ -167,7 +167,7 @@ WorldPacket const* VendorInventory::Write() WorldPacket const* TrainerList::Write() { _worldPacket << TrainerGUID; - _worldPacket << uint32(TrainerType); + _worldPacket << int8(TrainerType); _worldPacket << uint32(TrainerID); _worldPacket << Size<uint32>(Spells); diff --git a/src/server/game/Server/Packets/NPCPackets.h b/src/server/game/Server/Packets/NPCPackets.h index 9209613338b..ae2e8d9d440 100644 --- a/src/server/game/Server/Packets/NPCPackets.h +++ b/src/server/game/Server/Packets/NPCPackets.h @@ -79,7 +79,7 @@ namespace WorldPackets { int32 GossipOptionID = 0; GossipOptionNpc OptionNPC = {}; - uint8 OptionFlags = 0; + int32 OptionFlags = 0; uint64 OptionCost = 0; uint32 OptionLanguage = 0; GossipOptionFlags Flags = {}; @@ -90,7 +90,7 @@ namespace WorldPackets TreasureLootList Treasure; Optional<int32> SpellID; Optional<int32> OverrideIconID; - std::string FailureDescription; + std::string_view FailureDescription; }; struct ClientGossipText @@ -103,7 +103,7 @@ namespace WorldPackets bool ResetByScheduler = false; bool Important = false; bool Meta = false; - std::string QuestTitle; + std::string_view QuestTitle; std::array<int32, 4> QuestFlags = { }; }; @@ -207,7 +207,7 @@ namespace WorldPackets WorldPacket const* Write() override; ObjectGuid TrainerGUID; - int32 TrainerType = 0; + int8 TrainerType = 0; int32 TrainerID = 1; std::vector<TrainerListSpell> Spells; std::string Greeting; @@ -226,7 +226,7 @@ namespace WorldPackets int32 Icon = 0; int32 Importance = 0; int32 WMOGroupID = 0; - std::string Name; + std::string_view Name; }; class SpiritHealerActivate final : public ClientPacket diff --git a/src/server/game/Server/Packets/PartyPackets.cpp b/src/server/game/Server/Packets/PartyPackets.cpp index 1c329d41239..42893d3e350 100644 --- a/src/server/game/Server/Packets/PartyPackets.cpp +++ b/src/server/game/Server/Packets/PartyPackets.cpp @@ -213,7 +213,7 @@ ByteBuffer& operator<<(ByteBuffer& data, PartyMemberStats const& memberStats) for (uint32 i = 0; i < 2; i++) data << uint8(memberStats.PartyType[i]); - data << uint16(memberStats.Status); + data << uint32(memberStats.Status); data << uint8(memberStats.PowerType); data << uint16(memberStats.PowerDisplayID); data << int32(memberStats.CurrentHealth); @@ -503,6 +503,7 @@ ByteBuffer& operator<<(ByteBuffer& data, ChallengeModeData const& challengeMode) data << int64(challengeMode.Unknown_1120_4); data << challengeMode.KeystoneOwnerGUID; data << challengeMode.LeaverGUID; + data << challengeMode.InstanceAbandonVoteCooldown; data << Bits<1>(challengeMode.IsActive); data << Bits<1>(challengeMode.HasRestrictions); data << Bits<1>(challengeMode.CanVoteAbandon); diff --git a/src/server/game/Server/Packets/PartyPackets.h b/src/server/game/Server/Packets/PartyPackets.h index 5b8e4c2ca1e..2e005b7832a 100644 --- a/src/server/game/Server/Packets/PartyPackets.h +++ b/src/server/game/Server/Packets/PartyPackets.h @@ -193,7 +193,7 @@ namespace WorldPackets struct PartyMemberStats { uint16 Level = 0; - uint16 Status = 0; + uint32 Status = 0; int32 CurrentHealth = 0; int32 MaxHealth = 0; @@ -574,6 +574,7 @@ namespace WorldPackets int64 Unknown_1120_4 = 0; ObjectGuid KeystoneOwnerGUID; ObjectGuid LeaverGUID; + Duration<Milliseconds> InstanceAbandonVoteCooldown; bool IsActive = false; bool HasRestrictions = false; bool CanVoteAbandon = false; diff --git a/src/server/game/Server/Packets/PetPackets.cpp b/src/server/game/Server/Packets/PetPackets.cpp index 9aede562bdc..774c340d3d9 100644 --- a/src/server/game/Server/Packets/PetPackets.cpp +++ b/src/server/game/Server/Packets/PetPackets.cpp @@ -84,7 +84,7 @@ WorldPacket const* PetUnlearnedSpells::Write() WorldPacket const* PetNameInvalid::Write() { - _worldPacket << uint8(Result); + _worldPacket << uint32(Result); _worldPacket << RenameData.PetGUID; _worldPacket << int32(RenameData.PetNumber); @@ -189,8 +189,8 @@ WorldPacket const* SetPetSpecialization::Write() WorldPacket const* PetActionFeedback::Write() { + _worldPacket << int32(Response); _worldPacket << int32(SpellID); - _worldPacket << uint8(Response); return &_worldPacket; } @@ -205,7 +205,7 @@ WorldPacket const* PetActionSound::Write() WorldPacket const* PetTameFailure::Write() { - _worldPacket << uint8(Result); + _worldPacket << uint32(Result); return &_worldPacket; } diff --git a/src/server/game/Server/Packets/PetPackets.h b/src/server/game/Server/Packets/PetPackets.h index 9e60860039c..f59f111fb30 100644 --- a/src/server/game/Server/Packets/PetPackets.h +++ b/src/server/game/Server/Packets/PetPackets.h @@ -176,7 +176,7 @@ namespace WorldPackets PetRenameData RenameData; - uint8 Result = 0; + uint32 Result = 0; }; class PetRename final : public ClientPacket @@ -243,8 +243,8 @@ namespace WorldPackets WorldPacket const* Write() override; - int32 SpellID = 0; ::PetActionFeedback Response = ::PetActionFeedback::None; + int32 SpellID = 0; }; class PetActionSound final : public ServerPacket @@ -265,7 +265,7 @@ namespace WorldPackets WorldPacket const* Write() override; - uint8 Result = 0; + uint32 Result = 0; }; class PetMode final : public ServerPacket diff --git a/src/server/game/Server/Packets/PetitionPackets.cpp b/src/server/game/Server/Packets/PetitionPackets.cpp index 59f9596828f..442718b21ab 100644 --- a/src/server/game/Server/Packets/PetitionPackets.cpp +++ b/src/server/game/Server/Packets/PetitionPackets.cpp @@ -41,7 +41,7 @@ ByteBuffer& operator<<(ByteBuffer& data, PetitionInfo const& petitionInfo) data << int32(petitionInfo.AllowedMinLevel); data << int32(petitionInfo.AllowedMaxLevel); data << int32(petitionInfo.NumChoices); - data << int32(petitionInfo.StaticType); + data << int8(petitionInfo.StaticType); data << uint32(petitionInfo.Muid); data << SizedString::BitsSize<8>(petitionInfo.Title); diff --git a/src/server/game/Server/Packets/PetitionPackets.h b/src/server/game/Server/Packets/PetitionPackets.h index fc8b59e4e23..fb468c17593 100644 --- a/src/server/game/Server/Packets/PetitionPackets.h +++ b/src/server/game/Server/Packets/PetitionPackets.h @@ -53,7 +53,7 @@ namespace WorldPackets int32 AllowedMinLevel = 0; int32 AllowedMaxLevel = 0; int32 NumChoices = 0; - int32 StaticType = 0; + int8 StaticType = 0; uint32 Muid = 0; std::array<std::string, 10> Choicetext; }; diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp index bef3ef35892..31e8ddb84ea 100644 --- a/src/server/game/Server/Packets/QuestPackets.cpp +++ b/src/server/game/Server/Packets/QuestPackets.cpp @@ -247,7 +247,7 @@ WorldPacket const* QuestUpdateAddCredit::Write() _worldPacket << int32(ObjectID); _worldPacket << uint16(Count); _worldPacket << uint16(Required); - _worldPacket << uint8(ObjectiveType); + _worldPacket << uint32(ObjectiveType); return &_worldPacket; }; @@ -256,7 +256,7 @@ WorldPacket const* QuestUpdateAddCreditSimple::Write() { _worldPacket << int32(QuestID); _worldPacket << int32(ObjectID); - _worldPacket << uint8(ObjectiveType); + _worldPacket << uint32(ObjectiveType); return &_worldPacket; } @@ -642,7 +642,7 @@ void QuestConfirmAccept::Read() WorldPacket const* QuestPushResultResponse::Write() { _worldPacket << SenderGUID; - _worldPacket << uint8(Result); + _worldPacket << uint32(Result); _worldPacket << SizedString::BitsSize<9>(QuestTitle); _worldPacket.FlushBits(); diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h index 7c14b336127..1e29c381409 100644 --- a/src/server/game/Server/Packets/QuestPackets.h +++ b/src/server/game/Server/Packets/QuestPackets.h @@ -225,7 +225,7 @@ namespace WorldPackets int32 QuestID = 0; uint16 Count = 0; uint16 Required = 0; - uint8 ObjectiveType = 0; + uint32 ObjectiveType = 0; }; class QuestUpdateAddCreditSimple final : public ServerPacket @@ -237,7 +237,7 @@ namespace WorldPackets int32 QuestID = 0; int32 ObjectID = 0; - uint8 ObjectiveType = 0; + uint32 ObjectiveType = 0; }; class QuestUpdateAddPvPCredit final : public ServerPacket @@ -585,8 +585,8 @@ namespace WorldPackets WorldPacket const* Write() override; ObjectGuid SenderGUID; - uint8 Result = 0; - std::string QuestTitle; + uint32 Result = 0; + std::string_view QuestTitle; }; class QuestLogFull final : public ServerPacket @@ -606,7 +606,7 @@ namespace WorldPackets ObjectGuid SenderGUID; uint32 QuestID = 0; - uint8 Result = 0; + uint32 Result = 0; }; class QuestGiverInvalidQuest final : public ServerPacket diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp index 4401695814e..20cbed5bf91 100644 --- a/src/server/game/Server/Packets/SpellPackets.cpp +++ b/src/server/game/Server/Packets/SpellPackets.cpp @@ -97,6 +97,7 @@ ByteBuffer& operator<<(ByteBuffer& data, AuraDataInfo const& auraData) data << int32(auraData.ContentTuningID); data << auraData.DstLocation; data << OptionalInit(auraData.CastUnit); + data << OptionalInit(auraData.CastItem); data << OptionalInit(auraData.Duration); data << OptionalInit(auraData.Remaining); data << OptionalInit(auraData.TimeMod); @@ -110,6 +111,9 @@ ByteBuffer& operator<<(ByteBuffer& data, AuraDataInfo const& auraData) if (auraData.CastUnit) data << *auraData.CastUnit; + if (auraData.CastItem) + data << *auraData.CastItem; + if (auraData.Duration) data << uint32(*auraData.Duration); @@ -162,18 +166,16 @@ ByteBuffer& operator>>(ByteBuffer& buffer, TargetLocation& location) ByteBuffer& operator>>(ByteBuffer& buffer, SpellTargetData& targetData) { - buffer.ResetBitPos(); + buffer >> targetData.Flags; + buffer >> targetData.Unit; + buffer >> targetData.Item; - buffer >> Bits<28>(targetData.Flags); buffer >> OptionalInit(targetData.SrcLocation); buffer >> OptionalInit(targetData.DstLocation); buffer >> OptionalInit(targetData.Orientation); buffer >> OptionalInit(targetData.MapID); buffer >> SizedString::BitsSize<7>(targetData.Name); - buffer >> targetData.Unit; - buffer >> targetData.Item; - if (targetData.SrcLocation) buffer >> *targetData.SrcLocation; @@ -222,6 +224,7 @@ ByteBuffer& operator>>(ByteBuffer& data, SpellExtraCurrencyCost& extraCurrencyCo ByteBuffer& operator>>(ByteBuffer& buffer, SpellCastRequest& request) { buffer >> request.CastID; + buffer >> request.SendCastFlags; buffer >> request.Misc[0]; buffer >> request.Misc[1]; buffer >> request.SpellID; @@ -236,18 +239,19 @@ ByteBuffer& operator>>(ByteBuffer& buffer, SpellCastRequest& request) for (SpellExtraCurrencyCost& optionalCurrency : request.OptionalCurrencies) buffer >> optionalCurrency; - buffer >> Bits<6>(request.SendCastFlags); + buffer >> request.Target; + + buffer.ResetBitPos(); buffer >> OptionalInit(request.MoveUpdate); buffer >> BitsSize<2>(request.Weight); buffer >> OptionalInit(request.CraftingOrderID); - buffer >> request.Target; - - if (request.CraftingOrderID) - buffer >> *request.CraftingOrderID; for (SpellCraftingReagent& optionalReagent : request.OptionalReagents) buffer >> optionalReagent; + if (request.CraftingOrderID) + buffer >> *request.CraftingOrderID; + for (SpellCraftingReagent& optionalReagent : request.RemovedModifications) buffer >> optionalReagent; @@ -302,7 +306,10 @@ ByteBuffer& operator<<(ByteBuffer& data, TargetLocation const& targetLocation) ByteBuffer& operator<<(ByteBuffer& data, SpellTargetData const& spellTargetData) { - data << Bits<28>(spellTargetData.Flags); + data << uint32(spellTargetData.Flags); + data << spellTargetData.Unit; + data << spellTargetData.Item; + data << OptionalInit(spellTargetData.SrcLocation); data << OptionalInit(spellTargetData.DstLocation); data << OptionalInit(spellTargetData.Orientation); @@ -310,9 +317,6 @@ ByteBuffer& operator<<(ByteBuffer& data, SpellTargetData const& spellTargetData) data << SizedString::BitsSize<7>(spellTargetData.Name); data.FlushBits(); - data << spellTargetData.Unit; - data << spellTargetData.Item; - if (spellTargetData.SrcLocation) data << *spellTargetData.SrcLocation; @@ -382,7 +386,7 @@ ByteBuffer& operator<<(ByteBuffer& data, CreatureImmunities const& immunities) ByteBuffer& operator<<(ByteBuffer& data, SpellHealPrediction const& spellPred) { data << int32(spellPred.Points); - data << uint8(spellPred.Type); + data << uint32(spellPred.Type); data << spellPred.BeaconGUID; return data; @@ -805,9 +809,9 @@ WorldPacket const* PlaySpellVisual::Write() _worldPacket << TargetPosition; _worldPacket << uint32(SpellVisualID); _worldPacket << float(TravelSpeed); - _worldPacket << uint16(HitReason); - _worldPacket << uint16(MissReason); - _worldPacket << uint16(ReflectStatus); + _worldPacket << uint8(HitReason); + _worldPacket << uint8(MissReason); + _worldPacket << uint8(ReflectStatus); _worldPacket << float(LaunchDelay); _worldPacket << float(MinDuration); _worldPacket << Bits<1>(SpeedAsTime); diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h index 25576be7588..a4b30b3d2d4 100644 --- a/src/server/game/Server/Packets/SpellPackets.h +++ b/src/server/game/Server/Packets/SpellPackets.h @@ -167,6 +167,7 @@ namespace WorldPackets int32 ContentTuningID = 0; Optional<ContentTuningParams> ContentTuning; Optional<ObjectGuid> CastUnit; + Optional<ObjectGuid> CastItem; Optional<int32> Duration; Optional<int32> Remaining; Optional<float> TimeMod; @@ -348,7 +349,7 @@ namespace WorldPackets { ObjectGuid BeaconGUID; uint32 Points = 0; - uint8 Type = 0; + uint32 Type = 0; }; struct SpellCastData @@ -765,9 +766,9 @@ namespace WorldPackets TaggedPosition<Position::XYZ> TargetPosition; // Overrides missile destination for SpellVisual::SpellVisualMissileSetID uint32 SpellVisualID = 0; float TravelSpeed = 0.0f; - uint16 HitReason = 0; - uint16 MissReason = 0; - uint16 ReflectStatus = 0; + uint8 HitReason = 0; + uint8 MissReason = 0; + uint8 ReflectStatus = 0; float LaunchDelay = 0.0f; float MinDuration = 0.0f; bool SpeedAsTime = false; diff --git a/src/server/game/Server/Packets/SystemPackets.cpp b/src/server/game/Server/Packets/SystemPackets.cpp index ee5c38e7b2f..804a3b7229a 100644 --- a/src/server/game/Server/Packets/SystemPackets.cpp +++ b/src/server/game/Server/Packets/SystemPackets.cpp @@ -144,6 +144,10 @@ WorldPacket const* FeatureSystemStatus::Write() _worldPacket << int32(AddonChatThrottle.MaxTries); _worldPacket << int32(AddonChatThrottle.TriesRestoredPerSecond); _worldPacket << int32(AddonChatThrottle.UsedTriesPerMessage); + _worldPacket << int32(GuildChatThrottle.UsedTriesPerMessage); + _worldPacket << int32(GuildChatThrottle.TriesRestoredPerSecond); + _worldPacket << int32(GroupChatThrottle.UsedTriesPerMessage); + _worldPacket << int32(GroupChatThrottle.TriesRestoredPerSecond); _worldPacket << float(AddonPerformanceMsgWarning); _worldPacket << float(AddonPerformanceMsgError); @@ -291,6 +295,8 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() _worldPacket << Size<uint32>(GameRules); _worldPacket << int32(ActiveTimerunningSeasonID); _worldPacket << int32(RemainingTimerunningSeasonSeconds); + _worldPacket << TimerunningConversionMinCharacterAge; + _worldPacket << int32(TimerunningConversionMaxSeasonID); _worldPacket << int16(MaxPlayerGuidLookupsPerRequest); _worldPacket << int16(NameLookupTelemetryInterval); _worldPacket << NotFoundCacheTimeSeconds; @@ -315,6 +321,28 @@ WorldPacket const* FeatureSystemStatusGlueScreen::Write() return &_worldPacket; } +ByteBuffer& operator<<(ByteBuffer& data, MirrorVarSingle const& variable) +{ + data << Bits<1>(variable.UpdateType); + data << SizedCString::BitsSize<24>(variable.Name); + data << SizedCString::BitsSize<24>(variable.Value); + data.FlushBits(); + + data << SizedCString::Data(variable.Name); + data << SizedCString::Data(variable.Value); + + return data; +} + +WorldPacket const* MirrorVars::Write() +{ + _worldPacket << Size<uint32>(Variables); + for (MirrorVarSingle const& variable : Variables) + _worldPacket << variable; + + return &_worldPacket; +} + WorldPacket const* SetTimeZoneInformation::Write() { _worldPacket << SizedString::BitsSize<7>(ServerTimeTZ); diff --git a/src/server/game/Server/Packets/SystemPackets.h b/src/server/game/Server/Packets/SystemPackets.h index b74adbc0fca..ff723b7412e 100644 --- a/src/server/game/Server/Packets/SystemPackets.h +++ b/src/server/game/Server/Packets/SystemPackets.h @@ -107,7 +107,7 @@ namespace WorldPackets uint32 RewardsVersion = 0; }; - struct AddonChatThrottleParams + struct ChatThrottleParams { int32 MaxTries = 0; int32 TriesRestoredPerSecond = 0; @@ -186,7 +186,9 @@ namespace WorldPackets int32 ActiveTimerunningSeasonID = 0; int32 RemainingTimerunningSeasonSeconds = 0; std::string Unknown1027; // related to movement lua functions used by keybinds - AddonChatThrottleParams AddonChatThrottle; + ChatThrottleParams AddonChatThrottle; + ChatThrottleParams GuildChatThrottle; + ChatThrottleParams GroupChatThrottle; uint32 RealmPvpTypeOverride = 0; ///< Use Cfg_Configs value = 0, ForceEnabled = 1, ForceDisabled = 2 float AddonPerformanceMsgWarning = 0.0f; float AddonPerformanceMsgError = 0.0f; @@ -250,6 +252,8 @@ namespace WorldPackets std::vector<GameRuleValuePair> GameRules; int32 ActiveTimerunningSeasonID = 0; int32 RemainingTimerunningSeasonSeconds = 0; + Duration<Seconds, int32> TimerunningConversionMinCharacterAge { 1_days }; + int32 TimerunningConversionMaxSeasonID = -1; int16 MaxPlayerGuidLookupsPerRequest = 50; int16 NameLookupTelemetryInterval = 600; Duration<Seconds, uint32> NotFoundCacheTimeSeconds = 10s; @@ -260,6 +264,26 @@ namespace WorldPackets std::string RealmHiddenAlert; }; + struct MirrorVarSingle + { + std::string_view Name; + std::string Value; + int32 UpdateType; + + MirrorVarSingle(std::string_view name, std::string_view value, int32 updateType = 0) + : Name(name), Value(value), UpdateType(updateType) { } + }; + + class MirrorVars final : public ServerPacket + { + public: + explicit MirrorVars() : ServerPacket(SMSG_MIRROR_VARS) { } + + WorldPacket const* Write() override; + + std::span<MirrorVarSingle> Variables; + }; + class SetTimeZoneInformation final : public ServerPacket { public: diff --git a/src/server/game/Server/Packets/TalentPackets.cpp b/src/server/game/Server/Packets/TalentPackets.cpp index 63487076b02..1a9d373bf8b 100644 --- a/src/server/game/Server/Packets/TalentPackets.cpp +++ b/src/server/game/Server/Packets/TalentPackets.cpp @@ -61,6 +61,9 @@ ByteBuffer& operator<<(ByteBuffer& data, ClassicTalentGroupInfo const& talentGro if (!talentGroupInfo.GlyphIDs.empty()) data.append(talentGroupInfo.GlyphIDs.data(), talentGroupInfo.GlyphIDs.size()); + data.WriteBit(talentGroupInfo.Unused1125); + data.FlushBits(); + return data; } diff --git a/src/server/game/Server/Packets/TalentPackets.h b/src/server/game/Server/Packets/TalentPackets.h index 5b9566e83c2..a61e804c598 100644 --- a/src/server/game/Server/Packets/TalentPackets.h +++ b/src/server/game/Server/Packets/TalentPackets.h @@ -62,6 +62,7 @@ namespace WorldPackets std::vector<uint16> GlyphIDs; int8 Role = 0; int32 PrimarySpecialization = 0; + bool Unused1125 = false; }; struct ClassicTalentInfoUpdate diff --git a/src/server/game/Server/Packets/TokenPackets.cpp b/src/server/game/Server/Packets/TokenPackets.cpp index 374c6e0548e..db0b35c9ea6 100644 --- a/src/server/game/Server/Packets/TokenPackets.cpp +++ b/src/server/game/Server/Packets/TokenPackets.cpp @@ -34,8 +34,8 @@ WorldPacket const* CommerceTokenGetLogResponse::Write() { _worldPacket << auctionableTokenAuctionable.Id; _worldPacket << auctionableTokenAuctionable.LastUpdate; - _worldPacket << auctionableTokenAuctionable.Price; _worldPacket << auctionableTokenAuctionable.Status; + _worldPacket << auctionableTokenAuctionable.Price; _worldPacket << auctionableTokenAuctionable.DurationLeft; } @@ -49,9 +49,9 @@ void CommerceTokenGetMarketPrice::Read() WorldPacket const* CommerceTokenGetMarketPriceResponse::Write() { - _worldPacket << PriceGuarantee; _worldPacket << ClientToken; _worldPacket << ServerToken; + _worldPacket << PriceGuarantee; _worldPacket << PriceLockDurationSeconds; return &_worldPacket; diff --git a/src/server/game/Server/Packets/TokenPackets.h b/src/server/game/Server/Packets/TokenPackets.h index a31e4390094..d6844d37bb2 100644 --- a/src/server/game/Server/Packets/TokenPackets.h +++ b/src/server/game/Server/Packets/TokenPackets.h @@ -73,9 +73,9 @@ namespace WorldPackets WorldPacket const* Write() override; - uint64 PriceGuarantee = 0; uint32 ClientToken = 0; uint32 ServerToken = 0; + uint64 PriceGuarantee = 0; uint32 PriceLockDurationSeconds = 0; // preset auction duration enum }; } diff --git a/src/server/game/Server/Packets/TraitPacketsCommon.cpp b/src/server/game/Server/Packets/TraitPacketsCommon.cpp index 692ed9cb330..66e3037661b 100644 --- a/src/server/game/Server/Packets/TraitPacketsCommon.cpp +++ b/src/server/game/Server/Packets/TraitPacketsCommon.cpp @@ -30,6 +30,7 @@ TraitEntry::TraitEntry(UF::TraitEntry const& ufEntry) TraitNodeEntryID = ufEntry.TraitNodeEntryID; Rank = ufEntry.Rank; GrantedRanks = ufEntry.GrantedRanks; + BonusRanks = ufEntry.BonusRanks; } TraitSubTreeCache::TraitSubTreeCache() = default; @@ -53,6 +54,7 @@ TraitConfig::TraitConfig(UF::TraitConfig const& ufConfig) LocalIdentifier = ufConfig.LocalIdentifier; SkillLineID = ufConfig.SkillLineID; TraitSystemID = ufConfig.TraitSystemID; + VariationID = ufConfig.VariationID; for (UF::TraitEntry const& ufEntry : ufConfig.Entries) Entries.emplace_back(ufEntry); for (UF::TraitSubTreeCache const& ufSubTree : ufConfig.SubTrees) @@ -140,6 +142,7 @@ ByteBuffer& operator>>(ByteBuffer& data, TraitConfig& traitConfig) break; case TraitConfigType::Generic: data >> traitConfig.TraitSystemID; + data >> traitConfig.VariationID; break; default: break; @@ -176,6 +179,7 @@ ByteBuffer& operator<<(ByteBuffer& data, TraitConfig const& traitConfig) break; case TraitConfigType::Generic: data << int32(traitConfig.TraitSystemID); + data << int32(traitConfig.VariationID); break; default: break; diff --git a/src/server/game/Server/Packets/TraitPacketsCommon.h b/src/server/game/Server/Packets/TraitPacketsCommon.h index 94b88e29746..4b97dd8d10e 100644 --- a/src/server/game/Server/Packets/TraitPacketsCommon.h +++ b/src/server/game/Server/Packets/TraitPacketsCommon.h @@ -66,6 +66,7 @@ struct TraitConfig int32 LocalIdentifier = 0; // Local to specialization int32 SkillLineID = 0; int32 TraitSystemID = 0; + int32 VariationID = 0; std::vector<TraitEntry> Entries; std::vector<TraitSubTreeCache> SubTrees; String<259> Name; diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 23add3e1448..ba343184245 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -402,6 +402,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_CONVERSATION_LINE_STARTED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleConversationLineStarted); DEFINE_HANDLER(CMSG_CONVERT_ITEM_TO_BIND_TO_ACCOUNT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CONVERT_RAID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleConvertRaidOpcode); + DEFINE_HANDLER(CMSG_CONVERT_TIMERUNNING_CHARACTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_COVENANT_RENOWN_REQUEST_CATCHUP_STATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CRAFTING_ORDER_CANCEL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CRAFTING_ORDER_CLAIM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); @@ -822,6 +823,8 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_RANDOM_ROLL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomRollOpcode); DEFINE_HANDLER(CMSG_READY_CHECK_RESPONSE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleReadyCheckResponseOpcode); DEFINE_HANDLER(CMSG_READ_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleReadItem); + DEFINE_HANDLER(CMSG_RECENT_ALLY_REQUEST_DATA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_RECENT_ALLY_SET_NOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_RECLAIM_CORPSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReclaimCorpse); DEFINE_HANDLER(CMSG_REMOVE_NEW_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRemoveNewItem); DEFINE_HANDLER(CMSG_REMOVE_RAF_RECRUIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); @@ -860,6 +863,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_REQUEST_SCHEDULED_PVP_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_STABLED_PETS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestStabledPets); DEFINE_HANDLER(CMSG_REQUEST_STORE_FRONT_INFO_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_REQUEST_SURVEY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_EXIT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestVehicleExit); DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_NEXT_SEAT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestVehicleNextSeat); DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_PREV_SEAT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestVehiclePrevSeat); @@ -898,6 +902,7 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_SET_ACTION_BUTTON, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActionButtonOpcode); DEFINE_HANDLER(CMSG_SET_ACTIVE_MOVER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActiveMoverOpcode); DEFINE_HANDLER(CMSG_SET_ADVANCED_COMBAT_LOGGING, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetAdvancedCombatLogging); + DEFINE_HANDLER(CMSG_SET_ALLOW_RECENT_ALLIES_SEE_LOCATION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SET_ASSISTANT_LEADER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetAssistantLeaderOpcode); DEFINE_HANDLER(CMSG_SET_BACKPACK_AUTOSORT_DISABLED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetBackpackAutosortDisabled); DEFINE_HANDLER(CMSG_SET_BACKPACK_SELL_JUNK_DISABLED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetBackpackSellJunkDisabled); @@ -1229,6 +1234,9 @@ void OpcodeTable::InitializeServerOpcodes() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAPTURE_POINT_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAST_FAILED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAS_REFRESH_REMOTE_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CATALOG_SHOP_LICENSE_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CATALOG_SHOP_OBTAIN_LICENSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CATALOG_SHOP_OPEN_CHECKOUT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAUTIONARY_CHANNEL_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAUTIONARY_CHAT_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAIN_MISSILE_BOUNCE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1705,7 +1713,7 @@ void OpcodeTable::InitializeServerOpcodes() DEFINE_SERVER_OPCODE_HANDLER(SMSG_MINIMAP_PING, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_IMAGE_COMPONENTED_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_IMAGE_CREATURE_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_VARS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_VARS, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MISSILE_CANCEL, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MODIFY_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOUNT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); @@ -2012,6 +2020,8 @@ void OpcodeTable::InitializeServerOpcodes() DEFINE_SERVER_OPCODE_HANDLER(SMSG_REATTACH_RESURRECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECEIVE_PING_UNIT, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECEIVE_PING_WORLD_POINT, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECENT_ALLY_DATA_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECENT_ALLY_NOTE_UPDATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECRAFT_ITEM_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RECRUIT_A_FRIEND_FAILURE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_REFRESH_COMPONENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -2169,6 +2179,7 @@ void OpcodeTable::InitializeServerOpcodes() DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUMMON_REQUEST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUPERCEDED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SURVEY_DELIVERED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUSPEND_COMMS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SUSPEND_TOKEN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SYNC_WOW_ENTITLEMENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 65ea46c0c86..a4da8df05f8 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -36,38 +36,38 @@ constexpr uint32 UNKNOWN_OPCODE = 0xBADD; // special marker value for uninitia enum OpcodeClient : uint32 { - CMSG_ABANDON_NPE_RESPONSE = 0x2F0299, + CMSG_ABANDON_NPE_RESPONSE = 0x2F029A, CMSG_ACCEPT_GUILD_INVITE = 0x340029, - CMSG_ACCEPT_RETURNING_PLAYER_PROMPT = 0x2F025A, - CMSG_ACCEPT_SOCIAL_CONTRACT = 0x340174, + CMSG_ACCEPT_RETURNING_PLAYER_PROMPT = 0x2F025B, + CMSG_ACCEPT_SOCIAL_CONTRACT = 0x340176, CMSG_ACCEPT_TRADE = 0x2F0004, CMSG_ACCEPT_WARGAME_INVITE = 0x34000C, - CMSG_ACCOUNT_BANK_DEPOSIT_MONEY = 0x2F02DC, - CMSG_ACCOUNT_BANK_WITHDRAW_MONEY = 0x2F02DD, - CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED = 0x340160, + CMSG_ACCOUNT_BANK_DEPOSIT_MONEY = 0x2F02DD, + CMSG_ACCOUNT_BANK_WITHDRAW_MONEY = 0x2F02DE, + CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED = 0x340162, CMSG_ACCOUNT_STORE_BEGIN_PURCHASE_OR_REFUND = 0x3400C0, - CMSG_ACTIVATE_SOULBIND = 0x2F0288, + CMSG_ACTIVATE_SOULBIND = 0x2F0289, CMSG_ACTIVATE_TAXI = 0x30003E, CMSG_ADDON_LIST = 0x340004, - CMSG_ADD_ACCOUNT_COSMETIC = 0x2F0171, + CMSG_ADD_ACCOUNT_COSMETIC = 0x2F0172, CMSG_ADD_BATTLENET_FRIEND = 0x340086, - CMSG_ADD_FRIEND = 0x3400FE, - CMSG_ADD_IGNORE = 0x340102, - CMSG_ADD_TOY = 0x2F0170, - CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x2F00B3, - CMSG_ADVENTURE_JOURNAL_UPDATE_SUGGESTIONS = 0x2F028B, - CMSG_ADVENTURE_MAP_START_QUEST = 0x2F022B, + CMSG_ADD_FRIEND = 0x3400FF, + CMSG_ADD_IGNORE = 0x340103, + CMSG_ADD_TOY = 0x2F0171, + CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x2F00B4, + CMSG_ADVENTURE_JOURNAL_UPDATE_SUGGESTIONS = 0x2F028C, + CMSG_ADVENTURE_MAP_START_QUEST = 0x2F022C, CMSG_ALTER_APPEARANCE = 0x30008D, CMSG_AREA_SPIRIT_HEALER_QUERY = 0x300043, CMSG_AREA_SPIRIT_HEALER_QUEUE = 0x300044, - CMSG_AREA_TRIGGER = 0x2F0086, + CMSG_AREA_TRIGGER = 0x2F0087, CMSG_ARTIFACT_ADD_POWER = 0x2F0056, CMSG_ARTIFACT_SET_APPEARANCE = 0x2F0058, - CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x2F00BF, - CMSG_ATTACK_STOP = 0x2F011D, - CMSG_ATTACK_SWING = 0x2F011C, - CMSG_AUCTIONABLE_TOKEN_SELL = 0x340114, - CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE = 0x340115, + CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x2F00C0, + CMSG_ATTACK_STOP = 0x2F011E, + CMSG_ATTACK_SWING = 0x2F011D, + CMSG_AUCTIONABLE_TOKEN_SELL = 0x340115, + CMSG_AUCTIONABLE_TOKEN_SELL_AT_MARKET_PRICE = 0x340116, CMSG_AUCTION_BROWSE_QUERY = 0x300061, CMSG_AUCTION_CANCEL_COMMODITIES_PURCHASE = 0x300069, CMSG_AUCTION_CONFIRM_COMMODITIES_PURCHASE = 0x300068, @@ -83,46 +83,46 @@ enum OpcodeClient : uint32 CMSG_AUCTION_REPLICATE_ITEMS = 0x30005F, CMSG_AUCTION_SELL_COMMODITY = 0x30006A, CMSG_AUCTION_SELL_ITEM = 0x30005D, - CMSG_AUCTION_SET_FAVORITE_ITEM = 0x340161, + CMSG_AUCTION_SET_FAVORITE_ITEM = 0x340163, CMSG_AUTH_CONTINUED_SESSION = 0x350002, CMSG_AUTH_SESSION = 0x350001, CMSG_AUTOBANK_ITEM = 0x310003, CMSG_AUTOSTORE_BANK_ITEM = 0x310002, - CMSG_AUTO_DEPOSIT_ACCOUNT_BANK = 0x2F02E6, - CMSG_AUTO_DEPOSIT_CHARACTER_BANK = 0x2F02EE, + CMSG_AUTO_DEPOSIT_ACCOUNT_BANK = 0x2F02E7, + CMSG_AUTO_DEPOSIT_CHARACTER_BANK = 0x2F02EF, CMSG_AUTO_EQUIP_ITEM = 0x310004, CMSG_AUTO_EQUIP_ITEM_SLOT = 0x310009, CMSG_AUTO_GUILD_BANK_ITEM = 0x300048, CMSG_AUTO_STORE_BAG_ITEM = 0x310005, CMSG_AUTO_STORE_GUILD_BANK_ITEM = 0x300051, - CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER = 0x2F0256, - CMSG_AZERITE_EMPOWERED_ITEM_VIEWED = 0x2F0237, - CMSG_AZERITE_ESSENCE_ACTIVATE_ESSENCE = 0x2F0258, - CMSG_AZERITE_ESSENCE_UNLOCK_MILESTONE = 0x2F0257, + CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER = 0x2F0257, + CMSG_AZERITE_EMPOWERED_ITEM_VIEWED = 0x2F0238, + CMSG_AZERITE_ESSENCE_ACTIVATE_ESSENCE = 0x2F0259, + CMSG_AZERITE_ESSENCE_UNLOCK_MILESTONE = 0x2F0258, CMSG_BANKER_ACTIVATE = 0x300046, CMSG_BATTLEFIELD_LEAVE = 0x2F001F, CMSG_BATTLEFIELD_LIST = 0x2F002A, CMSG_BATTLEFIELD_PORT = 0x3000C3, - CMSG_BATTLEMASTER_HELLO = 0x2F018F, + CMSG_BATTLEMASTER_HELLO = 0x2F0190, CMSG_BATTLEMASTER_JOIN = 0x3000BA, CMSG_BATTLEMASTER_JOIN_ARENA = 0x3000BB, CMSG_BATTLEMASTER_JOIN_BRAWL = 0x3000C1, CMSG_BATTLEMASTER_JOIN_RATED_BG_BLITZ = 0x3000BD, CMSG_BATTLEMASTER_JOIN_RATED_SOLO_SHUFFLE = 0x3000BC, CMSG_BATTLEMASTER_JOIN_SKIRMISH = 0x3000BE, - CMSG_BATTLENET_CHALLENGE_RESPONSE = 0x340101, - CMSG_BATTLENET_REQUEST = 0x340122, + CMSG_BATTLENET_CHALLENGE_RESPONSE = 0x340102, + CMSG_BATTLENET_REQUEST = 0x340123, CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x3400FB, - CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x34013E, + CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x340140, CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x3400FA, CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x3400F1, - CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS = 0x340164, + CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS = 0x340166, CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x3400E8, CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x3400E9, - CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x340137, - CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x340133, + CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x340139, + CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x340134, CMSG_BATTLE_PAY_START_PURCHASE = 0x3400F9, - CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x340120, + CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x340121, CMSG_BATTLE_PET_CLEAR_FANFARE = 0x290002, CMSG_BATTLE_PET_DELETE_PET = 0x34004F, CMSG_BATTLE_PET_DELETE_PET_CHEAT = 0x340050, @@ -132,20 +132,20 @@ enum OpcodeClient : uint32 CMSG_BATTLE_PET_SET_BATTLE_SLOT = 0x340057, CMSG_BATTLE_PET_SET_FLAGS = 0x34005A, CMSG_BATTLE_PET_SUMMON = 0x340053, - CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY = 0x2F0090, - CMSG_BATTLE_PET_UPDATE_NOTIFY = 0x2F008F, + CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY = 0x2F0091, + CMSG_BATTLE_PET_UPDATE_NOTIFY = 0x2F0090, CMSG_BEGIN_TRADE = 0x2F0001, CMSG_BINDER_ACTIVATE = 0x300045, CMSG_BLACK_MARKET_BID_ON_ITEM = 0x3000CB, CMSG_BLACK_MARKET_OPEN = 0x3000C9, CMSG_BLACK_MARKET_REQUEST_ITEMS = 0x3000CA, - CMSG_BONUS_ROLL = 0x2F0259, + CMSG_BONUS_ROLL = 0x2F025A, CMSG_BUG_REPORT = 0x3400B1, CMSG_BUSY_TRADE = 0x2F0002, CMSG_BUY_ACCOUNT_BANK_TAB = 0x300123, CMSG_BUY_BACK_ITEM = 0x300037, CMSG_BUY_ITEM = 0x300036, - CMSG_CAGE_BATTLE_PET = 0x2F00A3, + CMSG_CAGE_BATTLE_PET = 0x2F00A4, CMSG_CALENDAR_ADD_EVENT = 0x3400A9, CMSG_CALENDAR_COMMUNITY_INVITE = 0x34009D, CMSG_CALENDAR_COMPLAIN = 0x3400A5, @@ -163,23 +163,23 @@ enum OpcodeClient : uint32 CMSG_CALENDAR_UPDATE_EVENT = 0x3400AA, CMSG_CANCEL_AURA = 0x2F005A, CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x30007F, - CMSG_CANCEL_CAST = 0x2F0177, - CMSG_CANCEL_CHANNELLING = 0x2F0138, - CMSG_CANCEL_GROWTH_AURA = 0x2F0140, - CMSG_CANCEL_MASTER_LOOT_ROLL = 0x2F00CC, + CMSG_CANCEL_CAST = 0x2F0178, + CMSG_CANCEL_CHANNELLING = 0x2F0139, + CMSG_CANCEL_GROWTH_AURA = 0x2F0141, + CMSG_CANCEL_MASTER_LOOT_ROLL = 0x2F00CD, CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS = 0x2F0059, - CMSG_CANCEL_MOUNT_AURA = 0x2F0153, + CMSG_CANCEL_MOUNT_AURA = 0x2F0154, CMSG_CANCEL_QUEUED_SPELL = 0x2F002B, CMSG_CANCEL_TEMP_ENCHANTMENT = 0x30008A, CMSG_CANCEL_TRADE = 0x2F0006, CMSG_CAN_DUEL = 0x34008E, - CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE = 0x340132, - CMSG_CAST_SPELL = 0x2F0174, + CMSG_CAN_REDEEM_TOKEN_FOR_BALANCE = 0x340133, + CMSG_CAST_SPELL = 0x2F0175, CMSG_CHALLENGE_MODE_REQUEST_LEADERS = 0x2C0002, - CMSG_CHANGE_BAG_SLOT_FLAG = 0x2F0211, - CMSG_CHANGE_BANK_BAG_SLOT_FLAG = 0x2F0212, - CMSG_CHANGE_MONUMENT_APPEARANCE = 0x2F01F2, - CMSG_CHANGE_REALM_TICKET = 0x340127, + CMSG_CHANGE_BAG_SLOT_FLAG = 0x2F0212, + CMSG_CHANGE_BANK_BAG_SLOT_FLAG = 0x2F0213, + CMSG_CHANGE_MONUMENT_APPEARANCE = 0x2F01F3, + CMSG_CHANGE_REALM_TICKET = 0x340128, CMSG_CHANGE_SUB_GROUP = 0x340078, CMSG_CHARACTER_CHECK_UPGRADE = 0x3400F4, CMSG_CHARACTER_RENAME_REQUEST = 0x3400EF, @@ -232,36 +232,36 @@ enum OpcodeClient : uint32 CMSG_CHAT_SEND_CAUTIONARY_CHAT_MESSAGE = 0x2B0009, CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES = 0x2B0006, CMSG_CHECK_CHARACTER_NAME_AVAILABILITY = 0x340071, - CMSG_CHECK_IS_ADVENTURE_MAP_POI_VALID = 0x2F010E, - CMSG_CHOICE_RESPONSE = 0x2F017C, - CMSG_CHROMIE_TIME_SELECT_EXPANSION = 0x2F0287, - CMSG_CLAIM_WEEKLY_REWARD = 0x2F0264, - CMSG_CLASS_TALENTS_DELETE_CONFIG = 0x2F02C1, - CMSG_CLASS_TALENTS_NOTIFY_EMPTY_CONFIG = 0x2F00C3, - CMSG_CLASS_TALENTS_NOTIFY_VALIDATION_FAILED = 0x2F02C3, - CMSG_CLASS_TALENTS_RENAME_CONFIG = 0x2F02C0, - CMSG_CLASS_TALENTS_REQUEST_NEW_CONFIG = 0x2F02BF, - CMSG_CLASS_TALENTS_SET_STARTER_BUILD_ACTIVE = 0x2F02C4, - CMSG_CLASS_TALENTS_SET_USES_SHARED_ACTION_BARS = 0x2F00C2, + CMSG_CHECK_IS_ADVENTURE_MAP_POI_VALID = 0x2F010F, + CMSG_CHOICE_RESPONSE = 0x2F017D, + CMSG_CHROMIE_TIME_SELECT_EXPANSION = 0x2F0288, + CMSG_CLAIM_WEEKLY_REWARD = 0x2F0265, + CMSG_CLASS_TALENTS_DELETE_CONFIG = 0x2F02C2, + CMSG_CLASS_TALENTS_NOTIFY_EMPTY_CONFIG = 0x2F00C4, + CMSG_CLASS_TALENTS_NOTIFY_VALIDATION_FAILED = 0x2F02C4, + CMSG_CLASS_TALENTS_RENAME_CONFIG = 0x2F02C1, + CMSG_CLASS_TALENTS_REQUEST_NEW_CONFIG = 0x2F02C0, + CMSG_CLASS_TALENTS_SET_STARTER_BUILD_ACTIVE = 0x2F02C5, + CMSG_CLASS_TALENTS_SET_USES_SHARED_ACTION_BARS = 0x2F00C3, CMSG_CLEAR_NEW_APPEARANCE = 0x290005, CMSG_CLEAR_RAID_MARKER = 0x2F0052, CMSG_CLEAR_TRADE_ITEM = 0x2F0008, CMSG_CLIENT_PORT_GRAVEYARD = 0x3000C5, CMSG_CLOSE_INTERACTION = 0x300025, - CMSG_CLOSE_QUEST_CHOICE = 0x2F017D, - CMSG_CLOSE_RUNEFORGE_INTERACTION = 0x2F028F, - CMSG_CLOSE_TRAIT_SYSTEM_INTERACTION = 0x2F02C5, - CMSG_CLUB_FINDER_APPLICATION_RESPONSE = 0x340149, - CMSG_CLUB_FINDER_GET_APPLICANTS_LIST = 0x340147, - CMSG_CLUB_FINDER_POST = 0x340144, - CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA = 0x34014B, - CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST = 0x340145, - CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB = 0x340146, - CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST = 0x34014A, - CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS = 0x34014C, - CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT = 0x340148, - CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST = 0x340167, - CMSG_CLUB_PRESENCE_SUBSCRIBE = 0x340124, + CMSG_CLOSE_QUEST_CHOICE = 0x2F017E, + CMSG_CLOSE_RUNEFORGE_INTERACTION = 0x2F0290, + CMSG_CLOSE_TRAIT_SYSTEM_INTERACTION = 0x2F02C6, + CMSG_CLUB_FINDER_APPLICATION_RESPONSE = 0x34014B, + CMSG_CLUB_FINDER_GET_APPLICANTS_LIST = 0x340149, + CMSG_CLUB_FINDER_POST = 0x340146, + CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA = 0x34014D, + CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST = 0x340147, + CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB = 0x340148, + CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST = 0x34014C, + CMSG_CLUB_FINDER_REQUEST_SUBSCRIBED_CLUB_POSTING_IDS = 0x34014E, + CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT = 0x34014A, + CMSG_CLUB_FINDER_WHISPER_APPLICANT_REQUEST = 0x340169, + CMSG_CLUB_PRESENCE_SUBSCRIBE = 0x340125, CMSG_COLLECTION_ITEM_SET_FAVORITE = 0x34005D, CMSG_COMMENTATOR_ENABLE = 0x34001C, CMSG_COMMENTATOR_ENTER_INSTANCE = 0x340020, @@ -269,31 +269,32 @@ enum OpcodeClient : uint32 CMSG_COMMENTATOR_GET_MAP_INFO = 0x34001D, CMSG_COMMENTATOR_GET_PLAYER_COOLDOWNS = 0x34001F, CMSG_COMMENTATOR_GET_PLAYER_INFO = 0x34001E, - CMSG_COMMENTATOR_SPECTATE = 0x340165, + CMSG_COMMENTATOR_SPECTATE = 0x340167, CMSG_COMMENTATOR_START_WARGAME = 0x34001B, - CMSG_COMMERCE_TOKEN_GET_COUNT = 0x340112, - CMSG_COMMERCE_TOKEN_GET_LOG = 0x34011C, - CMSG_COMMERCE_TOKEN_GET_MARKET_PRICE = 0x340113, + CMSG_COMMERCE_TOKEN_GET_COUNT = 0x340113, + CMSG_COMMERCE_TOKEN_GET_LOG = 0x34011D, + CMSG_COMMERCE_TOKEN_GET_MARKET_PRICE = 0x340114, CMSG_COMPLAINT = 0x340098, CMSG_COMPLETE_CINEMATIC = 0x3000E3, CMSG_COMPLETE_MOVIE = 0x300075, CMSG_CONFIRM_ARTIFACT_RESPEC = 0x2F0057, - CMSG_CONFIRM_PROFESSION_RESPEC = 0x2F00C6, - CMSG_CONFIRM_RESPEC_WIPE = 0x2F00C5, + CMSG_CONFIRM_PROFESSION_RESPEC = 0x2F00C7, + CMSG_CONFIRM_RESPEC_WIPE = 0x2F00C6, CMSG_CONNECT_TO_FAILED = 0x340000, - CMSG_CONSUMABLE_TOKEN_BUY = 0x340117, - CMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE = 0x340118, - CMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY = 0x340116, - CMSG_CONSUMABLE_TOKEN_REDEEM = 0x34011A, - CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION = 0x34011B, - CMSG_CONTENT_TRACKING_START_TRACKING = 0x2F02D5, - CMSG_CONTENT_TRACKING_STOP_TRACKING = 0x2F02D6, + CMSG_CONSUMABLE_TOKEN_BUY = 0x340118, + CMSG_CONSUMABLE_TOKEN_BUY_AT_MARKET_PRICE = 0x340119, + CMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY = 0x340117, + CMSG_CONSUMABLE_TOKEN_REDEEM = 0x34011B, + CMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRMATION = 0x34011C, + CMSG_CONTENT_TRACKING_START_TRACKING = 0x2F02D6, + CMSG_CONTENT_TRACKING_STOP_TRACKING = 0x2F02D7, CMSG_CONTRIBUTION_CONTRIBUTE = 0x3000FB, CMSG_CONTRIBUTION_LAST_UPDATE_REQUEST = 0x3000FC, CMSG_CONVERSATION_CINEMATIC_READY = 0x3000E5, CMSG_CONVERSATION_LINE_STARTED = 0x3000E4, - CMSG_CONVERT_ITEM_TO_BIND_TO_ACCOUNT = 0x2F02E5, + CMSG_CONVERT_ITEM_TO_BIND_TO_ACCOUNT = 0x2F02E6, CMSG_CONVERT_RAID = 0x34007A, + CMSG_CONVERT_TIMERUNNING_CHARACTER = 0x34018C, CMSG_COVENANT_RENOWN_REQUEST_CATCHUP_STATE = 0x30010F, CMSG_CRAFTING_ORDER_CANCEL = 0x30011B, CMSG_CRAFTING_ORDER_CLAIM = 0x300118, @@ -307,15 +308,15 @@ enum OpcodeClient : uint32 CMSG_CRAFTING_ORDER_REPORT_PLAYER = 0x30011D, CMSG_CRAFTING_ORDER_UPDATE_IGNORE_LIST = 0x30011E, CMSG_CREATE_CHARACTER = 0x340070, - CMSG_CREATE_SHIPMENT = 0x2F01DB, + CMSG_CREATE_SHIPMENT = 0x2F01DC, CMSG_DB_QUERY_BULK = 0x340010, CMSG_DECLINE_GUILD_INVITES = 0x3000B7, CMSG_DECLINE_PETITION = 0x3000D2, CMSG_DELETE_EQUIPMENT_SET = 0x3000A3, CMSG_DELVE_TELEPORT_OUT = 0x30012B, - CMSG_DEL_FRIEND = 0x3400FF, - CMSG_DEL_IGNORE = 0x340103, - CMSG_DESTROY_ITEM = 0x2F016A, + CMSG_DEL_FRIEND = 0x340100, + CMSG_DEL_IGNORE = 0x340104, + CMSG_DESTROY_ITEM = 0x2F016B, CMSG_DF_BOOT_PLAYER_VOTE = 0x340044, CMSG_DF_CONFIRM_EXPAND_SEARCH = 0x340036, CMSG_DF_GET_JOIN_STATUS = 0x340042, @@ -328,65 +329,65 @@ enum OpcodeClient : uint32 CMSG_DF_TELEPORT = 0x340045, CMSG_DISCARDED_TIME_SYNC_ACKS = 0x32005E, CMSG_DISMISS_CRITTER = 0x300091, - CMSG_DO_COUNTDOWN = 0x340143, - CMSG_DO_MASTER_LOOT_ROLL = 0x2F00CB, + CMSG_DO_COUNTDOWN = 0x340145, + CMSG_DO_MASTER_LOOT_ROLL = 0x2F00CC, CMSG_DO_READY_CHECK = 0x34005E, CMSG_DUEL_RESPONSE = 0x30007A, - CMSG_EJECT_PASSENGER = 0x2F0103, + CMSG_EJECT_PASSENGER = 0x2F0104, CMSG_EMOTE = 0x3000DF, CMSG_ENABLE_NAGLE = 0x350007, CMSG_ENABLE_TAXI_NODE = 0x30003C, - CMSG_ENGINE_SURVEY = 0x340111, + CMSG_ENGINE_SURVEY = 0x340112, CMSG_ENTER_ENCRYPTED_MODE_ACK = 0x350003, CMSG_ENUM_CHARACTERS = 0x340014, - CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x34010B, + CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x34010C, CMSG_FAR_SIGHT = 0x300080, CMSG_GAME_EVENT_DEBUG_DISABLE = 0x2F005E, CMSG_GAME_EVENT_DEBUG_ENABLE = 0x2F005D, CMSG_GAME_OBJ_REPORT_USE = 0x300087, CMSG_GAME_OBJ_USE = 0x300086, - CMSG_GARRISON_ADD_FOLLOWER_HEALTH = 0x2F01D6, - CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING = 0x2F01BC, - CMSG_GARRISON_CANCEL_CONSTRUCTION = 0x2F01A9, - CMSG_GARRISON_CHECK_UPGRADEABLE = 0x2F020D, - CMSG_GARRISON_COMPLETE_MISSION = 0x2F01FF, - CMSG_GARRISON_FULLY_HEAL_ALL_FOLLOWERS = 0x2F01D7, - CMSG_GARRISON_GENERATE_RECRUITS = 0x2F01BF, - CMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO = 0x2F01CE, - CMSG_GARRISON_GET_MAP_DATA = 0x2F01D5, - CMSG_GARRISON_GET_MISSION_REWARD = 0x2F022F, - CMSG_GARRISON_LEARN_TALENT = 0x2F01CA, - CMSG_GARRISON_MISSION_BONUS_ROLL = 0x2F0201, - CMSG_GARRISON_PURCHASE_BUILDING = 0x2F01A5, - CMSG_GARRISON_RECRUIT_FOLLOWER = 0x2F01C1, - CMSG_GARRISON_REMOVE_FOLLOWER = 0x2F01F6, - CMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING = 0x2F01BD, - CMSG_GARRISON_RENAME_FOLLOWER = 0x2F01BE, - CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA = 0x2F01A4, - CMSG_GARRISON_REQUEST_SHIPMENT_INFO = 0x2F01D9, - CMSG_GARRISON_RESEARCH_TALENT = 0x2F01C2, - CMSG_GARRISON_SET_BUILDING_ACTIVE = 0x2F01A6, - CMSG_GARRISON_SET_FOLLOWER_FAVORITE = 0x2F01BA, - CMSG_GARRISON_SET_FOLLOWER_INACTIVE = 0x2F01B2, - CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES = 0x2F01C0, - CMSG_GARRISON_SOCKET_TALENT = 0x2F029C, - CMSG_GARRISON_START_MISSION = 0x2F01FE, - CMSG_GARRISON_SWAP_BUILDINGS = 0x2F01AA, + CMSG_GARRISON_ADD_FOLLOWER_HEALTH = 0x2F01D7, + CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING = 0x2F01BD, + CMSG_GARRISON_CANCEL_CONSTRUCTION = 0x2F01AA, + CMSG_GARRISON_CHECK_UPGRADEABLE = 0x2F020E, + CMSG_GARRISON_COMPLETE_MISSION = 0x2F0200, + CMSG_GARRISON_FULLY_HEAL_ALL_FOLLOWERS = 0x2F01D8, + CMSG_GARRISON_GENERATE_RECRUITS = 0x2F01C0, + CMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO = 0x2F01CF, + CMSG_GARRISON_GET_MAP_DATA = 0x2F01D6, + CMSG_GARRISON_GET_MISSION_REWARD = 0x2F0230, + CMSG_GARRISON_LEARN_TALENT = 0x2F01CB, + CMSG_GARRISON_MISSION_BONUS_ROLL = 0x2F0202, + CMSG_GARRISON_PURCHASE_BUILDING = 0x2F01A6, + CMSG_GARRISON_RECRUIT_FOLLOWER = 0x2F01C2, + CMSG_GARRISON_REMOVE_FOLLOWER = 0x2F01F7, + CMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING = 0x2F01BE, + CMSG_GARRISON_RENAME_FOLLOWER = 0x2F01BF, + CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA = 0x2F01A5, + CMSG_GARRISON_REQUEST_SHIPMENT_INFO = 0x2F01DA, + CMSG_GARRISON_RESEARCH_TALENT = 0x2F01C3, + CMSG_GARRISON_SET_BUILDING_ACTIVE = 0x2F01A7, + CMSG_GARRISON_SET_FOLLOWER_FAVORITE = 0x2F01BB, + CMSG_GARRISON_SET_FOLLOWER_INACTIVE = 0x2F01B3, + CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES = 0x2F01C1, + CMSG_GARRISON_SOCKET_TALENT = 0x2F029D, + CMSG_GARRISON_START_MISSION = 0x2F01FF, + CMSG_GARRISON_SWAP_BUILDINGS = 0x2F01AB, CMSG_GENERATE_RANDOM_CHARACTER_NAME = 0x340013, CMSG_GET_ACCOUNT_CHARACTER_LIST = 0x3400E3, - CMSG_GET_ACCOUNT_NOTIFICATIONS = 0x34015F, - CMSG_GET_GARRISON_INFO = 0x2F019F, + CMSG_GET_ACCOUNT_NOTIFICATIONS = 0x340161, + CMSG_GET_GARRISON_INFO = 0x2F01A0, CMSG_GET_ITEM_PURCHASE_DATA = 0x3000CD, - CMSG_GET_LANDING_PAGE_SHIPMENTS = 0x2F01DA, - CMSG_GET_MIRROR_IMAGE_DATA = 0x2F016E, + CMSG_GET_LANDING_PAGE_SHIPMENTS = 0x2F01DB, + CMSG_GET_MIRROR_IMAGE_DATA = 0x2F016F, CMSG_GET_PVP_OPTIONS_ENABLED = 0x34001A, - CMSG_GET_RAF_ACCOUNT_INFO = 0x34014D, - CMSG_GET_REGIONWIDE_CHARACTER_RESTRICTION_AND_MAIL_DATA = 0x340190, - CMSG_GET_REMAINING_GAME_TIME = 0x340119, - CMSG_GET_TROPHY_LIST = 0x2F01EF, - CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x34010D, - CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST = 0x34011E, - CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST = 0x34011F, + CMSG_GET_RAF_ACCOUNT_INFO = 0x34014F, + CMSG_GET_REGIONWIDE_CHARACTER_RESTRICTION_AND_MAIL_DATA = 0x340192, + CMSG_GET_REMAINING_GAME_TIME = 0x34011A, + CMSG_GET_TROPHY_LIST = 0x2F01F0, + CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x34010E, + CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST = 0x34011F, + CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST = 0x340120, CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY = 0x3400BC, CMSG_GM_TICKET_GET_CASE_STATUS = 0x3400BB, CMSG_GM_TICKET_GET_SYSTEM_STATUS = 0x3400BA, @@ -439,7 +440,7 @@ enum OpcodeClient : uint32 CMSG_GUILD_UPDATE_INFO_TEXT = 0x2D0016, CMSG_GUILD_UPDATE_MOTD_TEXT = 0x2D0015, CMSG_HEARTH_AND_RESURRECT = 0x30009F, - CMSG_HIDE_QUEST_CHOICE = 0x2F017E, + CMSG_HIDE_QUEST_CHOICE = 0x2F017F, CMSG_HOTFIX_REQUEST = 0x340011, CMSG_IGNORE_TRADE = 0x2F0003, CMSG_INITIATE_ROLE_POLL = 0x340006, @@ -447,68 +448,68 @@ enum OpcodeClient : uint32 CMSG_INSPECT = 0x3000C7, CMSG_INSTANCE_ABANDON_VOTE_RESPONSE = 0x340061, CMSG_INSTANCE_LOCK_RESPONSE = 0x3000A4, - CMSG_ISLAND_QUEUE = 0x2F0260, + CMSG_ISLAND_QUEUE = 0x2F0261, CMSG_ITEM_PURCHASE_REFUND = 0x3000CE, - CMSG_ITEM_TEXT_QUERY = 0x2F020E, - CMSG_JOIN_PET_BATTLE_QUEUE = 0x2F008D, + CMSG_ITEM_TEXT_QUERY = 0x2F020F, + CMSG_JOIN_PET_BATTLE_QUEUE = 0x2F008E, CMSG_JOIN_RATED_BATTLEGROUND = 0x2F0025, CMSG_KEEP_ALIVE = 0x3400AB, - CMSG_KEYBOUND_OVERRIDE = 0x2F00E1, + CMSG_KEYBOUND_OVERRIDE = 0x2F00E2, CMSG_LATENCY_REPORT = 0x35000D, CMSG_LEARN_PVP_TALENTS = 0x3000FA, CMSG_LEARN_TALENTS = 0x3000F8, CMSG_LEAVE_GROUP = 0x340075, - CMSG_LEAVE_PET_BATTLE_QUEUE = 0x2F008E, + CMSG_LEAVE_PET_BATTLE_QUEUE = 0x2F008F, CMSG_LFG_LIST_APPLY_TO_GROUP = 0x34003B, CMSG_LFG_LIST_CANCEL_APPLICATION = 0x34003C, CMSG_LFG_LIST_DECLINE_APPLICANT = 0x34003D, CMSG_LFG_LIST_GET_STATUS = 0x340039, CMSG_LFG_LIST_INVITE_APPLICANT = 0x34003E, CMSG_LFG_LIST_INVITE_RESPONSE = 0x34003F, - CMSG_LFG_LIST_JOIN = 0x2F0254, + CMSG_LFG_LIST_JOIN = 0x2F0255, CMSG_LFG_LIST_LEAVE = 0x340038, CMSG_LFG_LIST_SEARCH = 0x34003A, - CMSG_LFG_LIST_UPDATE_REQUEST = 0x2F0255, + CMSG_LFG_LIST_UPDATE_REQUEST = 0x2F0256, CMSG_LIST_INVENTORY = 0x300033, CMSG_LIVE_REGION_ACCOUNT_RESTORE = 0x3400E6, CMSG_LIVE_REGION_CHARACTER_COPY = 0x3400E5, CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST = 0x3400E4, CMSG_LIVE_REGION_KEY_BINDINGS_COPY = 0x3400E7, CMSG_LOADING_SCREEN_NOTIFY = 0x340024, - CMSG_LOAD_SELECTED_TROPHY = 0x2F01F0, - CMSG_LOBBY_MATCHMAKER_ABANDON_QUEUE = 0x340172, - CMSG_LOBBY_MATCHMAKER_ACCEPT_PARTY_INVITE = 0x340169, - CMSG_LOBBY_MATCHMAKER_CREATE_CHARACTER = 0x34017B, - CMSG_LOBBY_MATCHMAKER_ENTER_QUEUE = 0x340170, - CMSG_LOBBY_MATCHMAKER_LEAVE_PARTY = 0x34016C, - CMSG_LOBBY_MATCHMAKER_PARTY_INVITE = 0x340168, - CMSG_LOBBY_MATCHMAKER_PARTY_UNINVITE = 0x34016B, - CMSG_LOBBY_MATCHMAKER_QUEUE_PROPSAL_RESPONSE = 0x340171, - CMSG_LOBBY_MATCHMAKER_REJECT_PARTY_INVITE = 0x34016A, - CMSG_LOBBY_MATCHMAKER_SET_PARTY_PLAYLIST_ENTRY = 0x34016D, - CMSG_LOBBY_MATCHMAKER_SET_PLAYER_READY = 0x34016E, + CMSG_LOAD_SELECTED_TROPHY = 0x2F01F1, + CMSG_LOBBY_MATCHMAKER_ABANDON_QUEUE = 0x340174, + CMSG_LOBBY_MATCHMAKER_ACCEPT_PARTY_INVITE = 0x34016B, + CMSG_LOBBY_MATCHMAKER_CREATE_CHARACTER = 0x34017D, + CMSG_LOBBY_MATCHMAKER_ENTER_QUEUE = 0x340172, + CMSG_LOBBY_MATCHMAKER_LEAVE_PARTY = 0x34016E, + CMSG_LOBBY_MATCHMAKER_PARTY_INVITE = 0x34016A, + CMSG_LOBBY_MATCHMAKER_PARTY_UNINVITE = 0x34016D, + CMSG_LOBBY_MATCHMAKER_QUEUE_PROPSAL_RESPONSE = 0x340173, + CMSG_LOBBY_MATCHMAKER_REJECT_PARTY_INVITE = 0x34016C, + CMSG_LOBBY_MATCHMAKER_SET_PARTY_PLAYLIST_ENTRY = 0x34016F, + CMSG_LOBBY_MATCHMAKER_SET_PLAYER_READY = 0x340170, CMSG_LOGOUT_CANCEL = 0x300070, CMSG_LOGOUT_INSTANT = 0x300071, CMSG_LOGOUT_LOBBY_MATCHMAKER = 0x300122, CMSG_LOGOUT_REQUEST = 0x30006F, CMSG_LOG_DISCONNECT = 0x350005, CMSG_LOG_STREAMING_ERROR = 0x350009, - CMSG_LOOT_ITEM = 0x2F00C9, - CMSG_LOOT_MONEY = 0x2F00C8, - CMSG_LOOT_RELEASE = 0x2F00CD, - CMSG_LOOT_ROLL = 0x2F00CE, - CMSG_LOOT_UNIT = 0x2F00C7, + CMSG_LOOT_ITEM = 0x2F00CA, + CMSG_LOOT_MONEY = 0x2F00C9, + CMSG_LOOT_RELEASE = 0x2F00CE, + CMSG_LOOT_ROLL = 0x2F00CF, + CMSG_LOOT_UNIT = 0x2F00C8, CMSG_LOW_LEVEL_RAID1 = 0x3400CE, CMSG_LOW_LEVEL_RAID2 = 0x3000AB, CMSG_MAIL_CREATE_TEXT_ITEM = 0x3000D9, - CMSG_MAIL_DELETE = 0x2F00E3, + CMSG_MAIL_DELETE = 0x2F00E4, CMSG_MAIL_GET_LIST = 0x3000D4, CMSG_MAIL_MARK_AS_READ = 0x3000D8, CMSG_MAIL_RETURN_TO_SENDER = 0x340081, CMSG_MAIL_TAKE_ITEM = 0x3000D6, CMSG_MAIL_TAKE_MONEY = 0x3000D5, - CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT = 0x2F00E4, - CMSG_MASTER_LOOT_ITEM = 0x2F00CA, + CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT = 0x2F00E5, + CMSG_MASTER_LOOT_ITEM = 0x2F00CB, CMSG_MERGE_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x300052, CMSG_MERGE_GUILD_BANK_ITEM_WITH_ITEM = 0x30004F, CMSG_MERGE_ITEM_WITH_GUILD_BANK_ITEM = 0x30004D, @@ -516,7 +517,7 @@ enum OpcodeClient : uint32 CMSG_MISSILE_TRAJECTORY_COLLISION = 0x2F0036, CMSG_MOUNT_CLEAR_FANFARE = 0x290003, CMSG_MOUNT_SET_FAVORITE = 0x34005C, - CMSG_MOUNT_SPECIAL_ANIM = 0x2F0154, + CMSG_MOUNT_SPECIAL_ANIM = 0x2F0155, CMSG_MOVE_ADD_IMPULSE_ACK = 0x32006D, CMSG_MOVE_APPLY_INERTIA_ACK = 0x32006B, CMSG_MOVE_APPLY_MOVEMENT_FORCE_ACK = 0x320031, @@ -609,29 +610,29 @@ enum OpcodeClient : uint32 CMSG_MOVE_UPDATE_FALL_SPEED = 0x320036, CMSG_MOVE_WATER_WALK_ACK = 0x320039, CMSG_MYTHIC_PLUS_REQUEST_MAP_STATS = 0x2C0001, - CMSG_NEUTRAL_PLAYER_SELECT_FACTION = 0x2F0083, + CMSG_NEUTRAL_PLAYER_SELECT_FACTION = 0x2F0084, CMSG_NEXT_CINEMATIC_CAMERA = 0x3000E2, CMSG_OBJECT_UPDATE_FAILED = 0x2F002C, CMSG_OBJECT_UPDATE_RESCUED = 0x2F002D, - CMSG_OFFER_PETITION = 0x2F0286, + CMSG_OFFER_PETITION = 0x2F0287, CMSG_OPENING_CINEMATIC = 0x3000E1, - CMSG_OPEN_ITEM = 0x2F020F, - CMSG_OPEN_MISSION_NPC = 0x2F01D0, - CMSG_OPEN_SHIPMENT_NPC = 0x2F01D8, - CMSG_OPEN_TRADESKILL_NPC = 0x2F01E3, + CMSG_OPEN_ITEM = 0x2F0210, + CMSG_OPEN_MISSION_NPC = 0x2F01D1, + CMSG_OPEN_SHIPMENT_NPC = 0x2F01D9, + CMSG_OPEN_TRADESKILL_NPC = 0x2F01E4, CMSG_OPT_OUT_OF_LOOT = 0x30008E, CMSG_OVERRIDE_SCREEN_FLASH = 0x3000B8, CMSG_PARTY_INVITE = 0x340030, CMSG_PARTY_INVITE_RESPONSE = 0x340032, CMSG_PARTY_UNINVITE = 0x340073, - CMSG_PERFORM_ITEM_INTERACTION = 0x2F00EC, - CMSG_PERKS_PROGRAM_ITEMS_REFRESHED = 0x2F02AE, - CMSG_PERKS_PROGRAM_REQUEST_CART_CHECKOUT = 0x2F02B1, + CMSG_PERFORM_ITEM_INTERACTION = 0x2F00ED, + CMSG_PERKS_PROGRAM_ITEMS_REFRESHED = 0x2F02AF, + CMSG_PERKS_PROGRAM_REQUEST_CART_CHECKOUT = 0x2F02B2, CMSG_PERKS_PROGRAM_REQUEST_PENDING_REWARDS = 0x290012, - CMSG_PERKS_PROGRAM_REQUEST_PURCHASE = 0x2F02B0, - CMSG_PERKS_PROGRAM_REQUEST_REFUND = 0x2F02B2, - CMSG_PERKS_PROGRAM_SET_FROZEN_VENDOR_ITEM = 0x2F02B3, - CMSG_PERKS_PROGRAM_STATUS_REQUEST = 0x2F02AF, + CMSG_PERKS_PROGRAM_REQUEST_PURCHASE = 0x2F02B1, + CMSG_PERKS_PROGRAM_REQUEST_REFUND = 0x2F02B3, + CMSG_PERKS_PROGRAM_SET_FROZEN_VENDOR_ITEM = 0x2F02B4, + CMSG_PERKS_PROGRAM_STATUS_REQUEST = 0x2F02B0, CMSG_PETITION_BUY = 0x30005A, CMSG_PETITION_RENAME_GUILD = 0x3400F7, CMSG_PETITION_SHOW_LIST = 0x300059, @@ -639,18 +640,18 @@ enum OpcodeClient : uint32 CMSG_PET_ABANDON = 0x30001E, CMSG_PET_ABANDON_BY_NUMBER = 0x30001F, CMSG_PET_ACTION = 0x30001C, - CMSG_PET_BATTLE_FINAL_NOTIFY = 0x2F0092, + CMSG_PET_BATTLE_FINAL_NOTIFY = 0x2F0093, CMSG_PET_BATTLE_INPUT = 0x34006D, - CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x2F00E2, - CMSG_PET_BATTLE_QUIT_NOTIFY = 0x2F0091, + CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x2F00E3, + CMSG_PET_BATTLE_QUIT_NOTIFY = 0x2F0092, CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x34006E, - CMSG_PET_BATTLE_REQUEST_PVP = 0x2F008B, - CMSG_PET_BATTLE_REQUEST_UPDATE = 0x2F008C, - CMSG_PET_BATTLE_REQUEST_WILD = 0x2F0089, - CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY = 0x2F0093, - CMSG_PET_BATTLE_WILD_LOCATION_FAIL = 0x3D008A, + CMSG_PET_BATTLE_REQUEST_PVP = 0x2F008C, + CMSG_PET_BATTLE_REQUEST_UPDATE = 0x2F008D, + CMSG_PET_BATTLE_REQUEST_WILD = 0x2F008A, + CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY = 0x2F0094, + CMSG_PET_BATTLE_WILD_LOCATION_FAIL = 0x2F008B, CMSG_PET_CANCEL_AURA = 0x300020, - CMSG_PET_CAST_SPELL = 0x2F0173, + CMSG_PET_CAST_SPELL = 0x2F0174, CMSG_PET_RENAME = 0x3400B0, CMSG_PET_SET_ACTION = 0x30001B, CMSG_PET_SPELL_AUTOCAST = 0x300021, @@ -659,32 +660,32 @@ enum OpcodeClient : uint32 CMSG_PLAYER_LOGIN = 0x340016, CMSG_PUSH_QUEST_TO_PARTY = 0x300031, CMSG_PVP_LOG_DATA = 0x2F0028, - CMSG_QUERY_BATTLE_PET_NAME = 0x2F0147, + CMSG_QUERY_BATTLE_PET_NAME = 0x2F0148, CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x34008C, CMSG_QUERY_CORPSE_TRANSPORT = 0x34008D, CMSG_QUERY_COUNTDOWN_TIMER = 0x2F0055, - CMSG_QUERY_CREATURE = 0x2F0141, - CMSG_QUERY_GAME_OBJECT = 0x2F0142, - CMSG_QUERY_GARRISON_PET_NAME = 0x2F0148, + CMSG_QUERY_CREATURE = 0x2F0142, + CMSG_QUERY_GAME_OBJECT = 0x2F0143, + CMSG_QUERY_GARRISON_PET_NAME = 0x2F0149, CMSG_QUERY_GUILD_INFO = 0x3400B6, CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x300098, CMSG_QUERY_NEXT_MAIL_TIME = 0x3000D7, - CMSG_QUERY_NPC_TEXT = 0x2F0143, - CMSG_QUERY_PAGE_TEXT = 0x2F0145, - CMSG_QUERY_PETITION = 0x2F0149, - CMSG_QUERY_PET_NAME = 0x2F0146, + CMSG_QUERY_NPC_TEXT = 0x2F0144, + CMSG_QUERY_PAGE_TEXT = 0x2F0146, + CMSG_QUERY_PETITION = 0x2F014A, + CMSG_QUERY_PET_NAME = 0x2F0147, CMSG_QUERY_PLAYER_NAMES = 0x35000E, CMSG_QUERY_PLAYER_NAMES_FOR_COMMUNITY = 0x35000C, CMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID = 0x35000B, CMSG_QUERY_QUEST_COMPLETION_NPCS = 0x2F0021, - CMSG_QUERY_QUEST_INFO = 0x2F0144, + CMSG_QUERY_QUEST_INFO = 0x2F0145, CMSG_QUERY_QUEST_ITEM_USABILITY = 0x2F0022, CMSG_QUERY_REALM_NAME = 0x3400B5, CMSG_QUERY_SCENARIO_POI = 0x340082, - CMSG_QUERY_SELECTED_WOW_LABS_AREA = 0x2F02EA, + CMSG_QUERY_SELECTED_WOW_LABS_AREA = 0x2F02EB, CMSG_QUERY_TIME = 0x30006E, - CMSG_QUERY_TREASURE_PICKER = 0x2F0232, - CMSG_QUERY_WOW_LABS_AREA_INFO = 0x2F02EB, + CMSG_QUERY_TREASURE_PICKER = 0x2F0233, + CMSG_QUERY_WOW_LABS_AREA_INFO = 0x2F02EC, CMSG_QUEST_CONFIRM_ACCEPT = 0x300030, CMSG_QUEST_GIVER_ACCEPT_QUEST = 0x30002A, CMSG_QUEST_GIVER_CHOOSE_REWARD = 0x30002C, @@ -698,114 +699,118 @@ enum OpcodeClient : uint32 CMSG_QUEST_LOG_REMOVE_QUEST = 0x3000CC, CMSG_QUEST_POI_QUERY = 0x3400DD, CMSG_QUEST_PUSH_RESULT = 0x300032, - CMSG_QUEST_SESSION_BEGIN_RESPONSE = 0x2F0278, - CMSG_QUEST_SESSION_REQUEST_START = 0x2F0277, - CMSG_QUEST_SESSION_REQUEST_STOP = 0x340158, + CMSG_QUEST_SESSION_BEGIN_RESPONSE = 0x2F0279, + CMSG_QUEST_SESSION_REQUEST_START = 0x2F0278, + CMSG_QUEST_SESSION_REQUEST_STOP = 0x34015A, CMSG_QUEUED_MESSAGES_END = 0x350008, - CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x340130, - CMSG_QUICK_JOIN_REQUEST_INVITE = 0x34012F, - CMSG_QUICK_JOIN_REQUEST_INVITE_WITH_CONFIRMATION = 0x34015D, - CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x34012E, - CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x34012D, + CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x340131, + CMSG_QUICK_JOIN_REQUEST_INVITE = 0x340130, + CMSG_QUICK_JOIN_REQUEST_INVITE_WITH_CONFIRMATION = 0x34015F, + CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x34012F, + CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x34012E, CMSG_RAF_CLAIM_ACTIVITY_REWARD = 0x30009C, - CMSG_RAF_CLAIM_NEXT_REWARD = 0x34014E, - CMSG_RAF_GENERATE_RECRUITMENT_LINK = 0x340150, - CMSG_RAF_UPDATE_RECRUITMENT_INFO = 0x34014F, + CMSG_RAF_CLAIM_NEXT_REWARD = 0x340150, + CMSG_RAF_GENERATE_RECRUITMENT_LINK = 0x340152, + CMSG_RAF_UPDATE_RECRUITMENT_INFO = 0x340151, CMSG_RANDOM_ROLL = 0x340080, CMSG_READY_CHECK_RESPONSE = 0x34005F, - CMSG_READ_ITEM = 0x2F0210, + CMSG_READ_ITEM = 0x2F0211, + CMSG_RECENT_ALLY_REQUEST_DATA = 0x340197, + CMSG_RECENT_ALLY_SET_NOTE = 0x340198, CMSG_RECLAIM_CORPSE = 0x300073, - CMSG_REMOVE_NEW_ITEM = 0x2F0236, - CMSG_REMOVE_RAF_RECRUIT = 0x340151, + CMSG_REMOVE_NEW_ITEM = 0x2F0237, + CMSG_REMOVE_RAF_RECRUIT = 0x340153, CMSG_REORDER_CHARACTERS = 0x340015, CMSG_REPAIR_ITEM = 0x300084, - CMSG_REPLACE_TROPHY = 0x2F01F1, + CMSG_REPLACE_TROPHY = 0x2F01F2, CMSG_REPOP_REQUEST = 0x3000C4, CMSG_REPORT_PVP_PLAYER_AFK = 0x30008C, - CMSG_REPORT_SERVER_LAG = 0x2F0270, - CMSG_REPORT_STUCK_IN_COMBAT = 0x2F0271, + CMSG_REPORT_SERVER_LAG = 0x2F0271, + CMSG_REPORT_STUCK_IN_COMBAT = 0x2F0272, CMSG_REQUEST_ACCOUNT_DATA = 0x3400C2, - CMSG_REQUEST_AREA_POI_UPDATE = 0x2F0234, + CMSG_REQUEST_AREA_POI_UPDATE = 0x2F0235, CMSG_REQUEST_BATTLEFIELD_STATUS = 0x340008, CMSG_REQUEST_CEMETERY_LIST = 0x2F0023, CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO = 0x3400B7, - CMSG_REQUEST_COVENANT_CALLINGS = 0x2F0262, + CMSG_REQUEST_COVENANT_CALLINGS = 0x2F0263, CMSG_REQUEST_CROWD_CONTROL_SPELL = 0x3000C8, CMSG_REQUEST_CURRENCY_DATA_FOR_ACCOUNT_CHARACTERS = 0x290019, - CMSG_REQUEST_GARRISON_TALENT_WORLD_QUEST_UNLOCKS = 0x2F029B, + CMSG_REQUEST_GARRISON_TALENT_WORLD_QUEST_UNLOCKS = 0x2F029C, CMSG_REQUEST_GUILD_PARTY_STATE = 0x2F0054, CMSG_REQUEST_GUILD_REWARDS_LIST = 0x2F0053, - CMSG_REQUEST_LATEST_SPLASH_SCREEN = 0x2F0272, - CMSG_REQUEST_LFG_LIST_BLACKLIST = 0x2F017F, - CMSG_REQUEST_MYTHIC_PLUS_AFFIXES = 0x2F00B7, - CMSG_REQUEST_MYTHIC_PLUS_SEASON_DATA = 0x2F00B8, - CMSG_REQUEST_PARTY_ELIGIBILITY_FOR_DELVE_TIERS = 0x2F02E9, + CMSG_REQUEST_LATEST_SPLASH_SCREEN = 0x2F0273, + CMSG_REQUEST_LFG_LIST_BLACKLIST = 0x2F0180, + CMSG_REQUEST_MYTHIC_PLUS_AFFIXES = 0x2F00B8, + CMSG_REQUEST_MYTHIC_PLUS_SEASON_DATA = 0x2F00B9, + CMSG_REQUEST_PARTY_ELIGIBILITY_FOR_DELVE_TIERS = 0x2F02EA, CMSG_REQUEST_PARTY_JOIN_UPDATES = 0x340023, CMSG_REQUEST_PARTY_MEMBER_STATS = 0x34007F, CMSG_REQUEST_PET_INFO = 0x300022, - CMSG_REQUEST_PLAYED_TIME = 0x2F014C, + CMSG_REQUEST_PLAYED_TIME = 0x2F014D, CMSG_REQUEST_PVP_REWARDS = 0x2F0041, CMSG_REQUEST_RAID_INFO = 0x3400F8, CMSG_REQUEST_RATED_PVP_INFO = 0x34000F, - CMSG_REQUEST_REALM_GUILD_MASTER_INFO = 0x340193, - CMSG_REQUEST_SCHEDULED_AREA_POI_UPDATE = 0x2F0235, + CMSG_REQUEST_REALM_GUILD_MASTER_INFO = 0x340195, + CMSG_REQUEST_SCHEDULED_AREA_POI_UPDATE = 0x2F0236, CMSG_REQUEST_SCHEDULED_PVP_INFO = 0x2F0042, CMSG_REQUEST_STABLED_PETS = 0x300023, CMSG_REQUEST_STORE_FRONT_INFO_UPDATE = 0x29001E, - CMSG_REQUEST_VEHICLE_EXIT = 0x2F00FE, - CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x2F0100, - CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x2F00FF, - CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x2F0101, - CMSG_REQUEST_WEEKLY_REWARDS = 0x2F0265, - CMSG_REQUEST_WORLD_QUEST_UPDATE = 0x2F0233, - CMSG_RESET_CHALLENGE_MODE = 0x2F00B5, - CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x2F00B6, + CMSG_REQUEST_SURVEY = 0x2F02FD, + CMSG_REQUEST_VEHICLE_EXIT = 0x2F00FF, + CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x2F0101, + CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x2F0100, + CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x2F0102, + CMSG_REQUEST_WEEKLY_REWARDS = 0x2F0266, + CMSG_REQUEST_WORLD_QUEST_UPDATE = 0x2F0234, + CMSG_RESET_CHALLENGE_MODE = 0x2F00B6, + CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x2F00B7, CMSG_RESET_INSTANCES = 0x340094, CMSG_RESURRECT_RESPONSE = 0x3400AF, - CMSG_REVERT_MONUMENT_APPEARANCE = 0x2F01F3, - CMSG_RIDE_VEHICLE_INTERACT = 0x2F0102, - CMSG_RPE_RESET_CHARACTER = 0x34017E, - CMSG_SAVE_ACCOUNT_DATA_EXPORT = 0x340178, + CMSG_REVERT_MONUMENT_APPEARANCE = 0x2F01F4, + CMSG_RIDE_VEHICLE_INTERACT = 0x2F0103, + CMSG_RPE_RESET_CHARACTER = 0x340180, + CMSG_SAVE_ACCOUNT_DATA_EXPORT = 0x34017A, CMSG_SAVE_CUF_PROFILES = 0x2F0037, CMSG_SAVE_EQUIPMENT_SET = 0x3000A2, - CMSG_SAVE_GUILD_EMBLEM = 0x2F0184, - CMSG_SAVE_PERSONAL_EMBLEM = 0x2F0185, - CMSG_SCENE_PLAYBACK_CANCELED = 0x2F00DE, - CMSG_SCENE_PLAYBACK_COMPLETE = 0x2F00DD, - CMSG_SCENE_TRIGGER_EVENT = 0x2F00DF, - CMSG_SEAMLESS_TRANSFER_COMPLETE = 0x2F02D8, - CMSG_SELECT_WOW_LABS_AREA = 0x2F02EC, + CMSG_SAVE_GUILD_EMBLEM = 0x2F0185, + CMSG_SAVE_PERSONAL_EMBLEM = 0x2F0186, + CMSG_SCENE_PLAYBACK_CANCELED = 0x2F00DF, + CMSG_SCENE_PLAYBACK_COMPLETE = 0x2F00DE, + CMSG_SCENE_TRIGGER_EVENT = 0x2F00E0, + CMSG_SEAMLESS_TRANSFER_COMPLETE = 0x2F02D9, + CMSG_SELECT_WOW_LABS_AREA = 0x2F02ED, CMSG_SELF_RES = 0x3000CF, CMSG_SELL_ALL_JUNK_ITEMS = 0x300035, CMSG_SELL_ITEM = 0x300034, - CMSG_SEND_CHARACTER_CLUB_INVITATION = 0x340126, - CMSG_SEND_CONTACT_LIST = 0x3400FD, + CMSG_SEND_CHARACTER_CLUB_INVITATION = 0x340127, + CMSG_SEND_CONTACT_LIST = 0x3400FE, CMSG_SEND_MAIL = 0x340026, - CMSG_SEND_PING_UNIT = 0x2F02DA, - CMSG_SEND_PING_WORLD_POINT = 0x2F02DB, + CMSG_SEND_PING_UNIT = 0x2F02DB, + CMSG_SEND_PING_WORLD_POINT = 0x2F02DC, CMSG_SEND_TEXT_EMOTE = 0x300019, CMSG_SERVER_TIME_OFFSET_REQUEST = 0x3400C9, - CMSG_SETUP_WARBAND_GROUPS = 0x34018C, + CMSG_SETUP_WARBAND_GROUPS = 0x34018E, CMSG_SET_ACTION_BAR_TOGGLES = 0x3000D0, CMSG_SET_ACTION_BUTTON = 0x340062, CMSG_SET_ACTIVE_MOVER = 0x320059, - CMSG_SET_ADVANCED_COMBAT_LOGGING = 0x2F0192, + CMSG_SET_ADVANCED_COMBAT_LOGGING = 0x2F0193, + CMSG_SET_ALLOW_RECENT_ALLIES_SEE_LOCATION = 0x2F02FE, CMSG_SET_ASSISTANT_LEADER = 0x34007B, - CMSG_SET_BACKPACK_AUTOSORT_DISABLED = 0x2F0213, - CMSG_SET_BACKPACK_SELL_JUNK_DISABLED = 0x2F0214, - CMSG_SET_BANK_AUTOSORT_DISABLED = 0x2F0215, - CMSG_SET_CONTACT_NOTES = 0x340100, + CMSG_SET_BACKPACK_AUTOSORT_DISABLED = 0x2F0214, + CMSG_SET_BACKPACK_SELL_JUNK_DISABLED = 0x2F0215, + CMSG_SET_BANK_AUTOSORT_DISABLED = 0x2F0216, + CMSG_SET_CONTACT_NOTES = 0x340101, CMSG_SET_CURRENCY_FLAGS = 0x2F0015, - CMSG_SET_DIFFICULTY_ID = 0x2F00E0, + CMSG_SET_DIFFICULTY_ID = 0x2F00E1, CMSG_SET_DUNGEON_DIFFICULTY = 0x3400AE, - CMSG_SET_EMPOWER_MIN_HOLD_STAGE_PERCENT = 0x2F013B, + CMSG_SET_EMPOWER_MIN_HOLD_STAGE_PERCENT = 0x2F013C, CMSG_SET_EVERYONE_IS_ASSISTANT = 0x340046, - CMSG_SET_EXCLUDED_CHAT_CENSOR_SOURCES = 0x340131, + CMSG_SET_EXCLUDED_CHAT_CENSOR_SOURCES = 0x340132, CMSG_SET_FACTION_AT_WAR = 0x300076, CMSG_SET_FACTION_INACTIVE = 0x300078, CMSG_SET_FACTION_NOT_AT_WAR = 0x300077, CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE = 0x2F0065, - CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x2F0217, + CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x2F0218, CMSG_SET_LOOT_METHOD = 0x340074, CMSG_SET_LOOT_SPECIALIZATION = 0x3000DD, CMSG_SET_PARTY_ASSIGNMENT = 0x34007D, @@ -815,35 +820,35 @@ enum OpcodeClient : uint32 CMSG_SET_PET_SPECIALIZATION = 0x2F0013, CMSG_SET_PLAYER_DECLINED_NAMES = 0x3400B4, CMSG_SET_PREFERRED_CEMETERY = 0x2F0024, - CMSG_SET_PVP = 0x2F0189, - CMSG_SET_RAID_DIFFICULTY = 0x340109, + CMSG_SET_PVP = 0x2F018A, + CMSG_SET_RAID_DIFFICULTY = 0x34010A, CMSG_SET_RESTRICT_PINGS_TO_ASSISTANTS = 0x340047, CMSG_SET_ROLE = 0x340005, CMSG_SET_SAVED_INSTANCE_EXTEND = 0x3400B2, CMSG_SET_SELECTION = 0x3000C6, CMSG_SET_SHEATHED = 0x30001A, - CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = 0x2F0216, + CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = 0x2F0217, CMSG_SET_TAXI_BENCHMARK_MODE = 0x30008B, - CMSG_SET_TITLE = 0x2F0152, + CMSG_SET_TITLE = 0x2F0153, CMSG_SET_TRADE_CURRENCY = 0x2F000A, CMSG_SET_TRADE_GOLD = 0x2F0009, CMSG_SET_TRADE_ITEM = 0x2F0007, - CMSG_SET_USING_PARTY_GARRISON = 0x2F01D2, - CMSG_SET_WAR_MODE = 0x2F018A, + CMSG_SET_USING_PARTY_GARRISON = 0x2F01D3, + CMSG_SET_WAR_MODE = 0x2F018B, CMSG_SET_WATCHED_FACTION = 0x300079, CMSG_SHOW_TRADE_SKILL = 0x3400F0, CMSG_SIGN_PETITION = 0x3000D1, CMSG_SILENCE_PARTY_TALKER = 0x34007E, - CMSG_SOCIAL_CONTRACT_REQUEST = 0x340173, + CMSG_SOCIAL_CONTRACT_REQUEST = 0x340175, CMSG_SOCKET_GEMS = 0x300083, - CMSG_SORT_ACCOUNT_BANK_BAGS = 0x2F02DE, - CMSG_SORT_BAGS = 0x2F0218, - CMSG_SORT_BANK_BAGS = 0x2F0219, - CMSG_SPAWN_TRACKING_UPDATE = 0x2F0167, - CMSG_SPECTATE_CHANGE = 0x2F02D1, + CMSG_SORT_ACCOUNT_BANK_BAGS = 0x2F02DF, + CMSG_SORT_BAGS = 0x2F0219, + CMSG_SORT_BANK_BAGS = 0x2F021A, + CMSG_SPAWN_TRACKING_UPDATE = 0x2F0168, + CMSG_SPECTATE_CHANGE = 0x2F02D2, CMSG_SPELL_CLICK = 0x300027, - CMSG_SPELL_EMPOWER_RELEASE = 0x2F0139, - CMSG_SPELL_EMPOWER_RESTART = 0x2F013A, + CMSG_SPELL_EMPOWER_RELEASE = 0x2F013A, + CMSG_SPELL_EMPOWER_RESTART = 0x2F013B, CMSG_SPIRIT_HEALER_ACTIVATE = 0x300042, CMSG_SPLIT_GUILD_BANK_ITEM = 0x300053, CMSG_SPLIT_GUILD_BANK_ITEM_TO_INVENTORY = 0x300050, @@ -856,7 +861,7 @@ enum OpcodeClient : uint32 CMSG_START_WAR_GAME = 0x34000A, CMSG_STORE_GUILD_BANK_ITEM = 0x300049, CMSG_SUBMIT_USER_FEEDBACK = 0x3400C1, - CMSG_SUBSCRIPTION_INTERSTITIAL_RESPONSE = 0x2F0290, + CMSG_SUBSCRIPTION_INTERSTITIAL_RESPONSE = 0x2F0291, CMSG_SUMMON_RESPONSE = 0x340096, CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x340072, CMSG_SURRENDER_ARENA = 0x2F0020, @@ -867,7 +872,7 @@ enum OpcodeClient : uint32 CMSG_SWAP_ITEM = 0x310006, CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM = 0x30004A, CMSG_SWAP_SUB_GROUPS = 0x340079, - CMSG_TABARD_VENDOR_ACTIVATE = 0x2F0186, + CMSG_TABARD_VENDOR_ACTIVATE = 0x2F0187, CMSG_TALK_TO_GOSSIP = 0x300024, CMSG_TAXI_NODE_STATUS_QUERY = 0x30003B, CMSG_TAXI_QUERY_AVAILABLE_NODES = 0x30003D, @@ -877,56 +882,56 @@ enum OpcodeClient : uint32 CMSG_TIME_SYNC_RESPONSE_DROPPED = 0x32005C, CMSG_TIME_SYNC_RESPONSE_FAILED = 0x32005B, CMSG_TOGGLE_DIFFICULTY = 0x340083, - CMSG_TOGGLE_PVP = 0x2F0188, + CMSG_TOGGLE_PVP = 0x2F0189, CMSG_TOTEM_DESTROYED = 0x300090, CMSG_TOY_CLEAR_FANFARE = 0x290004, - CMSG_TRADE_SKILL_SET_FAVORITE = 0x2F0231, + CMSG_TRADE_SKILL_SET_FAVORITE = 0x2F0232, CMSG_TRAINER_BUY_SPELL = 0x300041, CMSG_TRAINER_LIST = 0x300040, - CMSG_TRAITS_COMMIT_CONFIG = 0x2F02B9, - CMSG_TRAITS_TALENT_TEST_UNLEARN_SPELLS = 0x2F02B7, - CMSG_TRANSFER_CURRENCY_FROM_ACCOUNT_CHARACTER = 0x2F02E7, + CMSG_TRAITS_COMMIT_CONFIG = 0x2F02BA, + CMSG_TRAITS_TALENT_TEST_UNLEARN_SPELLS = 0x2F02B8, + CMSG_TRANSFER_CURRENCY_FROM_ACCOUNT_CHARACTER = 0x2F02E8, CMSG_TRANSMOGRIFY_ITEMS = 0x2F0043, CMSG_TURN_IN_PETITION = 0x3000D3, - CMSG_TUTORIAL = 0x34010A, - CMSG_UI_MAP_QUEST_LINES_REQUEST = 0x2F0261, + CMSG_TUTORIAL = 0x34010B, + CMSG_UI_MAP_QUEST_LINES_REQUEST = 0x2F0262, CMSG_UNACCEPT_TRADE = 0x2F0005, - CMSG_UNDELETE_CHARACTER = 0x34010C, + CMSG_UNDELETE_CHARACTER = 0x34010D, CMSG_UNLEARN_SKILL = 0x30007D, CMSG_UNLEARN_SPECIALIZATION = 0x2F0051, - CMSG_UPDATE_AADC_STATUS = 0x340163, + CMSG_UPDATE_AADC_STATUS = 0x340165, CMSG_UPDATE_ACCOUNT_BANK_TAB_SETTINGS = 0x30012A, CMSG_UPDATE_ACCOUNT_DATA = 0x3400C3, - CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x2F0176, + CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x2F0177, CMSG_UPDATE_CLIENT_SETTINGS = 0x340090, - CMSG_UPDATE_CRAFTING_NPC_RECIPES = 0x2F01E4, + CMSG_UPDATE_CRAFTING_NPC_RECIPES = 0x2F01E5, CMSG_UPDATE_MISSILE_TRAJECTORY = 0x320060, CMSG_UPDATE_RAID_TARGET = 0x34007C, - CMSG_UPDATE_SPELL_VISUAL = 0x2F0175, - CMSG_UPDATE_VAS_PURCHASE_STATES = 0x340121, - CMSG_UPGRADE_GARRISON = 0x2F019A, - CMSG_UPGRADE_RUNEFORGE_LEGENDARY = 0x2F028E, + CMSG_UPDATE_SPELL_VISUAL = 0x2F0176, + CMSG_UPDATE_VAS_PURCHASE_STATES = 0x340122, + CMSG_UPGRADE_GARRISON = 0x2F019B, + CMSG_UPGRADE_RUNEFORGE_LEGENDARY = 0x2F028F, CMSG_USED_FOLLOW = 0x2F0032, - CMSG_USE_CRITTER_ITEM = 0x2F0108, + CMSG_USE_CRITTER_ITEM = 0x2F0109, CMSG_USE_EQUIPMENT_SET = 0x310001, - CMSG_USE_ITEM = 0x2F016F, - CMSG_USE_TOY = 0x2F0172, - CMSG_VAS_CHECK_TRANSFER_OK = 0x340136, - CMSG_VAS_GET_QUEUE_MINUTES = 0x340135, - CMSG_VAS_GET_SERVICE_STATUS = 0x340134, + CMSG_USE_ITEM = 0x2F0170, + CMSG_USE_TOY = 0x2F0173, + CMSG_VAS_CHECK_TRANSFER_OK = 0x340138, + CMSG_VAS_GET_QUEUE_MINUTES = 0x340137, + CMSG_VAS_GET_SERVICE_STATUS = 0x340136, CMSG_VIOLENCE_LEVEL = 0x2F0030, - CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST = 0x34013A, - CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x34013B, - CMSG_VOICE_CHAT_LOGIN = 0x340139, + CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST = 0x34013C, + CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x34013D, + CMSG_VOICE_CHAT_LOGIN = 0x34013B, CMSG_WARDEN3_DATA = 0x340018, CMSG_WHO = 0x3400AD, CMSG_WHO_IS = 0x3400AC, - CMSG_WORLD_LOOT_OBJECT_CLICK = 0x2F02D4, + CMSG_WORLD_LOOT_OBJECT_CLICK = 0x2F02D5, CMSG_WORLD_PORT_RESPONSE = 0x340025, CMSG_WRAP_ITEM = 0x310000, }; -inline constexpr std::size_t NUM_CMSG_OPCODES = 1735; +inline constexpr std::size_t NUM_CMSG_OPCODES = 1758; inline constexpr std::ptrdiff_t GetOpcodeArrayIndex(OpcodeClient opcode) { @@ -937,12 +942,12 @@ inline constexpr std::ptrdiff_t GetOpcodeArrayIndex(OpcodeClient opcode) case 0x2B: return idInGroup < 51 ? idInGroup + 31 : -1; case 0x2C: return idInGroup < 3 ? idInGroup + 82 : -1; case 0x2D: return idInGroup < 37 ? idInGroup + 85 : -1; - case 0x2F: return idInGroup < 751 ? idInGroup + 122 : -1; - case 0x30: return idInGroup < 301 ? idInGroup + 873 : -1; - case 0x31: return idInGroup < 10 ? idInGroup + 1174 : -1; - case 0x32: return idInGroup < 132 ? idInGroup + 1184 : -1; - case 0x34: return idInGroup < 404 ? idInGroup + 1316 : -1; - case 0x35: return idInGroup < 15 ? idInGroup + 1720 : -1; + case 0x2F: return idInGroup < 767 ? idInGroup + 122 : -1; + case 0x30: return idInGroup < 301 ? idInGroup + 889 : -1; + case 0x31: return idInGroup < 10 ? idInGroup + 1190 : -1; + case 0x32: return idInGroup < 132 ? idInGroup + 1200 : -1; + case 0x34: return idInGroup < 411 ? idInGroup + 1332 : -1; + case 0x35: return idInGroup < 15 ? idInGroup + 1743 : -1; default: return -1; } } @@ -950,20 +955,20 @@ inline constexpr std::ptrdiff_t GetOpcodeArrayIndex(OpcodeClient opcode) enum OpcodeServer : uint32 { SMSG_ABORT_NEW_WORLD = 0x360030, - SMSG_ACCOUNT_CHARACTER_CURRENCY_LISTS = 0x360346, - SMSG_ACCOUNT_CONVERSION_STATE_UPDATE = 0x36034B, - SMSG_ACCOUNT_COSMETIC_ADDED = 0x3602FF, - SMSG_ACCOUNT_CRITERIA_UPDATE = 0x3602E7, + SMSG_ACCOUNT_CHARACTER_CURRENCY_LISTS = 0x360347, + SMSG_ACCOUNT_CONVERSION_STATE_UPDATE = 0x36034C, + SMSG_ACCOUNT_COSMETIC_ADDED = 0x360300, + SMSG_ACCOUNT_CRITERIA_UPDATE = 0x3602E8, SMSG_ACCOUNT_DATA_TIMES = 0x3601A8, - SMSG_ACCOUNT_EXPORT_RESPONSE = 0x360337, - SMSG_ACCOUNT_ITEM_COLLECTION_DATA = 0x360351, + SMSG_ACCOUNT_EXPORT_RESPONSE = 0x360338, + SMSG_ACCOUNT_ITEM_COLLECTION_DATA = 0x360352, SMSG_ACCOUNT_MOUNT_REMOVED = 0x360047, SMSG_ACCOUNT_MOUNT_UPDATE = 0x360046, - SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE = 0x3602FE, - SMSG_ACCOUNT_STORE_CURRENCY_UPDATE = 0x360320, - SMSG_ACCOUNT_STORE_FRONT_UPDATE = 0x360321, - SMSG_ACCOUNT_STORE_ITEM_STATE_CHANGED = 0x360322, - SMSG_ACCOUNT_STORE_RESULT = 0x360323, + SMSG_ACCOUNT_NOTIFICATIONS_RESPONSE = 0x3602FF, + SMSG_ACCOUNT_STORE_CURRENCY_UPDATE = 0x360321, + SMSG_ACCOUNT_STORE_FRONT_UPDATE = 0x360322, + SMSG_ACCOUNT_STORE_ITEM_STATE_CHANGED = 0x360323, + SMSG_ACCOUNT_STORE_RESULT = 0x360324, SMSG_ACCOUNT_TOY_UPDATE = 0x360048, SMSG_ACCOUNT_TRANSMOG_SET_FAVORITES_UPDATE = 0x36004C, SMSG_ACCOUNT_TRANSMOG_UPDATE = 0x36004B, @@ -981,8 +986,8 @@ enum OpcodeServer : uint32 SMSG_ADD_LOSS_OF_CONTROL = 0x36010F, SMSG_ADD_RUNE_POWER = 0x360156, SMSG_ADJUST_SPLINE_DURATION = 0x360069, - SMSG_ADVANCED_COMBAT_LOG = 0x3602FC, - SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE = 0x3602F7, + SMSG_ADVANCED_COMBAT_LOG = 0x3602FD, + SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE = 0x3602F8, SMSG_AE_LOOT_TARGETS = 0x3600B5, SMSG_AE_LOOT_TARGET_ACK = 0x3600B6, SMSG_AI_REACTION = 0x360153, @@ -990,7 +995,7 @@ enum OpcodeServer : uint32 SMSG_ALL_ACCOUNT_CRITERIA = 0x360005, SMSG_ALL_ACHIEVEMENT_DATA = 0x360004, SMSG_ALL_GUILD_ACHIEVEMENTS = 0x420000, - SMSG_APPLY_MOUNT_EQUIPMENT_RESULT = 0x3602D4, + SMSG_APPLY_MOUNT_EQUIPMENT_RESULT = 0x3602D5, SMSG_ARCHAEOLOGY_SURVERY_CAST = 0x36001D, SMSG_AREA_POI_UPDATE_RESPONSE = 0x4A0018, SMSG_AREA_SPIRIT_HEALER_TIME = 0x3601DC, @@ -1015,14 +1020,14 @@ enum OpcodeServer : uint32 SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED = 0x36026B, SMSG_AUCTION_CLOSED_NOTIFICATION = 0x360190, SMSG_AUCTION_COMMAND_RESULT = 0x36018D, - SMSG_AUCTION_DISABLE_NEW_POSTINGS = 0x360324, - SMSG_AUCTION_FAVORITE_LIST = 0x3602EE, - SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT = 0x3602E6, + SMSG_AUCTION_DISABLE_NEW_POSTINGS = 0x360325, + SMSG_AUCTION_FAVORITE_LIST = 0x3602EF, + SMSG_AUCTION_GET_COMMODITY_QUOTE_RESULT = 0x3602E7, SMSG_AUCTION_HELLO_RESPONSE = 0x36018B, - SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT = 0x3602E5, - SMSG_AUCTION_LIST_BUCKETS_RESULT = 0x3602E1, - SMSG_AUCTION_LIST_ITEMS_RESULT = 0x3602E2, - SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT = 0x3602E4, + SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT = 0x3602E6, + SMSG_AUCTION_LIST_BUCKETS_RESULT = 0x3602E2, + SMSG_AUCTION_LIST_ITEMS_RESULT = 0x3602E3, + SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT = 0x3602E5, SMSG_AUCTION_OUTBID_NOTIFICATION = 0x36018F, SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x360191, SMSG_AUCTION_REPLICATE_RESPONSE = 0x36018C, @@ -1033,10 +1038,10 @@ enum OpcodeServer : uint32 SMSG_AUTH_FAILED = 0x360000, SMSG_AUTH_RESPONSE = 0x360001, SMSG_AVAILABLE_HOTFIXES = 0x3A0001, - SMSG_BACKPACK_DEFAULT_SIZE_CHANGED = 0x360325, + SMSG_BACKPACK_DEFAULT_SIZE_CHANGED = 0x360326, SMSG_BAG_CLEANUP_FINISHED = 0x4E0007, SMSG_BARBER_SHOP_RESULT = 0x36015B, - SMSG_BATCH_PRESENCE_SUBSCRIPTION = 0x3602C5, + SMSG_BATCH_PRESENCE_SUBSCRIPTION = 0x3602C6, SMSG_BATTLEFIELD_LIST = 0x3C0005, SMSG_BATTLEFIELD_PORT_DENIED = 0x3C000B, SMSG_BATTLEFIELD_STATUS_ACTIVE = 0x3C0001, @@ -1063,7 +1068,7 @@ enum OpcodeServer : uint32 SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x360220, SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x360214, SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x360213, - SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE = 0x360304, + SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE = 0x360305, SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED = 0x360211, SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x360212, SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x360210, @@ -1071,7 +1076,7 @@ enum OpcodeServer : uint32 SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x36020F, SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x360215, SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x36021F, - SMSG_BATTLE_PAY_START_CHECKOUT = 0x3602B9, + SMSG_BATTLE_PAY_START_CHECKOUT = 0x3602BA, SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x36021D, SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x36021C, SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE = 0x3602AD, @@ -1095,8 +1100,8 @@ enum OpcodeServer : uint32 SMSG_BOSS_KILL = 0x3C002B, SMSG_BREAK_TARGET = 0x3C0016, SMSG_BROADCAST_ACHIEVEMENT = 0x3B0012, - SMSG_BROADCAST_SUMMON_CAST = 0x3602C7, - SMSG_BROADCAST_SUMMON_RESPONSE = 0x3602C8, + SMSG_BROADCAST_SUMMON_CAST = 0x3602C8, + SMSG_BROADCAST_SUMMON_RESPONSE = 0x3602C9, SMSG_BUY_FAILED = 0x360164, SMSG_BUY_SUCCEEDED = 0x360163, SMSG_CACHE_INFO = 0x3A000F, @@ -1135,6 +1140,9 @@ enum OpcodeServer : uint32 SMSG_CAPTURE_POINT_REMOVED = 0x3C0008, SMSG_CAST_FAILED = 0x4D0048, SMSG_CAS_REFRESH_REMOTE_DATA = 0x360115, + SMSG_CATALOG_SHOP_LICENSE_DATA = 0x3602AE, + SMSG_CATALOG_SHOP_OBTAIN_LICENSE = 0x360358, + SMSG_CATALOG_SHOP_OPEN_CHECKOUT_RESULT = 0x360353, SMSG_CAUTIONARY_CHANNEL_MESSAGE = 0x3B0009, SMSG_CAUTIONARY_CHAT_MESSAGE = 0x3B0008, SMSG_CHAIN_MISSILE_BOUNCE = 0x360061, @@ -1181,8 +1189,8 @@ enum OpcodeServer : uint32 SMSG_CHECK_ABANDON_NPE = 0x4A0023, SMSG_CHECK_CHARACTER_NAME_AVAILABILITY_RESULT = 0x36001B, SMSG_CHECK_WARGAME_ENTRY = 0x360027, - SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS = 0x3602F1, - SMSG_CLAIM_RAF_REWARD_RESPONSE = 0x3602D8, + SMSG_CHROMIE_TIME_SELECT_EXPANSION_SUCCESS = 0x3602F2, + SMSG_CLAIM_RAF_REWARD_RESPONSE = 0x3602D9, SMSG_CLEAR_ALL_SPELL_CHARGES = 0x4D0016, SMSG_CLEAR_BOSS_EMOTES = 0x360054, SMSG_CLEAR_COOLDOWN = 0x360158, @@ -1192,13 +1200,13 @@ enum OpcodeServer : uint32 SMSG_CLEAR_TARGET = 0x3C0022, SMSG_CLEAR_TREASURE_PICKER_CACHE = 0x4B0022, SMSG_CLOSE_ARTIFACT_FORGE = 0x36023B, - SMSG_CLUB_FINDER_ERROR_MESSAGE = 0x3602D0, - SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE = 0x3602D3, - SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST = 0x3602D1, - SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST = 0x3602CE, - SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE = 0x3602D2, - SMSG_CLUB_FINDER_UPDATE_APPLICATIONS = 0x3602CF, - SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE = 0x360310, + SMSG_CLUB_FINDER_ERROR_MESSAGE = 0x3602D1, + SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE = 0x3602D4, + SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST = 0x3602D2, + SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST = 0x3602CF, + SMSG_CLUB_FINDER_RESPONSE_POST_RECRUITMENT_MESSAGE = 0x3602D3, + SMSG_CLUB_FINDER_UPDATE_APPLICATIONS = 0x3602D0, + SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE = 0x360311, SMSG_COIN_REMOVED = 0x3600B4, SMSG_COMBAT_EVENT_FAILED = 0x3C0019, SMSG_COMMENTATOR_MAP_INFO = 0x3601A4, @@ -1219,9 +1227,9 @@ enum OpcodeServer : uint32 SMSG_CONSUMABLE_TOKEN_REDEEM_CONFIRM_REQUIRED = 0x360272, SMSG_CONSUMABLE_TOKEN_REDEEM_RESPONSE = 0x360273, SMSG_CONTACT_LIST = 0x360222, - SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE = 0x3602B2, + SMSG_CONTRIBUTION_LAST_UPDATE_RESPONSE = 0x3602B3, SMSG_CONTROL_UPDATE = 0x3600E4, - SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE = 0x3602FA, + SMSG_CONVERT_ITEMS_TO_CURRENCY_VALUE = 0x3602FB, SMSG_COOLDOWN_CHEAT = 0x3601D5, SMSG_COOLDOWN_EVENT = 0x360157, SMSG_CORPSE_LOCATION = 0x3600EB, @@ -1229,27 +1237,27 @@ enum OpcodeServer : uint32 SMSG_CORPSE_TRANSPORT_QUERY = 0x3601B0, SMSG_COVENANT_CALLINGS_AVAILABILITY_RESPONSE = 0x4B0024, SMSG_COVENANT_PREVIEW_OPEN_NPC = 0x360294, - SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE = 0x3602FB, - SMSG_CRAFTING_HOUSE_HELLO_RESPONSE = 0x360331, - SMSG_CRAFTING_ORDER_CANCEL_RESULT = 0x36032D, - SMSG_CRAFTING_ORDER_CLAIM_RESULT = 0x360329, - SMSG_CRAFTING_ORDER_CRAFT_RESULT = 0x36032B, - SMSG_CRAFTING_ORDER_CREATE_RESULT = 0x360327, - SMSG_CRAFTING_ORDER_FULFILL_RESULT = 0x36032C, - SMSG_CRAFTING_ORDER_LIST_ORDERS_RESPONSE = 0x360328, - SMSG_CRAFTING_ORDER_NPC_REWARD_INFO = 0x360333, - SMSG_CRAFTING_ORDER_REJECT_RESULT = 0x36032F, - SMSG_CRAFTING_ORDER_RELEASE_RESULT = 0x36032A, - SMSG_CRAFTING_ORDER_UPDATE_STATE = 0x360332, - SMSG_CRAFT_ENCHANT_RESULT = 0x360330, + SMSG_COVENANT_RENOWN_SEND_CATCHUP_STATE = 0x3602FC, + SMSG_CRAFTING_HOUSE_HELLO_RESPONSE = 0x360332, + SMSG_CRAFTING_ORDER_CANCEL_RESULT = 0x36032E, + SMSG_CRAFTING_ORDER_CLAIM_RESULT = 0x36032A, + SMSG_CRAFTING_ORDER_CRAFT_RESULT = 0x36032C, + SMSG_CRAFTING_ORDER_CREATE_RESULT = 0x360328, + SMSG_CRAFTING_ORDER_FULFILL_RESULT = 0x36032D, + SMSG_CRAFTING_ORDER_LIST_ORDERS_RESPONSE = 0x360329, + SMSG_CRAFTING_ORDER_NPC_REWARD_INFO = 0x360334, + SMSG_CRAFTING_ORDER_REJECT_RESULT = 0x360330, + SMSG_CRAFTING_ORDER_RELEASE_RESULT = 0x36032B, + SMSG_CRAFTING_ORDER_UPDATE_STATE = 0x360333, + SMSG_CRAFT_ENCHANT_RESULT = 0x360331, SMSG_CREATE_CHAR = 0x36019E, SMSG_CREATE_SHIPMENT_RESPONSE = 0x360233, - SMSG_CREATOR_VISUALS_OVERRIDE = 0x360336, + SMSG_CREATOR_VISUALS_OVERRIDE = 0x360337, SMSG_CRITERIA_DELETED = 0x360184, SMSG_CRITERIA_UPDATE = 0x36017E, SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x36015F, - SMSG_CURRENCY_TRANSFER_LOG = 0x360348, - SMSG_CURRENCY_TRANSFER_RESULT = 0x360347, + SMSG_CURRENCY_TRANSFER_LOG = 0x360349, + SMSG_CURRENCY_TRANSFER_RESULT = 0x360348, SMSG_CUSTOM_LOAD_SCREEN = 0x360064, SMSG_DAILY_QUESTS_RESET = 0x4B0000, SMSG_DAMAGE_CALC_LOG = 0x4D0054, @@ -1259,7 +1267,7 @@ enum OpcodeServer : uint32 SMSG_DEFENSE_MESSAGE = 0x3B000C, SMSG_DELETE_CHAR = 0x36019F, SMSG_DELETE_EXPIRED_MISSIONS_RESULT = 0x400022, - SMSG_DELVES_ACCOUNT_DATA_ELEMENT_CHANGED = 0x36034D, + SMSG_DELVES_ACCOUNT_DATA_ELEMENT_CHANGED = 0x36034E, SMSG_DESTROY_ARENA_UNIT = 0x3601DE, SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x360196, SMSG_DIFFERENT_INSTANCE_FROM_PARTY = 0x360020, @@ -1297,12 +1305,12 @@ enum OpcodeServer : uint32 SMSG_EXPECTED_SPAM_RECORDS = 0x3B0005, SMSG_EXPLORATION_EXPERIENCE = 0x3601FB, SMSG_EXPORT_ACCOUNT_PROFILE = 0x3600F0, - SMSG_EXTERNAL_TRANSACTION_ID_GENERATED = 0x3602F8, + SMSG_EXTERNAL_TRANSACTION_ID_GENERATED = 0x3602F9, SMSG_FACTION_BONUS_INFO = 0x3601C1, SMSG_FAILED_PLAYER_CONDITION = 0x4A0002, SMSG_FAILED_QUEST_TURN_IN = 0x3602A8, SMSG_FEATURE_SYSTEM_STATUS = 0x360058, - SMSG_FEATURE_SYSTEM_STATUS2 = 0x360345, + SMSG_FEATURE_SYSTEM_STATUS2 = 0x360346, SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x360059, SMSG_FEIGN_DEATH_RESISTED = 0x3601E0, SMSG_FISH_ESCAPED = 0x36016E, @@ -1317,11 +1325,11 @@ enum OpcodeServer : uint32 SMSG_FRIEND_STATUS = 0x360223, SMSG_GAIN_MAW_POWER = 0x360279, SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT = 0x36005C, - SMSG_GAME_OBJECT_BASE = 0x3602BF, - SMSG_GAME_OBJECT_CLOSE_INTERACTION = 0x36030F, + SMSG_GAME_OBJECT_BASE = 0x3602C0, + SMSG_GAME_OBJECT_CLOSE_INTERACTION = 0x360310, SMSG_GAME_OBJECT_CUSTOM_ANIM = 0x36005D, SMSG_GAME_OBJECT_DESPAWN = 0x36005E, - SMSG_GAME_OBJECT_INTERACTION = 0x36030E, + SMSG_GAME_OBJECT_INTERACTION = 0x36030F, SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL = 0x4D003C, SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT = 0x4D003B, SMSG_GAME_OBJECT_RESET_STATE = 0x3601BB, @@ -1400,11 +1408,11 @@ enum OpcodeServer : uint32 SMSG_GARRISON_UPGRADE_RESULT = 0x40000D, SMSG_GARRISON_USE_RECALL_PORTAL_RESULT = 0x40001F, SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT = 0x36001C, - SMSG_GENERATE_SSO_TOKEN_RESPONSE = 0x3602B3, + SMSG_GENERATE_SSO_TOKEN_RESPONSE = 0x3602B4, SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x3601FD, SMSG_GET_GARRISON_INFO_RESULT = 0x400000, SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE = 0x360236, - SMSG_GET_REALM_HIDDEN_RESULT = 0x36033C, + SMSG_GET_REALM_HIDDEN_RESULT = 0x36033D, SMSG_GET_REMAINING_GAME_TIME_RESPONSE = 0x360271, SMSG_GET_SELECTED_TROPHY_ID_RESPONSE = 0x36025E, SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = 0x360235, @@ -1487,7 +1495,7 @@ enum OpcodeServer : uint32 SMSG_GUILD_REWARD_LIST = 0x420008, SMSG_GUILD_ROSTER = 0x420003, SMSG_GUILD_SEND_RANK_CHANGE = 0x420001, - SMSG_HARDCORE_DEATH_ALERT = 0x360344, + SMSG_HARDCORE_DEATH_ALERT = 0x360345, SMSG_HEALTH_UPDATE = 0x36016F, SMSG_HIGHEST_THREAT_UPDATE = 0x360177, SMSG_HOTFIX_CONNECT = 0x3A0003, @@ -1525,7 +1533,7 @@ enum OpcodeServer : uint32 SMSG_INVALID_PROMOTION_CODE = 0x3601EF, SMSG_INVENTORY_CHANGE_FAILURE = 0x4E0005, SMSG_INVENTORY_FIXUP_COMPLETE = 0x3602AA, - SMSG_INVENTORY_FULL_OVERFLOW = 0x3602BB, + SMSG_INVENTORY_FULL_OVERFLOW = 0x3602BC, SMSG_ISLAND_AZERITE_GAIN = 0x3601F8, SMSG_ISLAND_COMPLETE = 0x3601F9, SMSG_IS_QUEST_COMPLETE_RESPONSE = 0x4B0004, @@ -1533,17 +1541,17 @@ enum OpcodeServer : uint32 SMSG_ITEM_COOLDOWN = 0x36025F, SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x3601F1, SMSG_ITEM_EXPIRE_PURCHASE_REFUND = 0x360034, - SMSG_ITEM_INTERACTION_COMPLETE = 0x3602F0, + SMSG_ITEM_INTERACTION_COMPLETE = 0x3602F1, SMSG_ITEM_PURCHASE_REFUND_RESULT = 0x360032, SMSG_ITEM_PUSH_RESULT = 0x3600C0, SMSG_ITEM_TIME_UPDATE = 0x3601F0, SMSG_KICK_REASON = 0x360128, - SMSG_LATENCY_REPORT_PING = 0x360300, + SMSG_LATENCY_REPORT_PING = 0x360301, SMSG_LEARNED_SPELLS = 0x4D003E, SMSG_LEARN_PVP_TALENT_FAILED = 0x36006D, SMSG_LEARN_TALENT_FAILED = 0x36006C, - SMSG_LEGACY_LOOT_RULES = 0x3602C0, - SMSG_LEVEL_LINKING_RESULT = 0x3602D6, + SMSG_LEGACY_LOOT_RULES = 0x3602C1, + SMSG_LEVEL_LINKING_RESULT = 0x3602D7, SMSG_LEVEL_UP_INFO = 0x360186, SMSG_LFG_BOOT_PLAYER = 0x440019, SMSG_LFG_DISABLED = 0x440017, @@ -1579,12 +1587,12 @@ enum OpcodeServer : uint32 SMSG_LIVE_REGION_KEY_BINDINGS_COPY_RESULT = 0x36020C, SMSG_LOAD_CUF_PROFILES = 0x360055, SMSG_LOAD_EQUIPMENT_SET = 0x3601AC, - SMSG_LOBBY_MATCHMAKER_LOBBY_ACQUIRED_SERVER = 0x360311, - SMSG_LOBBY_MATCHMAKER_PARTY_INFO = 0x360312, - SMSG_LOBBY_MATCHMAKER_PARTY_INVITE_REJECTED = 0x360313, - SMSG_LOBBY_MATCHMAKER_QUEUE_PROPOSED = 0x360315, - SMSG_LOBBY_MATCHMAKER_QUEUE_RESULT = 0x360316, - SMSG_LOBBY_MATCHMAKER_RECEIVE_INVITE = 0x360314, + SMSG_LOBBY_MATCHMAKER_LOBBY_ACQUIRED_SERVER = 0x360312, + SMSG_LOBBY_MATCHMAKER_PARTY_INFO = 0x360313, + SMSG_LOBBY_MATCHMAKER_PARTY_INVITE_REJECTED = 0x360314, + SMSG_LOBBY_MATCHMAKER_QUEUE_PROPOSED = 0x360316, + SMSG_LOBBY_MATCHMAKER_QUEUE_RESULT = 0x360317, + SMSG_LOBBY_MATCHMAKER_RECEIVE_INVITE = 0x360315, SMSG_LOGIN_SET_TIME_SPEED = 0x3601AB, SMSG_LOGIN_VERIFY_WORLD = 0x36002F, SMSG_LOGOUT_CANCEL_ACK = 0x360124, @@ -1608,17 +1616,17 @@ enum OpcodeServer : uint32 SMSG_MAP_OBJECTIVES_INIT = 0x3C002A, SMSG_MAP_OBJ_EVENTS = 0x36005F, SMSG_MASTER_LOOT_CANDIDATE_LIST = 0x3600BC, - SMSG_MEETING_STONE_FAILED = 0x360317, + SMSG_MEETING_STONE_FAILED = 0x360318, SMSG_MESSAGE_BOX = 0x36000A, SMSG_MINIMAP_PING = 0x36016C, SMSG_MIRROR_IMAGE_COMPONENTED_DATA = 0x4D0004, SMSG_MIRROR_IMAGE_CREATURE_DATA = 0x4D0003, - SMSG_MIRROR_VARS = 0x360355, + SMSG_MIRROR_VARS = 0x360359, SMSG_MISSILE_CANCEL = 0x360060, SMSG_MODIFY_COOLDOWN = 0x360200, SMSG_MOTD = 0x3B0003, SMSG_MOUNT_RESULT = 0x36000F, - SMSG_MOVEMENT_ENFORCEMENT_ALERT = 0x3602C6, + SMSG_MOVEMENT_ENFORCEMENT_ALERT = 0x3602C7, SMSG_MOVE_ADD_IMPULSE = 0x480062, SMSG_MOVE_APPLY_INERTIA = 0x48005E, SMSG_MOVE_APPLY_MOVEMENT_FORCE = 0x480045, @@ -1739,14 +1747,14 @@ enum OpcodeServer : uint32 SMSG_MYTHIC_PLUS_NEW_WEEK_RECORD = 0x3600AF, SMSG_MYTHIC_PLUS_SEASON_DATA = 0x3600A9, SMSG_NEUTRAL_PLAYER_FACTION_SELECT_RESULT = 0x360074, - SMSG_NEW_DATA_BUILD = 0x36033B, + SMSG_NEW_DATA_BUILD = 0x36033C, SMSG_NEW_TAXI_PATH = 0x36011D, SMSG_NEW_WORLD = 0x36002B, SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x4D0034, SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION = 0x360149, SMSG_NOTIFY_MONEY = 0x360031, SMSG_NOTIFY_RECEIVED_MAIL = 0x3600D9, - SMSG_NPC_INTERACTION_OPEN_RESULT = 0x36030D, + SMSG_NPC_INTERACTION_OPEN_RESULT = 0x36030E, SMSG_OFFER_PETITION_ERROR = 0x360154, SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x360183, SMSG_ON_MONSTER_MOVE = 0x480002, @@ -1757,21 +1765,21 @@ enum OpcodeServer : uint32 SMSG_OVERRIDE_LIGHT = 0x360159, SMSG_PAGE_TEXT = 0x3601B7, SMSG_PARTY_COMMAND_RESULT = 0x36022C, - SMSG_PARTY_ELIGIBILITY_FOR_DELVE_TIERS_RESPONSE = 0x360350, + SMSG_PARTY_ELIGIBILITY_FOR_DELVE_TIERS_RESPONSE = 0x360351, SMSG_PARTY_INVITE = 0x360056, SMSG_PARTY_KILL_LOG = 0x3601F6, SMSG_PARTY_MEMBER_FULL_STATE = 0x3601F5, SMSG_PARTY_MEMBER_PARTIAL_STATE = 0x3601F4, - SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE = 0x3602F6, + SMSG_PARTY_NOTIFY_LFG_LEADER_CHANGE = 0x3602F7, SMSG_PARTY_UPDATE = 0x36008C, SMSG_PAST_TIME_EVENTS = 0x36005B, SMSG_PAUSE_MIRROR_TIMER = 0x3601AE, SMSG_PENDING_RAID_LOCK = 0x360195, - SMSG_PERKS_PROGRAM_ACTIVITY_COMPLETE = 0x36030A, - SMSG_PERKS_PROGRAM_ACTIVITY_UPDATE = 0x360306, - SMSG_PERKS_PROGRAM_DISABLED = 0x36030B, - SMSG_PERKS_PROGRAM_RESULT = 0x360307, - SMSG_PERKS_PROGRAM_VENDOR_UPDATE = 0x360305, + SMSG_PERKS_PROGRAM_ACTIVITY_COMPLETE = 0x36030B, + SMSG_PERKS_PROGRAM_ACTIVITY_UPDATE = 0x360307, + SMSG_PERKS_PROGRAM_DISABLED = 0x36030C, + SMSG_PERKS_PROGRAM_RESULT = 0x360308, + SMSG_PERKS_PROGRAM_VENDOR_UPDATE = 0x360306, SMSG_PETITION_ALREADY_SIGNED = 0x360037, SMSG_PETITION_RENAME_GUILD_RESPONSE = 0x420042, SMSG_PETITION_SHOW_LIST = 0x36015C, @@ -1844,7 +1852,7 @@ enum OpcodeServer : uint32 SMSG_POWER_UPDATE = 0x360170, SMSG_PRELOAD_CHILD_MAP = 0x36000D, SMSG_PRELOAD_WORLD = 0x36002C, - SMSG_PREPOPULATE_NAME_CACHE = 0x3602C9, + SMSG_PREPOPULATE_NAME_CACHE = 0x3602CA, SMSG_PRE_RESSURECT = 0x360203, SMSG_PRINT_NOTIFICATION = 0x360063, SMSG_PROC_RESIST = 0x3601F7, @@ -1857,7 +1865,7 @@ enum OpcodeServer : uint32 SMSG_PVP_MATCH_START = 0x3C002D, SMSG_PVP_MATCH_STATISTICS = 0x3C0010, SMSG_PVP_OPTIONS_ENABLED = 0x3C0013, - SMSG_PVP_TIER_RECORD = 0x360301, + SMSG_PVP_TIER_RECORD = 0x360302, SMSG_QUERY_BATTLE_PET_NAME_RESPONSE = 0x3A000C, SMSG_QUERY_CREATURE_RESPONSE = 0x3A0006, SMSG_QUERY_GAME_OBJECT_RESPONSE = 0x3A0007, @@ -1892,10 +1900,10 @@ enum OpcodeServer : uint32 SMSG_QUEST_POI_QUERY_RESPONSE = 0x4B001D, SMSG_QUEST_POI_UPDATE_RESPONSE = 0x4B001F, SMSG_QUEST_PUSH_RESULT = 0x4B0010, - SMSG_QUEST_SESSION_INFO_RESPONSE = 0x3602EC, - SMSG_QUEST_SESSION_READY_CHECK = 0x3602DA, - SMSG_QUEST_SESSION_READY_CHECK_RESPONSE = 0x3602DB, - SMSG_QUEST_SESSION_RESULT = 0x3602D9, + SMSG_QUEST_SESSION_INFO_RESPONSE = 0x3602ED, + SMSG_QUEST_SESSION_READY_CHECK = 0x3602DB, + SMSG_QUEST_SESSION_READY_CHECK_RESPONSE = 0x3602DC, + SMSG_QUEST_SESSION_RESULT = 0x3602DA, SMSG_QUEST_UPDATE_ADD_CREDIT = 0x4B000C, SMSG_QUEST_UPDATE_ADD_CREDIT_SIMPLE = 0x4B000D, SMSG_QUEST_UPDATE_ADD_PVP_CREDIT = 0x4B000E, @@ -1903,9 +1911,9 @@ enum OpcodeServer : uint32 SMSG_QUEST_UPDATE_FAILED = 0x4B000A, SMSG_QUEST_UPDATE_FAILED_TIMER = 0x4B000B, SMSG_QUEUE_SUMMARY_UPDATE = 0x3602A9, - SMSG_RAF_ACCOUNT_INFO = 0x3602D7, - SMSG_RAF_ACTIVITY_STATE_CHANGED = 0x3602E8, - SMSG_RAF_DEBUG_FRIEND_MONTHS = 0x360338, + SMSG_RAF_ACCOUNT_INFO = 0x3602D8, + SMSG_RAF_ACTIVITY_STATE_CHANGED = 0x3602E9, + SMSG_RAF_DEBUG_FRIEND_MONTHS = 0x360339, SMSG_RAID_DIFFICULTY_SET = 0x360244, SMSG_RAID_GROUP_ONLY = 0x360246, SMSG_RAID_INSTANCE_MESSAGE = 0x3B000A, @@ -1921,7 +1929,9 @@ enum OpcodeServer : uint32 SMSG_REATTACH_RESURRECT = 0x3601E7, SMSG_RECEIVE_PING_UNIT = 0x360039, SMSG_RECEIVE_PING_WORLD_POINT = 0x36003A, - SMSG_RECRAFT_ITEM_RESULT = 0x36032E, + SMSG_RECENT_ALLY_DATA_RESPONSE = 0x360354, + SMSG_RECENT_ALLY_NOTE_UPDATED = 0x360355, + SMSG_RECRAFT_ITEM_RESULT = 0x36032F, SMSG_RECRUIT_A_FRIEND_FAILURE = 0x36015E, SMSG_REFRESH_COMPONENT = 0x3600ED, SMSG_REGIONWIDE_CHARACTER_MAIL_DATA = 0x36001A, @@ -1935,14 +1945,14 @@ enum OpcodeServer : uint32 SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE = 0x3C0015, SMSG_RESET_COMPRESSION_CONTEXT = 0x3D0007, SMSG_RESET_FAILED_NOTIFY = 0x360155, - SMSG_RESET_LAST_LOADED_CONFIG_CVARS = 0x360335, + SMSG_RESET_LAST_LOADED_CONFIG_CVARS = 0x360336, SMSG_RESET_QUEST_POI = 0x4B0020, SMSG_RESET_RANGED_COMBAT_TIMER = 0x3C0023, SMSG_RESET_WEEKLY_CURRENCY = 0x360009, SMSG_RESPEC_WIPE_CONFIRM = 0x3600B0, SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 0x360006, - SMSG_RESPONSE_PERK_PENDING_REWARDS = 0x360308, - SMSG_RESPONSE_PERK_RECENT_PURCHASES = 0x360309, + SMSG_RESPONSE_PERK_PENDING_REWARDS = 0x360309, + SMSG_RESPONSE_PERK_RECENT_PURCHASES = 0x36030A, SMSG_RESTART_GLOBAL_COOLDOWN = 0x4D0052, SMSG_RESTRICTED_ACCOUNT_WARNING = 0x360052, SMSG_RESUME_CAST = 0x4D002C, @@ -1952,8 +1962,8 @@ enum OpcodeServer : uint32 SMSG_RESURRECT_REQUEST = 0x360012, SMSG_RESYNC_RUNES = 0x4D0050, SMSG_RETURNING_PLAYER_PROMPT = 0x36023F, - SMSG_RETURN_APPLICANT_LIST = 0x3602CD, - SMSG_RETURN_RECRUITING_CLUBS = 0x3602CC, + SMSG_RETURN_APPLICANT_LIST = 0x3602CE, + SMSG_RETURN_RECRUITING_CLUBS = 0x3602CD, SMSG_ROLE_CHANGED_INFORM = 0x360021, SMSG_ROLE_CHOSEN = 0x44001D, SMSG_ROLE_POLL_INFORM = 0x360022, @@ -2000,7 +2010,7 @@ enum OpcodeServer : uint32 SMSG_SET_FACTION_STANDING = 0x3601C8, SMSG_SET_FACTION_VISIBLE = 0x3601C6, SMSG_SET_FLAT_SPELL_MODIFIER = 0x4D0027, - SMSG_SET_INSTANCE_LEAVER = 0x360356, + SMSG_SET_INSTANCE_LEAVER = 0x36035A, SMSG_SET_ITEM_PURCHASE_DATA = 0x360033, SMSG_SET_LOOT_METHOD_FAILED = 0x360267, SMSG_SET_MAX_WEEKLY_QUANTITY = 0x360036, @@ -2011,25 +2021,25 @@ enum OpcodeServer : uint32 SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x4A000B, SMSG_SET_PLAY_HOVER_ANIM = 0x360053, SMSG_SET_PROFICIENCY = 0x3601D1, - SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE = 0x3602E0, + SMSG_SET_QUEST_REPLAY_COOLDOWN_OVERRIDE = 0x3602E1, SMSG_SET_SHIPMENT_READY_RESPONSE = 0x40003A, SMSG_SET_SPELL_CHARGES = 0x4D0018, SMSG_SET_TIME_ZONE_INFORMATION = 0x360116, SMSG_SET_VEHICLE_REC_ID = 0x360194, - SMSG_SHADOWLANDS_CAPACITANCE_UPDATE = 0x36030C, + SMSG_SHADOWLANDS_CAPACITANCE_UPDATE = 0x36030D, SMSG_SHIPMENT_FACTION_UPDATE_RESULT = 0x40003B, - SMSG_SHOW_DELVES_COMPANION_CONFIGURATION_UI = 0x36034E, - SMSG_SHOW_DELVES_DISPLAY_UI = 0x36034C, + SMSG_SHOW_DELVES_COMPANION_CONFIGURATION_UI = 0x36034F, + SMSG_SHOW_DELVES_DISPLAY_UI = 0x36034D, SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI = 0x360073, SMSG_SHOW_QUEST_COMPLETION_TEXT = 0x4B0015, SMSG_SHOW_TAXI_NODES = 0x36016B, SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x36020D, - SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE = 0x360318, + SMSG_SOCIAL_CONTRACT_REQUEST_RESPONSE = 0x360319, SMSG_SOCKET_GEMS_FAILURE = 0x3601C4, SMSG_SOCKET_GEMS_SUCCESS = 0x3601C3, SMSG_SPECIAL_MOUNT_ANIM = 0x36013E, - SMSG_SPECTATE_END = 0x36033A, - SMSG_SPECTATE_PLAYER = 0x360339, + SMSG_SPECTATE_END = 0x36033B, + SMSG_SPECTATE_PLAYER = 0x36033A, SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x3601B6, SMSG_SPELL_ABSORB_LOG = 0x4D000C, SMSG_SPELL_CATEGORY_COOLDOWN = 0x4D0006, @@ -2059,7 +2069,7 @@ enum OpcodeServer : uint32 SMSG_SPELL_PREPARE = 0x4D0029, SMSG_SPELL_START = 0x4D002B, SMSG_SPELL_VISUAL_LOAD_SCREEN = 0x360065, - SMSG_SPLASH_SCREEN_SHOW_LATEST = 0x3602F2, + SMSG_SPLASH_SCREEN_SHOW_LATEST = 0x3602F3, SMSG_STAND_STATE_UPDATE = 0x3601BA, SMSG_STARTER_BUILD_ACTIVATE_FAILED = 0x36006B, SMSG_START_ELAPSED_TIMER = 0x3600A0, @@ -2078,16 +2088,17 @@ enum OpcodeServer : uint32 SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED = 0x360023, SMSG_SUMMON_REQUEST = 0x3601BE, SMSG_SUPERCEDED_SPELLS = 0x4D003D, + SMSG_SURVEY_DELIVERED = 0x360357, SMSG_SUSPEND_COMMS = 0x3D0002, SMSG_SUSPEND_TOKEN = 0x360040, - SMSG_SYNC_WOW_ENTITLEMENTS = 0x3602EA, + SMSG_SYNC_WOW_ENTITLEMENTS = 0x3602EB, SMSG_TALENTS_INVOLUNTARILY_RESET = 0x3601B5, SMSG_TAXI_NODE_STATUS = 0x36011B, SMSG_TEXT_EMOTE = 0x360119, SMSG_THREAT_CLEAR = 0x36017A, SMSG_THREAT_REMOVE = 0x360179, SMSG_THREAT_UPDATE = 0x360178, - SMSG_TIMERUNNING_SEASON_ENDED = 0x36034F, + SMSG_TIMERUNNING_SEASON_ENDED = 0x360350, SMSG_TIME_ADJUSTMENT = 0x480001, SMSG_TIME_SYNC_REQUEST = 0x480000, SMSG_TITLE_EARNED = 0x360175, @@ -2114,21 +2125,21 @@ enum OpcodeServer : uint32 SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x360263, SMSG_UNLEARNED_SPELLS = 0x4D003F, SMSG_UNLOAD_CHILD_MAP = 0x36000E, - SMSG_UNSET_INSTANCE_LEAVER = 0x360357, - SMSG_UPDATE_AADC_STATUS_RESPONSE = 0x360302, + SMSG_UNSET_INSTANCE_LEAVER = 0x36035B, + SMSG_UPDATE_AADC_STATUS_RESPONSE = 0x360303, SMSG_UPDATE_ACCOUNT_DATA = 0x3601A6, SMSG_UPDATE_ACCOUNT_DATA_COMPLETE = 0x3601A7, SMSG_UPDATE_ACTION_BUTTONS = 0x360078, - SMSG_UPDATE_BNET_SESSION_KEY = 0x3602BA, + SMSG_UPDATE_BNET_SESSION_KEY = 0x3602BB, SMSG_UPDATE_CAPTURE_POINT = 0x3C0007, - SMSG_UPDATE_CELESTIAL_BODY = 0x3602B6, + SMSG_UPDATE_CELESTIAL_BODY = 0x3602B7, SMSG_UPDATE_CHARACTER_FLAGS = 0x36025B, SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN = 0x360202, SMSG_UPDATE_COOLDOWN = 0x360201, SMSG_UPDATE_CRAFTING_NPC_RECIPES = 0x400038, SMSG_UPDATE_DAILY_MISSION_COUNTER = 0x400021, SMSG_UPDATE_EXPANSION_LEVEL = 0x3600E3, - SMSG_UPDATE_GAME_TIME_STATE = 0x3602BD, + SMSG_UPDATE_GAME_TIME_STATE = 0x3602BE, SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x360148, SMSG_UPDATE_LAST_INSTANCE = 0x360127, SMSG_UPDATE_OBJECT = 0x460000, @@ -2140,16 +2151,16 @@ enum OpcodeServer : uint32 SMSG_USERLIST_REMOVE = 0x3B0010, SMSG_USERLIST_UPDATE = 0x3B0011, SMSG_USE_EQUIPMENT_SET_RESULT = 0x3601EB, - SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE = 0x3602B1, - SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE = 0x3602AF, - SMSG_VAS_GET_SERVICE_STATUS_RESPONSE = 0x3602AE, + SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE = 0x3602B2, + SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE = 0x3602B0, + SMSG_VAS_GET_SERVICE_STATUS_RESPONSE = 0x3602AF, SMSG_VAS_PURCHASE_COMPLETE = 0x360289, SMSG_VAS_PURCHASE_STATE_UPDATE = 0x360288, SMSG_VENDOR_INVENTORY = 0x360051, SMSG_VIGNETTE_UPDATE = 0x4A0010, - SMSG_VOICE_CHANNEL_INFO_RESPONSE = 0x3602B5, - SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE = 0x3602FD, - SMSG_VOICE_LOGIN_RESPONSE = 0x3602B4, + SMSG_VOICE_CHANNEL_INFO_RESPONSE = 0x3602B6, + SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE = 0x3602FE, + SMSG_VOICE_LOGIN_RESPONSE = 0x3602B5, SMSG_VOID_ITEM_SWAP_RESPONSE = 0x4E0004, SMSG_VOID_STORAGE_CONTENTS = 0x4E0001, SMSG_VOID_STORAGE_FAILED = 0x4E0000, @@ -2158,29 +2169,29 @@ enum OpcodeServer : uint32 SMSG_WAIT_QUEUE_FINISH = 0x360003, SMSG_WAIT_QUEUE_UPDATE = 0x360002, SMSG_WARDEN3_DATA = 0x36000B, - SMSG_WARDEN3_DISABLED = 0x3602B8, - SMSG_WARDEN3_ENABLED = 0x3602B7, + SMSG_WARDEN3_DISABLED = 0x3602B9, + SMSG_WARDEN3_ENABLED = 0x3602B8, SMSG_WARFRONT_COMPLETE = 0x3601FA, SMSG_WARGAME_REQUEST_OPPONENT_RESPONSE = 0x3C0012, SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT = 0x3C0011, SMSG_WEATHER = 0x360145, - SMSG_WEEKLY_REWARDS_PROGRESS_RESULT = 0x3602F5, - SMSG_WEEKLY_REWARDS_RESULT = 0x3602F3, - SMSG_WEEKLY_REWARD_CLAIM_RESULT = 0x3602F4, + SMSG_WEEKLY_REWARDS_PROGRESS_RESULT = 0x3602F6, + SMSG_WEEKLY_REWARDS_RESULT = 0x3602F4, + SMSG_WEEKLY_REWARD_CLAIM_RESULT = 0x3602F5, SMSG_WHO = 0x3B0002, SMSG_WHO_IS = 0x360144, - SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME = 0x3602BC, + SMSG_WILL_BE_KICKED_FOR_ADDED_SUBSCRIPTION_TIME = 0x3602BD, SMSG_WORLD_QUEST_UPDATE_RESPONSE = 0x4A0017, SMSG_WORLD_SERVER_INFO = 0x360045, - SMSG_WOW_ENTITLEMENT_NOTIFICATION = 0x3602EB, - SMSG_WOW_LABS_AREA_INFO = 0x36031D, - SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_END = 0x360319, - SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_STATE_CHANGED = 0x36031A, - SMSG_WOW_LABS_PARTY_ERROR = 0x360326, - SMSG_WOW_LABS_SET_AREA_ID_RESULT = 0x36031B, - SMSG_WOW_LABS_SET_PREDICTION_CIRCLE = 0x36031F, - SMSG_WOW_LABS_SET_SELECTED_AREA_ID = 0x36031C, - SMSG_XP_AWARDED_FROM_CURRENCY = 0x360334, + SMSG_WOW_ENTITLEMENT_NOTIFICATION = 0x3602EC, + SMSG_WOW_LABS_AREA_INFO = 0x36031E, + SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_END = 0x36031A, + SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_STATE_CHANGED = 0x36031B, + SMSG_WOW_LABS_PARTY_ERROR = 0x360327, + SMSG_WOW_LABS_SET_AREA_ID_RESULT = 0x36031C, + SMSG_WOW_LABS_SET_PREDICTION_CIRCLE = 0x360320, + SMSG_WOW_LABS_SET_SELECTED_AREA_ID = 0x36031D, + SMSG_XP_AWARDED_FROM_CURRENCY = 0x360335, SMSG_XP_GAIN_ABORTED = 0x360062, SMSG_XP_GAIN_ENABLED = 0x360245, SMSG_ZONE_UNDER_ATTACK = 0x3B000B, @@ -2194,30 +2205,30 @@ enum OpcodeServer : uint32 SMSG_ARENA_TEAM_STATS = UNKNOWN_OPCODE, }; -inline constexpr std::size_t NUM_SMSG_OPCODES = 1479; +inline constexpr std::size_t NUM_SMSG_OPCODES = 1484; inline constexpr std::ptrdiff_t GetOpcodeArrayIndex(OpcodeServer opcode) { uint32 idInGroup = opcode & 0xFFFF; switch (opcode >> 16) { - case 0x36: return idInGroup < 857 ? idInGroup + 0 : -1; - case 0x37: return idInGroup < 5 ? idInGroup + 857 : -1; - case 0x3A: return idInGroup < 18 ? idInGroup + 862 : -1; - case 0x3B: return idInGroup < 36 ? idInGroup + 880 : -1; - case 0x3C: return idInGroup < 49 ? idInGroup + 916 : -1; - case 0x3D: return idInGroup < 11 ? idInGroup + 965 : -1; - case 0x3E: return idInGroup < 12 ? idInGroup + 976 : -1; - case 0x40: return idInGroup < 82 ? idInGroup + 988 : -1; - case 0x42: return idInGroup < 71 ? idInGroup + 1070 : -1; - case 0x44: return idInGroup < 33 ? idInGroup + 1141 : -1; - case 0x46: return idInGroup < 1 ? idInGroup + 1174 : -1; - case 0x48: return idInGroup < 120 ? idInGroup + 1175 : -1; - case 0x4A: return idInGroup < 49 ? idInGroup + 1295 : -1; - case 0x4B: return idInGroup < 41 ? idInGroup + 1344 : -1; - case 0x4D: return idInGroup < 85 ? idInGroup + 1385 : -1; - case 0x4E: return idInGroup < 8 ? idInGroup + 1470 : -1; - case 0x50: return idInGroup < 1 ? idInGroup + 1478 : -1; + case 0x36: return idInGroup < 862 ? idInGroup + 0 : -1; + case 0x37: return idInGroup < 5 ? idInGroup + 862 : -1; + case 0x3A: return idInGroup < 18 ? idInGroup + 867 : -1; + case 0x3B: return idInGroup < 36 ? idInGroup + 885 : -1; + case 0x3C: return idInGroup < 49 ? idInGroup + 921 : -1; + case 0x3D: return idInGroup < 11 ? idInGroup + 970 : -1; + case 0x3E: return idInGroup < 12 ? idInGroup + 981 : -1; + case 0x40: return idInGroup < 82 ? idInGroup + 993 : -1; + case 0x42: return idInGroup < 71 ? idInGroup + 1075 : -1; + case 0x44: return idInGroup < 33 ? idInGroup + 1146 : -1; + case 0x46: return idInGroup < 1 ? idInGroup + 1179 : -1; + case 0x48: return idInGroup < 120 ? idInGroup + 1180 : -1; + case 0x4A: return idInGroup < 49 ? idInGroup + 1300 : -1; + case 0x4B: return idInGroup < 41 ? idInGroup + 1349 : -1; + case 0x4D: return idInGroup < 85 ? idInGroup + 1390 : -1; + case 0x4E: return idInGroup < 8 ? idInGroup + 1475 : -1; + case 0x50: return idInGroup < 1 ? idInGroup + 1483 : -1; default: return -1; } } diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 442e1495da3..409696dafe4 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -869,14 +869,17 @@ enum AccountDataType GLOBAL_EDIT_MODE_CACHE = 13, PER_CHARACTER_EDIT_MODE_CACHE = 14, GLOBAL_FRONTEND_CHAT_SETTINGS = 15, - GLOBAL_CHARACTER_LIST_ORDER = 16 + GLOBAL_CHARACTER_LIST_ORDER = 16, + GLOBAL_COOLDOWN_MANAGER = 17, + PER_CHARACTER_COOLDOWN_MANAGER2 = 18, + GLOBAL_SHOP2_PENDING_ORDERS = 19 }; -#define NUM_ACCOUNT_DATA_TYPES 17 +#define NUM_ACCOUNT_DATA_TYPES 20 -#define ALL_ACCOUNT_DATA_CACHE_MASK 0x0001FFFFu -#define GLOBAL_CACHE_MASK 0x0001A515u -#define PER_CHARACTER_CACHE_MASK 0x00005AEAu +#define ALL_ACCOUNT_DATA_CACHE_MASK 0x000FFFFFu +#define GLOBAL_CACHE_MASK 0x000BA515u +#define PER_CHARACTER_CACHE_MASK 0x00045AEAu struct AccountData { |
