diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Achievements/CriteriaHandler.cpp | 4 | ||||
-rw-r--r-- | src/server/game/DataStores/DB2Structure.h | 2 | ||||
-rw-r--r-- | src/server/game/DataStores/DBCEnums.h | 27 |
3 files changed, 22 insertions, 11 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<CriteriaTreeFlags> GetFlags() const { return static_cast<CriteriaTreeFlags>(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,15 +843,24 @@ enum CriteriaTypes : uint8 #define CRITERIA_TYPE_TOTAL 230 -enum 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 -}; +enum class CriteriaTreeFlags : uint16 +{ + 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 { |