aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Mails
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-04-20 20:36:24 +0200
committerShauren <shauren.trinity@gmail.com>2020-04-20 20:36:24 +0200
commitaced88b09bd918b0ed17b6c5e8a6048788600d9d (patch)
tree80f699e135bdb890f12be5db99f49caec9e373cb /src/server/game/Mails
parent7ef9acd765feeecb3752359958f717896bcbe37a (diff)
Core/AuctionHouse: After taking a break at the start of patch 8.3 auction house is now back in business.
Diffstat (limited to 'src/server/game/Mails')
-rw-r--r--src/server/game/Mails/Mail.cpp11
-rw-r--r--src/server/game/Mails/Mail.h5
2 files changed, 11 insertions, 5 deletions
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp
index e54a623c8a4..00fb553d539 100644
--- a/src/server/game/Mails/Mail.cpp
+++ b/src/server/game/Mails/Mail.cpp
@@ -62,8 +62,8 @@ MailSender::MailSender(CalendarEvent* sender)
{
}
-MailSender::MailSender(AuctionEntry* sender)
- : m_messageType(MAIL_AUCTION), m_senderId(uint64(sender->GetHouseId())), m_stationery(MAIL_STATIONERY_AUCTION) { }
+MailSender::MailSender(AuctionHouseObject const* sender)
+ : m_messageType(MAIL_AUCTION), m_senderId(uint64(sender->GetAuctionHouseId())), m_stationery(MAIL_STATIONERY_AUCTION) { }
MailSender::MailSender(BlackMarketEntry* sender)
: m_messageType(MAIL_BLACKMARKET), m_senderId(sender->GetTemplate()->SellerNPC), m_stationery(MAIL_STATIONERY_AUCTION) { }
@@ -89,6 +89,11 @@ MailReceiver::MailReceiver(Player* receiver, ObjectGuid::LowType receiver_lowgui
ASSERT(!receiver || receiver->GetGUID().GetCounter() == receiver_lowguid);
}
+MailReceiver::MailReceiver(Player* receiver, ObjectGuid receiverGuid) : m_receiver(receiver), m_receiver_lowguid(receiverGuid.GetCounter())
+{
+ ASSERT(!receiver || receiver->GetGUID() == receiverGuid);
+}
+
MailDraft& MailDraft::AddItem(Item* item)
{
m_items[item->GetGUID().GetCounter()] = item;
@@ -182,7 +187,7 @@ void MailDraft::SendReturnToSender(uint32 sender_acc, ObjectGuid::LowType sender
void MailDraft::SendMailTo(CharacterDatabaseTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay)
{
Player* pReceiver = receiver.GetPlayer(); // can be NULL
- Player* pSender = ObjectAccessor::FindPlayer(ObjectGuid::Create<HighGuid::Player>(sender.GetSenderId()));
+ Player* pSender = sender.GetMailMessageType() == MAIL_NORMAL ? ObjectAccessor::FindPlayer(ObjectGuid::Create<HighGuid::Player>(sender.GetSenderId())) : nullptr;
if (pReceiver)
prepareItems(pReceiver, trans); // generate mail template items
diff --git a/src/server/game/Mails/Mail.h b/src/server/game/Mails/Mail.h
index b5adf47448a..91fac20c6f3 100644
--- a/src/server/game/Mails/Mail.h
+++ b/src/server/game/Mails/Mail.h
@@ -23,8 +23,8 @@
#include "Transaction.h"
#include <map>
-struct AuctionEntry;
struct CalendarEvent;
+class AuctionHouseObject;
class BlackMarketEntry;
class Item;
class Object;
@@ -91,7 +91,7 @@ class TC_GAME_API MailSender
}
MailSender(Object* sender, MailStationery stationery = MAIL_STATIONERY_DEFAULT);
MailSender(CalendarEvent* sender);
- MailSender(AuctionEntry* sender);
+ MailSender(AuctionHouseObject const* sender);
MailSender(BlackMarketEntry* sender);
MailSender(Player* sender);
MailSender(uint32 senderEntry);
@@ -111,6 +111,7 @@ class TC_GAME_API MailReceiver
explicit MailReceiver(ObjectGuid::LowType receiver_lowguid) : m_receiver(NULL), m_receiver_lowguid(receiver_lowguid) { }
MailReceiver(Player* receiver);
MailReceiver(Player* receiver, ObjectGuid::LowType receiver_lowguid);
+ MailReceiver(Player* receiver, ObjectGuid receiverGuid);
public: // Accessors
Player* GetPlayer() const { return m_receiver; }
ObjectGuid::LowType GetPlayerGUIDLow() const { return m_receiver_lowguid; }