aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/node/mergenode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/mergenode.cpp')
-rw-r--r--node/mergenode.cpp9
1 files changed, 8 insertions, 1 deletions
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<DiceResult*>(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 <QDebug>
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;