diff options
author | hackykid <hackykid@openttd.org> | 2005-06-21 19:45:05 +0000 |
---|---|---|
committer | hackykid <hackykid@openttd.org> | 2005-06-21 19:45:05 +0000 |
commit | a1d81b3558ec66f4d9934afd0ebc65b5d3f5be05 (patch) | |
tree | d65d28f0fe690d458230bbaf392a4499e837101e | |
parent | 354058341b8500cbb0075c0c568ec12063e84fe7 (diff) | |
download | openttd-a1d81b3558ec66f4d9934afd0ebc65b5d3f5be05.tar.xz |
(svn r2469) - Add: When removing tracks with the 'remove' tool, have it automatically remove signals on the tracks.
-rw-r--r-- | rail_cmd.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/rail_cmd.c b/rail_cmd.c index 09f61344b..02856ab87 100644 --- a/rail_cmd.c +++ b/rail_cmd.c @@ -403,6 +403,7 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2) uint tileh; TileIndex tile; byte m5; + int32 cost = _price.remove_rail; if (!ValParamTrackOrientation(p2)) return CMD_ERROR; trackbit = TrackToTrackBits(track); @@ -474,12 +475,12 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2) 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 @@ skip_mark_dirty:; SetSignalsOnBothDir(tile, track); - return _price.remove_rail; + return cost; } static const struct { |