Commit Graph

73 Commits

Author SHA1 Message Date
Xurkon 2c695c45fe feat(learner): zone-scoped export; 200k entry cap; SmoothReset after import
QuestieLearnerExport:
- Extract _Encode helper to consolidate serialize+deflate+encode
- Add ExportZone(serverKey, zoneId) to export only the learned data
  for a specific zone (NPCs/objects with spawns in that zone, plus
  their dropped items and related quests) for smaller, faster exports
- Cap ValidateImport at 200k entries to guard against pathological
  payloads that could stall the client during merge
- Call SmoothReset after MergeImport so newly imported spawns appear
  on the map without requiring /reload

QuestieOptionsDatabase:
- Refresh AceConfigRegistry after import so Database tab stats update
  immediately (previously required /reload or opening Options)
- Add Export Current Zone button tied to ExportZone()
2026-06-10 05:39:39 -05:00
Xurkon 1b06808655 feat(map): raise Minimap Icon Range Cutoff max to 1000
Players who run fully zoomed-out minimaps need a larger visibility radius
since quest objective spawns can be far apart. Raise the slider max from
200 to 1000 (yards). Default (100) and minimum (25) unchanged.
2026-06-10 05:07:30 -05:00
Xurkon ab560d5711 fix(map): completed/accepted/repeatable available-quest pins (#7 #9 #10)
#7: Completed quests kept showing as available '!'. The server completed-
quest list arrives async via QUEST_QUERY_COMPLETE, often after available
quests were first drawn. Recalculate available quests once char.complete is
populated by that event so completed quests are removed (also clears the
already-completed subset of #8).

#9: An accepted quest's available '!' could linger on the minimap until
/reload. UnloadQuestFramesByDataType unloaded the frame but left its name in
questIdFrames and _G; it now removes those references so the icon is torn
down immediately on both map and minimap.

#10: Added 'Hide repeatable quests below level 60' (Icons tab, off by
default) to hide repeatable available quests (e.g. the Ascension Callboard)
from map/minimap until level 60. Enforced in _DrawQuestIfAvailable and
ShouldBeHidden so existing minimap pins are removed too; reappear at 60.

Lint: selene 0 errors. Tests: 145 successes / same 7 pre-existing failures.
2026-06-09 23:18:38 -05:00
Xurkon fa37ab8eb5 feat(tooltip): ElvUI style without ElvUI; source in secondary only; fix learner source label
- ElvUI tooltip style: new 'ElvUI tooltip style' option (General tab, on by
  default) skins GameTooltip/WorldMapTooltip/ItemRefTooltip/shopping tooltips
  and the secondary learner frame with ElvUI's transparent flat look (dark bg
  + thin 1px border) when ElvUI is not installed. Corrected the secondary
  frame fallback that used the chunky WoW border. No-op when ElvUI is loaded.

- Source attribution now shows ONLY inside the secondary learner tooltip when
  'Use secondary learner tooltip' is enabled; removed from the main NPC/object/
  item tooltip and gated off entirely when the secondary tooltip is disabled
  (map-pin source gated the same way).

- Fixed learner-learned pins mislabelled 'AscensionDB': GetPinDataSource is now
  mode-aware and returns 'Learner' in learner mode when the entity has a learner
  record, even if AscensionDB also curates it (curated coords are discarded by
  GetNPC/GetObject in learner mode anyway).

Test-neutral (145 successes / same 7 pre-existing failures + 1 error).
2026-06-09 21:52:55 -05:00
Xurkon 08b266d7ba fix(tooltip): never add learner spawn data to the main tooltip
The 'Use secondary learner tooltip' option's off-path appended learner
spawn/kill lines directly to the main GameTooltip. The toggle now gates
the data entirely: on = shown in the separate secondary frame, off = not
shown anywhere. Learner spawn/kill data is never inline in the main NPC
tooltip under any setting.

