mirror of https://github.com/OpenTTD/OpenTTD
(svn r2469) - Add: When removing tracks with the 'remove' tool, have it automatically remove signals on the tracks.
parent
aa7334a3ec
commit
5119cce2a8
|
@ -403,6 +403,7 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
||||||
uint tileh;
|
uint tileh;
|
||||||
TileIndex tile;
|
TileIndex tile;
|
||||||
byte m5;
|
byte m5;
|
||||||
|
int32 cost = _price.remove_rail;
|
||||||
|
|
||||||
if (!ValParamTrackOrientation(p2)) return CMD_ERROR;
|
if (!ValParamTrackOrientation(p2)) return CMD_ERROR;
|
||||||
trackbit = TrackToTrackBits(track);
|
trackbit = TrackToTrackBits(track);
|
||||||
|
@ -474,12 +475,12 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
||||||
if (!(GetTrackBits(tile) & trackbit))
|
if (!(GetTrackBits(tile) & trackbit))
|
||||||
return CMD_ERROR;
|
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))
|
if (HasSignalOnTrack(tile, track))
|
||||||
return CMD_ERROR;
|
cost += DoCommand(x, y, track, 0, flags, CMD_REMOVE_SIGNALS);
|
||||||
|
|
||||||
if (!(flags & DC_EXEC))
|
if (!(flags & DC_EXEC))
|
||||||
return _price.remove_rail;
|
return cost;
|
||||||
|
|
||||||
/* We remove the trackbit here. */
|
/* We remove the trackbit here. */
|
||||||
_map5[tile] &= ~trackbit;
|
_map5[tile] &= ~trackbit;
|
||||||
|
@ -502,7 +503,7 @@ skip_mark_dirty:;
|
||||||
|
|
||||||
SetSignalsOnBothDir(tile, track);
|
SetSignalsOnBothDir(tile, track);
|
||||||
|
|
||||||
return _price.remove_rail;
|
return cost;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct {
|
static const struct {
|
||||||
|
|
Loading…
Reference in New Issue