diff options
| author | Xanadu <none@none> | 2010-03-15 04:37:28 +0100 |
|---|---|---|
| committer | Xanadu <none@none> | 2010-03-15 04:37:28 +0100 |
| commit | f9566e08ac05fd0f3cfca069e0fed4f885550efb (patch) | |
| tree | 72c346ff95437a0318fc926e2f1c2ecfbbde081b /src/game/AchievementMgr.cpp | |
| parent | 8cc3d2ad7f01cf5a707f72fbd6e7d79cb7c02f53 (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.cpp | 9 |
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) { |
