diff options
| author | 2016-09-25 04:20:08 +0200 | |
|---|---|---|
| committer | 2016-09-25 04:20:08 +0200 | |
| commit | d70776644de9e2774483000327f4e229bd8ab50b (patch) | |
| tree | 8ce06347aee7ee9fd9ed15bcf877d994a767f244 /node/jumpbackwardnode.cpp | |
| parent | 664ac48622701dedaa816f5c27fff5f99389690e (diff) | |
| download | OneRoll-d70776644de9e2774483000327f4e229bd8ab50b.tar.gz OneRoll-d70776644de9e2774483000327f4e229bd8ab50b.zip | |
-remove limit of 3 jump.
Now the operation is jumping backward until it find its first dice result
or it has reached the beginning.
Diffstat (limited to 'node/jumpbackwardnode.cpp')
| -rw-r--r-- | node/jumpbackwardnode.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/node/jumpbackwardnode.cpp b/node/jumpbackwardnode.cpp index b1e7889..0b2cbf6 100644 --- a/node/jumpbackwardnode.cpp +++ b/node/jumpbackwardnode.cpp @@ -91,20 +91,29 @@ void JumpBackwardNode::run(ExecutionNode* previous) m_previousNode = previous; ExecutionNode* parent = previous; bool found=false; - int i = 3; + //int i = 3; Result* result=NULL; while((NULL!=parent)&&(!found)) { result = parent->getResult(); - if((NULL!=result)) + if(NULL!=result) { - --i; - if((i==0)&&(result->hasResultOfType(Result::DICE_LIST))) + //--i; + if(/*(i==0)&&*/(result->hasResultOfType(Result::DICE_LIST))) { found =true; m_backwardNode = parent; } + else + { + JumpBackwardNode* jpNode = dynamic_cast<JumpBackwardNode*>(parent); + if(NULL!=jpNode) + { + found = true; + m_backwardNode = parent; + } + } } if(!found) { |