aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDDuarte <dnpd.dd@gmail.com>2014-09-02 18:31:23 +0100
committerDDuarte <dnpd.dd@gmail.com>2014-09-02 18:31:23 +0100
commite8bd10c5a26d0d935a3db04f3e68ba65f24357b9 (patch)
treeac0119e506f2f348f117041c9eae73d2135d13b2
parent4dbe318194f5633370ad738fbbb71696cbc979f2 (diff)
Core/Net: Fix structure of SMSG_GUILD_ACHIEVEMENT_DATA when there are no achievements to send
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 06e19b6ebd1..2ed191808bf 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -2034,8 +2034,13 @@ template<>
void AchievementMgr<Guild>::SendAllAchievementData(Player* receiver) const
{
VisibleAchievementPred isVisible;
- WorldPacket data(SMSG_GUILD_ACHIEVEMENT_DATA, m_completedAchievements.size() * (4 + 4) + 3);
- data.WriteBits(std::count_if(m_completedAchievements.begin(), m_completedAchievements.end(), isVisible), 23);
+
+ auto count = std::count_if(m_completedAchievements.begin(), m_completedAchievements.end(), isVisible);
+
+ WorldPacket data(SMSG_GUILD_ACHIEVEMENT_DATA, count * (4 + 4) + 3);
+ data.WriteBits(count, 23);
+ data.FlushBits();
+
for (CompletedAchievementMap::const_iterator itr = m_completedAchievements.begin(); itr != m_completedAchievements.end(); ++itr)
{
if (!isVisible(*itr))