fix: port Phase 1 perf/correctness audit fixes onto main

Brings the still-needed changes from questie-phase1perf that main lacked.
Main already had the Lua 5.0 shims (QuestieLoader bit/strsplit, QuestieStream
and QuestieSerializer math.mod sweep), so those are omitted.

- QuestieNameplate: skip missing entries instead of return-aborting the whole
  activeGUIDs loop (one bad unit no longer stalls every nameplate update)
- QuestieQuest.ClearAllNotes: skip DB-missing quests instead of aborting, so
  remaining quests' notes still get cleared
- QuestieOptionsTracker: fix fadeTickerValue:Cancel -> fadeTicker:Cancel (3x);
  fadeTickerValue is a number, the ticker handle is fadeTicker
- QuestieCommsData: nil-guard GetNPC/GetObject before reading .name
- QuestieAnnounce: bound the alreadySentBandaid dedup cache (reset at 1000)
- QuestieDB.IsComplete: hoist GetQuest into expectedQuest (one call, not two)
- QuestieFramePool/QuestieFrame: drop the dead BaseOnUpdate ticker branch
  (BaseOnUpdate was never defined; behavior was always OnUpdate=nil)
- QuestieLib: document unused questId arg on Ascension_IsScalingEnabled
- Database/Corrections x3: strip stray UTF-8 BOM
- Questie-X.toc: remove duplicate QuestieSlash.lua load line
This commit is contained in:
Xurkon
2026-06-12 06:48:53 -05:00
parent 1f8fa20e00
commit 568cd44af8
13 changed files with 57 additions and 47 deletions
+2 -1
View File
@@ -1656,7 +1656,8 @@ function QuestieDB.IsComplete(questId)
-- Before assuming an empty objective list means the quest is done, check if we *expect* objectives from the DB.
-- On WotLK private servers, GetQuestObjectives sometimes transiently returns nil during cache rebuilds,
-- which leads to IsComplete prematurely returning 1 and unloading map icons in the middle of a quest.
local expectedObjectives = QuestieDB.GetQuest(questId) and QuestieDB.GetQuest(questId).ObjectiveData
local expectedQuest = QuestieDB.GetQuest(questId)
local expectedObjectives = expectedQuest and expectedQuest.ObjectiveData
if expectedObjectives and table.getn(expectedObjectives) > 0 then
return 0
end