From 2e6f5d9174b1ade9d3c3ff4a81b210313480a104 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Sat, 12 Sep 2020 15:59:02 +0200 Subject: fix output change. --- node/mergenode.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'node/mergenode.cpp') diff --git a/node/mergenode.cpp b/node/mergenode.cpp index 51a5024..441d306 100644 --- a/node/mergenode.cpp +++ b/node/mergenode.cpp @@ -21,6 +21,8 @@ ***************************************************************************/ #include "mergenode.h" +#include "parsingtoolbox.h" + MergeNode::MergeNode() : m_diceResult(new DiceResult()) { m_result= m_diceResult; @@ -41,7 +43,10 @@ void MergeNode::run(ExecutionNode* previous) { ExecutionNode* last= getLatestNode(start); if(nullptr == last || nullptr == previousLast) + { + previousLast= last; continue; + } auto startResult= start->getResult(); if(nullptr == startResult) @@ -55,7 +60,7 @@ void MergeNode::run(ExecutionNode* previous) while(nullptr != tmpResult) { DiceResult* dice= dynamic_cast(tmpResult); - if(nullptr == dice) + if(nullptr != dice) { ///@todo TODO improve here to set homogeneous while is really m_diceResult->setHomogeneous(false); @@ -93,11 +98,13 @@ void MergeNode::run(ExecutionNode* previous) m_nextNode->run(this); } } +#include ExecutionNode* MergeNode::getLatestNode(ExecutionNode* node) { ExecutionNode* next= node; while(nullptr != next->getNextNode() && (next->getNextNode() != this)) { + qDebug() << "find latest node" << next->toString(true) << next->getNextNode()->toString(true); next= next->getNextNode(); } return next; -- cgit v1.2.3-70-g09d2