diff options
| author | Shauren <shauren.trinity@gmail.com> | 2015-01-19 00:32:11 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2015-01-19 00:32:11 +0100 |
| commit | 88df8c8e20b6dee139530c62109bfafcddc3f109 (patch) | |
| tree | b6aefaf40bb21c14cbfbd7405f66a0006cf8e738 /src/server/game/Guilds/Guild.cpp | |
| parent | 4ea3b7794f8f2c94f7a11b56a9cbfec67ba3f6c1 (diff) | |
Core/Achievements: Updated and enabled all previously implemented achievement packets
Diffstat (limited to 'src/server/game/Guilds/Guild.cpp')
| -rw-r--r-- | src/server/game/Guilds/Guild.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
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<uint32> { std::set<uint32> criteriaIds; - /* - for (std::set<uint32>::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)) |
