fix: gossip banker sent CMSG_BANKER_ACTIVATE twice; deduplicate quest icons

Icon==6 and text=="GOSSIP_OPTION_BANKER" both sent BANKER_ACTIVATE
independently. Banking NPCs match both, so the packet was sent twice —
some servers toggle the bank window open then closed. Added sentBanker
guard so only one packet is sent.

Also extracts classifyGossipQuests() from two identical 30-line blocks
in handleGossipMessage and handleQuestgiverQuestList. The icon→status
mapping (5/6/10=completable, 3/4=incomplete, 2/7/8=available) is now
in one place with a why-comment explaining these are protocol-defined.
This commit is contained in:
Kelsi 2026-03-29 18:53:30 -07:00
parent 1a6960e3f9
commit 961af04b36
2 changed files with 63 additions and 84 deletions

View file

@ -145,6 +145,7 @@ private:
// --- Packet handlers ---
void handleGossipMessage(network::Packet& packet);
void handleQuestgiverQuestList(network::Packet& packet);
void classifyGossipQuests(bool updateQuestLog);
void handleGossipComplete(network::Packet& packet);
void handleQuestPoiQueryResponse(network::Packet& packet);
void handleQuestDetails(network::Packet& packet);