|
|
|
@ -1381,15 +1381,15 @@ static CommandCost CmdSignalTrackHelper(TileIndex tile, DoCommandFlag flags, uin
|
|
|
|
|
last_suitable_trackdir = trackdir;
|
|
|
|
|
} else if (!test_only && last_suitable_tile != INVALID_TILE) {
|
|
|
|
|
/* If a signal can't be placed, place it at the last possible position. */
|
|
|
|
|
SB(p1, 0, 3, TrackdirToTrack(last_suitable_trackdir));
|
|
|
|
|
ClrBit(p1, 17);
|
|
|
|
|
SB(param1, 0, 3, TrackdirToTrack(last_suitable_trackdir));
|
|
|
|
|
ClrBit(param1, 17);
|
|
|
|
|
|
|
|
|
|
/* Pick the correct orientation for the track direction. */
|
|
|
|
|
signals = 0;
|
|
|
|
|
if (HasBit(signal_dir, 0)) signals |= SignalAlongTrackdir(last_suitable_trackdir);
|
|
|
|
|
if (HasBit(signal_dir, 1)) signals |= SignalAgainstTrackdir(last_suitable_trackdir);
|
|
|
|
|
|
|
|
|
|
ret = DoCommand(last_suitable_tile, p1, signals, flags, remove ? CMD_REMOVE_SIGNALS : CMD_BUILD_SIGNALS);
|
|
|
|
|
ret = DoCommand(last_suitable_tile, param1, signals, flags, remove ? CMD_REMOVE_SIGNALS : CMD_BUILD_SIGNALS);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Collect cost. */
|
|
|
|
|