Core/Mail: Define new mail flags

This commit is contained in:
luis
2026-09-22 20:46:31 -03:00
parent 246e9dccac
commit ce8f02e48c
3 changed files with 22 additions and 18 deletions
@@ -0,0 +1 @@
ALTER TABLE `mail` MODIFY COLUMN `checked` int UNSIGNED NOT NULL DEFAULT 0 AFTER `cod`;
+2 -2
View File
@@ -20143,7 +20143,7 @@ void Player::_LoadMail(PreparedQueryResult mailsResult, PreparedQueryResult mail
m->deliver_time = fields[7].GetInt64();
m->money = fields[8].GetUInt64();
m->COD = fields[9].GetUInt64();
m->checked = fields[10].GetUInt8();
m->checked = fields[10].GetUInt32();
m->stationery = fields[11].GetUInt8();
m->mailTemplateId = fields[12].GetInt16();
@@ -21775,7 +21775,7 @@ void Player::_SaveMail(CharacterDatabaseTransaction trans)
stmt->setInt64(2, m->deliver_time);
stmt->setUInt64(3, m->money);
stmt->setUInt64(4, m->COD);
stmt->setUInt8(5, uint8(m->checked));
stmt->setUInt32(5, uint8(m->checked));
stmt->setUInt64(6, m->messageID);
trans->Append(stmt);
+19 -16
View File
@@ -47,14 +47,26 @@ enum MailMessageType
MAIL_ARTISANS_CONSORTIUM = 9 // crafting orders
};
enum MailCheckMask
enum MailCheckMask : uint32
{
MAIL_CHECK_MASK_NONE = 0x00,
MAIL_CHECK_MASK_READ = 0x01,
MAIL_CHECK_MASK_RETURNED = 0x02, /// This mail was returned. Do not allow returning mail back again.
MAIL_CHECK_MASK_COPIED = 0x04, /// This mail was copied. Do not allow making a copy of items in mail.
MAIL_CHECK_MASK_COD_PAYMENT = 0x08,
MAIL_CHECK_MASK_HAS_BODY = 0x10 /// This mail has body text.
MAIL_CHECK_MASK_NONE = 0x00000,
MAIL_CHECK_MASK_READ = 0x00001, ///< This mail was read.
MAIL_CHECK_MASK_RETURNED = 0x00002, ///< This mail was returned. Do not allow returning mail back again.
MAIL_CHECK_MASK_COPIED = 0x00004, ///< This mail was copied. Do not allow making a copy of items in mail.
MAIL_CHECK_MASK_COD_PAYMENT = 0x00008, ///< This mail is payable on delivery
MAIL_CHECK_MASK_HAS_BODY = 0x00010, ///< This mail has body text.
MAIL_CHECK_MASK_UNK_5 = 0x00020,
MAIL_CHECK_MASK_AUCTION_WON = 0x00040, ///< This mail is delivering won auction items.
MAIL_CHECK_MASK_UNK_7 = 0x00080,
MAIL_CHECK_MASK_CALENDAR_INVITE = 0x00100, ///< This mail is related to calendar invite.
MAIL_CHECK_MASK_NOT_RETURNABLE = 0x00200, ///< This mail cannot be returned even if mail was not returned before.
MAIL_CHECK_MASK_AUCTION = 0x00400, ///< This mail came from auction house.
MAIL_CHECK_MASK_NOT_DELETABLE_WITH_ATTACHMENTS = 0x00800, ///< This mail cannot be deleted without taking attachments first.
MAIL_CHECK_MASK_UNK_12 = 0x01000,
MAIL_CHECK_MASK_UNK_13 = 0x02000,
MAIL_CHECK_MASK_RESTORED_ITEM = 0x04000, ///< This mail contains recovered items.
MAIL_CHECK_MASK_NOT_COPYABLE = 0x08000, ///< This mail cannot be copied.
MAIL_CHECK_MASK_COMMERCE = 0x10000, ///< WoW Token mail.
};
// gathered from Stationery.dbc
@@ -76,15 +88,6 @@ enum MailState
MAIL_STATE_DELETED = 3
};
enum MailShowFlags
{
MAIL_SHOW_UNK0 = 0x0001,
MAIL_SHOW_DELETE = 0x0002, // forced show delete button instead return button
MAIL_SHOW_AUCTION = 0x0004, // from old comment
MAIL_SHOW_UNK2 = 0x0008, // unknown, COD will be shown even without that flag
MAIL_SHOW_RETURN = 0x0010
};
class TC_GAME_API MailSender
{
public: // Constructors