From 5543908e52bec8d62aca33b4f04171dc19dfe275 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 1 Jun 2021 22:13:07 +0200 Subject: [PATCH] Core/Criteria: Add all values of CriteriaTreeFlags --- .../game/Achievements/CriteriaHandler.cpp | 4 ++-- src/server/game/DataStores/DB2Structure.h | 2 ++ src/server/game/DataStores/DBCEnums.h | 23 +++++++++++++------ 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index 039e064cde6..b920220dbc3 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -1102,8 +1102,8 @@ bool CriteriaHandler::IsCompletedCriteriaTree(CriteriaTree const* tree) bool CriteriaHandler::CanUpdateCriteriaTree(Criteria const* criteria, CriteriaTree const* tree, Player* referencePlayer) const { - if ((tree->Entry->Flags & CRITERIA_TREE_FLAG_HORDE_ONLY && referencePlayer->GetTeam() != HORDE) || - (tree->Entry->Flags & CRITERIA_TREE_FLAG_ALLIANCE_ONLY && referencePlayer->GetTeam() != ALLIANCE)) + if ((tree->Entry->GetFlags().HasFlag(CriteriaTreeFlags::HordeOnly) && referencePlayer->GetTeam() != HORDE) || + (tree->Entry->GetFlags().HasFlag(CriteriaTreeFlags::AllianceOnly) && referencePlayer->GetTeam() != ALLIANCE)) { TC_LOG_TRACE("criteria", "CriteriaHandler::CanUpdateCriteriaTree: (Id: %u Type %s CriteriaTree %u) Wrong faction", criteria->ID, CriteriaMgr::GetCriteriaTypeString(criteria->Entry->Type), tree->Entry->ID); diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h index 5322e12cb2b..47017fc2ed2 100644 --- a/src/server/game/DataStores/DB2Structure.h +++ b/src/server/game/DataStores/DB2Structure.h @@ -1136,6 +1136,8 @@ struct CriteriaTreeEntry uint32 CriteriaID; int32 OrderIndex; int32 Flags; + + EnumFlag GetFlags() const { return static_cast(Flags); } }; struct CurrencyTypesEntry diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index 556a9145869..91d07db213c 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -843,16 +843,25 @@ enum CriteriaTypes : uint8 #define CRITERIA_TYPE_TOTAL 230 -enum CriteriaTreeFlags : uint16 +enum class CriteriaTreeFlags : uint16 { - CRITERIA_TREE_FLAG_PROGRESS_BAR = 0x0001, - CRITERIA_TREE_FLAG_PROGRESS_IS_DATE = 0x0004, - CRITERIA_TREE_FLAG_SHOW_CURRENCY_ICON = 0x0008, - CRITERIA_TREE_FLAG_ALLIANCE_ONLY = 0x0200, - CRITERIA_TREE_FLAG_HORDE_ONLY = 0x0400, - CRITERIA_TREE_FLAG_SHOW_REQUIRED_COUNT = 0x0800 + ProgressBar = 0x0001, // Progress Bar + DoNotDisplay = 0x0002, // Do Not Display + IsDate = 0x0004, // Is a Date + IsMoney = 0x0008, // Is Money + ToastOnComplete = 0x0010, // Toast on Complete + UseObjectsDescription = 0x0020, // Use Object's Description + ShowFactionSpecificChild = 0x0040, // Show faction specific child + DisplayAllChildren = 0x0080, // Display all children + AwardBonusRep = 0x0100, // Award Bonus Rep (Hack!!) + AllianceOnly = 0x0200, // Treat this criteria or block as Alliance + HordeOnly = 0x0400, // Treat this criteria or block as Horde + DisplayAsFraction = 0x0800, // Display as Fraction + IsForQuest = 0x1000 // Is For Quest }; +DEFINE_ENUM_FLAG(CriteriaTreeFlags); + enum CriteriaTreeOperator : uint8 { CRITERIA_TREE_OPERATOR_SINGLE = 0,