diff options
| author | 2019-03-23 17:54:26 +0100 | |
|---|---|---|
| committer | 2019-03-23 17:58:32 +0100 | |
| commit | e0e58bffefefbb5440463bc598af942c0daca91f (patch) | |
| tree | b3a8de13c6d6b37d7cf4ca2d2ed292d8f104128c /node/occurencecountnode.cpp | |
| parent | 1d962712fdba24078b6ce35a2d616cd3155cfc31 (diff) | |
| download | OneRoll-e0e58bffefefbb5440463bc598af942c0daca91f.tar.gz OneRoll-e0e58bffefefbb5440463bc598af942c0daca91f.zip | |
Add occurencecount node.
Diffstat (limited to 'node/occurencecountnode.cpp')
| -rw-r--r-- | node/occurencecountnode.cpp | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/node/occurencecountnode.cpp b/node/occurencecountnode.cpp index 8826188..4fdbc51 100644 --- a/node/occurencecountnode.cpp +++ b/node/occurencecountnode.cpp @@ -1,3 +1,22 @@ +/*************************************************************************** + * Copyright (C) 2018 by Renaud Guezennec * + * http://www.rolisteam.org/contact * + * * + * rolisteam 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 "occurencecountnode.h" #include "result/diceresult.h" #include "result/stringresult.h" @@ -26,6 +45,7 @@ void OccurenceCountNode::run(ExecutionNode* previous) for(auto dice : diceList) { auto val= dice->getValue(); + vec << val; auto it= mapOccurence.find(val); if(it == mapOccurence.end()) @@ -39,8 +59,19 @@ void OccurenceCountNode::run(ExecutionNode* previous) QStringList list; for(auto key : mapOccurence) { - if(key.first >= m_height && key.second >= m_width) - list << QStringLiteral("%1x%2").arg(key.first).arg(key.second); + if(nullptr != m_validator) + { + Die die; + die.insertRollValue(key.first); + if(!m_validator->hasValid(&die, true)) + continue; + } + + if(key.second < m_width) + continue; + + if(key.first >= m_height) + list << QStringLiteral("%1x%2").arg(key.second).arg(key.first); } QStringList resultList; |