diff options
| author | leak <leakzx@googlemail.com> | 2010-12-31 04:47:57 +0100 |
|---|---|---|
| committer | leak <leakzx@googlemail.com> | 2010-12-31 04:47:57 +0100 |
| commit | 73fe85e6fd5a7822991de89ac2a563a317c6c859 (patch) | |
| tree | a5bf0e83902d1857c0f8721688b98fbf4c03397d | |
| parent | c5a143547d9c5181ad2a63738d42bceb6e7742fa (diff) | |
Core/Handlers: Allow gamemasters to send mails with customer support badge depending on gm mode (.gm off/on)
| -rwxr-xr-x | src/server/game/Mails/Mail.cpp | 7 | ||||
| -rwxr-xr-x | src/server/game/Mails/Mail.h | 1 | ||||
| -rwxr-xr-x | src/server/game/Server/Protocol/Handlers/MailHandler.cpp | 4 |
3 files changed, 11 insertions, 1 deletions
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp index 287767723bd..ef36fe430c5 100755 --- a/src/server/game/Mails/Mail.cpp +++ b/src/server/game/Mails/Mail.cpp @@ -60,6 +60,13 @@ MailSender::MailSender(AuctionEntry* sender) { } +MailSender::MailSender(Player* sender) +{ + m_messageType = MAIL_NORMAL; + m_stationery = sender->isGameMaster() ? MAIL_STATIONERY_GM : MAIL_STATIONERY_DEFAULT; + m_senderId = sender->GetGUIDLow(); +} + MailReceiver::MailReceiver(Player* receiver) : m_receiver(receiver), m_receiver_lowguid(receiver->GetGUIDLow()) { diff --git a/src/server/game/Mails/Mail.h b/src/server/game/Mails/Mail.h index 4308d53676d..c729566b398 100755 --- a/src/server/game/Mails/Mail.h +++ b/src/server/game/Mails/Mail.h @@ -95,6 +95,7 @@ class MailSender } MailSender(Object* sender, MailStationery stationery = MAIL_STATIONERY_DEFAULT); MailSender(AuctionEntry* sender); + MailSender(Player* sender); public: // Accessors MailMessageType GetMailMessageType() const { return m_messageType; } uint32 GetSenderId() const { return m_senderId; } diff --git a/src/server/game/Server/Protocol/Handlers/MailHandler.cpp b/src/server/game/Server/Protocol/Handlers/MailHandler.cpp index 986de94dd98..fc841f9f3c8 100755 --- a/src/server/game/Server/Protocol/Handlers/MailHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/MailHandler.cpp @@ -280,11 +280,13 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data) // If theres is an item, there is a one hour delivery delay if sent to another account's character. uint32 deliver_delay = needItemDelay ? sWorld->getIntConfig(CONFIG_MAIL_DELIVERY_DELAY) : 0; + uint32 stationary = pl->isGameMaster() ? MAIL_STATIONERY_GM : MAIL_STATIONERY_DEFAULT; + // will delete item or place to receiver mail list draft .AddMoney(money) .AddCOD(COD) - .SendMailTo(trans, MailReceiver(receive, GUID_LOPART(rc)), pl, body.empty() ? MAIL_CHECK_MASK_COPIED : MAIL_CHECK_MASK_HAS_BODY, deliver_delay); + .SendMailTo(trans, MailReceiver(receive, GUID_LOPART(rc)), MailSender(pl), body.empty() ? MAIL_CHECK_MASK_COPIED : MAIL_CHECK_MASK_HAS_BODY, deliver_delay); pl->SaveInventoryAndGoldToDB(trans); CharacterDatabase.CommitTransaction(trans); |
