aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2011_12_10_01_world_achievement_criteria_data.sql23
-rwxr-xr-xsrc/server/game/Achievements/AchievementMgr.cpp16
2 files changed, 23 insertions, 16 deletions
diff --git a/sql/updates/world/2011_12_10_01_world_achievement_criteria_data.sql b/sql/updates/world/2011_12_10_01_world_achievement_criteria_data.sql
new file mode 100644
index 00000000000..70e4a4fc544
--- /dev/null
+++ b/sql/updates/world/2011_12_10_01_world_achievement_criteria_data.sql
@@ -0,0 +1,23 @@
+DELETE FROM `achievement_criteria_data` WHERE criteria_id IN (5220, 5215, 5218, 5221, 5216, 5219, 5213, 5018, 5217, 5214, 5233, 5235, 5232, 5234, 5238, 5236, 5229, 5237, 5230, 5231);
+-- Classes
+INSERT INTO `achievement_criteria_data` VALUES (5220, 2, 1, 0, ''); -- Realm First! Level 80 Warrior
+INSERT INTO `achievement_criteria_data` VALUES (5215, 2, 2, 0, ''); -- Realm First! Level 80 Paladin
+INSERT INTO `achievement_criteria_data` VALUES (5218, 2, 3, 0, ''); -- Realm First! Level 80 Hunter
+INSERT INTO `achievement_criteria_data` VALUES (5221, 2, 4, 0, ''); -- Realm First! Level 80 Rogue
+INSERT INTO `achievement_criteria_data` VALUES (5216, 2, 5, 0, ''); -- Realm First! Level 80 Priest
+INSERT INTO `achievement_criteria_data` VALUES (5219, 2, 6, 0, ''); -- Realm First! Level 80 Death Knight
+INSERT INTO `achievement_criteria_data` VALUES (5213, 2, 7, 0, ''); -- Realm First! Level 80 Shaman
+INSERT INTO `achievement_criteria_data` VALUES (5018, 2, 8, 0, ''); -- Realm First! Level 80 Mage
+INSERT INTO `achievement_criteria_data` VALUES (5217, 2, 9, 0, ''); -- Realm First! Level 80 Warlock
+INSERT INTO `achievement_criteria_data` VALUES (5214, 2, 11, 0, ''); -- Realm First! Level 80 Druid
+-- Races
+INSERT INTO `achievement_criteria_data` VALUES (5233, 2, 0, 1, ''); -- Realm First! Level 80 Human
+INSERT INTO `achievement_criteria_data` VALUES (5235, 2, 0, 2, ''); -- Realm First! Level 80 Orc
+INSERT INTO `achievement_criteria_data` VALUES (5232, 2, 0, 3, ''); -- Realm First! Level 80 Dwarf
+INSERT INTO `achievement_criteria_data` VALUES (5234, 2, 0, 4, ''); -- Realm First! Level 80 Night Elf
+INSERT INTO `achievement_criteria_data` VALUES (5238, 2, 0, 5, ''); -- Realm First! Level 80 Undead
+INSERT INTO `achievement_criteria_data` VALUES (5236, 2, 0, 6, ''); -- Realm First! Level 80 Tauren
+INSERT INTO `achievement_criteria_data` VALUES (5229, 2, 0, 7, ''); -- Realm First! Level 80 Gnome
+INSERT INTO `achievement_criteria_data` VALUES (5237, 2, 0, 8, ''); -- Realm First! Level 80 Troll
+INSERT INTO `achievement_criteria_data` VALUES (5230, 2, 0, 10, ''); -- Realm First! Level 80 Blood Elf
+INSERT INTO `achievement_criteria_data` VALUES (5231, 2, 0, 11, ''); -- Realm First! Level 80 Draenei
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 4b35c9e00f6..a0463227931 100755
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -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: