diff --git a/src/game/Mail.cpp b/src/game/Mail.cpp index 1ccae40e2..9b31f91a7 100644 --- a/src/game/Mail.cpp +++ b/src/game/Mail.cpp @@ -29,6 +29,7 @@ #include "Language.h" #include "DBCStores.h" #include "BattleGroundMgr.h" +#include "Item.h" enum MailShowFlags { @@ -39,6 +40,31 @@ enum MailShowFlags MAIL_SHOW_RETURN = 0x0010, }; + +void MailItemsInfo::deleteIncludedItems( bool inDB /*= false*/ ) +{ + for(MailItemMap::iterator mailItemIter = begin(); mailItemIter != end(); ++mailItemIter) + { + Item* item = mailItemIter->second; + + if(inDB) + CharacterDatabase.PExecute("DELETE FROM item_instance WHERE guid='%u'", item->GetGUIDLow()); + + delete item; + } + + i_MailItemMap.clear(); +} + +void Mail::AddAllItems( MailItemsInfo& pMailItemsInfo ) +{ + for(MailItemMap::iterator mailItemIter = pMailItemsInfo.begin(); mailItemIter != pMailItemsInfo.end(); ++mailItemIter) + { + Item* item = mailItemIter->second; + AddItem(item->GetGUIDLow(), item->GetEntry()); + } +} + void WorldSession::HandleSendMail(WorldPacket & recv_data ) { uint64 mailbox, unk3; @@ -201,7 +227,7 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data ) pl->SendMailResult(0, MAIL_SEND, MAIL_OK); - uint32 itemTextId = !body.empty() ? itemTextId = objmgr.CreateItemText( body ) : 0; + uint32 itemTextId = !body.empty() ? objmgr.CreateItemText( body ) : 0; pl->ModifyMoney( -int32(reqmoney) ); pl->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL, cost); diff --git a/src/game/Mail.h b/src/game/Mail.h index 1efba2a67..875dad745 100644 --- a/src/game/Mail.h +++ b/src/game/Mail.h @@ -98,20 +98,7 @@ class MailItemsInfo uint8 size() const { return i_MailItemMap.size(); } bool empty() const { return i_MailItemMap.empty(); } - void deleteIncludedItems(bool inDB = false) - { - for(MailItemMap::iterator mailItemIter = begin(); mailItemIter != end(); ++mailItemIter) - { - Item* item = mailItemIter->second; - - if(inDB) - CharacterDatabase.PExecute("DELETE FROM item_instance WHERE guid='%u'", item->GetGUIDLow()); - - delete item; - } - - i_MailItemMap.clear(); - } + void deleteIncludedItems(bool inDB = false); private: MailItemMap i_MailItemMap; // Keep the items in a map to avoid duplicate guids (which can happen), store only low part of guid }; @@ -143,14 +130,7 @@ struct Mail items.push_back(mii); } - void AddAllItems(MailItemsInfo& pMailItemsInfo) - { - for(MailItemMap::iterator mailItemIter = pMailItemsInfo.begin(); mailItemIter != pMailItemsInfo.end(); ++mailItemIter) - { - Item* item = mailItemIter->second; - AddItem(item->GetGUIDLow(), item->GetEntry()); - } - } + void AddAllItems(MailItemsInfo& pMailItemsInfo); bool RemoveItem(uint32 item_guid) { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 5a883329e..f53d3ee15 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8765" + #define REVISION_NR "8766" #endif // __REVISION_NR_H__