aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2019-09-05 00:41:16 +0200
committerRenaud G <renaud@rolisteam.org>2019-09-05 00:41:16 +0200
commit557bf93930c7fa7e040047b61de681473ceaf7d1 (patch)
tree36d430b77fb3cd8dc4588c3294cd5991310946a3
parent1c875b651df3afafe1df6b8ae412124d67e526a6 (diff)
downloadOneRoll-557bf93930c7fa7e040047b61de681473ceaf7d1.tar.gz
OneRoll-557bf93930c7fa7e040047b61de681473ceaf7d1.zip
Set alias as json parameter text
-rw-r--r--cli/main.cpp56
1 files changed, 32 insertions, 24 deletions
diff --git a/cli/main.cpp b/cli/main.cpp
index c597dea..6a4613e 100644
--- a/cli/main.cpp
+++ b/cli/main.cpp
@@ -284,6 +284,7 @@ int startDiceParsing(QStringList& cmds, QString& treeFile, bool withColor, EXPOR
int rt= 0;
for(QString cmd : cmds)
{
+
if(parser.parseLine(cmd))
{
parser.start();
@@ -324,32 +325,30 @@ int startDiceParsing(QStringList& cmds, QString& treeFile, bool withColor, EXPOR
}
scalarText= QString("%1").arg(strLst.join(','));
}
- if(!list.isEmpty())
+
+ for(auto map : list)
{
- for(auto map : list)
+ for(auto key : map.keys())
{
- for(auto key : map.keys())
+ auto dice= map[key];
+ QString stringVal;
+ for(auto val : dice)
{
- auto dice= map[key];
- QString stringVal;
- for(auto val : dice)
+ qint64 total= 0;
+ QStringList dicelist;
+ for(auto score : val.getResult())
+ {
+ total+= score;
+ dicelist << QString::number(score);
+ }
+ if(val.getResult().size() > 1)
+ {
+ stringVal= QString("%1 [%2]").arg(total).arg(dicelist.join(','));
+ listOfDiceResult << stringVal;
+ }
+ else
{
- qint64 total= 0;
- QStringList dicelist;
- for(auto score : val.getResult())
- {
- total+= score;
- dicelist << QString::number(score);
- }
- if(val.getResult().size() > 1)
- {
- stringVal= QString("%1 [%2]").arg(total).arg(dicelist.join(','));
- listOfDiceResult << stringVal;
- }
- else
- {
- listOfDiceResult << QString::number(total);
- }
+ listOfDiceResult << QString::number(total);
}
}
}
@@ -472,6 +471,9 @@ int main(int argc, char* argv[])
QCommandLineOption alias(QStringList() << "a"
<< "alias",
"path to alias json files: <aliasfile>", "aliasfile");
+
+ QCommandLineOption aliasData(QStringList() << "alias-data", "alias in json data <aliasdata>", "aliasdata");
+
QCommandLineOption character(QStringList() << "s"
<< "charactersheet",
"set Parameters to simulate character sheet: <sheetfile>", "sheetfile");
@@ -503,6 +505,7 @@ int main(int argc, char* argv[])
optionParser.addOption(reset);
optionParser.addOption(dotFile);
optionParser.addOption(alias);
+ optionParser.addOption(aliasData);
optionParser.addOption(character);
optionParser.addOption(markdown);
optionParser.addOption(bot);
@@ -561,11 +564,10 @@ int main(int argc, char* argv[])
QStringList cmdList= optionParser.positionalArguments();
// cmdList << "8d10;\$1c[>6];\$1c[=1];\$2-\$3i:[>0]{\"%3 Success[%2]\"}{i:[<0]{\"Critical fail %3 [%2]\"}{\"Fail %3
// [%2]\"}}";
- QString aliasstr;
QJsonArray aliases;
if(optionParser.isSet(alias))
{
- aliasstr= optionParser.value(alias);
+ auto aliasstr= optionParser.value(alias);
QFile file(aliasstr);
@@ -575,6 +577,12 @@ int main(int argc, char* argv[])
aliases= doc.array();
}
}
+ else if(optionParser.isSet(aliasData))
+ {
+ auto aliasstr= optionParser.value(aliasData);
+ QJsonDocument doc= QJsonDocument::fromJson(aliasstr.toUtf8());
+ aliases= doc.array();
+ }
returnValue= startDiceParsing(cmdList, dotFileStr, colorb, format, aliases);
if(optionParser.isSet(help))