From 0781d296577579be6692b90a96f76563b9093282 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 28 Sep 2014 21:04:18 +0200 Subject: Core/GameObjects: Fixed uninitialized elevator period value --- src/server/game/Maps/TransportMgr.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/server/game') diff --git a/src/server/game/Maps/TransportMgr.h b/src/server/game/Maps/TransportMgr.h index 04c372cc526..2a956316be8 100644 --- a/src/server/game/Maps/TransportMgr.h +++ b/src/server/game/Maps/TransportMgr.h @@ -83,6 +83,8 @@ typedef std::map TransportPathRotationCon struct TransportAnimation { + TransportAnimation() : TotalTime(0) { } + TransportPathContainer Path; TransportPathRotationContainer Rotations; uint32 TotalTime; -- cgit v1.2.3 From c23c66f7193ed5ad0864778c5fb5025133770561 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sun, 28 Sep 2014 21:13:00 +0200 Subject: Core/AH: Fix Auction House items not deleted from database Fix some cases where Auction House items were not deleted from item_instance table of character database, for example if the owner didn't exist anymore or if the owner was the AHBot. Updates #12699 Updates #13232 --- src/server/game/AuctionHouse/AuctionHouseMgr.cpp | 19 ++++++++++++++++++- src/server/game/AuctionHouse/AuctionHouseMgr.h | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) (limited to 'src/server/game') diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp index 7b1dda89869..015109e70ee 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 @@ -350,12 +360,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; } diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.h b/src/server/game/AuctionHouse/AuctionHouseMgr.h index 597da13cb1b..0ef61be584a 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.h +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.h @@ -181,7 +181,7 @@ class AuctionHouseMgr void LoadAuctions(); void AddAItem(Item* it); - bool RemoveAItem(uint32 id); + bool RemoveAItem(uint32 id, bool deleteItem = false); void Update(); -- cgit v1.2.3