aboutsummaryrefslogtreecommitdiff
path: root/src/game/AchievementMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/AchievementMgr.cpp')
-rw-r--r--src/game/AchievementMgr.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp
index 35e834242af..507b3c17481 100644
--- a/src/game/AchievementMgr.cpp
+++ b/src/game/AchievementMgr.cpp
@@ -890,12 +890,16 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
break;
bool matchFound = false;
- for (int j = 0; j < 3; ++j)
+ for (int j = 0; j < MAX_WORLD_MAP_OVERLAY_AREA_IDX; ++j)
{
- int32 exploreFlag = GetAreaFlagByAreaID(worldOverlayEntry->areatableID[j]);
- if(exploreFlag < 0)
+ uint32 area_id = worldOverlayEntry->areatableID[j];
+ if(!area_id) // array have 0 only in empty tail
break;
+ int32 exploreFlag = GetAreaFlagByAreaID(area_id);
+ if(exploreFlag < 0)
+ continue;
+
uint32 playerIndexOffset = uint32(exploreFlag) / 32;
uint32 mask = 1<< (uint32(exploreFlag) % 32);