Core/Achievements: Remove hardcoded ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL criteria datas
This commit is contained in:
@@ -1601,9 +1601,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
|
||||
}
|
||||
}
|
||||
|
||||
static const uint32 achievIdByClass[MAX_CLASSES] = { 0, 459, 465, 462, 458, 464, 461, 467, 460, 463, 0, 466 };
|
||||
static const uint32 achievIdByRace[MAX_RACES] = { 0, 1408, 1410, 1407, 1409, 1413, 1411, 1404, 1412, 0, 1405, 1406 };
|
||||
|
||||
bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achievementCriteria, AchievementEntry const* achievement)
|
||||
{
|
||||
// counter can never complete
|
||||
@@ -1628,20 +1625,7 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE:
|
||||
return progress->counter >= achievementCriteria->kill_creature.creatureCount;
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL:
|
||||
{
|
||||
// skip wrong class achievements
|
||||
for (int i = 1; i < MAX_CLASSES; ++i)
|
||||
if (achievIdByClass[i] == achievement->ID && i != GetPlayer()->getClass())
|
||||
return false;
|
||||
|
||||
// skip wrong race achievements
|
||||
for (int i = 1; i < MAX_RACES; ++i)
|
||||
if (achievIdByRace[i] == achievement->ID && i != GetPlayer()->getRace())
|
||||
return false;
|
||||
|
||||
// appropriate class/race or not class/race specific
|
||||
return progress->counter >= achievementCriteria->reach_level.level;
|
||||
}
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL:
|
||||
return progress->counter >= achievementCriteria->reach_skill_level.skillLevel;
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT:
|
||||
|
||||
Reference in New Issue
Block a user