From d1a947bed91963e788287e186f831202b8355eea Mon Sep 17 00:00:00 2001 From: Renaud G Date: Sun, 18 Oct 2020 14:25:39 +0200 Subject: Display explosion and fix %2 --- cli/main.cpp | 9 +++++++++ parsingtoolbox.cpp | 12 +++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/cli/main.cpp b/cli/main.cpp index 2788b7b..e28e0e6 100644 --- a/cli/main.cpp +++ b/cli/main.cpp @@ -103,7 +103,16 @@ void displayMarkdown(QString json) { auto objval= diceval.toObject(); auto resultStr= QString::number(objval["value"].toDouble()); + + auto subvalues= objval["subvalues"].toArray(); + QStringList subValueStr; + for(auto sub : subvalues) + { + subValueStr << QString::number(sub.toDouble()); + } diceResults << resultStr; + if(!subValueStr.isEmpty()) + diceResults << QString("[%1]").arg(subValueStr.join(" ")); } } auto diceList= diceResults.join(" "); diff --git a/parsingtoolbox.cpp b/parsingtoolbox.cpp index dd29d8f..adf1222 100644 --- a/parsingtoolbox.cpp +++ b/parsingtoolbox.cpp @@ -664,9 +664,10 @@ QList ParsingToolBox::diceResultFromEachInstruction() const return resultList; } -QStringList listOfDiceResult(const QList& list) +QStringList listOfDiceResult(const QList& list, bool removeDouble= false) { QStringList listOfDiceResult; + std::set alreadyAdded; for(auto map : list) { for(auto key : map.keys()) @@ -677,6 +678,11 @@ QStringList listOfDiceResult(const QList& 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); } -- cgit v1.2.3-70-g09d2