- NPC 5467 (Deep Dweller): Replace single spawn point with 28 locations
scraped from Wowhead covering the eastern Tanaris coast area
- NPC 5470 (Raging Dune Smasher): Was nil in all databases, added 23
spawn locations in the Abyssal Sands (southwest Tanaris)
- Fixes added to both classicNPCFixes.lua and tbcNPCFixes.lua
- Quest 50006 (Sandstone Giants) killCreditObjective already updated in
previous commit to include all 4 giant NPCs (5466, 5467, 5469, 5470)
All four giant types now have correct spawn data for minimap pin display.
In Lua, 0 evaluates as truthy. The check
'if questLogEntry.isComplete then return questLogEntry.isComplete end'
was completely bypassing our fallback completion logic because
GetQuestLogTitle sets isComplete = 0 when a quest is incomplete.
This caused the arrow to still point to requiredSourceItems (like
the Cold Iron Key drops) because the quest was never being flagged
as 'isComplete=true' internally.
Fixed by explicitly checking for isComplete == 1 or isComplete == -1
before returning.
The finished flag in QuestLogCache is only set to true when the server
sends isComplete=1 via GetQuestLogTitle. For quest 12843 ('They Took
Our Men!'), after using all Cold Iron Keys the objectives numerically
complete (5/5) but isComplete=1 may not fire until the player visits
the turn-in NPC.
Use numFulfilled == numRequired as the completion check instead, which
updates from GetQuestLogLeaderBoard immediately when each objective
fills. Added numRequired > 0 guard to avoid trivially matching
zero-required objectives.
The inline ternary short-circuited to 0 as soon as objectives[1]
existed, regardless of whether all objectives were done. This caused
quests using consumable key items (e.g. Cold Iron Key for quest 12843)
to incorrectly return IsComplete=0 after using the key, since the key
is no longer in the bag (CheckQuestSourceItem=false) and
questLogEntry.isComplete is not set by the server until after
explicit turn-in.
Now iterates questLogEntry.objectives and returns 1 if all are
finished, so PopulateObjectiveNotes routes to AddFinisher correctly.
Add [9] triggerEnd field to all 9 complete-N-quests quests (50151, 50145,
50098, 50100, 50149, 50099, 50108, 50111, 50150). QuestieDB.GetQuest maps
rawdata[9] to triggerEnd, which appends ObjectiveData[1]={Type='event'}
satisfying PopulateQuestLogInfo when server sends one objective. No map
pins are drawn since coordinates are nil.
Also removed unnecessary all-nil [10] objectives table from quest 50111.