#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.
This commit is contained in:
@@ -129,9 +129,14 @@ end
|
||||
|
||||
function QuestieMap:UnloadQuestFramesByDataType(questId, dataType)
|
||||
if QuestieMap.questIdFrames[questId] then
|
||||
for _, frame in pairs(QuestieMap:GetFramesForQuest(questId)) do
|
||||
for name, frame in pairs(QuestieMap:GetFramesForQuest(questId)) do
|
||||
if frame and frame.data and frame.data.Type == dataType then
|
||||
frame:Unload()
|
||||
-- Also drop the registry/global reference. Without this the frame name
|
||||
-- lingered in questIdFrames and _G, so the available '!' could stay on the
|
||||
-- minimap after a quest was accepted until a full /reload rebuilt frames. (#9)
|
||||
QuestieMap.questIdFrames[questId][name] = nil
|
||||
_G[name] = nil
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user