From d56a690ba432c3ef483ac7a8072266349f2bfc96 Mon Sep 17 00:00:00 2001 From: smatz Date: Sun, 16 Dec 2007 19:30:42 +0000 Subject: (svn r11649) -Codechange: some code can be simplified thanks to changes in r11642 --- src/rail_cmd.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'src/rail_cmd.cpp') diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 793d9363f..454e4b30e 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -926,17 +926,15 @@ static bool CheckSignalAutoFill(TileIndex &tile, Trackdir &trackdir, int &signal return true; case MP_TUNNELBRIDGE: { - TileIndex orig_tile = tile; - /* Skip to end of tunnel or bridge */ - if (IsBridge(tile)) { - if (GetTunnelBridgeTransportType(tile) != TRANSPORT_RAIL) return false; - if (GetTunnelBridgeDirection(tile) != TrackdirToExitdir(trackdir)) return false; - tile = GetOtherBridgeEnd(tile); - } else { - if (GetTunnelBridgeTransportType(tile) != TRANSPORT_RAIL) return false; - if (GetTunnelBridgeDirection(tile) != TrackdirToExitdir(trackdir)) return false; - tile = GetOtherTunnelEnd(tile); - } + TileIndex orig_tile = tile; // backup old value + + if (GetTunnelBridgeTransportType(tile) != TRANSPORT_RAIL) return false; + if (GetTunnelBridgeDirection(tile) != TrackdirToExitdir(trackdir)) return false; + + /* Skip to end of tunnel or bridge + * note that tile is a parameter by reference, so it must be updated */ + tile = IsTunnel(tile) ? GetOtherTunnelEnd(tile) : GetOtherBridgeEnd(tile); + signal_ctr += 2 + DistanceMax(orig_tile, tile) * 2; return true; } -- cgit v1.2.3-54-g00ecf