aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp4
-rw-r--r--src/server/game/DataStores/DB2Structure.h2
-rw-r--r--src/server/game/DataStores/DBCEnums.h27
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
{