diff options
| author | megamage <none@none> | 2009-06-07 20:52:00 -0500 |
|---|---|---|
| committer | megamage <none@none> | 2009-06-07 20:52:00 -0500 |
| commit | 5a2745caacb0f26f3c78db433d4226a3116538da (patch) | |
| tree | c352fa7da309db0a11d0153ba58196c984028663 /src/game/AchievementMgr.cpp | |
| parent | 9ef844d23d183c951d53e21c8cbe091f1133386b (diff) | |
[7974] Added two more achievement_criteria for `achievement_criteria_data` (T_LEVEL, T_GENDER) Author: DerDyddye
Its required for implementing new cases of 110 achievement criteria in 3.1.x.
Ofc, this required DB support.
--HG--
branch : trunk
Diffstat (limited to 'src/game/AchievementMgr.cpp')
| -rw-r--r-- | src/game/AchievementMgr.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index c6ffd223e98..c2f46fff39f 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -171,6 +171,22 @@ bool AchievementCriteriaData::IsValid(AchievementCriteriaEntry const* criteria) return false; } return true; + case ACHIEVEMENT_CRITERIA_DATA_TYPE_T_LEVEL: + if(level.minlevel < 0 || level.minlevel > STRONG_MAX_LEVEL) + { + sLog.outErrorDb( "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_T_LEVEL (%u) have wrong minlevel in value1 (%u), ignore.", + criteria->ID, criteria->requiredType,dataType,level.minlevel); + return false; + } + return true; + case ACHIEVEMENT_CRITERIA_DATA_TYPE_T_GENDER: + if(gender.gender > GENDER_NONE) + { + sLog.outErrorDb( "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_T_GENDER (%u) have wrong gender in value1 (%u), ignore.", + criteria->ID, criteria->requiredType,dataType,gender.gender); + return false; + } + return true; default: sLog.outErrorDb( "Table `achievement_criteria_data` (Entry: %u Type: %u) have data for not supported data type (%u), ignore.", criteria->ID, criteria->requiredType,dataType); return false; @@ -219,8 +235,15 @@ bool AchievementCriteriaData::Meets(Player const* source, Unit const* target, ui return target && target->HasAuraEffect(aura.spell_id,aura.effect_idx); case ACHIEVEMENT_CRITERIA_DATA_TYPE_VALUE: return miscvalue1 >= value.minvalue; + case ACHIEVEMENT_CRITERIA_DATA_TYPE_T_LEVEL: + if (!target) + return false; + return target->getLevel() >= level.minlevel; + case ACHIEVEMENT_CRITERIA_DATA_TYPE_T_GENDER: + if (!target) + return false; + return target->getGender() == gender.gender; } - return false; } |
