From 5514859e562e203c80478962c56e3e1a0ada6668 Mon Sep 17 00:00:00 2001 From: Yehonal Date: Thu, 23 Feb 2017 14:20:20 +0100 Subject: [PATCH] Implemented custom expiration parameter for SendMailTo --- src/game/Mails/Mail.cpp | 4 +++- src/game/Mails/Mail.h | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/game/Mails/Mail.cpp b/src/game/Mails/Mail.cpp index 9774c5615..047e0d03e 100644 --- a/src/game/Mails/Mail.cpp +++ b/src/game/Mails/Mail.cpp @@ -158,7 +158,7 @@ void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32 SendMailTo(trans, MailReceiver(receiver, receiver_guid), MailSender(MAIL_NORMAL, sender_guid), MAIL_CHECK_MASK_RETURNED, 0); } -void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay) +void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay, uint32 custom_expiration) { Player* pReceiver = receiver.GetPlayer(); // can be NULL Player* pSender = ObjectAccessor::FindPlayerInOrOutOfWorld(MAKE_NEW_GUID(sender.GetSenderId(), 0, HIGHGUID_PLAYER)); @@ -184,6 +184,8 @@ void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, { if (m_COD) expire_delay = 3 * DAY; + else if (custom_expiration > 0 ) + expire_delay = custom_expiration * DAY; else expire_delay = pSender && pSender->GetSession()->GetSecurity() ? 90 * DAY : 30 * DAY; } diff --git a/src/game/Mails/Mail.h b/src/game/Mails/Mail.h index 7a6029fcf..d65576797 100644 --- a/src/game/Mails/Mail.h +++ b/src/game/Mails/Mail.h @@ -125,7 +125,7 @@ class MailDraft public: // finishers void SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32 receiver_guid, SQLTransaction& trans); - void SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked = MAIL_CHECK_MASK_NONE, uint32 deliver_delay = 0); + void SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked = MAIL_CHECK_MASK_NONE, uint32 deliver_delay = 0, uint32 custom_expiration = 0); private: void deleteIncludedItems(SQLTransaction& trans, bool inDB = false);