Mercurial > hg > openttd
changeset 1963:951df2dcf752 draft
(svn r2469) - Add: When removing tracks with the 'remove' tool, have it automatically remove signals on the tracks.
author | hackykid <hackykid@openttd.org> |
---|---|
date | Tue, 21 Jun 2005 19:45:05 +0000 |
parents | 24ee3f699d48 |
children | b114624760df |
files | rail_cmd.c |
diffstat | 1 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/rail_cmd.c +++ b/rail_cmd.c @@ -403,6 +403,7 @@ uint tileh; TileIndex tile; byte m5; + int32 cost = _price.remove_rail; if (!ValParamTrackOrientation(p2)) return CMD_ERROR; trackbit = TrackToTrackBits(track); @@ -474,12 +475,12 @@ if (!(GetTrackBits(tile) & trackbit)) return CMD_ERROR; - /* don't allow remove if there are signals on the track */ + /* Charge extra to remove signals on the track, if they are there */ if (HasSignalOnTrack(tile, track)) - return CMD_ERROR; + cost += DoCommand(x, y, track, 0, flags, CMD_REMOVE_SIGNALS); if (!(flags & DC_EXEC)) - return _price.remove_rail; + return cost; /* We remove the trackbit here. */ _map5[tile] &= ~trackbit; @@ -502,7 +503,7 @@ SetSignalsOnBothDir(tile, track); - return _price.remove_rail; + return cost; } static const struct {