diff options
author | rubidium <rubidium@openttd.org> | 2007-06-18 19:53:50 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2007-06-18 19:53:50 +0000 |
commit | 49220cc6f1e3570dc1b9001c40af2a8a4e35b649 (patch) | |
tree | 62843984493ffedb69f91d7b85cb631ecb61ff3e /src/players.cpp | |
parent | 3771d666c0e6bb48980b7548a2b38b3594efb3ff (diff) | |
download | openttd-49220cc6f1e3570dc1b9001c40af2a8a4e35b649.tar.xz |
(svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
Diffstat (limited to 'src/players.cpp')
-rw-r--r-- | src/players.cpp | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/players.cpp b/src/players.cpp index 293a3243b..f5b873195 100644 --- a/src/players.cpp +++ b/src/players.cpp @@ -175,10 +175,10 @@ void InvalidatePlayerWindows(const Player *p) bool CheckPlayerHasMoney(CommandCost cost) { - if (cost > 0) { + if (cost.GetCost() > 0) { PlayerID pid = _current_player; - if (IsValidPlayer(pid) && cost > GetPlayer(pid)->player_money) { - SetDParam(0, cost); + if (IsValidPlayer(pid) && cost.GetCost() > GetPlayer(pid)->player_money) { + SetDParam(0, cost.GetCost()); _error_message = STR_0003_NOT_ENOUGH_CASH_REQUIRES; return false; } @@ -188,23 +188,23 @@ bool CheckPlayerHasMoney(CommandCost cost) static void SubtractMoneyFromAnyPlayer(Player *p, CommandCost cost) { - p->money64 -= cost; + p->money64 -= cost.GetCost(); UpdatePlayerMoney32(p); - p->yearly_expenses[0][_yearly_expenses_type] += cost; + p->yearly_expenses[0][_yearly_expenses_type] += cost.GetCost(); if (HASBIT(1 << EXPENSES_TRAIN_INC | 1 << EXPENSES_ROADVEH_INC | 1 << EXPENSES_AIRCRAFT_INC | 1 << EXPENSES_SHIP_INC, _yearly_expenses_type)) { - p->cur_economy.income -= cost; + p->cur_economy.income -= cost.GetCost(); } else if (HASBIT(1 << EXPENSES_TRAIN_RUN | 1 << EXPENSES_ROADVEH_RUN | 1 << EXPENSES_AIRCRAFT_RUN | 1 << EXPENSES_SHIP_RUN | 1 << EXPENSES_PROPERTY | 1 << EXPENSES_LOAN_INT, _yearly_expenses_type)) { - p->cur_economy.expenses -= cost; + p->cur_economy.expenses -= cost.GetCost(); } InvalidatePlayerWindows(p); @@ -217,15 +217,16 @@ void SubtractMoneyFromPlayer(CommandCost cost) if (IsValidPlayer(pid)) SubtractMoneyFromAnyPlayer(GetPlayer(pid), cost); } -void SubtractMoneyFromPlayerFract(PlayerID player, CommandCost cost) +void SubtractMoneyFromPlayerFract(PlayerID player, CommandCost cst) { Player *p = GetPlayer(player); byte m = p->player_money_fraction; + int32 cost = cst.GetCost(); p->player_money_fraction = m - (byte)cost; cost >>= 8; if (p->player_money_fraction > m) cost++; - if (cost != 0) SubtractMoneyFromAnyPlayer(p, cost); + if (cost != 0) SubtractMoneyFromAnyPlayer(p, CommandCost(cost)); } /** the player_money field is kept as it is, but money64 contains the actual amount of money. */ @@ -782,7 +783,7 @@ CommandCost CmdSetAutoReplace(TileIndex tile, uint32 flags, uint32 p1, uint32 p2 break; } - return 0; + return CommandCost(); } /** Control the players: add, delete, etc. @@ -827,9 +828,9 @@ CommandCost CmdPlayerCtrl(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) if (!_networking) return CMD_ERROR; /* Has the network client a correct ClientID? */ - if (!(flags & DC_EXEC)) return 0; + if (!(flags & DC_EXEC)) return CommandCost(); #ifdef ENABLE_NETWORK - if (cid >= MAX_CLIENT_INFO) return 0; + if (cid >= MAX_CLIENT_INFO) return CommandCost(); #endif /* ENABLE_NETWORK */ /* Delete multiplayer progress bar */ @@ -903,7 +904,7 @@ CommandCost CmdPlayerCtrl(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) } break; case 1: /* Make a new AI player */ - if (!(flags & DC_EXEC)) return 0; + if (!(flags & DC_EXEC)) return CommandCost(); DoStartupNewPlayer(true); break; @@ -913,7 +914,7 @@ CommandCost CmdPlayerCtrl(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) if (!IsValidPlayer((PlayerID)p2)) return CMD_ERROR; - if (!(flags & DC_EXEC)) return 0; + if (!(flags & DC_EXEC)) return CommandCost(); p = GetPlayer((PlayerID)p2); @@ -951,7 +952,7 @@ CommandCost CmdPlayerCtrl(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) default: return CMD_ERROR; } - return 0; + return CommandCost(); } static const StringID _endgame_perf_titles[] = { |