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);
|
AuctionHouseObject* auctionHouse = sAuctionMgr.GetAuctionsMap(auctionHouseEntry);
|
||||||
|
|
||||||
// Sort
|
// Sort
|
||||||
AuctionHouseObject::AuctionEntryMap *aucs = auctionHouse->GetAuctions();
|
AuctionHouseObject::AuctionEntryMap const& aucs = auctionHouse->GetAuctions();
|
||||||
std::list<AuctionEntry*> auctions;
|
std::vector<AuctionEntry*> auctions;
|
||||||
for (AuctionHouseObject::AuctionEntryMap::const_iterator itr = aucs->begin(); itr != aucs->end(); ++itr)
|
auctions.reserve(aucs.size());
|
||||||
|
|
||||||
|
for (AuctionHouseObject::AuctionEntryMap::const_iterator itr = aucs.begin(); itr != aucs.end(); ++itr)
|
||||||
auctions.push_back(itr->second);
|
auctions.push_back(itr->second);
|
||||||
|
|
||||||
AuctionSorter sorter(Sort, GetPlayer());
|
AuctionSorter sorter(Sort, GetPlayer());
|
||||||
auctions.sort(sorter);
|
std::sort(auctions.begin(), auctions.end(), sorter);
|
||||||
|
|
||||||
// remove fake death
|
// remove fake death
|
||||||
if (GetPlayer()->hasUnitState(UNIT_STAT_DIED))
|
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
|
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)
|
uint32 levelmax, uint32 usable, uint32 inventoryType, uint32 itemClass, uint32 itemSubClass, uint32 quality, uint32& count, uint32& totalcount, bool isFull)
|
||||||
{
|
{
|
||||||
int loc_idx = _player->GetSession()->GetSessionDbLocaleIndex();
|
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;
|
AuctionEntry *Aentry = *itr;
|
||||||
if (Aentry->moneyDeliveryTime)
|
if (Aentry->moneyDeliveryTime)
|
||||||
|
|
|
||||||
|
|
@ -104,8 +104,7 @@ class AuctionHouseObject
|
||||||
|
|
||||||
uint32 GetCount() { return AuctionsMap.size(); }
|
uint32 GetCount() { return AuctionsMap.size(); }
|
||||||
|
|
||||||
AuctionEntryMap *GetAuctions() { return &AuctionsMap; }
|
AuctionEntryMap const& GetAuctions() const { return AuctionsMap; }
|
||||||
|
|
||||||
AuctionEntryMapBounds GetAuctionsBounds() const {return AuctionEntryMapBounds(AuctionsMap.begin(), AuctionsMap.end()); }
|
AuctionEntryMapBounds GetAuctionsBounds() const {return AuctionEntryMapBounds(AuctionsMap.begin(), AuctionsMap.end()); }
|
||||||
|
|
||||||
void AddAuction(AuctionEntry *ah)
|
void AddAuction(AuctionEntry *ah)
|
||||||
|
|
|
||||||
|
|
@ -358,7 +358,7 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void SendAuctionRemovedNotification(AuctionEntry* auction);
|
void SendAuctionRemovedNotification(AuctionEntry* auction);
|
||||||
static void SendAuctionOutbiddedMail(AuctionEntry *auction);
|
static void SendAuctionOutbiddedMail(AuctionEntry *auction);
|
||||||
void SendAuctionCancelledToBidderMail(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);
|
uint32 levelmax, uint32 usable, uint32 inventoryType, uint32 itemClass, uint32 itemSubClass, uint32 quality, uint32& count, uint32& totalcount, bool isFull);
|
||||||
|
|
||||||
AuctionHouseEntry const* GetCheckedAuctionHouseForAuctioneer(ObjectGuid guid);
|
AuctionHouseEntry const* GetCheckedAuctionHouseForAuctioneer(ObjectGuid guid);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "11733"
|
#define REVISION_NR "11734"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue