(svn r1284) -Fix: Fixed 'money-cheat' (read: bug which could give people a lot of money)

This commit is contained in:
truelight 2004-12-28 09:24:02 +00:00
parent 8dcbf2675b
commit 15d188d7f8
2 changed files with 8 additions and 0 deletions

View File

@ -87,6 +87,9 @@ void HandleOnEditText(WindowEvent *e) {
// Give money
int32 money = atoi(e->edittext.str) / GetCurrentCurrencyRate();
char msg[100];
money = clamp(money, 0, 0xFFFFFFFF); // Clamp between 4 billion and 0
// Give 'id' the money, and substract it from ourself
if (!DoCommandP(0, money, id, NULL, CMD_GIVE_MONEY)) break;

View File

@ -285,6 +285,11 @@ int32 CmdGiveMoney(int x, int y, uint32 flags, uint32 p1, uint32 p2)
{
SET_EXPENSES_TYPE(EXPENSES_OTHER);
p1 = clamp(p1, 0, 0xFFFFFFFF); // Clamp between 4 billion and 0
if (p1 == 0)
return CMD_ERROR;
if (flags & DC_EXEC) {
// Add money to player
byte old_cp = _current_player;