/** * Clone MailDraft from another MailDraft. * * @param draft Point to source for draft cloning. */ void MailDraft::CloneFrom(MailDraft const& draft) { m_mailTemplateId = draft.GetMailTemplateId(); m_mailTemplateItemsNeed = draft.m_mailTemplateItemsNeed; m_subject = draft.GetSubject(); MANGOS_ASSERT(!m_bodyId); if (uint32 bodyId = draft.GetBodyId()) { std::string text = sObjectMgr.GetItemText(bodyId); m_bodyId = sObjectMgr.CreateItemText(text); } m_money = draft.GetMoney(); m_COD = draft.GetCOD(); for (MailItemMap::const_iterator mailItemIter = draft.m_items.begin(); mailItemIter != draft.m_items.end(); ++mailItemIter) { Item* item = mailItemIter->second; if (Item* newitem = item->CloneItem(item->GetCount())) { newitem->SaveToDB(); AddItem(newitem); } } }
/** * Clone MailDraft from another MailDraft. * * @param draft Point to source for draft cloning. */ void MailDraft::CloneFrom(MailDraft const& draft) { m_mailTemplateId = draft.GetMailTemplateId(); m_mailTemplateItemsNeed = draft.m_mailTemplateItemsNeed; m_subject = draft.GetSubject(); MANGOS_ASSERT(!m_bodyId); if (uint32 bodyId = draft.GetBodyId()) { std::string text = sObjectMgr.GetItemText(bodyId); m_bodyId = sObjectMgr.CreateItemText(text); } m_money = draft.GetMoney(); m_COD = draft.GetCOD(); for (const auto& m_item : draft.m_items) { Item* item = m_item.second; if (Item* newitem = item->CloneItem(item->GetCount())) { newitem->SaveToDB(); AddItem(newitem); } } }