[8616] Some cleanups in WorldSession::SendMailTo

This commit is contained in:
VladimirMangos 2009-10-10 12:11:59 +04:00
parent 29e6601335
commit f5db4fc163
2 changed files with 16 additions and 19 deletions

View file

@ -818,35 +818,32 @@ void WorldSession::SendMailTo(Player* receiver, uint8 messageType, uint8 station
time_t deliver_time = time(NULL) + deliver_delay;
// expire time if COD 3 days, if no COD 30 days, if auction sale pending 1 hour
uint32 expire_delay;
if(messageType == MAIL_AUCTION && !mi && !money) // auction mail without any items and money
// auction mail without any items and money (auction sale note) pending 1 hour
if (messageType == MAIL_AUCTION && !mi && !money)
expire_delay = HOUR;
// mail from battlemaster (rewardmarks) should last only one day
else if (messageType == MAIL_CREATURE && sBattleGroundMgr.GetBattleMasterBG(sender_guidlow_or_entry) != BATTLEGROUND_TYPE_NONE)
expire_delay = DAY;
// default case: expire time if COD 3 days, if no COD 30 days
else
expire_delay = (COD > 0) ? 3 * DAY : 30 * DAY;
if (messageType == MAIL_CREATURE)
{
// mail from battlemaster (rewardmarks) should last only one day
BattleGroundTypeId bgTypeId = sBattleGroundMgr.GetBattleMasterBG(sender_guidlow_or_entry);
if (bgTypeId != BATTLEGROUND_TYPE_NONE)
expire_delay = DAY;
}
time_t expire_time = deliver_time + expire_delay;
if(mailTemplateId && !sMailTemplateStore.LookupEntry(mailTemplateId))
if (mailTemplateId && !sMailTemplateStore.LookupEntry(mailTemplateId))
{
sLog.outError( "WorldSession::SendMailTo - Mail have not existed MailTemplateId (%u), remove at send", mailTemplateId);
mailTemplateId = 0;
}
if(receiver)
if (receiver)
{
receiver->AddNewMailDeliverTime(deliver_time);
if ( receiver->IsMailsLoaded() )
if (receiver->IsMailsLoaded())
{
Mail *m = new Mail;
m->messageID = mailId;
@ -858,7 +855,7 @@ void WorldSession::SendMailTo(Player* receiver, uint8 messageType, uint8 station
m->subject = subject;
m->itemTextId = itemTextId;
if(mi)
if (mi)
m->AddAllItems(*mi);
m->expire_time = expire_time;
@ -870,20 +867,20 @@ void WorldSession::SendMailTo(Player* receiver, uint8 messageType, uint8 station
receiver->AddMail(m); // to insert new mail to beginning of maillist
if(mi)
if (mi)
{
for(MailItemMap::iterator mailItemIter = mi->begin(); mailItemIter != mi->end(); ++mailItemIter)
{
MailItem& mailItem = mailItemIter->second;
if(mailItem.item)
if (mailItem.item)
receiver->AddMItem(mailItem.item);
}
}
}
else if(mi)
else if (mi)
mi->deleteIncludedItems();
}
else if(mi)
else if (mi)
mi->deleteIncludedItems();
CharacterDatabase.BeginTransaction();
@ -892,7 +889,7 @@ void WorldSession::SendMailTo(Player* receiver, uint8 messageType, uint8 station
"VALUES ('%u', '%u', '%u', '%u', '%u', '%u', '%s', '%u', '%u', '" UI64FMTD "','" UI64FMTD "', '%u', '%u', '%d')",
mailId, messageType, stationery, mailTemplateId, sender_guidlow_or_entry, receiver_guidlow, subject.c_str(), itemTextId, (mi && !mi->empty() ? 1 : 0), (uint64)expire_time, (uint64)deliver_time, money, COD, checked);
if(mi)
if (mi)
{
for(MailItemMap::const_iterator mailItemIter = mi->begin(); mailItemIter != mi->end(); ++mailItemIter)
{

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "8615"
#define REVISION_NR "8616"
#endif // __REVISION_NR_H__