fix(map): prevent minimap icons from being hidden by external addons and bump to v1.5.1
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## v1.5.1 (2026-03-28)
|
||||||
|
|
||||||
|
- **[Fix — Minimap Icons]** Prevented external "minimap button grabber" addons (e.g., Leatrix Plus, MBB) from incorrectly hiding Questie-X quest pins. Minimap icons now use a protected `QuestieFrameGroup` container that is ignored by these addons while maintaining correct spatial anchoring via `HereBeDragons`.
|
||||||
|
|
||||||
## v1.5.0 (2026-03-28)
|
## v1.5.0 (2026-03-28)
|
||||||
|
|
||||||
- **[Fix — Database Robustness]** Added strict guards against invalid or zero IDs in `QuestieDB` lookup functions (`GetNPC`, `GetObject`, `GetItem`). This prevents the "rawdata is nil" debug spam that occurred when custom plugins attempted to access uninitialized or malformed entity data.
|
- **[Fix — Database Robustness]** Added strict guards against invalid or zero IDs in `QuestieDB` lookup functions (`GetNPC`, `GetObject`, `GetItem`). This prevents the "rawdata is nil" debug spam that occurred when custom plugins attempted to access uninitialized or malformed entity data.
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ function QuestieMap.utils:SetDrawOrder(frame)
|
|||||||
if frame.miniMapIcon then
|
if frame.miniMapIcon then
|
||||||
local frameLevel = Minimap:GetFrameLevel() + 7
|
local frameLevel = Minimap:GetFrameLevel() + 7
|
||||||
local frameStrata = Minimap:GetFrameStrata()
|
local frameStrata = Minimap:GetFrameStrata()
|
||||||
frame:SetParent(Minimap)
|
local parent = _G["QuestieFrameGroup"] or Minimap
|
||||||
|
frame:SetParent(parent)
|
||||||
frame:SetFrameStrata(frameStrata)
|
frame:SetFrameStrata(frameStrata)
|
||||||
frame:SetFrameLevel(frameLevel)
|
frame:SetFrameLevel(frameLevel)
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## Notes-esES: Ayundante de misiones
|
## Notes-esES: Ayundante de misiones
|
||||||
## Notes-ptBR: Ajudante de misiones
|
## Notes-ptBR: Ajudante de misiones
|
||||||
## Notes-frFR: Assistant de quêtes
|
## Notes-frFR: Assistant de quêtes
|
||||||
## Version: 1.5.0
|
## Version: 1.5.1
|
||||||
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
|
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
|
||||||
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB
|
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB
|
||||||
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
## Notes-esES: Ayundante de misiones
|
## Notes-esES: Ayundante de misiones
|
||||||
## Notes-ptBR: Ajudante de misiones
|
## Notes-ptBR: Ajudante de misiones
|
||||||
## Notes-frFR: Assistant de quêtes
|
## Notes-frFR: Assistant de quêtes
|
||||||
## Version: 1.5.0
|
## Version: 1.5.1
|
||||||
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
|
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
|
||||||
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB
|
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB
|
||||||
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
## Notes-esES: Ayundante de misiones
|
## Notes-esES: Ayundante de misiones
|
||||||
## Notes-ptBR: Ajudante de misiones
|
## Notes-ptBR: Ajudante de misiones
|
||||||
## Notes-frFR: Assistant de quêtes
|
## Notes-frFR: Assistant de quêtes
|
||||||
## Version: 1.5.0
|
## Version: 1.5.1
|
||||||
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu, Questie-X-TurtleDB
|
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu, Questie-X-TurtleDB
|
||||||
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB
|
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB
|
||||||
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@
|
|||||||
## Notes-esES: Ayundante de misión
|
## Notes-esES: Ayundante de misión
|
||||||
## Notes-ptBR: Ajudante de missão
|
## Notes-ptBR: Ajudante de missão
|
||||||
## Notes-frFR: Assistant de quête
|
## Notes-frFR: Assistant de quête
|
||||||
## Version: 1.5.0
|
## Version: 1.5.1
|
||||||
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu, Questie-X-WotLKDB, Questie-X-ClassicDB, Questie-X-TBCDB, Questie-X-TurtleDB, Questie-X-AscensionDB, Questie-X-EbonholdDB
|
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu, Questie-X-WotLKDB, Questie-X-ClassicDB, Questie-X-TBCDB, Questie-X-TurtleDB, Questie-X-AscensionDB, Questie-X-EbonholdDB
|
||||||
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB, QuestieJourneyDB
|
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB, QuestieJourneyDB
|
||||||
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
||||||
|
|||||||
+1
-1
@@ -4,5 +4,5 @@
|
|||||||
## Interface: 00000
|
## Interface: 00000
|
||||||
## Title: Questie|cFFFF0000 game client not supported|r
|
## Title: Questie|cFFFF0000 game client not supported|r
|
||||||
## Notes: Questie only supports Classic TBC and Classic Era/SoM.
|
## Notes: Questie only supports Classic TBC and Classic Era/SoM.
|
||||||
## Version: 1.5.0
|
## Version: 1.5.1
|
||||||
Modules\GameVersionError.lua
|
Modules\GameVersionError.lua
|
||||||
|
|||||||
+59
-18
@@ -1,24 +1,65 @@
|
|||||||
# Questie-X v1.5.0 — Universal Stability & Zone Mapping
|
## Questie-X v1.5.0 (2026-03-27)
|
||||||
|
|
||||||
This major update focuses on critical runtime stability, centralized localization logic, and improved development infrastructure for all supported private servers (Ascension, Ebonhold, Turtle WoW, etc.).
|
### Critical Fixes
|
||||||
|
|
||||||
### Database & Performance
|
- **[Fix — Custom Server Compilation]** Fixed database compilation not running on custom servers (Ascension, Ebonhold, Turtle WoW, etc.) where plugins inject data after initial load. Modified Stage1 to defer compilation to Stage3 for custom servers, ensuring plugins finish injecting data before compilation runs. Added l10n:Initialize() and QuestieCorrections:MinimalInit() calls when deferring to Stage3, as Stage2 (QuestieJourney:Initialize()) requires hiddenQuests to be populated.
|
||||||
- **[Fix] Database Robustness**: Added strict guards against invalid or zero IDs in `QuestieDB` lookup functions (`GetNPC`, `GetObject`, `GetItem`). This prevents the "rawdata is nil" debug spam that occurred when custom plugins attempted to access uninitialized or malformed entity data.
|
|
||||||
- **[Refactor] Lookup Logic**: Refactored `QuestieDB` override handling to support both numeric and string keys simultaneously. This ensures that custom server data is correctly resolved regardless of how the third-party plugin formats its internal IDs.
|
|
||||||
- **[Refactor] Data Injection**: Updated `QuestieLearner:InjectLearnedData` to enforce numeric key normalization, preventing type-mismatch collisions during database merging.
|
|
||||||
- **[Fix] Custom Server Compilation**: Fixed database compilation not running on custom servers where plugins inject data after initial load.
|
|
||||||
- **[Performance] Taint Mitigation**: Resolved multiple `ADDON_ACTION_BLOCKED` taint vectors related to `Questie-X-WotLKDB` global namespace pollution.
|
|
||||||
|
|
||||||
### QuestieLearner & Localization
|
- **[Fix — Zone Mapping Bug]** Fixed incorrect key assignment in QuestiePluginAPI:InjectZoneTables(). Changed areaIdToUiMapId[uiMapId] = uiMapId to areaIdToUiMapId[areaId] = uiMapId at line 138. This caused zone lookups to fail, resulting in "No UiMapID or fitting parentAreaId" errors for custom zone IDs.
|
||||||
- **[Fix] Centralized Zone Lookup**: Refactored `l10n.lua` to include centralized zone-to-ID mapping functions. This resolves the `attempt to call method 'GetAreaIdByLocalName' (a nil value)` error that occurred on Project Ebonhold.
|
|
||||||
- **[Fix] Ascension Zone Mapping**: Fixed a regression in `QuestieCompat` where `uiMapData` for Ascension-specific zones was not correctly propagating to the global mapping table.
|
|
||||||
- **[Fix] Zone Mapping Bug**: Fixed incorrect key assignment in `QuestiePluginAPI:InjectZoneTables()`, resolving "No UiMapID or fitting parentAreaId" errors.
|
|
||||||
|
|
||||||
### Infrastructure & Development
|
- **[Fix — Realm Detection]** Added "Bronzebeard" and "Warcraft Reborn" to Ascension realm detection patterns in Modules/QuestieServer.lua.
|
||||||
- **[Feature] Session Export**: Added a standardized `session_export` skill for automated exports of developer documentation and session artifacts.
|
|
||||||
- **[Feature] Enhanced Logging**: Improved initialization logging to provide detailed reporting on custom data injection for NPC, Object, and Item entities.
|
### Stability & Error Handling
|
||||||
|
|
||||||
|
- **[Fix — Quest Cache]** Resolved "GetQuest: The quest doesn't exist in QuestLogCache" fatal error during initialization on Ascension WoW client. Implemented retry mechanism in _QuestEventHandler:InitQuestLog to wait for game's quest log data.
|
||||||
|
|
||||||
|
- **[Fix — Validation Crash]** Fixed crash in DecodePointerMap when compiled database pointer map was empty or corrupted. Added defensive check to return empty table instead of crashing.
|
||||||
|
|
||||||
|
- **[Fix — Database Compiler]** Added skip logic in ValidateObjects and ValidateQuests when compiled binary data is missing, preventing validation failures on cached databases.
|
||||||
|
|
||||||
|
- **[Fix — Initialization]** Modified QuestieInit to skip validation in Stage 1 when plugins are pending, since plugins inject data after compilation and validation would compare stale pre-plugin data.
|
||||||
|
|
||||||
|
- **[Fix — Quest Links]** Fixed duplicate quest links when shift-clicking quests in the quest log. Removed redundant ChatEdit_InsertLink call from QuestLogTitleButton_OnClick hook.
|
||||||
|
|
||||||
|
- **[Fix — Profiler]** Fixed "memory allocation error: block too big" crash in QuestieProfiler. Added early-exit logic in HookTable to skip large pure-data tables.
|
||||||
|
|
||||||
|
- **[Fix — Quest Validation]** Fixed QuestieValidateGameCache to silently skip "ghost quests" (removed from database but still in quest log) instead of failing validation.
|
||||||
|
|
||||||
|
### Map & Zone Improvements
|
||||||
|
|
||||||
|
- **[Fix — Zone Mapping]** Added UiMapId overrides for 1415 (Eastern Kingdoms) and 947 (Azeroth) in zoneDB.lua to resolve "No AreaId found" warnings on Ascension servers.
|
||||||
|
|
||||||
|
- **[Fix — MapIconTooltip]** Fixed syntax error in MapIconTooltip.lua at line 239. Malformed if statement was preventing tooltips from updating when hovering over Quest objectives on World Map.
|
||||||
|
|
||||||
|
- **[Fix — DrawWorldIcon]** Fixed graceful return when parent map lookup returns nil.
|
||||||
|
|
||||||
|
### Plugin Architecture
|
||||||
|
|
||||||
|
- **[Plugin Synchronization]** Overhauled plugin loading architecture. Introduced QuestiePluginAPI:FinishLoading() and registration handshake to resolve race conditions during addon initialization.
|
||||||
|
|
||||||
|
- **[Universal Lua 5.0 Refactor]** Executed codebase-wide transition from pairs() and ipairs() to next() and numeric loops for Lua 5.0 engine compatibility with legacy clients.
|
||||||
|
|
||||||
### Files Changed
|
### Files Changed
|
||||||
- Standardized version to `1.5.0` across all files.
|
|
||||||
- Consolidated all v1.5.x experimental changes into a stable v1.5.0 release.
|
- Database/Corrections/QuestieEvent.lua
|
||||||
- Updated documentation: `README.md`, `CHANGELOG.md`, `docs/changelog.html`, and `docs/index.html`.
|
- Database/QuestieDB.lua
|
||||||
|
- Database/Zones/zoneDB.lua
|
||||||
|
- Database/compiler.lua
|
||||||
|
- Localization/l10n.lua
|
||||||
|
- Modules/Journey/QuestieJourneyUtils.lua
|
||||||
|
- Modules/Libs/MessageHandler.lua
|
||||||
|
- Modules/Libs/QuestiePluginAPI.lua
|
||||||
|
- Modules/Map/QuestieMap.lua
|
||||||
|
- Modules/QuestieInit.lua
|
||||||
|
- Modules/QuestieLearner.lua
|
||||||
|
- Modules/QuestiePlayer.lua
|
||||||
|
- Modules/QuestieServer.lua
|
||||||
|
- Modules/Tracker/TrackerUtils.lua
|
||||||
|
- Questie-X-Classic.toc
|
||||||
|
- Questie-X-TBC.toc
|
||||||
|
- Questie-X-Turtle.toc
|
||||||
|
- Questie-X.toc
|
||||||
|
- Questie.toc
|
||||||
|
- CHANGELOG.md
|
||||||
|
- RELEASE_NOTES.md
|
||||||
|
|
||||||
|
See CHANGELOG.md for full details.
|
||||||
@@ -176,6 +176,13 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
<h2 id="v151">v1.5.1 — Minimap Icon Visibility Fix</h2>
|
||||||
|
<ul>
|
||||||
|
<li><strong>[Fix — Minimap Icons]</strong> Prevented external "minimap button grabber" addons (e.g., Leatrix Plus, MBB) from incorrectly hiding Questie-X quest pins. Minimap icons now use a protected <code>QuestieFrameGroup</code> container that is ignored by these addons while maintaining correct spatial anchoring via <code>HereBeDragons</code>.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
<h2 id="v150">v1.5.0 — Universal Stability & Zone Mapping</h2>
|
<h2 id="v150">v1.5.0 — Universal Stability & Zone Mapping</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>[Fix — Database Robustness]</strong> Added strict guards against invalid or zero IDs in <code>QuestieDB</code> lookup functions (<code>GetNPC</code>, <code>GetObject</code>, <code>GetItem</code>). This prevents the "rawdata is nil" debug spam that occurred when custom plugins attempted to access uninitialized or malformed entity data.</li>
|
<li><strong>[Fix — Database Robustness]</strong> Added strict guards against invalid or zero IDs in <code>QuestieDB</code> lookup functions (<code>GetNPC</code>, <code>GetObject</code>, <code>GetItem</code>). This prevents the "rawdata is nil" debug spam that occurred when custom plugins attempted to access uninitialized or malformed entity data.</li>
|
||||||
|
|||||||
Reference in New Issue
Block a user