From e8bd10c5a26d0d935a3db04f3e68ba65f24357b9 Mon Sep 17 00:00:00 2001 From: DDuarte Date: Tue, 2 Sep 2014 18:31:23 +0100 Subject: Core/Net: Fix structure of SMSG_GUILD_ACHIEVEMENT_DATA when there are no achievements to send --- src/server/game/Achievements/AchievementMgr.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src') 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::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)) -- cgit v1.2.3