aboutsummaryrefslogtreecommitdiffstatshomepage
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
parentecc521d139a733f805e8c237698adba42ed2469c (diff)
downloadOneRoll-d1a947bed91963e788287e186f831202b8355eea.tar.gz
OneRoll-d1a947bed91963e788287e186f831202b8355eea.zip
Display explosion and fix %2
-rw-r--r--cli/main.cpp9
-rw-r--r--parsingtoolbox.cpp12
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<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);
}