Implement mailbox interaction and expansion-aware mail system

Fix mailbox right-click (transposed CMSG_GAMEOBJECT_USE opcode, missing
mail opcodes in Turtle WoW JSON, decorative GO type filtering). Add
expansion-aware mail packet handling via PacketParsers: Classic format
(single item, no msgSize prefix, Vanilla field order) vs WotLK format
(attachment arrays, enchant slots). Fix CMSG_MAIL_TAKE_ITEM and
CMSG_MAIL_DELETE for Vanilla (no trailing fields). Add pulsing "New
Mail" indicator below minimap, SMSG_RECEIVED_MAIL and
MSG_QUERY_NEXT_MAIL_TIME handlers, and async sender name backfill.
This commit is contained in:
Kelsi 2026-02-16 18:46:44 -08:00
parent bbcc18aa22
commit 1cfe186c62
8 changed files with 421 additions and 126 deletions

View file

@ -488,7 +488,7 @@ void OpcodeTable::loadWotlkDefaults() {
{LogicalOpcode::SMSG_GOSSIP_MESSAGE, 0x17D},
{LogicalOpcode::SMSG_GOSSIP_COMPLETE, 0x17E},
{LogicalOpcode::SMSG_NPC_TEXT_UPDATE, 0x180},
{LogicalOpcode::CMSG_GAMEOBJECT_USE, 0x01B},
{LogicalOpcode::CMSG_GAMEOBJECT_USE, 0x0B1},
{LogicalOpcode::CMSG_QUESTGIVER_STATUS_QUERY, 0x182},
{LogicalOpcode::SMSG_QUESTGIVER_STATUS, 0x183},
{LogicalOpcode::SMSG_QUESTGIVER_STATUS_MULTIPLE, 0x198},
@ -596,15 +596,15 @@ void OpcodeTable::loadWotlkDefaults() {
{LogicalOpcode::SMSG_CHANNEL_LIST, 0x09B},
{LogicalOpcode::SMSG_INSPECT_TALENT, 0x3F4},
// Mail
{LogicalOpcode::SMSG_SHOW_MAILBOX, 0x24B},
{LogicalOpcode::SMSG_SHOW_MAILBOX, 0x297},
{LogicalOpcode::CMSG_GET_MAIL_LIST, 0x23A},
{LogicalOpcode::SMSG_MAIL_LIST_RESULT, 0x23B},
{LogicalOpcode::CMSG_SEND_MAIL, 0x238},
{LogicalOpcode::SMSG_SEND_MAIL_RESULT, 0x239},
{LogicalOpcode::CMSG_MAIL_TAKE_MONEY, 0x245},
{LogicalOpcode::CMSG_MAIL_TAKE_ITEM, 0x244},
{LogicalOpcode::CMSG_MAIL_DELETE, 0x243},
{LogicalOpcode::CMSG_MAIL_MARK_AS_READ, 0x242},
{LogicalOpcode::CMSG_MAIL_TAKE_ITEM, 0x246},
{LogicalOpcode::CMSG_MAIL_DELETE, 0x249},
{LogicalOpcode::CMSG_MAIL_MARK_AS_READ, 0x247},
{LogicalOpcode::SMSG_RECEIVED_MAIL, 0x285},
{LogicalOpcode::MSG_QUERY_NEXT_MAIL_TIME, 0x284},
};