[7378] Fixed check for ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL for non-class/race specific case.

This commit is contained in:
VladimirMangos 2009-03-04 04:12:30 +03:00
parent e409b32c71
commit 2d6b8bf068
2 changed files with 13 additions and 5 deletions

View file

@ -756,10 +756,18 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve
{
case ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL:
{
if (achievIdByClass[GetPlayer()->getClass()] == achievement->ID ||
achievIdByRace[GetPlayer()->getRace()] == achievement->ID)
return progress->counter >= achievementCriteria->reach_level.level;
return false;
// 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_BUY_BANK_SLOT:
return progress->counter >= achievementCriteria->buy_bank_slot.numberOfSlots;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "7377"
#define REVISION_NR "7378"
#endif // __REVISION_NR_H__