From 7da7c4acb6fc1f031878ff52792f53a8d0d03d4c Mon Sep 17 00:00:00 2001 From: obiwankennedy Date: Thu, 16 Jan 2014 11:15:56 +0100 Subject: Update booleancondition.cpp hasValid API --- booleancondition.cpp | 47 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/booleancondition.cpp b/booleancondition.cpp index f2d39fa..a255d0a 100644 --- a/booleancondition.cpp +++ b/booleancondition.cpp @@ -4,24 +4,45 @@ BooleanCondition::BooleanCondition() { } -bool BooleanCondition::isValid(Die* b) const +qint64 BooleanCondition::hasValid(Die* b,bool recursive) const { - switch(m_operator) + QList listValues; + if(recursive) { - case Equal: - return (b->getLastRolledValue()==m_value); - case GreaterThan: - return (b->getLastRolledValue()>m_value); - case LesserThan: - return (b->getLastRolledValue()getLastRolledValue()>=m_value); - case LesserOrEqual: - return (b->getLastRolledValue()<=m_value); + listValues = b->getListValue(); + } + else + { + listValues.append(b->getLastRolledValue()); + } + qint64 sum= 0; + foreach(qint64 value, listValues) + { + switch(m_operator) + { + case Equal: + sum+=(value==m_value)?1:0; + break; + case GreaterThan: + sum+= (value>m_value)?1:0; + break; + case LesserThan: + sum+= (value=m_value)?1:0; + break; + case LesserOrEqual: + sum+= (value<=m_value)?1:0; + break; + + + } } - return false; + + return sum; } void BooleanCondition::setOperator(LogicOperator m) -- cgit v1.2.3-70-g09d2