feat: fire QUEST_WATCH_UPDATE on kill and item objective progress

Fire QUEST_WATCH_UPDATE (with quest ID for kills) and QUEST_LOG_UPDATE
when quest objectives progress:
- Kill objectives: when SMSG_QUESTUPDATE_ADD_KILL updates a kill count
- Item objectives: when SMSG_QUESTUPDATE_ADD_ITEM updates an item count

Used by quest tracker addons (Questie, QuestHelper) and the built-in
quest tracker to refresh objective display when progress changes.
This commit is contained in:
Kelsi 2026-03-21 05:33:29 -07:00
parent b5f7659db5
commit 2560bd1307

View file

@ -5449,6 +5449,10 @@ void GameHandler::handlePacket(network::Packet& packet) {
if (questProgressCallback_) {
questProgressCallback_(quest.title, creatureName, count, reqCount);
}
if (addonEventCallback_) {
addonEventCallback_("QUEST_WATCH_UPDATE", {std::to_string(questId)});
addonEventCallback_("QUEST_LOG_UPDATE", {});
}
LOG_INFO("Updated kill count for quest ", questId, ": ",
count, "/", reqCount);
@ -5526,6 +5530,10 @@ void GameHandler::handlePacket(network::Packet& packet) {
}
}
if (addonEventCallback_ && updatedAny) {
addonEventCallback_("QUEST_WATCH_UPDATE", {});
addonEventCallback_("QUEST_LOG_UPDATE", {});
}
LOG_INFO("Quest item update: itemId=", itemId, " count=", count,
" trackedQuestsUpdated=", updatedAny);
}