aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/node
diff options
context:
space:
mode:
Diffstat (limited to 'node')
-rw-r--r--node/dicerollernode.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/node/dicerollernode.cpp b/node/dicerollernode.cpp
index 3c16a34..b51277f 100644
--- a/node/dicerollernode.cpp
+++ b/node/dicerollernode.cpp
@@ -16,17 +16,23 @@ void DiceRollerNode::run(ExecutionNode* previous)
{
if(NULL!=previous)
{
- m_diceCount = previous->getResult()->getScalar();
- for(quint64 i=0; i < m_diceCount ; ++i)
+ Result* result=previous->getResult();
+ if(NULL!=result)
{
- Die* die = new Die();
- die->setFaces(m_faces);
- die->roll();
- m_myDiceResult->insertResult(die);
- }
- if(NULL!=m_nextNode)
- {
- m_nextNode->run(this);
+ m_diceCount = result->getScalar();
+ m_result->setPrevious(result);
+
+ for(quint64 i=0; i < m_diceCount ; ++i)
+ {
+ Die* die = new Die();
+ die->setFaces(m_faces);
+ die->roll();
+ m_myDiceResult->insertResult(die);
+ }
+ if(NULL!=m_nextNode)
+ {
+ m_nextNode->run(this);
+ }
}
}
}