Commit Graph

111 Commits

Author SHA1 Message Date
Xurkon 1d58e3fc79 fix: suppress nonfatal errors by default 2026-06-06 12:51:52 -05:00
Xurkon dd630fd1e9 fix: allow learner clustering on sunstrider 2026-06-06 12:03:29 -05:00
Xurkon c76650b70c fix: merge learner overrides in learner mode 2026-06-06 11:56:46 -05:00
Xurkon 287751a071 fix: let learner turn-ins drive arrow spawns 2026-06-06 11:48:11 -05:00
Xurkon 688e0bc0bf docs: update changelogs for learner gating 2026-06-06 10:38:00 -05:00
Xurkon c3e31b5b81 docs: update learner acceptance notes 2026-06-06 06:42:27 -05:00
Xurkon 6597d20b7d feat: refine learner data source and pin rendering 2026-06-06 00:04:50 -05:00
Xurkon 1532b70af3 docs: update changelogs and performance audit 2026-06-05 22:38:11 -05:00
Xurkon 5d1fef9802 docs: document performance refactor status 2026-06-05 14:24:02 -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 577efbe66b docs: mark v1.6.3 as released 2026-06-02 11:44:17 -05:00
Xurkon fe1f79cd2b chore: release 1.6.3 2026-06-02 11:25:28 -05:00
Xurkon 5a112d731b fix(minimap): use live Minimap:GetViewRadius() API + corrected pixel math
- Use 3.3.5a-native Minimap:GetViewRadius() (instance method) instead of
  C_Minimap.GetViewRadius (nil on 3.3.5a) with C_Minimap fallback. Returns
  116.67 at zoom 5 instead of the hardcoded 125 from the broken lookup table.
- Replace minimapWidth = (GetWidth()/2) * (mapRadius/155.52) with
  minimapWidth = GetWidth() * GetScale() / 2. The new formula yields the
  actual half-width of the visible minimap in screen pixels, the correct
  multiplier for diffX*minimapWidth when diffX is normalized by mapRadius.
- Comment out (do not delete) all QDMATH / UPDATE entering / ICON debug
  blocks as --[[ DEBUG: ... --]] for future regression investigation.
- Remove loaded debug scripts from Questie-X.toc and add to .gitignore
  (drift_test, radius_debug, spawn_calibration, etc.). Scripts preserved
  in tests/ for reference.
- Add .gitignore entries for tests/ lowercase variant (case-sensitive
  on Linux/macOS) and additional debug script patterns.
- Update CHANGELOG.md and docs/changelog.html with fix entry.
- Refresh handoff.md to reflect RESOLVED status and iteration 4 history.

Verified: pins now stay anchored to world positions across all zoom levels
on both Stock UI and ElvUI. Per-frame diffX ~0.35 yards during walking
translates to ~0.21 pixels of pin movement (correct for 1 yard of world
movement).
2026-06-01 18:35:39 -05:00
Xurkon 164584ca87 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.
2026-05-25 19:02:56 -05:00
Xurkon 24ed0f48b3 fix(arrow): Sunstrider zoneId 3431, rotation CW, collection distance, native map pins
- zoneId detection: accept 3430 OR 3431 OR uiMapId 1241 (4 locations)
- SetRotation is CW-positive: rotAngle=relative (was -relative)
- Collection functions: override target->1241 when player on Sunstrider
- NPC 15281: spawn zone 1241 (not 3430) for correct coord space
- _ResolveMapUiMapId: removed 1241->1941 redirect
- zoneDB: added areaIdToUiMapId[1241]=1241
- Updated CHANGELOG, README, docs
2026-05-21 19:22:40 -05:00
Xurkon bf6ecaedbe v1.6.3-unreleased: Sunstrider zone fixes, QuestieLearner icon preservation, migration, and Busted test suite
Code changes (13 files, +916/-171):
- ZoneDB integration: GetZoneId() converts uiMapId→areaId via ZoneDB reverse lookup
- MIN_CONFIDENCE_PINS reduced to 1 for Ascension (incomplete NPC DBs)
- QuestieLearner icon preservation: objective Icon passed to RegisterObjectiveTooltip
- InjectLearnedData zone migration: converts old uiMapId spawn keys to areaId
- areaId passed through all LearnNPC call sites (OnMouseoverUnit, OnQuestDetail,
  OnQuestComplete, OnQuestAccepted, OnQuestTurnedIn, OnGossipShow)
