fix(Sunstrider): correct map pins, override check, nil guards

- zoneDB: remap areaId 3431 → uiMapId 1241 (Sunstrider Isle) so quest 8335
  pins render on correct map instead of Eversong Woods (1941)
- compat/HBD: remove 1241→1941 redirect (Sunstrider pins now handled by zoneDB)
- compiler: QuerySingle override check skips empty tables (next() guard) so
  spawn data overrides don't fall through to nil base DB values
- MapIconTooltip: nil guards for minLevel/maxLevel to prevent crashes
- Map/QuestieMap: remove stale 1241→1941 redirect comment
This commit is contained in:
Xurkon
2026-05-22 19:31:47 -05:00
parent 8ab14db3a3
commit 415b924199
5 changed files with 50 additions and 34 deletions
+4 -2
View File
@@ -62,8 +62,10 @@ local function _ResolveMapUiMapId(uiMapId, x, y)
if uiMapId == 946 then
return 1941
end
-- Map 1241 (Sunstrider Isle) now has its own Ascension-calibrated bounds
-- and pins on 1241 render correctly on the Sunstrider sub-map. No redirect.
-- Map 1241 (Sunstrider Isle): the game engine returns player world
-- coordinates in Sunstrider space (mapData[1241] calibrated bounds).
-- Pins MUST also convert through mapData[1241] so they share the same
-- world space as the player on the minimap. Do NOT redirect to 1941.
return uiMapId
end
+17 -15
View File
@@ -503,23 +503,25 @@ function MapIconTooltip:Show()
local minLevel = creatureLevels[name][1]
local maxLevel = creatureLevels[name][2]
local rank = creatureLevels[name][3]
if minLevel == maxLevel then
levelString = name .. " (" .. minLevel
else
levelString = name .. " (" .. minLevel .. "-" .. maxLevel
end
if minLevel and maxLevel then
if minLevel == maxLevel then
levelString = name .. " (" .. minLevel
else
levelString = name .. " (" .. minLevel .. "-" .. maxLevel
end
if rank and rank == 1 then
levelString = levelString .. "+"
elseif rank and rank == 2 then
levelString = levelString .. " " .. l10n("Rare Elite")
elseif rank and rank == 3 then
levelString = levelString .. " Boss"
elseif rank and rank == 4 then
levelString = levelString .. " " .. l10n("Rare")
end
if rank and rank == 1 then
levelString = levelString .. "+"
elseif rank and rank == 2 then
levelString = levelString .. " " .. l10n("Rare Elite")
elseif rank and rank == 3 then
levelString = levelString .. " Boss"
elseif rank and rank == 4 then
levelString = levelString .. " " .. l10n("Rare")
end
levelString = levelString .. ")"
levelString = levelString .. ")"
end
end
return levelString
end