aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-10-23 18:15:01 +0200
committerShauren <shauren.trinity@gmail.com>2023-10-23 18:15:01 +0200
commit973b5f404f5b7115239a81030ad2f8dff8e165ea (patch)
treede6db7264bc6fa02652b384b4d89245295ab63d5 /src/server/game/Server
parent1faa603d16cb51e581e43a560e54ec6e3ba8a9a4 (diff)
Core/DataStores: Don't send hotfix ids in SMSG_AVAILABLE_HOTFIXES that don't have a hotfix blob for client locale
Closes #29378
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/HotfixPackets.cpp6
-rw-r--r--src/server/game/Server/Packets/HotfixPackets.h7
2 files changed, 7 insertions, 6 deletions
diff --git a/src/server/game/Server/Packets/HotfixPackets.cpp b/src/server/game/Server/Packets/HotfixPackets.cpp
index 9524a493a1c..3e22cb39e60 100644
--- a/src/server/game/Server/Packets/HotfixPackets.cpp
+++ b/src/server/game/Server/Packets/HotfixPackets.cpp
@@ -78,10 +78,12 @@ WorldPacket const* DBReply::Write()
WorldPacket const* AvailableHotfixes::Write()
{
+ _worldPacket.reserve(4 + 4 + sizeof(DB2Manager::HotfixId) * Hotfixes.size());
+
_worldPacket << int32(VirtualRealmAddress);
_worldPacket << uint32(Hotfixes.size());
- for (DB2Manager::HotfixContainer::value_type const& hotfixRecord : Hotfixes)
- _worldPacket << hotfixRecord.second.front().ID;
+ for (DB2Manager::HotfixId const& hotfixId : Hotfixes)
+ _worldPacket << hotfixId;
return &_worldPacket;
}
diff --git a/src/server/game/Server/Packets/HotfixPackets.h b/src/server/game/Server/Packets/HotfixPackets.h
index 02d0cb9e453..7d85637bf26 100644
--- a/src/server/game/Server/Packets/HotfixPackets.h
+++ b/src/server/game/Server/Packets/HotfixPackets.h
@@ -60,13 +60,12 @@ namespace WorldPackets
class AvailableHotfixes final : public ServerPacket
{
public:
- AvailableHotfixes(int32 virtualRealmAddress, DB2Manager::HotfixContainer const& hotfixes)
- : ServerPacket(SMSG_AVAILABLE_HOTFIXES), VirtualRealmAddress(virtualRealmAddress), Hotfixes(hotfixes) { }
+ AvailableHotfixes() : ServerPacket(SMSG_AVAILABLE_HOTFIXES, 0) { }
WorldPacket const* Write() override;
- int32 VirtualRealmAddress;
- DB2Manager::HotfixContainer const& Hotfixes;
+ int32 VirtualRealmAddress = 0;
+ std::set<DB2Manager::HotfixId> Hotfixes;
};
class HotfixRequest final : public ClientPacket