From 8572e4c63bf4c3b1decfb95e09960f899f198dd2 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Thu, 24 Dec 2015 11:21:35 +0100 Subject: -Add MergeOp and homogeneous status for result. --- diceparser.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'diceparser.cpp') diff --git a/diceparser.cpp b/diceparser.cpp index d07e555..0937733 100644 --- a/diceparser.cpp +++ b/diceparser.cpp @@ -38,6 +38,7 @@ #include "node/jumpbackwardnode.h" #include "node/listsetrollnode.h" #include "node/listaliasnode.h" +#include "node/mergenode.h" #define DEFAULT_FACES_NUMBER 10 @@ -59,6 +60,7 @@ DiceParser::DiceParser() m_OptionOp->insert(QObject::tr("r"),Reroll); m_OptionOp->insert(QObject::tr("e"),Explosing); m_OptionOp->insert(QObject::tr("a"),RerollAndAdd); + m_OptionOp->insert(QObject::tr("m"),Merge); //m_OptionOp->insert(QObject::tr("@"),JumpBackward); @@ -443,7 +445,7 @@ QStringList DiceParser::getAllDiceResult(bool& hasAlias) return stringListResult; } -void DiceParser::getLastDiceResult(ExportedDiceResult& diceValues) +void DiceParser::getLastDiceResult(ExportedDiceResult& diceValues,bool& homogeneous) { ExecutionNode* next = getLeafNode(); Result* result=next->getResult(); @@ -455,6 +457,10 @@ void DiceParser::getLastDiceResult(ExportedDiceResult& diceValues) DiceResult* diceResult = dynamic_cast(result); if(NULL!=diceResult) { + if(homogeneous) + { + homogeneous = diceResult->isHomogeneous(); + } quint64 face=0; ListDiceResult listpair; foreach(Die* die, diceResult->getResultList()) @@ -935,7 +941,16 @@ bool DiceParser::readOption(QString& str,ExecutionNode* previous, bool hasDice)/ m_errorMap.insert(ExecutionNode::BAD_SYNTAXE,QObject::tr("Validator is missing after the e operator. Please, change it")); } } + break; + case Merge: + { + MergeNode* mergeNode = new MergeNode(); + previous->setNextNode(mergeNode); + node = mergeNode; + isFine = true; + } + break; } } -- cgit v1.2.3-70-g09d2 From 6657f88c22fb5422541b80a15a2dc98f76ec03a0 Mon Sep 17 00:00:00 2001 From: Renaud Date: Mon, 28 Dec 2015 20:59:13 +0100 Subject: manage homogeneous --- diceparser.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'diceparser.cpp') diff --git a/diceparser.cpp b/diceparser.cpp index 0937733..9bb4309 100644 --- a/diceparser.cpp +++ b/diceparser.cpp @@ -459,6 +459,7 @@ void DiceParser::getLastDiceResult(ExportedDiceResult& diceValues,bool& homogene { if(homogeneous) { + homogeneous = diceResult->isHomogeneous(); } quint64 face=0; -- cgit v1.2.3-70-g09d2