diff options
author | megamage <none@none> | 2009-03-26 14:02:11 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-03-26 14:02:11 -0600 |
commit | 1ac13728a70fccf9180a7065b04c9dd9c83a9498 (patch) | |
tree | 48476df9c3caa90820269a0536c86a28a2c0e20f /src/game/AchievementMgr.cpp | |
parent | 68c3039715d8b68aa1b33a44bae3dd5d59eb5e5f (diff) |
[7545] Fixed exploration achievements for certian areas Author: DonTomika
[7546] move uptime table to Realm database, use realmid column. Author: Triply
--HG--
branch : trunk
Diffstat (limited to 'src/game/AchievementMgr.cpp')
-rw-r--r-- | src/game/AchievementMgr.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index c23d16e25c3..2d99944e8ad 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -725,14 +725,24 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui if(!worldOverlayEntry) break; - int32 exploreFlag = GetAreaFlagByAreaID(worldOverlayEntry->areatableID); - if(exploreFlag < 0) - break; + bool matchFound = false; + for (int i = 0; i < 3; ++i) + { + int32 exploreFlag = GetAreaFlagByAreaID(worldOverlayEntry->areatableID[i]); + if(exploreFlag < 0) + break; + + uint32 playerIndexOffset = uint32(exploreFlag) / 32; + uint32 mask = 1<< (uint32(exploreFlag) % 32); - uint32 playerIndexOffset = uint32(exploreFlag) / 32; - uint32 mask = 1<< (uint32(exploreFlag) % 32); + if(GetPlayer()->GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + playerIndexOffset) & mask) + { + matchFound = true; + break; + } + } - if(GetPlayer()->GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + playerIndexOffset) & mask) + if(matchFound) SetCriteriaProgress(achievementCriteria, 1); break; } |