aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/parsingtoolbox.cpp
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2020-10-18 14:25:39 +0200
committerRenaud G <renaud@rolisteam.org>2020-10-18 14:25:39 +0200
commitd1a947bed91963e788287e186f831202b8355eea (patch)
treee410ca44307718e28f669d1efd276d61c6be57db /parsingtoolbox.cpp
parentecc521d139a733f805e8c237698adba42ed2469c (diff)
downloadOneRoll-d1a947bed91963e788287e186f831202b8355eea.tar.gz
OneRoll-d1a947bed91963e788287e186f831202b8355eea.zip
Display explosion and fix %2
Diffstat (limited to 'parsingtoolbox.cpp')
-rw-r--r--parsingtoolbox.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/parsingtoolbox.cpp b/parsingtoolbox.cpp
index dd29d8f..adf1222 100644
--- a/parsingtoolbox.cpp
+++ b/parsingtoolbox.cpp
@@ -664,9 +664,10 @@ QList<ExportedDiceResult> ParsingToolBox::diceResultFromEachInstruction() const
return resultList;
}
-QStringList listOfDiceResult(const QList<ExportedDiceResult>& list)
+QStringList listOfDiceResult(const QList<ExportedDiceResult>& list, bool removeDouble= false)
{
QStringList listOfDiceResult;
+ std::set<QString> alreadyAdded;
for(auto map : list)
{
for(auto key : map.keys())
@@ -677,6 +678,11 @@ QStringList listOfDiceResult(const QList<ExportedDiceResult>& list)
QString stringVal;
for(auto val : dice)
{
+ if(removeDouble && (alreadyAdded.end() != alreadyAdded.find(val.uuid())))
+ continue;
+
+ alreadyAdded.insert(val.uuid());
+
qint64 total= 0;
QStringList dicelist;
for(auto score : val.result())
@@ -717,7 +723,7 @@ QString ParsingToolBox::finalStringResult() const
auto pairScalar= finalScalarResult();
stringResult.replace("%1", pairScalar.first);
- stringResult.replace("%2", listOfDiceResult(diceResultFromEachInstruction()).join(",").trimmed());
+ stringResult.replace("%2", listOfDiceResult(diceResultFromEachInstruction(), true).join(",").trimmed());
stringResult.replace("%3", pairScalar.second);
stringResult.replace("\\n", "\n");
@@ -2343,7 +2349,7 @@ QString ParsingToolBox::number(qreal value)
{
if(value > 1000000)
return QString::number(value, 'f', 20);
- else
+ else
return QString::number(value);
}