diff options
Diffstat (limited to 'src/server/game/AuctionHouse/AuctionHouseMgr.cpp')
-rw-r--r-- | src/server/game/AuctionHouse/AuctionHouseMgr.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp index 0cf8f1f9b33..09de6c3b0ef 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp @@ -1532,18 +1532,13 @@ bool AuctionHouseObject::BuyCommodity(CharacterDatabaseTransaction trans, Player return false; } - auto quote = _commodityQuotes.find(player->GetGUID()); - if (quote == _commodityQuotes.end()) + auto quote = _commodityQuotes.extract(player->GetGUID()); + if (!quote) { player->GetSession()->SendAuctionCommandResult(0, AuctionCommand::PlaceBid, AuctionResult::CommodityPurchaseFailed, delayForNextAction); return false; } - std::shared_ptr<std::nullptr_t> removeQuote(nullptr, [this, quote](std::nullptr_t) - { - _commodityQuotes.erase(quote); - }); - uint64 totalPrice = 0; uint32 remainingQuantity = quantity; std::vector<AuctionPosting*> auctions; @@ -1575,7 +1570,7 @@ bool AuctionHouseObject::BuyCommodity(CharacterDatabaseTransaction trans, Player // something was bought between creating quote and finalizing transaction // but we allow lower price if new items were posted at lower price - if (totalPrice > quote->second.TotalPrice) + if (totalPrice > quote.mapped().TotalPrice) { player->GetSession()->SendAuctionCommandResult(0, AuctionCommand::PlaceBid, AuctionResult::CommodityPurchaseFailed, delayForNextAction); return false; |