From 606001e99593372d0a71c566a5efdefd48175305 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Thu, 5 Mar 2015 14:30:18 +0100 Subject: add generateTree add jumpbackward node --- node/jumpbackwardnode.cpp | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'node/jumpbackwardnode.cpp') diff --git a/node/jumpbackwardnode.cpp b/node/jumpbackwardnode.cpp index c311ed2..c8b392b 100644 --- a/node/jumpbackwardnode.cpp +++ b/node/jumpbackwardnode.cpp @@ -1,32 +1,37 @@ #include "jumpbackwardnode.h" + JumpBackwardNode::JumpBackwardNode() { + m_diceResult =new DiceResult(); + m_result = m_diceResult; } qint64 JumpBackwardNode::getPriority() const { - return 1; + return 4; } QString JumpBackwardNode::toString() const { - return QString(); + return QString("JumpBackwardNode"); } void JumpBackwardNode::run(ExecutionNode* previous) { + m_previousNode = previous; ExecutionNode* parent = previous; bool found=false; - int i = 1; + int i = 3; Result* result=NULL; - while((NULL!=parent)&&(found)) + while((NULL!=parent)&&(!found)) { + result = parent->getResult(); - if(NULL!=result) + if((NULL!=result)) { --i; - if(i==0) + if((i==0)&&(parent->getResult()->hasResultOfType(Result::DICE_LIST))) { found =true; } @@ -34,5 +39,19 @@ void JumpBackwardNode::run(ExecutionNode* previous) parent = parent->getPreviousNode(); } - m_result = result; + DiceResult* diceResult = dynamic_cast(result); + foreach(Die* die,diceResult->getResultList()) + { + Die* tmpdie = new Die(); + *tmpdie=*die; + m_diceResult->insertResult(tmpdie); + } + + //*m_result = *result; + m_result->setPrevious(parent->getResult()); + + if(NULL!=m_nextNode) + { + m_nextNode->run(this); + } } -- cgit v1.2.3-70-g09d2