Removed the now-unused _AddTooltipSeparator helper and updated the option
description.
2026-06-09 18:20:39 -05:00
Xurkon 0c4631be6e feat(tooltip): accurate per-pin data source attribution
Re-adds the 'Show data source' tooltip option (General tab, default off),
but accurate this time. The previous version was removed because it
guessed the source from the global data-source mode (showing Learner when
data was AscensionDB, etc.). This tags each pin with its real provenance
at creation and reads that tag.

- QuestieDB.GetPinDataSource(entityType, id, spawnData): resolves
  Learner (per-spawn isLearned or learner record), AscensionDB (curated
  ascensionOverrideKeys override), or base Questie DB. Never guesses.
- Objective pins tagged per-spawn in _DetermineIconsToDraw; available/
  finisher pins defaulted by quest in DrawWorldIcon; manual notes tagged
  Townsfolk in DrawManualIcon.
- World-map pins read the per-pin tag (MapIconTooltip); unit/object/item
  hovers derive per-id at the render layer (TooltipHandler via
  QuestieTooltips:GetDataSourceLine). Comms appended via KeyExists.
- No line shown when source is genuinely unknown (never misleading).
2026-06-09 17:57:58 -05:00
Xurkon 700445c248 fix(options): use {} not { ... } for tab tables
Five Options files seeded their tab tables with { ... } instead of {}.
At chunk scope WoW passes ... = (addonName, addonTable), so each table
got two stray junk entries instead of being empty; { ... } is also a
strict Lua 5.0 parse error. Fixed QuestieOptions.tabs and the Arrow,
General, Keybinds, and Tracker tab tables. Cherry-picked from
phase2-lua50-sweep (the only version-independent fix in that branch).
2026-06-08 16:24:46 -05:00
Xurkon 78aefa4af8 perf: skip TestGameCache wait on clustering-only redraws
- SmoothReset now accepts { skipCacheTest = true } to short-circuit the game cache wait and draw-queue drain
- ClusterRedraw passes the flag so icon-cluster and dense-pin-clustering sliders redraw immediately
- QuestieOptionsAdvanced wires the spawn-pin-dedup-radius slider directly to ClusterRedraw instead of the delayed SmoothReset path
2026-06-07 08:42:40 -05:00
Xurkon f5d8e24810 fix: speed up slider redraws 2026-06-06 14:33:35 -05:00
Xurkon 1ca426ee9f feat: expand learner tooltip controls 2026-06-06 14:30:07 -05:00
Xurkon 1f3de0e02e feat: add learner tooltip controls 2026-06-06 13:59:31 -05:00
Xurkon 2cb129ae4b feat: add debug message throttle 2026-06-06 13:44:49 -05:00
Xurkon a1c6a181fc fix: refresh learner settings live 2026-06-06 12:19:23 -05:00
Xurkon 6597d20b7d feat: refine learner data source and pin rendering 2026-06-06 00:04:50 -05:00
Xurkon cf16e7e95b feat: show runtime learner mode in database tab 2026-06-05 21:09:10 -05:00
Xurkon e40e9bc1b3 fix: show selected learner data source mode 2026-06-05 21:06:08 -05:00
Xurkon 64d5fb2f10 fix: keep learner mode live 2026-06-05 20:51:42 -05:00
Xurkon 9d02c8a231 fix: fully clear learned data buckets 2026-06-05 20:37:34 -05:00
Xurkon 3eda8d01ed fix: force learner on when base db is missing 2026-06-05 20:23:29 -05:00
Xurkon a0409eef8c feat: add learner/static data source mode 2026-06-05 20:15:26 -05:00
Xurkon 1f6b6b14dc perf: align learner debounce defaults 2026-06-05 14:10:58 -05:00
Xurkon ccd2bc10d6 refactor: centralize performance options 2026-06-04 17:07:14 -05:00
Xurkon b62def52fd feat: add questie comms performance options 2026-06-04 17:05:03 -05:00
Xurkon a113791d64 perf: add questie comms disable gate 2026-06-04 17:04:12 -05:00
Xurkon c6bfa95c9e perf: wire questie comms throttles 2026-06-04 17:01:37 -05:00
Xurkon 5e3ac7cdd1 fix: synchronize learner performance options 2026-06-04 16:59:37 -05:00
Xurkon a1424bdd53 perf: add arrow performance controls 2026-06-04 16:53:21 -05:00
Xurkon f160570a95 perf: add learner performance controls 2026-06-04 16:37:03 -05:00
Xurkon 51561b97d8 perf: batch learner updates and remove Turtle support 2026-06-04 06:47:45 -05:00
Xurkon 4b7c295210 fix: stabilize minimap range cutoff and update release docs 2026-06-03 06:05:55 -05:00
Xurkon fe1f79cd2b chore: release 1.6.3 2026-06-02 11:25:28 -05:00
Xurkon a2a325c8ab Guard all LibSharedMedia-3.0 usages against nil LSM - OptionalDep may not load
- Use LibStub(..., true) silent flag on all LSM acquisition sites
- Guard HashTable() calls in Options files (returns nil if no font type registered)
- Guard all Fetch() call sites with inline 'LSM30 and LSM30:Fetch() or fallback'
- Make font values lazy functions in options dropdowns so LSM has time to register
- Affects: QuestieOptionsTracker, QuestieOptionsArrow, QuestieArrow, QuestieTracker,
  TrackerHeaderFrame, TrackerLinePool, TrackerQuestTimers
