fix: Sunstrider pin regression, ghost pins, and learner zone normalization
- Fix: isSunstrider block in _MergeSpawnEvidence now checks IsAscensionProtected before writing learner data to npcDataOverrides. Without this guard, each Mana Wyrm kill overwrote AscensionDB's z1241=5 data with learner z3431 coords. - Fix: Clustering disabled for zone 1241 (Sunstrider Isle) in _DrawObjectiveIcons so all 5 AscensionDB spawn pins display individually instead of collapsing to 2. - Fix: Ghost pin loop in AvailableQuests.lua -- 'while frames[i]' was iterating a string-keyed table with a numeric index (never iterated). Changed to pairs(). - Fix: NormalizeSpawnZoneKey now uses ZoneDB.areaIdToUiMapId for all zones so learner evidence is stored under map IDs (e.g. 1241) not area IDs (e.g. 3431), matching AscensionDB's key space. Applied in LearnNPC and _StoreGuidSpawnEvidence. - Fix: isSunstrider detection in _MergeSpawnEvidence updated from hardcoded zoneId==3431 check to IsSunstriderNativeZone() since zone IDs are now normalized to map IDs at storage time.
This commit is contained in:
@@ -209,6 +209,10 @@ local function UpdateMinimapPins(force)
|
||||
|
||||
-- check for all values to be available (starting with 7.1.0, instances don't report coordinates)
|
||||
if not x or not y or (rotateMinimap and not facing) then
|
||||
if _G.QuestieDebugPins then
|
||||
print(string.format("[QD] UpdateMinimapPins: EARLY EXIT x=%s y=%s facing=%s", tostring(x), tostring(y), tostring(facing)))
|
||||
_G.QuestieDebugPins = false
|
||||
end
|
||||
minimapPinCount = 0
|
||||
for pin in pairs(activeMinimapPins) do
|
||||
pin:Hide()
|
||||
@@ -217,6 +221,26 @@ local function UpdateMinimapPins(force)
|
||||
return
|
||||
end
|
||||
|
||||
if _G.QuestieDebugPins then
|
||||
local pinCount = 0
|
||||
for _ in pairs(minimapPins) do pinCount = pinCount + 1 end
|
||||
print(string.format("[QD] UpdateMinimapPins: player worldX=%.2f worldY=%.2f playerInst=%s mapID=%s totalPins=%d",
|
||||
x, y, tostring(instanceID), tostring(mapID), pinCount))
|
||||
local i = 0
|
||||
for pin, data in pairs(minimapPins) do
|
||||
i = i + 1
|
||||
if i <= 10 then
|
||||
local dist = math.abs(x - data.x) + math.abs(y - data.y)
|
||||
local instMatch = instanceID == data.instanceID
|
||||
local distPass = dist < 500
|
||||
print(string.format("[QD] Pin%d: pinX=%.2f pinY=%.2f pinInst=%s dist=%.1f instMatch=%s distPass=%s -> SHOW=%s",
|
||||
i, data.x, data.y, tostring(data.instanceID), dist,
|
||||
tostring(instMatch), tostring(distPass), tostring(instMatch and distPass)))
|
||||
end
|
||||
end
|
||||
_G.QuestieDebugPins = false
|
||||
end
|
||||
|
||||
local newScale = pins.Minimap:GetScale()
|
||||
if minimapScale ~= newScale then
|
||||
minimapScale = newScale
|
||||
|
||||
Reference in New Issue
Block a user