aboutsummaryrefslogtreecommitdiff
path: root/src/game/AchievementMgr.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-03-26 14:02:11 -0600
committermegamage <none@none>2009-03-26 14:02:11 -0600
commit1ac13728a70fccf9180a7065b04c9dd9c83a9498 (patch)
tree48476df9c3caa90820269a0536c86a28a2c0e20f /src/game/AchievementMgr.cpp
parent68c3039715d8b68aa1b33a44bae3dd5d59eb5e5f (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.cpp22
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;
}