Fix SMSG_MESSAGECHAT parser missing receiverGuid for most chat types

The parser was not reading the uint64 receiverGuid that WoW 3.3.5
sends for SAY/GUILD/PARTY/YELL/WHISPER/RAID/etc types, causing all
incoming chat from other players to misparse (blank messages, wrong
type displayed). Also fix TEXT_EMOTE display to not prepend "You " for
incoming emotes from other players, and fix CHANNEL/ACHIEVEMENT types
to read the correct receiverGuid field.
This commit is contained in:
Kelsi 2026-02-14 14:37:53 -08:00
parent 9bcead6a0f
commit be425c94dc
2 changed files with 12 additions and 13 deletions

View file

@ -627,7 +627,8 @@ void GameScreen::renderChatWindow(game::GameHandler& gameHandler) {
if (msg.type == game::ChatType::SYSTEM) {
renderTextWithLinks(msg.message, color);
} else if (msg.type == game::ChatType::TEXT_EMOTE) {
std::string full = "You " + msg.message;
// Local emotes (senderGuid==0) need "You " prefix; incoming already have sender name
std::string full = (msg.senderGuid == 0) ? ("You " + msg.message) : msg.message;
renderTextWithLinks(full, color);
} else if (!msg.senderName.empty()) {
if (msg.type == game::ChatType::MONSTER_SAY || msg.type == game::ChatType::MONSTER_YELL) {