From e479c5c48d6bdb6ebf8f748f2158e125b418e38f Mon Sep 17 00:00:00 2001 From: Phanx Date: Sun, 29 Jul 2018 10:11:38 -0700 Subject: [PATCH] Check parent maps This adds support for caves and other special areas within a zone that have their own map. --- ZoneAchievementTracker.lua | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ZoneAchievementTracker.lua b/ZoneAchievementTracker.lua index d1d910a..3b667fd 100644 --- a/ZoneAchievementTracker.lua +++ b/ZoneAchievementTracker.lua @@ -242,7 +242,18 @@ f:SetScript("OnEvent", function(self, event) local mapID = C_Map.GetBestMapForUnit("player") if not mapID then return end - local achievementID, achievementName, completed, _ = AchievementForZone[zoneID] + local achievementID = AchievementForZone[mapID] + if not achievementID then + -- Check parents in case we're in a cave. + local mapInfo = C_Map.GetMapInfo(mapID) + while mapInfo and mapInfo.parentMapID and not achievementID do + mapID = mapInfo.parentMapID + mapInfo = C_Map.GetMapInfo(mapID) + achievementID = AchievementForZone[mapID] + end + end + + local achievementName, completed, _ if type(achievementID) == "number" then _, achievementName, _, _, _, _, _, _, _, _, _, _, completed = GetAchievementInfo(achievementID) elseif achievementID then