mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 15:40:45 +01:00
Core/AuctionHouse: Updated AuctionHouseFilterMask and implemented current expansion filter
(cherry picked from commit 5b278a4ca7)
This commit is contained in:
@@ -961,7 +961,7 @@ void AuctionHouseObject::AddAuction(CharacterDatabaseTransaction trans, AuctionP
|
||||
}
|
||||
}
|
||||
|
||||
bucket->QualityMask |= static_cast<AuctionHouseFilterMask>(1 << (quality + 4));
|
||||
bucket->QualityMask |= static_cast<AuctionHouseFilterMask>(AsUnderlyingType(AuctionHouseFilterMask::PoorQuality) << quality);
|
||||
++bucket->QualityCounts[quality];
|
||||
|
||||
if (trans)
|
||||
@@ -1063,7 +1063,7 @@ std::map<uint32, AuctionPosting>::node_type AuctionHouseObject::RemoveAuction(Ch
|
||||
}
|
||||
|
||||
if (!--bucket->QualityCounts[quality])
|
||||
bucket->QualityMask &= static_cast<AuctionHouseFilterMask>(~(1 << (quality + 4)));
|
||||
bucket->QualityMask &= static_cast<AuctionHouseFilterMask>(AsUnderlyingType(AuctionHouseFilterMask::PoorQuality) << quality);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1223,7 +1223,7 @@ void AuctionHouseObject::BuildListBuckets(WorldPackets::AuctionHouse::AuctionLis
|
||||
{
|
||||
if (ItemModifiedAppearanceEntry const* itemModifiedAppearance = sItemModifiedAppearanceStore.LookupEntry(bucketAppearance.first))
|
||||
{
|
||||
if (knownAppearanceIds.find(itemModifiedAppearance->ItemAppearanceID) == knownAppearanceIds.end())
|
||||
if (!knownAppearanceIds.contains(itemModifiedAppearance->ItemAppearanceID))
|
||||
{
|
||||
hasAll = false;
|
||||
break;
|
||||
@@ -1277,6 +1277,13 @@ void AuctionHouseObject::BuildListBuckets(WorldPackets::AuctionHouse::AuctionLis
|
||||
continue;
|
||||
}
|
||||
|
||||
if (filters.HasFlag(AuctionHouseFilterMask::CurrentExpansionOnly))
|
||||
{
|
||||
ItemTemplate const* itemTemplate = ASSERT_NOTNULL(sObjectMgr->GetItemTemplate(bucket.first.ItemId));
|
||||
if (itemTemplate->GetRequiredExpansion() != sWorld->getIntConfig(CONFIG_EXPANSION))
|
||||
continue;
|
||||
}
|
||||
|
||||
// TODO: this one needs to access loot history to know highest item level for every inventory type
|
||||
//if (filters.HasFlag(AuctionHouseFilterMask::UpgradesOnly))
|
||||
//{
|
||||
|
||||
@@ -97,19 +97,20 @@ constexpr std::size_t MAX_FAVORITE_AUCTIONS = 100;
|
||||
|
||||
enum class AuctionHouseFilterMask : uint32
|
||||
{
|
||||
None = 0x0,
|
||||
UncollectedOnly = 0x1,
|
||||
UsableOnly = 0x2,
|
||||
UpgradesOnly = 0x4,
|
||||
ExactMatch = 0x8,
|
||||
PoorQuality = 0x10,
|
||||
CommonQuality = 0x20,
|
||||
UncommonQuality = 0x40,
|
||||
RareQuality = 0x80,
|
||||
EpicQuality = 0x100,
|
||||
LegendaryQuality = 0x200,
|
||||
ArtifactQuality = 0x400,
|
||||
LegendaryCraftedItemOnly = 0x800,
|
||||
None = 0x0000,
|
||||
UncollectedOnly = 0x0002,
|
||||
UsableOnly = 0x0004,
|
||||
CurrentExpansionOnly = 0x0008,
|
||||
UpgradesOnly = 0x0010,
|
||||
ExactMatch = 0x0020,
|
||||
PoorQuality = 0x0040,
|
||||
CommonQuality = 0x0080,
|
||||
UncommonQuality = 0x0100,
|
||||
RareQuality = 0x0200,
|
||||
EpicQuality = 0x0400,
|
||||
LegendaryQuality = 0x0800,
|
||||
ArtifactQuality = 0x1000,
|
||||
LegendaryCraftedItemOnly = 0x2000,
|
||||
};
|
||||
|
||||
DEFINE_ENUM_FLAG(AuctionHouseFilterMask);
|
||||
|
||||
Reference in New Issue
Block a user