aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRenaud Guezennec <renaud@rolisteam.org>2024-10-23 15:45:16 +0200
committerRenaud Guezennec <renaud@rolisteam.org>2024-12-29 14:46:30 +0100
commit6e297fc2666ec5994f62224b343c2707bdce7e3a (patch)
tree8a7100ca41a2fe3501d54729ece3c049153c640d
parente695138e7ba727cb39e4b5b7dd42b41e569760d3 (diff)
downloadOneRoll-6e297fc2666ec5994f62224b343c2707bdce7e3a.tar.gz
OneRoll-6e297fc2666ec5994f62224b343c2707bdce7e3a.zip
Final changes
-rw-r--r--src/libparser/booleancondition.cpp2
-rw-r--r--src/libparser/result/diceresult.cpp12
-rw-r--r--src/libparser/result/stringresult.cpp32
3 files changed, 29 insertions, 17 deletions
diff --git a/src/libparser/booleancondition.cpp b/src/libparser/booleancondition.cpp
index 91be35c..ab5b15d 100644
--- a/src/libparser/booleancondition.cpp
+++ b/src/libparser/booleancondition.cpp
@@ -222,7 +222,7 @@ qint64 BooleanCondition::valueToScalar() const
if(m_value == nullptr)
return 0;
- m_value->run(nullptr);
+ m_value->execute(nullptr);
auto result= m_value->getResult();
if(result)
return result->getResult(Dice::RESULT_TYPE::SCALAR).toInt();
diff --git a/src/libparser/result/diceresult.cpp b/src/libparser/result/diceresult.cpp
index 31e316b..b7e79f9 100644
--- a/src/libparser/result/diceresult.cpp
+++ b/src/libparser/result/diceresult.cpp
@@ -47,9 +47,12 @@ void DiceResult::setHomogeneous(bool b)
void DiceResult::setResultList(QList<Die*> list)
{
- m_diceValues.erase(
+ for(auto& it : list)
+ m_diceValues.removeAll(it);
+
+ /*m_diceValues.erase(
std::remove_if(m_diceValues.begin(), m_diceValues.end(), [list](Die* die) { return list.contains(die); }),
- m_diceValues.end());
+ m_diceValues.end());*/
qDeleteAll(m_diceValues.begin(), m_diceValues.end());
m_diceValues.clear();
@@ -103,6 +106,9 @@ qreal DiceResult::getScalarResult()
int i= 0;
for(auto& tmp : m_diceValues)
{
+ if(!tmp)
+ continue;
+
if(i > 0)
{
switch(m_operator)
@@ -182,6 +188,8 @@ Result* DiceResult::getCopy() const
QList<Die*> list;
for(auto die : m_diceValues)
{
+ if(!die)
+ continue;
auto newdie= new Die(*die);
newdie->setDisplayed(false);
// die->displayed();
diff --git a/src/libparser/result/stringresult.cpp b/src/libparser/result/stringresult.cpp
index 113c22c..f6bf957 100644
--- a/src/libparser/result/stringresult.cpp
+++ b/src/libparser/result/stringresult.cpp
@@ -77,15 +77,17 @@ bool StringResult::hasHighLight() const
void StringResult::finished()
{
- if(isDigitOnly())
- {
- std::for_each(m_value.begin(), m_value.end(), [this](const QString& str) {
- auto die= new Die();
- die->setMaxValue(m_stringCount);
- die->setValue(str.toInt());
- insertResult(die);
- });
- }
+ if(!isDigitOnly())
+ return;
+
+ std::for_each(m_value.begin(), m_value.end(),
+ [this](const QString& str)
+ {
+ auto die= new Die();
+ die->setMaxValue(m_stringCount);
+ die->setValue(str.toInt());
+ insertResult(die);
+ });
}
void StringResult::setStringCount(int count)
@@ -95,11 +97,13 @@ void StringResult::setStringCount(int count)
bool StringResult::isDigitOnly() const
{
- return std::all_of(m_value.begin(), m_value.end(), [](const QString& str) {
- bool ok= false;
- str.toInt(&ok);
- return ok;
- });
+ return std::all_of(m_value.begin(), m_value.end(),
+ [](const QString& str)
+ {
+ bool ok= false;
+ str.toInt(&ok);
+ return ok;
+ });
}
Result* StringResult::getCopy() const