diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 42166f17..fcdfeee9 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -98,6 +98,11 @@ enum ServerZoneIpcType : LogMessage = 0x00D0, LinkshellList = 0x0117, // updated 4.4 + + MailDeleteRequest = 0x0118, // updated 4.4 + ReqMoogleMailList = 0x0119, // updated 4.4 + ReqMoogleMailLetter = 0x01A, // updated 4.4 + MailLetterNotification = 0x011B, // updated 4.4 ExamineFreeCompanyInfo = 0x013A, // updated 4.1 CharaFreeCompanyTag = 0x0127, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index cc26c3e1..c6202853 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -210,6 +210,43 @@ struct FFXIVIpcLinkshellList : } entry[8]; }; +/** +* Structural representation of the packet sent by the server +* to send a list of mail the player has +*/ +struct FFXIVIpcReqMoogleMailList : + FFXIVIpcBasePacket< ReqMoogleMailList > +{ + struct letterEntry { + char unk[0x8]; + uint32_t timeStamp; // The time the mail was sent (this also seems to be used as a Id) + char unk1[0x30]; // This should be items, gil, etc for the letter + uint8_t read; // 0 = false | 1 = true + uint8_t type; // 0 = Friends | 1 = Rewards | 2 = GM + uint8_t unk2; + char senderName[0x20]; // The name of the sender + char summary[0x3C]; // The start of the full letter text + char padding2[0x5]; + } letter[5]; + char unk3[0x08]; +}; + +/** +* Structural representation of the packet sent by the server +* to show the mail delivery notification +*/ +struct FFXIVIpcMailLetterNotificationt : + FFXIVIpcBasePacket< MailLetterNotification > +{ + uint32_t sendbackCount; // The amount of letters sent back since you ran out of room (moogle dialog changes based on this) + uint16_t friendLetters; // The amount of letters in the friends section of the letterbox + uint16_t unreadCount; // The amount of unreads in the letterbox (this is the number that shows up) + uint16_t rewardLetters; // The amount of letters in the rewards section of the letterbox + uint8_t isGmLetter; // Makes the letter notification flash red + uint8_t isSupportDesk; // After setting this to 1 we can no longer update mail notifications (more research needed on the support desk) + char unk2[0x4]; // This has probs something to do with the support desk (inquiry id?) +}; + struct FFXIVIpcExamineFreeCompanyInfo : FFXIVIpcBasePacket< ExamineFreeCompanyInfo > {