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] [Flags]
public enum AuctionHouseFilterMask public enum AuctionHouseFilterMask
{ {
None = 0x0, None = 0x00,
UncollectedOnly = 0x1, UncollectedOnly = 0x02,
UsableOnly = 0x2, UsableOnly = 0x04,
UpgradesOnly = 0x4, CurrentExpansionOnly = 0x08,
ExactMatch = 0x8, UpgradesOnly = 0x10,
PoorQuality = 0x10, ExactMatch = 0x20,
CommonQuality = 0x20, PoorQuality = 0x40,
UncommonQuality = 0x40, CommonQuality = 0x80,
RareQuality = 0x80, UncommonQuality = 0x100,
EpicQuality = 0x100, RareQuality = 0x200,
LegendaryQuality = 0x200, EpicQuality = 0x400,
ArtifactQuality = 0x400, LegendaryQuality = 0x800,
LegendaryCraftedItemOnly = 0x800, ArtifactQuality = 0x1000,
LegendaryCraftedItemOnly = 0x2000,
} }
public enum AuctionHouseSortOrder 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]; ++bucket.QualityCounts[quality];
if (trans != null) if (trans != null)
@@ -733,7 +733,7 @@ namespace Game
} }
if (--bucket.QualityCounts[quality] == 0) if (--bucket.QualityCounts[quality] == 0)
bucket.QualityMask &= (AuctionHouseFilterMask)(~(1 << ((int)quality + 4))); bucket.QualityMask &= (AuctionHouseFilterMask)((uint)AuctionHouseFilterMask.PoorQuality << (int)quality);
} }
else else
_buckets.Remove(bucket.Key); _buckets.Remove(bucket.Key);
@@ -937,6 +937,13 @@ namespace Game
continue; 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 // TODO: this one needs to access loot history to know highest item level for every inventory type
//if (filters.HasFlag(AuctionHouseFilterMask.UpgradesOnly)) //if (filters.HasFlag(AuctionHouseFilterMask.UpgradesOnly))
//{ //{