diff options
| author | Shauren <shauren.trinity@gmail.com> | 2021-04-09 20:57:47 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-04-09 20:57:47 +0200 |
| commit | f2202869f71f5a1a35191de303ee5166e4275884 (patch) | |
| tree | 594ee97fbcd8a840ca96396ba0be84289abf70fb /src/server/game/Server/Packets | |
| parent | f759809d9d4364bc1d988e4390d3d5a33d5469e9 (diff) | |
Core/PacketIO: Updated packet structures to 9.0.5
Diffstat (limited to 'src/server/game/Server/Packets')
| -rw-r--r-- | src/server/game/Server/Packets/AchievementPackets.cpp | 1 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/ChatPackets.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/ChatPackets.h | 4 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/GarrisonPackets.cpp | 7 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/GarrisonPackets.h | 3 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/HotfixPackets.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/HotfixPackets.h | 7 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.h | 5 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/NPCPackets.cpp | 1 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/NPCPackets.h | 1 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/PacketUtilities.h | 4 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/TokenPackets.cpp | 2 |
13 files changed, 45 insertions, 19 deletions
diff --git a/src/server/game/Server/Packets/AchievementPackets.cpp b/src/server/game/Server/Packets/AchievementPackets.cpp index 945ad376645..0ff94bd5bc2 100644 --- a/src/server/game/Server/Packets/AchievementPackets.cpp +++ b/src/server/game/Server/Packets/AchievementPackets.cpp @@ -158,6 +158,7 @@ WorldPacket const* WorldPackets::Achievement::GuildCriteriaUpdate::Write() _worldPacket << progress.DateCreated; _worldPacket << progress.DateStarted; _worldPacket.AppendPackedTime(progress.DateUpdated); + _worldPacket << uint32(0); // this is a hack. this is a packed time written as int64 (progress.DateUpdated) _worldPacket << uint64(progress.Quantity); _worldPacket << progress.PlayerGUID; _worldPacket << int32(progress.Flags); diff --git a/src/server/game/Server/Packets/ChatPackets.cpp b/src/server/game/Server/Packets/ChatPackets.cpp index 9b96753af8b..752b6b144c4 100644 --- a/src/server/game/Server/Packets/ChatPackets.cpp +++ b/src/server/game/Server/Packets/ChatPackets.cpp @@ -197,7 +197,10 @@ WorldPacket const* WorldPackets::Chat::Chat::Write() WorldPacket const* WorldPackets::Chat::Emote::Write() { _worldPacket << Guid; - _worldPacket << EmoteID; + _worldPacket << uint32(EmoteID); + _worldPacket << uint32(SpellVisualKitIDs.size()); + if (!SpellVisualKitIDs.empty()) + _worldPacket.append(SpellVisualKitIDs.data(), SpellVisualKitIDs.size()); return &_worldPacket; } @@ -207,6 +210,9 @@ void WorldPackets::Chat::CTextEmote::Read() _worldPacket >> Target; _worldPacket >> EmoteID; _worldPacket >> SoundIndex; + SpellVisualKitIDs.resize(_worldPacket.read<uint32>()); + for (int32& spellVisualKitId : SpellVisualKitIDs) + _worldPacket >> spellVisualKitId; } WorldPacket const* WorldPackets::Chat::STextEmote::Write() diff --git a/src/server/game/Server/Packets/ChatPackets.h b/src/server/game/Server/Packets/ChatPackets.h index bd93a72a75d..ad6fc825bf7 100644 --- a/src/server/game/Server/Packets/ChatPackets.h +++ b/src/server/game/Server/Packets/ChatPackets.h @@ -180,7 +180,8 @@ namespace WorldPackets WorldPacket const* Write() override; ObjectGuid Guid; - int32 EmoteID = 0; + uint32 EmoteID = 0; + std::vector<int32> SpellVisualKitIDs; }; class CTextEmote final : public ClientPacket @@ -193,6 +194,7 @@ namespace WorldPackets ObjectGuid Target; int32 EmoteID = 0; int32 SoundIndex = -1; + Array<int32, 2> SpellVisualKitIDs; }; class STextEmote final : public ServerPacket diff --git a/src/server/game/Server/Packets/GarrisonPackets.cpp b/src/server/game/Server/Packets/GarrisonPackets.cpp index 6129538fc3f..87e4cf56fa3 100644 --- a/src/server/game/Server/Packets/GarrisonPackets.cpp +++ b/src/server/game/Server/Packets/GarrisonPackets.cpp @@ -91,12 +91,12 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonFollower const& follower) ByteBuffer& operator<<(ByteBuffer& data, GarrisonMission const& mission) { data << uint64(mission.DbID); - data << uint32(mission.MissionRecID); data << mission.OfferTime; data << mission.OfferDuration; data << mission.StartTime; data << mission.TravelDuration; data << mission.MissionDuration; + data << uint32(mission.MissionRecID); data << uint32(mission.MissionState); data << uint32(mission.SuccessChance); data << uint32(mission.Flags); @@ -125,8 +125,8 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonMissionReward const& missionRew ByteBuffer& operator<<(ByteBuffer& data, GarrisonMissionBonusAbility const& areaBonus) { - data << uint32(areaBonus.GarrMssnBonusAbilityID); data << areaBonus.StartTime; + data << uint32(areaBonus.GarrMssnBonusAbilityID); return data; } @@ -174,8 +174,8 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonCollection const& collection) ByteBuffer& operator<<(ByteBuffer& data, GarrisonEventEntry const& event) { + data << int64(event.EventValue); data << int32(event.EntryID); - data << int32(event.EventValue); return data; } @@ -214,6 +214,7 @@ ByteBuffer& operator<<(ByteBuffer& data, GarrisonInfo const& garrison) data << uint32(garrison.ArchivedMissions.size()); data << int32(garrison.NumFollowerActivationsRemaining); data << uint32(garrison.NumMissionsStartedToday); + data << int32(garrison.MinAutoTroopLevel); for (GarrisonPlotInfo* plot : garrison.Plots) data << *plot; diff --git a/src/server/game/Server/Packets/GarrisonPackets.h b/src/server/game/Server/Packets/GarrisonPackets.h index dbddb791ea2..27dc258aaf0 100644 --- a/src/server/game/Server/Packets/GarrisonPackets.h +++ b/src/server/game/Server/Packets/GarrisonPackets.h @@ -165,7 +165,7 @@ namespace WorldPackets struct GarrisonEventEntry { int32 EntryID = 0; - int32 EventValue = 0; + int64 EventValue = 0; }; struct GarrisonEventList @@ -181,6 +181,7 @@ namespace WorldPackets uint32 GarrSiteLevelID = 0; uint32 NumFollowerActivationsRemaining = 0; uint32 NumMissionsStartedToday = 0; // might mean something else, but sending 0 here enables follower abilities "Increase success chance of the first mission of the day by %." + int32 MinAutoTroopLevel = 0; std::vector<GarrisonPlotInfo*> Plots; std::vector<GarrisonBuildingInfo const*> Buildings; std::vector<GarrisonFollower const*> Followers; diff --git a/src/server/game/Server/Packets/HotfixPackets.cpp b/src/server/game/Server/Packets/HotfixPackets.cpp index 6a6a42ade75..4c7a9009b5c 100644 --- a/src/server/game/Server/Packets/HotfixPackets.cpp +++ b/src/server/game/Server/Packets/HotfixPackets.cpp @@ -65,9 +65,9 @@ WorldPacket const* DBReply::Write() WorldPacket const* AvailableHotfixes::Write() { _worldPacket << int32(VirtualRealmAddress); - _worldPacket << uint32(HotfixCount); - for (DB2Manager::HotfixRecord const& hotfixRecord : Hotfixes) - _worldPacket << hotfixRecord; + _worldPacket << uint32(Hotfixes.size()); + for (DB2Manager::HotfixContainer::value_type const& hotfixRecord : Hotfixes) + _worldPacket << int32(hotfixRecord.first); return &_worldPacket; } @@ -82,8 +82,8 @@ void HotfixRequest::Read() throw PacketArrayMaxCapacityException(hotfixCount, sDB2Manager.GetHotfixCount()); Hotfixes.resize(hotfixCount); - for (DB2Manager::HotfixRecord& hotfixRecord : Hotfixes) - _worldPacket >> hotfixRecord; + for (int32& hotfixId : Hotfixes) + _worldPacket >> hotfixId; } ByteBuffer& operator<<(ByteBuffer& data, HotfixConnect::HotfixData const& hotfixData) diff --git a/src/server/game/Server/Packets/HotfixPackets.h b/src/server/game/Server/Packets/HotfixPackets.h index 9c6bf084e67..385afb32de4 100644 --- a/src/server/game/Server/Packets/HotfixPackets.h +++ b/src/server/game/Server/Packets/HotfixPackets.h @@ -61,13 +61,12 @@ namespace WorldPackets class AvailableHotfixes final : public ServerPacket { public: - AvailableHotfixes(int32 virtualRealmAddress, uint32 hotfixCount, DB2Manager::HotfixContainer const& hotfixes) - : ServerPacket(SMSG_AVAILABLE_HOTFIXES), VirtualRealmAddress(virtualRealmAddress), HotfixCount(hotfixCount), Hotfixes(hotfixes) { } + AvailableHotfixes(int32 virtualRealmAddress, DB2Manager::HotfixContainer const& hotfixes) + : ServerPacket(SMSG_AVAILABLE_HOTFIXES), VirtualRealmAddress(virtualRealmAddress), Hotfixes(hotfixes) { } WorldPacket const* Write() override; int32 VirtualRealmAddress; - uint32 HotfixCount; DB2Manager::HotfixContainer const& Hotfixes; }; @@ -80,7 +79,7 @@ namespace WorldPackets uint32 ClientBuild = 0; uint32 DataBuild = 0; - std::vector<DB2Manager::HotfixRecord> Hotfixes; + std::vector<int32> Hotfixes; }; class HotfixConnect final : public ServerPacket diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index 85d2d2823cd..dec97e556ab 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -631,9 +631,20 @@ WorldPacket const* WorldPackets::Misc::AccountHeirloomUpdate::Write() return &_worldPacket; } +void WorldPackets::Misc::MountSpecial::Read() +{ + SpellVisualKitIDs.resize(_worldPacket.read<uint32>()); + for (int32& spellVisualKitId : SpellVisualKitIDs) + _worldPacket >> spellVisualKitId; +} + WorldPacket const* WorldPackets::Misc::SpecialMountAnim::Write() { _worldPacket << UnitGUID; + _worldPacket << uint32(SpellVisualKitIDs.size()); + if (!SpellVisualKitIDs.empty()) + _worldPacket.append(SpellVisualKitIDs.data(), SpellVisualKitIDs.size()); + return &_worldPacket; } diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index 1f04b8d09ba..7b0e25514ae 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -815,7 +815,9 @@ namespace WorldPackets public: MountSpecial(WorldPacket&& packet) : ClientPacket(CMSG_MOUNT_SPECIAL_ANIM, std::move(packet)) { } - void Read() override { } + void Read() override; + + Array<int32, 2> SpellVisualKitIDs; }; class SpecialMountAnim final : public ServerPacket @@ -826,6 +828,7 @@ namespace WorldPackets WorldPacket const* Write() override; ObjectGuid UnitGUID; + std::vector<int32> SpellVisualKitIDs; }; class CrossedInebriationThreshold final : public ServerPacket diff --git a/src/server/game/Server/Packets/NPCPackets.cpp b/src/server/game/Server/Packets/NPCPackets.cpp index 951a5f152b8..1f8d2dcec60 100644 --- a/src/server/game/Server/Packets/NPCPackets.cpp +++ b/src/server/game/Server/Packets/NPCPackets.cpp @@ -183,6 +183,7 @@ WorldPacket const* GossipPOI::Write() _worldPacket << Pos; _worldPacket << int32(Icon); _worldPacket << int32(Importance); + _worldPacket << int32(Unknown905); _worldPacket.WriteBits(Flags, 14); _worldPacket.WriteBits(Name.length(), 6); _worldPacket.FlushBits(); diff --git a/src/server/game/Server/Packets/NPCPackets.h b/src/server/game/Server/Packets/NPCPackets.h index b3f85e218ed..3bfa84438b3 100644 --- a/src/server/game/Server/Packets/NPCPackets.h +++ b/src/server/game/Server/Packets/NPCPackets.h @@ -206,6 +206,7 @@ namespace WorldPackets TaggedPosition<Position::XY> Pos; int32 Icon = 0; int32 Importance = 0; + int32 Unknown905 = 0; std::string Name; }; diff --git a/src/server/game/Server/Packets/PacketUtilities.h b/src/server/game/Server/Packets/PacketUtilities.h index 522e91c43d6..8b119cf1f61 100644 --- a/src/server/game/Server/Packets/PacketUtilities.h +++ b/src/server/game/Server/Packets/PacketUtilities.h @@ -103,7 +103,7 @@ namespace WorldPackets storage_type _storage; }; - template<typename Underlying = uint32> + template<typename Underlying = int64> class Timestamp { public: @@ -149,7 +149,7 @@ namespace WorldPackets time_t _value = time_t(0); }; - template<typename ChronoDuration, typename Underlying = uint32> + template<typename ChronoDuration, typename Underlying = int64> class Duration { public: diff --git a/src/server/game/Server/Packets/TokenPackets.cpp b/src/server/game/Server/Packets/TokenPackets.cpp index dc1b6376b48..5b9182d0c27 100644 --- a/src/server/game/Server/Packets/TokenPackets.cpp +++ b/src/server/game/Server/Packets/TokenPackets.cpp @@ -31,8 +31,8 @@ WorldPacket const* WorldPackets::Token::CommerceTokenGetLogResponse::Write() { _worldPacket << auctionableTokenAuctionable.UnkInt1; _worldPacket << auctionableTokenAuctionable.UnkInt2; - _worldPacket << auctionableTokenAuctionable.Owner; _worldPacket << auctionableTokenAuctionable.BuyoutPrice; + _worldPacket << auctionableTokenAuctionable.Owner; _worldPacket << auctionableTokenAuctionable.DurationLeft; } |
