aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/diceparser/node
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2020-01-30 01:27:07 +0100
committerRenaud G <renaud@rolisteam.org>2020-03-28 02:05:05 +0100
commit22d71d0032e2f44a8f267895aea3bd87864791b3 (patch)
tree39d244b5595ec8a174248313f021347d668973ed /diceparser/node
parent57a32d7e0be949b174f16563d660e5a98231c57e (diff)
downloadOneRoll-22d71d0032e2f44a8f267895aea3bd87864791b3.tar.gz
OneRoll-22d71d0032e2f44a8f267895aea3bd87864791b3.zip
add unicity and repeat function part1
Diffstat (limited to 'diceparser/node')
-rw-r--r--diceparser/node/repeaternode.cpp116
-rw-r--r--diceparser/node/repeaternode.h48
2 files changed, 0 insertions, 164 deletions
diff --git a/diceparser/node/repeaternode.cpp b/diceparser/node/repeaternode.cpp
deleted file mode 100644
index 09e88bd..0000000
--- a/diceparser/node/repeaternode.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2019 by Renaud Guezennec *
- * http://www.rolisteam.org/contact *
- * *
- * This file is part of DiceParser *
- * *
- * DiceParser is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-#include "node/repeaternode.h"
-
-#include "diceparserhelper.h"
-#include "executionnode.h"
-#include "parsingtoolbox.h"
-#include "result/stringresult.h"
-
-RepeaterNode::RepeaterNode() {}
-
-void RepeaterNode::run(ExecutionNode* previousNode)
-{
- m_previousNode= previousNode;
- m_times->run(this);
- m_times= ParsingToolBox::getLeafNode(m_times);
- auto times= m_times->getResult();
- auto timeCount= times->getResult(Dice::RESULT_TYPE::SCALAR).toInt();
- auto cmd= m_cmd->getCopy();
- for(int i= 0; i < timeCount; ++i)
- {
- m_cmd->run(this);
- auto end= ParsingToolBox::getLeafNode(cmd);
- auto result= end->getResult();
-
- if(nullptr == result)
- continue;
-
- if(result->hasResultOfType(Dice::RESULT_TYPE::SCALAR))
- {
- if(m_sumAll)
- {
- auto res= new ScalarResult();
-
- m_result= res;
- }
- else
- {
- auto res= new StringResult();
- m_result= res;
- }
- }
- else if(result->hasResultOfType(Dice::RESULT_TYPE::STRING))
- {
- auto res= new StringResult();
-
- m_result= res;
- }
- else if(result->hasResultOfType(Dice::RESULT_TYPE::DICE_LIST))
- {
- if(m_sumAll)
- {
- auto res= new ScalarResult();
-
- m_result= res;
- }
- else
- {
- auto res= new StringResult();
-
- m_result= res;
- }
- }
-
- cmd= m_cmd->getCopy();
- }
-}
-
-QString RepeaterNode::toString(bool withLabel) const
-{
- return withLabel ? QStringLiteral("") : QStringLiteral("");
-}
-
-qint64 RepeaterNode::getPriority() const
-{
- return 4;
-}
-
-ExecutionNode* RepeaterNode::getCopy() const
-{
- return nullptr;
-}
-
-void RepeaterNode::setCommand(ExecutionNode* cmd)
-{
- m_cmd.reset(cmd);
-}
-
-void RepeaterNode::setTimeNode(ExecutionNode* time)
-{
- m_times= time;
-}
-
-void RepeaterNode::setSumAll(bool b)
-{
- m_sumAll= b;
-}
diff --git a/diceparser/node/repeaternode.h b/diceparser/node/repeaternode.h
deleted file mode 100644
index 847db17..0000000
--- a/diceparser/node/repeaternode.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2019 by Renaud Guezennec *
- * http://www.rolisteam.org/contact *
- * *
- * This file is part of DiceParser *
- * *
- * DiceParser is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-#ifndef REPEATER_NODE_H
-#define REPEATER_NODE_H
-
-#include "node/executionnode.h"
-#include <memory>
-
-class RepeaterNode : public ExecutionNode
-{
-public:
- RepeaterNode();
- void run(ExecutionNode* previous) override;
- virtual QString toString(bool withLabel) const override;
- virtual qint64 getPriority() const override;
-
- virtual ExecutionNode* getCopy() const override;
-
- void setCommand(ExecutionNode* node);
- void setTimeNode(ExecutionNode* times);
- void setSumAll(bool b);
-
-private:
- std::unique_ptr<ExecutionNode> m_cmd;
- ExecutionNode* m_times= nullptr;
- bool m_sumAll= false;
-};
-
-#endif // REPEATER_NODE_H