mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r2469) - Add: When removing tracks with the 'remove' tool, have it automatically remove signals on the tracks.
This commit is contained in:
parent
aa7334a3ec
commit
5119cce2a8
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user