diff options
| author | DDuarte <dnpd.dd@gmail.com> | 2014-09-29 12:48:34 +0100 |
|---|---|---|
| committer | DDuarte <dnpd.dd@gmail.com> | 2014-09-29 12:48:34 +0100 |
| commit | f805d049417bf67157f5ef4479880ff64fbbfbc8 (patch) | |
| tree | 000d04ec5c81601e599e378f057003e574973c93 /src/server/game/AuctionHouse/AuctionHouseMgr.cpp | |
| parent | aa638d9bc74a53b29f9a7c1f07fa93d47075b2bc (diff) | |
| parent | 35b267e7f7811ca62b587837a53c0c48a73efbd7 (diff) | |
Merge remote-tracking branch 'origin/master' into 4.3.4
Diffstat (limited to 'src/server/game/AuctionHouse/AuctionHouseMgr.cpp')
| -rw-r--r-- | src/server/game/AuctionHouse/AuctionHouseMgr.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp index 2479c8fa2f0..46ac5b8f511 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp @@ -147,6 +147,11 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, SQLTransaction& .AddItem(pItem) .SendMailTo(trans, MailReceiver(bidder, auction->bidder), auction, MAIL_CHECK_MASK_COPIED); } + else + { + // bidder doesn't exist, delete the item + sAuctionMgr->RemoveAItem(auction->itemGUIDLow, true); + } } void AuctionHouseMgr::SendAuctionSalePendingMail(AuctionEntry* auction, SQLTransaction& trans) @@ -207,6 +212,11 @@ void AuctionHouseMgr::SendAuctionExpiredMail(AuctionEntry* auction, SQLTransacti .AddItem(pItem) .SendMailTo(trans, MailReceiver(owner, auction->owner), auction, MAIL_CHECK_MASK_COPIED, 0); } + else + { + // owner doesn't exist, delete the item + sAuctionMgr->RemoveAItem(auction->itemGUIDLow, true); + } } //this function sends mail to old bidder @@ -353,12 +363,19 @@ void AuctionHouseMgr::AddAItem(Item* it) mAitems[it->GetGUIDLow()] = it; } -bool AuctionHouseMgr::RemoveAItem(uint32 id) +bool AuctionHouseMgr::RemoveAItem(uint32 id, bool deleteItem) { ItemMap::iterator i = mAitems.find(id); if (i == mAitems.end()) return false; + if (deleteItem) + { + SQLTransaction trans = SQLTransaction(nullptr); + i->second->FSetState(ITEM_REMOVED); + i->second->SaveToDB(trans); + } + mAitems.erase(i); return true; } |
