From 039bdf36276120be57f9675fe80dd8cc6b8efbf2 Mon Sep 17 00:00:00 2001 From: Xurkon Date: Sat, 30 May 2026 14:27:09 -0500 Subject: [PATCH] fix(minimap): remove 1241 special-case overlay from drawMinimapPin The uiMapID==1241 branch in drawMinimapPin was an experimental overlay that ran BEFORE the standard minimap projection and rotation transforms. It duplicated the projection math while bypassing the rotation matrix, used a different edge-clamp path, and is the primary suspect for why pins visually follow the player on Sunstrider Isle. The standard minimap path (handle rotation -> adapt delta to mapRadius -> apply shape mask -> float-on-edge or clamp) already handles all pins uniformly regardless of zone. Removing this experimental branch lets 1241 pins use the same proven path as every other zone. Also cleaned up: - stale lastInstanceId reference in throttled PIN debug trace - unnecessary data.uiMapID guard in QuestieDebugMinimapPin gate - Sunstrider-specific minimap debug block in UpdateMinimapPins --- Compat/HBD.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Compat/HBD.lua b/Compat/HBD.lua index d19087c..6f2cc66 100644 --- a/Compat/HBD.lua +++ b/Compat/HBD.lua @@ -425,13 +425,13 @@ local function drawMinimapPin(pin, data) local xDist, yDist = lastXY - data.x, lastYY - data.y -- Throttled debug: print once per second max - if _G.QuestieDebugMinimapPin and data.uiMapID and (not _G._QDPinDebugTime or (GetTime() - _G._QDPinDebugTime) > 1) then + if _G.QuestieDebugMinimapPin and (not _G._QDPinDebugTime or (GetTime() - _G._QDPinDebugTime) > 1) then _G._QDPinDebugTime = GetTime() local finalX = (xDist / (mapRadius or 1)) * minimapWidth local finalY = (yDist / (mapRadius or 1)) * minimapHeight print(string.format( - "[QD] PIN uiMap=%s inst=%s/%s pinW=(%.2f,%.2f) playerW=(%.2f,%.2f) dist=(%.2f,%.2f) mapRad=%.1f scale=(%.4f,%.4f) final=(%.2f,%.2f)", - tostring(data.uiMapID), tostring(data.instanceID), tostring(lastInstanceId), + "[QD] PIN uiMap=%s inst=%s pinW=(%.2f,%.2f) playerW=(%.2f,%.2f) dist=(%.2f,%.2f) mapRad=%.1f scale=(%.4f,%.4f) final=(%.2f,%.2f)", + tostring(data.uiMapID), tostring(data.instanceID), data.x, data.y, lastXY, lastYY, xDist, yDist, mapRadius or -1, xDist / (mapRadius or 1), yDist / (mapRadius or 1),