aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Packets
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-04-09 20:57:47 +0200
committerShauren <shauren.trinity@gmail.com>2021-04-09 20:57:47 +0200
commitf2202869f71f5a1a35191de303ee5166e4275884 (patch)
tree594ee97fbcd8a840ca96396ba0be84289abf70fb /src/server/game/Server/Packets
parentf759809d9d4364bc1d988e4390d3d5a33d5469e9 (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.cpp1
-rw-r--r--src/server/game/Server/Packets/ChatPackets.cpp8
-rw-r--r--src/server/game/Server/Packets/ChatPackets.h4
-rw-r--r--src/server/game/Server/Packets/GarrisonPackets.cpp7
-rw-r--r--src/server/game/Server/Packets/GarrisonPackets.h3
-rw-r--r--src/server/game/Server/Packets/HotfixPackets.cpp10
-rw-r--r--src/server/game/Server/Packets/HotfixPackets.h7
-rw-r--r--src/server/game/Server/Packets/MiscPackets.cpp11
-rw-r--r--src/server/game/Server/Packets/MiscPackets.h5
-rw-r--r--src/server/game/Server/Packets/NPCPackets.cpp1
-rw-r--r--src/server/game/Server/Packets/NPCPackets.h1
-rw-r--r--src/server/game/Server/Packets/PacketUtilities.h4
-rw-r--r--src/server/game/Server/Packets/TokenPackets.cpp2
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;
}