Core/Criteria: Refactor CriteriaTreeOperator as enum class

This commit is contained in:
Shauren
2021-06-01 22:17:49 +02:00
parent 5543908e52
commit 239cf1b005
2 changed files with 18 additions and 18 deletions
@@ -1026,18 +1026,18 @@ bool CriteriaHandler::IsCompletedCriteriaTree(CriteriaTree const* tree)
return false;
uint64 requiredCount = tree->Entry->Amount;
switch (tree->Entry->Operator)
switch (CriteriaTreeOperator(tree->Entry->Operator))
{
case CRITERIA_TREE_OPERATOR_SINGLE:
case CriteriaTreeOperator::Complete:
return tree->Criteria && IsCompletedCriteria(tree->Criteria, requiredCount);
case CRITERIA_TREE_OPERATOR_SINGLE_NOT_COMPLETED:
case CriteriaTreeOperator::NotComplete:
return !tree->Criteria || !IsCompletedCriteria(tree->Criteria, requiredCount);
case CRITERIA_TREE_OPERATOR_ALL:
case CriteriaTreeOperator::CompleteAll:
for (CriteriaTree const* node : tree->Children)
if (!IsCompletedCriteriaTree(node))
return false;
return true;
case CRITERIA_TREE_OPERAROR_SUM_CHILDREN:
case CriteriaTreeOperator::Sum:
{
uint64 progress = 0;
CriteriaMgr::WalkCriteriaTree(tree, [this, &progress](CriteriaTree const* criteriaTree)
@@ -1048,7 +1048,7 @@ bool CriteriaHandler::IsCompletedCriteriaTree(CriteriaTree const* tree)
});
return progress >= requiredCount;
}
case CRITERIA_TREE_OPERATOR_MAX_CHILD:
case CriteriaTreeOperator::Highest:
{
uint64 progress = 0;
CriteriaMgr::WalkCriteriaTree(tree, [this, &progress](CriteriaTree const* criteriaTree)
@@ -1060,7 +1060,7 @@ bool CriteriaHandler::IsCompletedCriteriaTree(CriteriaTree const* tree)
});
return progress >= requiredCount;
}
case CRITERIA_TREE_OPERATOR_COUNT_DIRECT_CHILDREN:
case CriteriaTreeOperator::StartedAtLeast:
{
uint64 progress = 0;
for (CriteriaTree const* node : tree->Children)
@@ -1072,7 +1072,7 @@ bool CriteriaHandler::IsCompletedCriteriaTree(CriteriaTree const* tree)
return false;
}
case CRITERIA_TREE_OPERATOR_ANY:
case CriteriaTreeOperator::CompleteAtLeast:
{
uint64 progress = 0;
for (CriteriaTree const* node : tree->Children)
@@ -1082,7 +1082,7 @@ bool CriteriaHandler::IsCompletedCriteriaTree(CriteriaTree const* tree)
return false;
}
case CRITERIA_TREE_OPERATOR_SUM_CHILDREN_WEIGHT:
case CriteriaTreeOperator::ProgressBar:
{
uint64 progress = 0;
CriteriaMgr::WalkCriteriaTree(tree, [this, &progress](CriteriaTree const* criteriaTree)
+9 -9
View File
@@ -862,16 +862,16 @@ enum class CriteriaTreeFlags : uint16
DEFINE_ENUM_FLAG(CriteriaTreeFlags);
enum CriteriaTreeOperator : uint8
enum class CriteriaTreeOperator : uint8
{
CRITERIA_TREE_OPERATOR_SINGLE = 0,
CRITERIA_TREE_OPERATOR_SINGLE_NOT_COMPLETED = 1,
CRITERIA_TREE_OPERATOR_ALL = 4,
CRITERIA_TREE_OPERAROR_SUM_CHILDREN = 5,
CRITERIA_TREE_OPERATOR_MAX_CHILD = 6,
CRITERIA_TREE_OPERATOR_COUNT_DIRECT_CHILDREN = 7,
CRITERIA_TREE_OPERATOR_ANY = 8,
CRITERIA_TREE_OPERATOR_SUM_CHILDREN_WEIGHT = 9
Complete = 0, // Complete
NotComplete = 1, // Not Complete
CompleteAll = 4, // Complete All
Sum = 5, // Sum Of Criteria Is
Highest = 6, // Highest Criteria Is
StartedAtLeast = 7, // Started At Least
CompleteAtLeast = 8, // Complete At Least
ProgressBar = 9 // Progress Bar
};
enum class ChrCustomizationOptionFlag : int32