aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Player/Player.cpp24
-rw-r--r--src/server/game/Entities/Player/Player.h2
2 files changed, 14 insertions, 12 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 82a1164b423..59f9e1e3efb 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -22049,26 +22049,28 @@ void Player::InitPrimaryProfessions()
SetFreePrimaryProfessions(sWorld->getIntConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL));
}
-void Player::ModifyMoney(int32 d)
+bool Player::ModifyMoney(int32 amount, bool sendError /*= true*/)
{
- sScriptMgr->OnPlayerMoneyChanged(this, d);
+ if (!amount)
+ return true;
+
+ sScriptMgr->OnPlayerMoneyChanged(this, amount);
- if (d < 0)
- SetMoney (GetMoney() > uint32(-d) ? GetMoney() + d : 0);
+ if (amount < 0)
+ SetMoney (GetMoney() > uint32(-amount) ? GetMoney() + amount : 0);
else
{
- uint32 newAmount = 0;
- if (GetMoney() < uint32(MAX_MONEY_AMOUNT - d))
- newAmount = GetMoney() + d;
+ if (GetMoney() < uint32(MAX_MONEY_AMOUNT - amount))
+ SetMoney(GetMoney() + amount);
else
{
- // "At Gold Limit"
- newAmount = MAX_MONEY_AMOUNT;
- if (d)
+ if (sendError)
SendEquipError(EQUIP_ERR_TOO_MUCH_GOLD, NULL, NULL);
+ return false;
}
- SetMoney (newAmount);
}
+
+ return true;
}
Unit* Player::GetSelectedUnit() const
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index a69f8c44715..64980b9551e 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1546,7 +1546,7 @@ class Player : public Unit, public GridObject<Player>
void setWeaponChangeTimer(uint32 time) {m_weaponChangeTimer = time;}
uint32 GetMoney() const { return GetUInt32Value(PLAYER_FIELD_COINAGE); }
- void ModifyMoney(int32 d);
+ bool ModifyMoney(int32 amount, bool sendError = true);
bool HasEnoughMoney(uint32 amount) const { return (GetMoney() >= amount); }
bool HasEnoughMoney(int32 amount) const
{