diff options
Diffstat (limited to 'src/game/AchievementMgr.cpp')
-rw-r--r-- | src/game/AchievementMgr.cpp | 10 |
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); |