diff options
| author | 2019-07-28 01:35:59 +0200 | |
|---|---|---|
| committer | 2019-07-28 01:35:59 +0200 | |
| commit | 7f535260bbc2210bf8d605bac88546e9f18b2b05 (patch) | |
| tree | e519a681900aa5041d6bdb11004c14282f4c0b98 /range.cpp | |
| parent | f1a89a3ca758c8af549e62ad4258504cb2bc2c7c (diff) | |
| download | OneRoll-7f535260bbc2210bf8d605bac88546e9f18b2b05.tar.gz OneRoll-7f535260bbc2210bf8d605bac88546e9f18b2b05.zip | |
New API for isValidRangeSize
Diffstat (limited to 'range.cpp')
| -rw-r--r-- | range.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -58,12 +58,20 @@ QString Range::toString() { return QStringLiteral("[%1-%2]").arg(m_start).arg(m_end); } -bool Range::isValidRangeSize(std::pair<qint64, qint64> range) const +Dice::CONDITION_STATE Range::isValidRangeSize(const std::pair<qint64, qint64>& range) const { - auto newStart= qBound(range.first, m_start, range.second); - auto newEnd= qBound(range.first, m_end, range.second); + auto minRange= std::min(m_start, m_end); + auto minPossibleValue= std::min(range.first, range.second); - return (newStart == m_start && newEnd == m_end && m_end >= m_start); + auto maxRange= std::max(m_start, m_end); + auto maxPossibleValue= std::max(range.first, range.second); + + if(minRange == minPossibleValue && maxRange == maxPossibleValue) + return Dice::CONDITION_STATE::ALWAYSTRUE; + else if(maxRange < minPossibleValue || minRange > maxPossibleValue) + return Dice::CONDITION_STATE::UNREACHABLE; + else + return Dice::CONDITION_STATE::UNREACHABLE; } void Range::setStart(qint64 start) { |