diff options
| author | 2019-07-12 00:28:09 +0200 | |
|---|---|---|
| committer | 2019-07-12 00:28:09 +0200 | |
| commit | d810aab9b7df705d325ee00f1909dfd835b9b97c (patch) | |
| tree | da832909c5fa45cf34e31f21d3817fb46f5d3026 | |
| parent | 8e8384b27f83d0375d381a86622b0afd4c42eacb (diff) | |
| download | OneRoll-d810aab9b7df705d325ee00f1909dfd835b9b97c.tar.gz OneRoll-d810aab9b7df705d325ee00f1909dfd835b9b97c.zip | |
Fix errors
| -rw-r--r-- | diceparser.cpp | 10 | ||||
| -rw-r--r-- | node/dicerollernode.cpp | 13 |
2 files changed, 12 insertions, 11 deletions
diff --git a/diceparser.cpp b/diceparser.cpp index 0b1e6da..e01373c 100644 --- a/diceparser.cpp +++ b/diceparser.cpp @@ -226,6 +226,11 @@ bool DiceParser::readExpression(QString& str, ExecutionNode*& node) } } } + else if(readOperatorFromNull(str, operandNode)) + { + node= operandNode; + return true; + } else if(m_parsingToolbox->readOperand(str, operandNode)) { ExecutionNode* diceNode= nullptr; @@ -259,11 +264,6 @@ bool DiceParser::readExpression(QString& str, ExecutionNode*& node) node= operandNode; return true; } - else if(readOperatorFromNull(str, operandNode)) - { - node= operandNode; - return true; - } else if(readValuesList(str, operandNode)) { node= operandNode; diff --git a/node/dicerollernode.cpp b/node/dicerollernode.cpp index 44b9e0a..f57d3e3 100644 --- a/node/dicerollernode.cpp +++ b/node/dicerollernode.cpp @@ -19,18 +19,19 @@ void DiceRollerNode::run(ExecutionNode* previous) Result* result= previous->getResult(); if(nullptr != result) { - m_diceCount= static_cast<quint64>(result->getResult(Result::SCALAR).toReal()); - m_result->setPrevious(result); - - if(m_diceCount == 0) + auto num= result->getResult(Result::SCALAR).toReal(); + if(num <= 0) { m_errors.insert(NO_DICE_TO_ROLL, QObject::tr("No dice to roll")); } + m_diceCount= num > 0 ? static_cast<quint64>(num) : 0; + m_result->setPrevious(result); + auto possibleValue= static_cast<quint64>(std::abs((m_max - m_min) + 1)); if(possibleValue < m_diceCount && m_unique) { - m_errors.insert( - TOO_MANY_DICE, QObject::tr("More unique values asked than possible values (D operator)")); + m_errors.insert(TOO_MANY_DICE, + QObject::tr("More unique values asked than possible values (D operator)")); return; } |