2026-04-24 04:24:38 -05:00
Xurkon 97c8f60a28 QuestieOptionsArrow: guard LibSharedMedia HashTable call - LSM is OptionalDep, may not be present or have font type registered at load time 2026-04-24 03:59:33 -05:00
Xurkon 49477da2d0 v1.6.0: Stable Map Search & Blood of Heroes Data Fix 2026-04-08 17:34:15 -05:00
Xurkon 49ef9b6e55 fix: Use pairs() instead of ipairs() for hash table iteration 2026-04-02 20:51:08 -05:00
Xurkon 03a58e0c28 feat: Add expanded font list with common WoW fonts to Arrow and Tracker options 2026-04-02 20:43:17 -05:00
Xurkon a9f4a97979 cleanup: Remove debug prints and duplicate spacer 2026-04-02 19:45:17 -05:00
Xurkon 2efbc0e799 fix: Use SharedMedia:Fetch to get actual font object 2026-04-02 19:42:15 -05:00
Xurkon aa51ea8f2a fix: Import SharedMedia in Arrow options 2026-04-02 19:34:24 -05:00
Xurkon 447ba0513e fix: Guard against QuestieConfigFrame being nil in OpenConfigWindow 2026-04-02 19:30:56 -05:00
Xurkon 57f6cc4471 feat: Add arrow font settings; Add Apply to All font options to Tracker 2026-04-02 19:27:05 -05:00
Xurkon cf462d9a9f debug: Add print to scale set 2026-04-02 19:16:21 -05:00
Xurkon 1decb399b3 fix: Remove duplicate arrow_alpha and debug prints 2026-04-02 19:14:08 -05:00
Xurkon fb8c4292c9 debug: Add prints to trace scale update 2026-04-02 19:06:56 -05:00
Xurkon a1f273bba5 fix: Add UpdateSettings function to apply scale/alpha without touching visibility 2026-04-02 19:04:20 -05:00
Xurkon ef61faa9f9 fix: Use method call syntax for ApplyScale 2026-04-02 18:58:27 -05:00
Xurkon 75d63da509 fix: Direct frame manipulation for real-time scale/alpha/position updates 2026-04-02 18:57:46 -05:00
Xurkon 4df787419a fix: Apply scale and alpha immediately via dedicated functions 2026-04-02 18:53:55 -05:00
Xurkon 6a67189a4c fix: Arrow scale and position reset not working 2026-04-02 18:25:44 -05:00
Xurkon 67255ca5fb feat: Add Arrow options tab with scale, transparency, and debug settings; Fix zone filter bug that broke auto-tracking; Update .gitattributes and .gitignore to properly hide dev files from releases 2026-04-02 18:21:30 -05:00