- Compat/Compat.lua: C_Map.GetPlayerMapPosition UiMapData support
- Compat/HBD.lua: Sunstrider mapData aliases and fallback loading
- Sunstrider arrow fix (QuestieArrow.lua), resolved pin rendering (QuestieMap.lua)
- _MergeOverride helper for string/numeric key compatibility
- Northshire Valley UiMapData registration

Testing infrastructure:
- .busted config pointing to tests/ directory
- Tests/wow_api_mock.lua: WoW API mocks (ZoneDB, C_Map, QuestLogCache, etc.)
- Tests/QuestieLearner_spec.lua: 12 tests covering coordinate scaling, spell cast
  learning, zone migration (NPC/objects), icon preservation, settings defaults,
  and LearnNPC spawn zone tracking
- selene.toml + wow_classic.yml: linter configuration

Documentation:
- Makefile with test/lint/ci targets
- sunstrider-coordinate-collection.md: coordinate data reference
- sunstrider-pin-fix.md: root cause analysis and fix documentation
2026-05-16 07:32:47 -05:00
Xurkon 01b7f07c41 Fix MapIconTooltip _GetLevelString nil level crash
Root cause: creatureLevels entry for 'Uneasy Citizen' was {} (empty table)
instead of {minLevel, maxLevel, rank}, so creatureLevels[name][1] was nil.
Added early-return guard in _GetLevelString: if creatureLevels[name] is
falsy or has no numeric level at index [1], return name unchanged.

Also updated CHANGELOG.md [Unreleased] section with this fix.
2026-05-09 08:23:54 -05:00
Xurkon 5d56944907 Update version to v1.6.2, document Sunstrider Isle arrow, Tooltip guard, QuestData string safety fixes
[Unreleased] section added to CHANGELOG.md covering:
- Tooltip NPC/Object type guard crash fix (Tooltip.lua)
- InsertMissingQuestIds string guard for questData (tbcQuestFixes.lua, wotlkQuestFixes.lua)
- Sunstrider Isle arrow / UiMapId 946 override fix (zoneDB.lua, QuestieArrow.lua)

README.md:
- Bumped shield to v1.6.2
- Added Sunstrider Isle arrow fix to Quest Arrow section
- Added tooltip crash fix to Tooltips section

docs/changelog.html:
- Added [Unreleased] section at top of changelog

