diff options
| author | 2024-10-23 15:44:12 +0200 | |
|---|---|---|
| committer | 2024-12-29 14:46:30 +0100 | |
| commit | 3bf6f11939844b2daa7c6555c5c3d828095308d5 (patch) | |
| tree | 0228150692cca68b847d1949c03c7f1c8777b005 /src/libparser/die.cpp | |
| parent | cb1dcb5ee28994a2cd691ad696a5ba4c3c3802ea (diff) | |
| download | OneRoll-3bf6f11939844b2daa7c6555c5c3d828095308d5.tar.gz OneRoll-3bf6f11939844b2daa7c6555c5c3d828095308d5.zip | |
changes
Diffstat (limited to 'src/libparser/die.cpp')
| -rw-r--r-- | src/libparser/die.cpp | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/libparser/die.cpp b/src/libparser/die.cpp index 4214b97..f752bbc 100644 --- a/src/libparser/die.cpp +++ b/src/libparser/die.cpp @@ -153,25 +153,25 @@ bool Die::hasChildrenValue() } void Die::replaceLastValue(qint64 value) { - m_rollResult.removeLast(); + if(!m_rollResult.isEmpty()) + m_rollResult.removeLast(); insertRollValue(value); } void Die::roll(bool adding) { - if(m_maxValue != 0) + if(std::abs(m_base) >= std::abs(m_maxValue)) + return; + + std::uniform_int_distribution<qint64> dist(m_base, m_maxValue); + qint64 value= dist(s_rng); + if((adding) || (m_rollResult.isEmpty())) { - // quint64 value=(qrand()%m_faces)+m_base; - std::uniform_int_distribution<qint64> dist(m_base, m_maxValue); - qint64 value= dist(s_rng); - if((adding) || (m_rollResult.isEmpty())) - { - insertRollValue(value); - } - else - { - replaceLastValue(value); - } + insertRollValue(value); + } + else + { + replaceLastValue(value); } } @@ -182,11 +182,9 @@ quint64 Die::getFaces() const qint64 Die::getLastRolledValue() { if(!m_rollResult.isEmpty()) - { return m_rollResult.last(); - } - else - return 0; + + return 0; } bool Die::hasBeenDisplayed() const { |