mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 22:37:03 +00:00
[11734] Use vector instead of list for sorting auction items
This commit is contained in:
parent
202a6b0a70
commit
a1ca1d71d8
5 changed files with 12 additions and 10 deletions
|
|
@ -658,12 +658,15 @@ void WorldSession::HandleAuctionListItems(WorldPacket & recv_data)
|
|||
AuctionHouseObject* auctionHouse = sAuctionMgr.GetAuctionsMap(auctionHouseEntry);
|
||||
|
||||
// Sort
|
||||
AuctionHouseObject::AuctionEntryMap *aucs = auctionHouse->GetAuctions();
|
||||
std::list<AuctionEntry*> auctions;
|
||||
for (AuctionHouseObject::AuctionEntryMap::const_iterator itr = aucs->begin(); itr != aucs->end(); ++itr)
|
||||
AuctionHouseObject::AuctionEntryMap const& aucs = auctionHouse->GetAuctions();
|
||||
std::vector<AuctionEntry*> auctions;
|
||||
auctions.reserve(aucs.size());
|
||||
|
||||
for (AuctionHouseObject::AuctionEntryMap::const_iterator itr = aucs.begin(); itr != aucs.end(); ++itr)
|
||||
auctions.push_back(itr->second);
|
||||
|
||||
AuctionSorter sorter(Sort, GetPlayer());
|
||||
auctions.sort(sorter);
|
||||
std::sort(auctions.begin(), auctions.end(), sorter);
|
||||
|
||||
// remove fake death
|
||||
if (GetPlayer()->hasUnitState(UNIT_STAT_DIED))
|
||||
|
|
|
|||
|
|
@ -803,12 +803,12 @@ bool AuctionSorter::operator()(const AuctionEntry *auc1, const AuctionEntry *auc
|
|||
return false; // "equal" by all sorts
|
||||
}
|
||||
|
||||
void WorldSession::BuildListAuctionItems(std::list<AuctionEntry*> &auctions, WorldPacket& data, std::wstring const& wsearchedname, uint32 listfrom, uint32 levelmin,
|
||||
void WorldSession::BuildListAuctionItems(std::vector<AuctionEntry*> const& auctions, WorldPacket& data, std::wstring const& wsearchedname, uint32 listfrom, uint32 levelmin,
|
||||
uint32 levelmax, uint32 usable, uint32 inventoryType, uint32 itemClass, uint32 itemSubClass, uint32 quality, uint32& count, uint32& totalcount, bool isFull)
|
||||
{
|
||||
int loc_idx = _player->GetSession()->GetSessionDbLocaleIndex();
|
||||
|
||||
for (std::list<AuctionEntry*>::const_iterator itr = auctions.begin(); itr != auctions.end();++itr)
|
||||
for (std::vector<AuctionEntry*>::const_iterator itr = auctions.begin(); itr != auctions.end(); ++itr)
|
||||
{
|
||||
AuctionEntry *Aentry = *itr;
|
||||
if (Aentry->moneyDeliveryTime)
|
||||
|
|
|
|||
|
|
@ -104,8 +104,7 @@ class AuctionHouseObject
|
|||
|
||||
uint32 GetCount() { return AuctionsMap.size(); }
|
||||
|
||||
AuctionEntryMap *GetAuctions() { return &AuctionsMap; }
|
||||
|
||||
AuctionEntryMap const& GetAuctions() const { return AuctionsMap; }
|
||||
AuctionEntryMapBounds GetAuctionsBounds() const {return AuctionEntryMapBounds(AuctionsMap.begin(), AuctionsMap.end()); }
|
||||
|
||||
void AddAuction(AuctionEntry *ah)
|
||||
|
|
|
|||
|
|
@ -358,7 +358,7 @@ class MANGOS_DLL_SPEC WorldSession
|
|||
void SendAuctionRemovedNotification(AuctionEntry* auction);
|
||||
static void SendAuctionOutbiddedMail(AuctionEntry *auction);
|
||||
void SendAuctionCancelledToBidderMail(AuctionEntry *auction);
|
||||
void BuildListAuctionItems(std::list<AuctionEntry*> &auctions, WorldPacket& data, std::wstring const& searchedname, uint32 listfrom, uint32 levelmin,
|
||||
void BuildListAuctionItems(std::vector<AuctionEntry*> const& auctions, WorldPacket& data, std::wstring const& searchedname, uint32 listfrom, uint32 levelmin,
|
||||
uint32 levelmax, uint32 usable, uint32 inventoryType, uint32 itemClass, uint32 itemSubClass, uint32 quality, uint32& count, uint32& totalcount, bool isFull);
|
||||
|
||||
AuctionHouseEntry const* GetCheckedAuctionHouseForAuctioneer(ObjectGuid guid);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "11733"
|
||||
#define REVISION_NR "11734"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue