aboutsummaryrefslogtreecommitdiff
path: root/src/game/AchievementMgr.cpp
diff options
context:
space:
mode:
authorXanadu <none@none>2010-03-15 04:37:28 +0100
committerXanadu <none@none>2010-03-15 04:37:28 +0100
commitf9566e08ac05fd0f3cfca069e0fed4f885550efb (patch)
tree72c346ff95437a0318fc926e2f1c2ecfbbde081b /src/game/AchievementMgr.cpp
parent8cc3d2ad7f01cf5a707f72fbd6e7d79cb7c02f53 (diff)
Properly implemented CONDITION_ACHIEVEMENT for the DB gossip system.
--HG-- branch : trunk
Diffstat (limited to 'src/game/AchievementMgr.cpp')
-rw-r--r--src/game/AchievementMgr.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp
index 278166f68e0..b45c4ad681e 100644
--- a/src/game/AchievementMgr.cpp
+++ b/src/game/AchievementMgr.cpp
@@ -1596,7 +1596,7 @@ void AchievementMgr::CompletedCriteriaFor(AchievementEntry const* achievement)
return;
// already completed and stored
- if (m_completedAchievements.find(achievement->ID)!=m_completedAchievements.end())
+ if (HasAchieved(achievement))
return;
if (IsCompletedAchievement(achievement))
@@ -1735,7 +1735,7 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
if(!sWorld.getConfig(CONFIG_GM_ALLOW_ACHIEVEMENT_GAINS) && m_player->GetSession()->GetSecurity() > SEC_PLAYER)
return;
- if(achievement->flags & ACHIEVEMENT_FLAG_COUNTER || m_completedAchievements.find(achievement->ID)!=m_completedAchievements.end())
+ if(achievement->flags & ACHIEVEMENT_FLAG_COUNTER || HasAchieved(achievement))
return;
SendAchievementEarned(achievement);
@@ -1894,6 +1894,11 @@ void AchievementMgr::BuildAllDataPacket(WorldPacket *data)
*data << int32(-1);
}
+bool AchievementMgr::HasAchieved(AchievementEntry const* achievement) const
+{
+ return m_completedAchievements.find(achievement->ID) != m_completedAchievements.end();
+}
+
//==========================================================
AchievementCriteriaEntryList const& AchievementGlobalMgr::GetAchievementCriteriaByType(AchievementCriteriaTypes type)
{