From 3bf6f11939844b2daa7c6555c5c3d828095308d5 Mon Sep 17 00:00:00 2001 From: Renaud Guezennec Date: Wed, 23 Oct 2024 15:44:12 +0200 Subject: changes --- src/libparser/die.cpp | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) (limited to 'src/libparser/die.cpp') 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 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 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 { -- cgit v1.2.3-70-g09d2