Core/AuctionHouse: Updated AuctionHouseFilterMask and implemented current expansion filter

Port From (https://github.com/TrinityCore/TrinityCore/commit/5b278a4ca79dd8aa19cde3892d92ae857d6f1dd4)
This commit is contained in:
Hondacrx
2025-09-02 13:01:36 -04:00
parent 656ef4636f
commit 6531cd9dc1
2 changed files with 23 additions and 15 deletions
+14 -13
View File
@@ -50,19 +50,20 @@ namespace Framework.Constants
[Flags]
public enum AuctionHouseFilterMask
{
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 = 0x00,
UncollectedOnly = 0x02,
UsableOnly = 0x04,
CurrentExpansionOnly = 0x08,
UpgradesOnly = 0x10,
ExactMatch = 0x20,
PoorQuality = 0x40,
CommonQuality = 0x80,
UncommonQuality = 0x100,
RareQuality = 0x200,
EpicQuality = 0x400,
LegendaryQuality = 0x800,
ArtifactQuality = 0x1000,
LegendaryCraftedItemOnly = 0x2000,
}
public enum AuctionHouseSortOrder
+9 -2
View File
@@ -625,7 +625,7 @@ namespace Game
}
}
bucket.QualityMask |= (AuctionHouseFilterMask)(1 << ((int)quality + 4));
bucket.QualityMask |= (AuctionHouseFilterMask)((uint)AuctionHouseFilterMask.PoorQuality << (int)quality);
++bucket.QualityCounts[quality];
if (trans != null)
@@ -733,7 +733,7 @@ namespace Game
}
if (--bucket.QualityCounts[quality] == 0)
bucket.QualityMask &= (AuctionHouseFilterMask)(~(1 << ((int)quality + 4)));
bucket.QualityMask &= (AuctionHouseFilterMask)((uint)AuctionHouseFilterMask.PoorQuality << (int)quality);
}
else
_buckets.Remove(bucket.Key);
@@ -937,6 +937,13 @@ namespace Game
continue;
}
if (filters.HasFlag(AuctionHouseFilterMask.CurrentExpansionOnly))
{
ItemTemplate itemTemplate = Global.ObjectMgr.GetItemTemplate(bucket.Key.ItemId);
if (itemTemplate.GetRequiredExpansion() != WorldConfig.GetIntValue(WorldCfg.Expansion))
continue;
}
// TODO: this one needs to access loot history to know highest item level for every inventory type
//if (filters.HasFlag(AuctionHouseFilterMask.UpgradesOnly))
//{