fix(learner): show every learned pin on Sunstrider, not a clustered dot
A prior change (dd630fd) kept clustering enabled on Sunstrider Isle in
learner mode to avoid pin fan-out, but that collapsed several distinct
learned coordinates (e.g. 7 Arcane Wraith spots) into a single pin --
breaking the DB-building workflow where every learned spawn must be
visible. The SavedVariables data was correct the whole time; this was a
display regression. Sunstrider (1241) now shows every distinct pin by
default in all data-source modes; consolidation only happens when the
player explicitly raises the Dense Pin Clustering Aggressiveness knob.
This commit is contained in:
@@ -41,6 +41,7 @@
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **[Learner - Sunstrider Shows Every Learned Pin Again]** Learner-recorded spawns on Sunstrider Isle were being collapsed to a single pin: a prior change kept clustering enabled there in learner mode, so several distinct learned coordinates (e.g. seven Arcane Wraith spots) consolidated into one icon — breaking the DB-building workflow where every learned spawn must be visible. Sunstrider (uiMapID 1241) now shows every distinct pin by default in **all** data-source modes; consolidation only happens if the player explicitly raises the Dense Pin Clustering Aggressiveness knob. (The data was correct in SavedVariables the whole time — this was purely a display/clustering regression.)
|
||||
- **[Tooltip - Collapse Stacked Ascension Quest-Progress Lines]** (#9) Tooltips could pile up a stack of progress lines for the same objective — `0/8`, `1/8`, `2/8`, `3/8` — because the Ascension server appends a new progress line on every objective update instead of replacing the old one. A new always-on pass (`DedupeAscensionProgressLines`) collapses each stack to its single most-progressed line. It only ever hides a line when the same tooltip holds another progress line with the same objective text and denominator, so it never touches other addons' tooltip lines or Questie's own single-line objectives (unit-tested). This is separate from the opt-in "Hide Ascension quest progress lines" option (#16), which removes such lines entirely.
|
||||
- **[Map - Completed Quest Pins Stuck On The World Map Until Reload]** (#9) A completed quest/objective's pin could stay on the world map (while the minimap correctly cleared it) until a `/reload`. Cause: a draw-queue race. The world-map and minimap draw queues are processed independently in `ProcessQueue`, so when a frame was unloaded while still queued (e.g. an objective that completes the same tick its pins were queued), the frame's minimap-queue entry could trigger the deferred `Unload` first — removing both icons and clearing the unload flag — and then a later map-queue entry would re-add the world-map icon. Because `Unload` had already nil'd the `questIdFrames`/`_G` reference, that re-added pin was orphaned and survived until `/reload`. `Unload` now drops the frame's pending draw-queue entries (new `QuestieMap:DequeueFrameDrawCalls`), so an unloaded frame can never be re-added to a map — keeping both maps in sync.
|
||||
- **[Map - Quest-Type Filters Now Truly Apply To The Minimap]** (#11) Filtered quest types (e.g. dungeon quests) could still show on the minimap while correctly hidden on the world map. The previous fix made the minimap `FadeLogic` re-check `ShouldBeHidden` only when deciding whether to *re-show* an already-hidden icon — so an icon that was already visible (or that HBD's pin renderer showed on coming into range) was never hidden. `FadeLogic` now proactively calls `ShouldBeHidden` for every in-range minimap icon and `FakeHide`s it when filtered, in both minimap fade paths (quest icons and townsfolk/manual icons). The same path also picked up the #17 minimap-radius cutoff gating it was missing.
|
||||
|
||||
@@ -2073,15 +2073,14 @@ _DrawObjectiveIcons = function(questId, iconsToDraw, objective, maxPerType)
|
||||
range = range * 0.2; -- Only use 20% of the default range.
|
||||
end
|
||||
|
||||
-- Sunstrider Isle (uiMapID 1241) is a tiny starting area where AscensionDB
|
||||
-- places individual spawn coords that should each show as a distinct pin.
|
||||
-- In learner mode we keep clustering enabled so newly learned coordinates
|
||||
-- can still consolidate; static/auto keeps the old "show every pin" path.
|
||||
local learnerMode = Questie.dbLearner
|
||||
and Questie.dbLearner.global
|
||||
and Questie.dbLearner.global.settings
|
||||
and Questie.dbLearner.global.settings.dataSourceMode == "learner"
|
||||
if orderedList[1] and orderedList[1].zone == 1241 and not learnerMode then
|
||||
-- Sunstrider Isle (uiMapID 1241) is a tiny starting area where AscensionDB and the
|
||||
-- learner both place individual spawn coords that should each render as a distinct pin
|
||||
-- — it is also where players build/verify the learner DB and need to SEE every learned
|
||||
-- spawn, not a single consolidated dot. Show every pin here by default in ALL data-source
|
||||
-- modes (learner included). Only consolidate when the player has explicitly turned up the
|
||||
-- Dense Pin Clustering Aggressiveness knob; the previous "cluster in learner mode" special
|
||||
-- case collapsed multiple learned spawns into one pin, which broke DB building.
|
||||
if orderedList[1] and orderedList[1].zone == 1241 and densityAggression == 0 then
|
||||
range = 0
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user