diff options
author | DDuarte <dnpd.dd@gmail.com> | 2014-09-02 18:31:23 +0100 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2014-09-02 18:31:23 +0100 |
commit | e8bd10c5a26d0d935a3db04f3e68ba65f24357b9 (patch) | |
tree | ac0119e506f2f348f117041c9eae73d2135d13b2 | |
parent | 4dbe318194f5633370ad738fbbb71696cbc979f2 (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.cpp | 9 |
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)) |