fix: add TBC chat message parser to prevent 12-byte misalignment

TBC 2.4.3 SMSG_MESSAGECHAT has no senderGuid(u64) or unknown(u32)
prefix before type-specific data. The WotLK base parser reads these
12 bytes unconditionally, causing complete misalignment of all chat
message fields — every chat message on a TBC server would parse
garbage for sender, channel, and message content.
This commit is contained in:
Kelsi 2026-03-17 11:23:37 -07:00
parent e1be8667ed
commit ef5532cf15
2 changed files with 102 additions and 0 deletions

View file

@ -370,6 +370,8 @@ public:
bool parseGuildRoster(network::Packet& packet, GuildRosterData& data) override;
// TBC 2.4.3 SMSG_QUESTGIVER_STATUS: uint32 status (WotLK uses uint8)
uint8_t readQuestGiverStatus(network::Packet& packet) override;
// TBC 2.4.3 SMSG_MESSAGECHAT: no senderGuid/unknown prefix before type-specific data
bool parseMessageChat(network::Packet& packet, MessageChatData& data) override;
// TBC 2.4.3 SMSG_GAMEOBJECT_QUERY_RESPONSE: 2 extra strings after names
// (iconName + castBarCaption); WotLK has 3 (adds unk1)
bool parseGameObjectQueryResponse(network::Packet& packet, GameObjectQueryResponseData& data) override;