aboutsummaryrefslogtreecommitdiff
path: root/src/game/AchievementMgr.cpp
diff options
context:
space:
mode:
authorwin32 <none@none>2009-12-16 18:58:36 +0200
committerwin32 <none@none>2009-12-16 18:58:36 +0200
commitbf2c3fd8cf32578324162a8bef2ac6e48e7e0009 (patch)
treeccb8f71a159aba2799cc009352a8626d95b6fc6c /src/game/AchievementMgr.cpp
parentdc53b4a9def06d012d791304aaba1c748a1f997a (diff)
MaNGOS merge: Mail System.
* Store loot in mail_loot_template indexed by mail template ids. * Implement proper creating mail text copy item from mail template based mail. * Move send functions to new MailDraft class from WorldSession. * Implement mails sending at player levelup. * Autor VladimirMangos, converted by me. --HG-- branch : trunk
Diffstat (limited to 'src/game/AchievementMgr.cpp')
-rw-r--r--src/game/AchievementMgr.cpp23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp
index f041749cf08..5b8f0b6bb12 100644
--- a/src/game/AchievementMgr.cpp
+++ b/src/game/AchievementMgr.cpp
@@ -1708,16 +1708,6 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
{
Item* item = reward->itemId ? Item::CreateItem(reward->itemId,1,GetPlayer ()) : NULL;
- MailItemsInfo mi;
- if(item)
- {
- // save new item before send
- item->SaveToDB(); // save for prevent lost at next mail load, if send fail then item will deleted
-
- // item
- mi.AddItem(item->GetGUIDLow(), item->GetEntry(), item);
- }
-
int loc_idx = GetPlayer()->GetSession()->GetSessionDbLocaleIndex();
// subject and text
@@ -1736,7 +1726,18 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
uint32 itemTextId = objmgr.CreateItemText( text );
- WorldSession::SendMailTo(GetPlayer(), MAIL_CREATURE, MAIL_STATIONERY_NORMAL, reward->sender, GetPlayer()->GetGUIDLow(), subject, itemTextId , &mi, 0, 0, MAIL_CHECK_MASK_NONE);
+ MailDraft draft(subject, itemTextId);
+
+ if(item)
+ {
+ // save new item before send
+ item->SaveToDB(); // save for prevent lost at next mail load, if send fail then item will deleted
+
+ // item
+ draft.AddItem(item);
+ }
+
+ draft.SendMailTo(GetPlayer(), MailSender(MAIL_CREATURE, reward->sender));
}
}