docs/index.html:
- Bumped version badge to v1.6.2
2026-05-09 07:12:37 -05:00
Xurkon 98b4010352 fix: silence QuestLogCache error spam in normal chat
Demote GetQuest/GetQuestObjectives 'quest doesn't exist in QuestLogCache'
messages from Questie:Error to Questie:Debug(DEBUG_DEVELOP). These were
firing repeatedly in chat for quest IDs like 595, 959, 254048 during normal
play. Messages are now only visible when developer debug mode is active.
2026-05-04 21:14:22 -05:00
Xurkon a0f3a1e020 v1.6.1: Fix map icon completion persistence after objective fulfillment
- SetObjectivesDirty: Add missing loop to reset isUpdated on SpecialObjectives
- PopulateObjective: Add completion guard for objectives without Update fn
- Bump version to 1.6.1 across TOC and changelogs
2026-05-04 19:57:43 -05:00
Xurkon ccbe9d0de7 Revert "Session 35: Housekeeping - dependency maintenance and code cleanup"
This reverts commit 3e65cd5a128e2c7d729727e35259e862ed6ef5f3.
2026-05-03 15:37:38 -05:00
Xurkon 6558ffd4a0 Session 35: Housekeeping - dependency maintenance and code cleanup 2026-05-03 15:36:05 -05:00
Xurkon bc14ade192 Changelog: Discord relay housekeeping (Session 35) 2026-05-03 15:23:52 -05:00
Xurkon 543fbefd23 Session 34: Remove Turtle WoW references, clarify install instructions 2026-05-02 23:39:50 -05:00
Xurkon 08eace3115 fix: Blood of Heroes object rendering and QuestieQuest runtime crash fixes 2026-04-12 00:45:50 -05:00
Xurkon 0660a0d42a docs: Update v1.6.0 changelog with detailed fix for object rendering 2026-04-08 17:43:02 -05:00
Xurkon 49477da2d0 v1.6.0: Stable Map Search & Blood of Heroes Data Fix 2026-04-08 17:34:15 -05:00
Xurkon 4ef2b9f661 hotfix: Resolved critical QuestieQuest runtime crash and hardened error handler 2026-04-08 03:48:46 -05:00
Xurkon 26dd06cf9d Fix critical LUA crash in QuestLinks due to nil concatenation and invalid chat link matching 2026-04-07 17:46:06 -05:00
Xurkon 36a047c6aa docs: Update changelog for v1.5.8 2026-04-02 20:58:26 -05:00
Xurkon d9f5022f27 docs: Update changelog for v1.5.7 2026-04-02 20:32:39 -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
Xurkon 0b1ff00a20 docs: Update changelogs with tooltip fix 2026-03-29 18:33:22 -05:00
Xurkon 4d48925145 docs: append performance patches to v1.5.5 changelogs 2026-03-29 17:54:19 -05:00
Xurkon 1b5c8ef685 v1.5.5 - Performance & Stability 2026-03-29 17:19:01 -05:00
Xurkon 77860bfd92 docs: add v1.5.5 performance changelog entry 2026-03-29 16:44:41 -05:00
Xurkon b685bdf0f7 Bump version to v1.5.4 2026-03-29 05:25:04 -05:00
Xurkon edfb9a28d7 Fix: Townsfolk not checking npcDataOverrides/objectDataOverrides on custom servers 2026-03-29 05:22:32 -05:00
Xurkon 7503f251dc Fix: Townsfolk POIs not appearing due to uiMapId < 1000 not being registered 2026-03-29 04:44:21 -05:00
Xurkon d2732b9b4d Fix: prevent crash when quest name is nil in PrintDifficultyColor 2026-03-29 04:27:32 -05:00
Xurkon 5fb621a53a v1.5.3: Add dedicated Keybinds tab 2026-03-29 03:01:14 -05:00
Xurkon 659f15a932 v1.5.2: Ascension custom zone support, waypoint fixes, realm detection 2026-03-29 00:09:43 -05:00
Xurkon e6c27ddf77 feat: add Use Quest Item keybind + fix custom zone names + nil check 2026-03-28 22:33:54 -05:00
Xurkon 69c0f8045c Update changelog for v1.5.1 fix release 2026-03-28 17:36:44 -05:00
Xurkon edcd97a0ce fix(map): prevent minimap icons from being hidden by external addons and bump to v1.5.1 2026-03-28 12:55:30 -05:00
Xurkon 504ccc3424 Remove session_export feature entry from CHANGELOG
Removed session_export feature from the changelog.
2026-03-28 11:20:14 -05:00
Xurkon 59c33e9f9c feat: standardize v1.5.0 and consolidate stability fixes 2026-03-28 11:08:32 -05:00
Xurkon 1fc9727fee v1.4.9: Validation fixes, Profiler fix, Quest link duplicate fix, Ascension fixes 2026-03-26 06:47:54 -05:00
Xurkon 284f0c3794 feat: resolve quest cache validation timeout and update gitignore 2026-03-22 16:03:19 -05:00