aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Guilds/Guild.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-01-19 00:32:11 +0100
committerShauren <shauren.trinity@gmail.com>2015-01-19 00:32:11 +0100
commit88df8c8e20b6dee139530c62109bfafcddc3f109 (patch)
treeb6aefaf40bb21c14cbfbd7405f66a0006cf8e738 /src/server/game/Guilds/Guild.cpp
parent4ea3b7794f8f2c94f7a11b56a9cbfec67ba3f6c1 (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.cpp17
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))