From 88df8c8e20b6dee139530c62109bfafcddc3f109 Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 19 Jan 2015 00:32:11 +0100 Subject: Core/Achievements: Updated and enabled all previously implemented achievement packets --- src/server/game/Guilds/Guild.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/server/game/Guilds/Guild.cpp') diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index a0ba2d407fe..9aa87448ceb 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1550,19 +1550,20 @@ void Guild::HandleSetAchievementTracking(WorldSession* session, std::set { std::set criteriaIds; - /* - for (std::set::iterator achievementId = achievementIds.begin(); achievementId != achievementIds.end(); ++achievementId) + for (uint32 achievementId : achievementIds) { - if (AchievementCriteriaEntryList const* cList = sAchievementMgr->GetAchievementCriteriaByAchievement(*achievementId)) + if (AchievementEntry const* achievement = sAchievementMgr->GetAchievement(achievementId)) { - for (AchievementCriteriaEntryList::const_iterator itr = cList->begin(); itr != cList->end(); ++itr) + if (AchievementCriteriaTree const* tree = sAchievementMgr->GetAchievementCriteriaTree(achievement->CriteriaTree)) { - AchievementCriteriaTree const* criteria = *itr; - criteriaIds.insert(criteria->ID); + sAchievementMgr->WalkCriteriaTree(tree, [&criteriaIds](AchievementCriteriaTree const* node) + { + if (node->Criteria) + criteriaIds.insert(node->Criteria->ID); + }); } } } - */ member->SetTrackedCriteriaIds(criteriaIds); m_achievementMgr.SendAllTrackedCriterias(player, member->GetTrackedCriteriaIds()); @@ -2641,7 +2642,7 @@ void Guild::BroadcastPacket(WorldPacket const* packet) const player->GetSession()->SendPacket(packet); } -void Guild::BroadcastPacketIfTrackingAchievement(WorldPacket* packet, uint32 criteriaId) const +void Guild::BroadcastPacketIfTrackingAchievement(WorldPacket const* packet, uint32 criteriaId) const { for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr) if (itr->second->IsTrackingCriteriaId(criteriaId)) -- cgit v1.2.3