diff options
Diffstat (limited to 'node')
| -rw-r--r-- | node/dicerollernode.cpp | 1 | ||||
| -rw-r--r-- | node/ifnode.cpp | 31 | ||||
| -rw-r--r-- | node/splitnode.cpp | 1 |
3 files changed, 22 insertions, 11 deletions
diff --git a/node/dicerollernode.cpp b/node/dicerollernode.cpp index 9ca0d35..fd92b93 100644 --- a/node/dicerollernode.cpp +++ b/node/dicerollernode.cpp @@ -92,4 +92,5 @@ Die::ArithmeticOperator DiceRollerNode::getOperator() const void DiceRollerNode::setOperator(const Die::ArithmeticOperator &dieOperator) { m_operator = dieOperator; + m_diceResult->setOperator(dieOperator); } diff --git a/node/ifnode.cpp b/node/ifnode.cpp index 91ad199..da852b3 100644 --- a/node/ifnode.cpp +++ b/node/ifnode.cpp @@ -34,48 +34,57 @@ IfNode::~IfNode() void IfNode::run(ExecutionNode *previous) { m_previousNode = previous; - if(NULL==previous) + if(nullptr==previous) { return; } ExecutionNode* previousLoop = previous; - ExecutionNode* nextNode = NULL; - bool runNext = (NULL==m_nextNode) ? false : true; + ExecutionNode* nextNode = nullptr; + bool runNext = (nullptr==m_nextNode) ? false : true; Result* previousResult = previous->getResult(); m_result = previousResult; - if(NULL!=m_result) + if(nullptr!=m_result) { qreal value = previousResult->getResult(Result::SCALAR).toReal(); - if(NULL!=m_validator) + if(nullptr!=m_validator) { DiceResult* previousDiceResult = dynamic_cast<DiceResult*>(previousResult); - if(NULL!=previousDiceResult) + if(nullptr!=previousDiceResult) { QList<Die*> diceList=previousDiceResult->getResultList(); + if(m_conditionType == OnEach) { for(Die* dice : diceList) { + qDebug()<< "dice value:" << dice->getValue(); if(m_validator->hasValid(dice,true,true)) { - nextNode = (NULL==m_true) ? NULL: m_true->getCopy(); + qDebug()<< "true"; + nextNode = (nullptr==m_true) ? nullptr: m_true->getCopy(); } else { - nextNode = (NULL==m_false) ? NULL: m_false->getCopy(); + qDebug()<< "false"; + nextNode = (nullptr==m_false) ? nullptr: m_false->getCopy(); } - if(NULL!=nextNode) + qDebug()<< "dice value:" << dice->getValue() << "next node" << nextNode << "m_true" << m_true; + + if(nullptr!=nextNode) { - if(NULL==previousLoop->getNextNode()) + if(nullptr==previousLoop->getNextNode()) { + qDebug() << "iniside loop"; previousLoop->setNextNode(nextNode); } - if(NULL==m_nextNode) + if(nullptr==m_nextNode) { + qDebug() << "next node" ; m_nextNode = nextNode; } + qDebug() << "before run"; nextNode->run(previousLoop); previousLoop = getLeafNode(nextNode); } diff --git a/node/splitnode.cpp b/node/splitnode.cpp index 7c01910..a074248 100644 --- a/node/splitnode.cpp +++ b/node/splitnode.cpp @@ -46,6 +46,7 @@ void SplitNode::run(ExecutionNode* previous) for(qint64 value : oldDie->getListValue()) { Die* tmpdie = new Die(); + tmpdie->insertRollValue(value); tmpdie->setFaces(oldDie->getFaces()); tmpdie->setValue(value); tmpdie->setOp(oldDie->getOp()); |