Fix inspect spam and emote text lookup for other players

Two bugs fixed:
1. SMSG_INSPECT_RESULTS (0x115) was falling through to the inspect
   handler, but this opcode is not the real inspect response. Removed
   the case so only SMSG_INSPECT_TALENT (0x3F4) triggers the handler.
2. EmotesText DBC layout was missing "ID" field in all 4 expansion
   JSON files, causing operator[] to return 0xFFFFFFFF instead of 0.
   This broke the dbcId reverse lookup, so other players' emotes
   always fell back to generic "performs an emote" text. Added ID
   and OthersTargetTextID/OthersNoTargetTextID to all layouts.
This commit is contained in:
Kelsi 2026-02-14 15:23:32 -08:00
parent 9c61d7ecad
commit 58d8b88721
6 changed files with 13 additions and 10 deletions

View file

@ -68,8 +68,9 @@
"GameObjectDisplayInfo": { "ID": 0, "ModelName": 1 },
"Emotes": { "ID": 0, "AnimID": 2 },
"EmotesText": {
"Command": 1, "EmoteRef": 2,
"SenderTargetTextID": 5, "SenderNoTargetTextID": 9
"ID": 0, "Command": 1, "EmoteRef": 2,
"OthersTargetTextID": 3, "SenderTargetTextID": 5,
"OthersNoTargetTextID": 7, "SenderNoTargetTextID": 9
},
"EmotesTextData": { "ID": 0, "Text": 1 },
"Light": {

View file

@ -69,8 +69,9 @@
"GameObjectDisplayInfo": { "ID": 0, "ModelName": 1 },
"Emotes": { "ID": 0, "AnimID": 2 },
"EmotesText": {
"Command": 1, "EmoteRef": 2,
"SenderTargetTextID": 5, "SenderNoTargetTextID": 9
"ID": 0, "Command": 1, "EmoteRef": 2,
"OthersTargetTextID": 3, "SenderTargetTextID": 5,
"OthersNoTargetTextID": 7, "SenderNoTargetTextID": 9
},
"EmotesTextData": { "ID": 0, "Text": 1 },
"Light": {

View file

@ -68,8 +68,9 @@
"GameObjectDisplayInfo": { "ID": 0, "ModelName": 1 },
"Emotes": { "ID": 0, "AnimID": 2 },
"EmotesText": {
"Command": 1, "EmoteRef": 2,
"SenderTargetTextID": 5, "SenderNoTargetTextID": 9
"ID": 0, "Command": 1, "EmoteRef": 2,
"OthersTargetTextID": 3, "SenderTargetTextID": 5,
"OthersNoTargetTextID": 7, "SenderNoTargetTextID": 9
},
"EmotesTextData": { "ID": 0, "Text": 1 },
"Light": {

View file

@ -69,8 +69,9 @@
"GameObjectDisplayInfo": { "ID": 0, "ModelName": 1 },
"Emotes": { "ID": 0, "AnimID": 2 },
"EmotesText": {
"Command": 1, "EmoteRef": 2,
"SenderTargetTextID": 5, "SenderNoTargetTextID": 9
"ID": 0, "Command": 1, "EmoteRef": 2,
"OthersTargetTextID": 3, "SenderTargetTextID": 5,
"OthersNoTargetTextID": 7, "SenderNoTargetTextID": 9
},
"EmotesTextData": { "ID": 0, "Text": 1 },
"Light": {

View file

@ -801,7 +801,6 @@ void GameHandler::handlePacket(network::Packet& packet) {
handleItemQueryResponse(packet);
break;
case Opcode::SMSG_INSPECT_RESULTS:
case Opcode::SMSG_INSPECT_TALENT:
handleInspectResults(packet);
break;

View file

@ -107,7 +107,7 @@ void DBCLayout::loadWotlkDefaults() {
// EmotesText.dbc
// Fields 3-18 are 16 EmotesTextData refs: [others+target, target+target, sender+target, ?,
// others+notarget, ?, sender+notarget, ?, female variants...]
layouts_["EmotesText"] = {{{ "Command", 1 }, { "EmoteRef", 2 },
layouts_["EmotesText"] = {{{ "ID", 0 }, { "Command", 1 }, { "EmoteRef", 2 },
{ "OthersTargetTextID", 3 }, { "SenderTargetTextID", 5 },
{ "OthersNoTargetTextID", 7 }, { "SenderNoTargetTextID", 9 }}};