aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validatorlist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'validatorlist.cpp')
-rw-r--r--validatorlist.cpp29
1 files changed, 21 insertions, 8 deletions
diff --git a/validatorlist.cpp b/validatorlist.cpp
index b665328..cb650df 100644
--- a/validatorlist.cpp
+++ b/validatorlist.cpp
@@ -56,7 +56,12 @@ DiceResult* getDiceResult(Result* result)
auto dice= dynamic_cast<DiceResult*>(result);
if(nullptr == dice)
{
- qFatal("Error, no dice result");
+ auto value= result->getResult(Dice::RESULT_TYPE::SCALAR).toInt();
+ dice= new DiceResult();
+ auto die= new Die();
+ die->setValue(value);
+ dice->insertResult(die);
+ qWarning("Error, no dice result");
// TODO: manage error here.
}
return dice;
@@ -297,9 +302,17 @@ void ValidatorList::validResult(Result* result, bool recursive, bool unlight,
DiceResult* diceResult= getDiceResult(result);
if(nullptr == diceResult)
break;
- for(auto die : diceResult->getResultList())
+
+ if(m_validatorList.size() > 1)
{
- validResult.appendValidDice(die, die->getValue());
+ for(auto const& die : qAsConst(diceResult->getResultList()))
+ {
+ validResult.appendValidDice(die, die->getValue());
+ }
+ }
+ else
+ {
+ validResult.appendValidDice(new Die(die), die.getValue());
}
}
}
@@ -309,7 +322,7 @@ void ValidatorList::validResult(Result* result, bool recursive, bool unlight,
DiceResult* diceResult= getDiceResult(result);
if(nullptr == diceResult)
break;
- for(auto die : diceResult->getResultList())
+ for(auto const& die : qAsConst(diceResult->getResultList()))
{
auto score= validator->hasValid(die, recursive, unlight);
if(score)
@@ -324,7 +337,7 @@ void ValidatorList::validResult(Result* result, bool recursive, bool unlight,
DiceResult* diceResult= getDiceResult(result);
if(nullptr == diceResult)
break;
- for(auto die : diceResult->getResultList())
+ for(auto const& die : qAsConst(diceResult->getResultList()))
{
auto score= validator->hasValid(die, recursive, unlight);
if(score)
@@ -346,7 +359,7 @@ void ValidatorList::validResult(Result* result, bool recursive, bool unlight,
if(all)
{
validResult.setAllTrue(true);
- for(auto die : diceResult->getResultList())
+ for(auto die : qAsConst(diceResult->getResultList()))
{
validResult.appendValidDice(die, die->getValue());
}
@@ -365,7 +378,7 @@ void ValidatorList::validResult(Result* result, bool recursive, bool unlight,
if(any)
{
validResult.setAllTrue(true);
- for(auto die : diceResult->getResultList())
+ for(auto die : qAsConst(diceResult->getResultList()))
{
validResult.appendValidDice(die, die->getValue());
}
@@ -380,7 +393,7 @@ void ValidatorList::validResult(Result* result, bool recursive, bool unlight,
int i= 0;
ValidatorResult finalResult;
- for(auto vec : validityData)
+ for(const auto& vec : validityData)
{
auto diceList= vec.validDice();
if(i == 0)