classic: fix SMSG_CREATURE_QUERY_RESPONSE — no iconName field in 1.12

Classic 1.12 SMSG_CREATURE_QUERY_RESPONSE has no iconName CString between
subName and typeFlags.  The TBC/WotLK parser was reading the typeFlags
uint32 bytes as the iconName string, then reading the remaining bytes as
typeFlags — producing garbage creature type/family/rank values and
corrupting target frame display for all creatures on Classic servers.

Add ClassicPacketParsers::parseCreatureQueryResponse without the iconName
read, and route the game handler through virtual dispatch so the override
is called.
This commit is contained in:
Kelsi 2026-03-09 21:44:07 -07:00
parent 6d21f77d32
commit 1b2c7f595e
3 changed files with 47 additions and 1 deletions

View file

@ -9578,7 +9578,7 @@ void GameHandler::handleNameQueryResponse(network::Packet& packet) {
void GameHandler::handleCreatureQueryResponse(network::Packet& packet) {
CreatureQueryResponseData data;
if (!CreatureQueryResponseParser::parse(packet, data)) return;
if (!packetParsers_->parseCreatureQueryResponse(packet, data)) return;
pendingCreatureQueries.erase(data.entry);