aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2014-09-21 10:52:32 +0200
committerShauren <shauren.trinity@gmail.com>2014-09-21 10:52:32 +0200
commite559e6b84409b584d18641defa0c6bc2b9e7a692 (patch)
treec0747968bb1ba2354a2005a5958865f42c7a1bff
parenta259c437b633483bec6f5a3884c475bee8b03fb3 (diff)
Core/AchievementMgr: Fixed build
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 66890693d15..fe8f2056785 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -1395,6 +1395,14 @@ void AchievementMgr<T>::UpdateAchievementCriteria(AchievementCriteriaTypes type,
}
}
+// Only player personal achievements require instance id to check realm firsts
+// Guild restrictions are handled with additionalConditionType/additionalConditionValue
+template<class T>
+static uint32 GetInstanceId(T* /*object*/) { return 0xFFFFFFFF; }
+
+template<>
+static uint32 GetInstanceId(Player* player) { return player->GetInstanceId(); }
+
template<class T>
bool AchievementMgr<T>::IsCompletedCriteria(AchievementCriteriaEntry const* achievementCriteria, AchievementEntry const* achievement)
{
@@ -1408,7 +1416,7 @@ bool AchievementMgr<T>::IsCompletedCriteria(AchievementCriteriaEntry const* achi
if (achievement->flags & (ACHIEVEMENT_FLAG_REALM_FIRST_REACH | ACHIEVEMENT_FLAG_REALM_FIRST_KILL))
{
// someone on this realm has already completed that achievement
- if (sAchievementMgr->IsRealmCompleted(achievement, GetOwner()->GetInstanceId()))
+ if (sAchievementMgr->IsRealmCompleted(achievement, GetInstanceId(GetOwner())))
return false;
}