From 0d2d9dccdccfaa13b5977e8b8ab18445d157d2f6 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Mon, 9 Feb 2009 03:35:20 -0500 Subject: Fixed money handling in Player to allow for overrides --- sigencore/Player.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'sigencore/Player.cpp') diff --git a/sigencore/Player.cpp b/sigencore/Player.cpp index f2b8460a..b289018a 100644 --- a/sigencore/Player.cpp +++ b/sigencore/Player.cpp @@ -62,9 +62,20 @@ void Sigencore::Player::giveMoney(const int amount) m_money = qMax(m_sigmod->rules()->maxMoney(), m_money + amount); } -void Sigencore::Player::takeMoney(const int amount) +bool Sigencore::Player::giveMoney(const int amount, const bool allOrNothing) { - m_money = qMin(0, m_money - amount); + int playerMin = 0; + int playerMax = m_sigmod->rules()->maxMoney(); + valueOfType("money-minimum", &playerMin); + valueOfType("money-maximum", &playerMax); + const int newUnbounded = m_money + amount; + const int newAmount = qMin(qMax(0, playerMin), qMax(playerMax, newAmount)); + if (allOrNothing || (newUnbounded == newAmount)) + { + m_money = newAmount; + emit(moneyChanged(m_money)); + } + return qAbs(newUnbounded - newAmount); } Sigencore::TeamMember* Sigencore::Player::findMember(const QUuid& id) const -- cgit