diff options
author | smatz <smatz@openttd.org> | 2007-12-16 19:30:42 +0000 |
---|---|---|
committer | smatz <smatz@openttd.org> | 2007-12-16 19:30:42 +0000 |
commit | d56a690ba432c3ef483ac7a8072266349f2bfc96 (patch) | |
tree | 3d93af5bbe577ea3e66b1184cb89c1a934d6bcda /src/rail_cmd.cpp | |
parent | cdee7d4cb8541657d99891ee59cb5caab6aaf444 (diff) | |
download | openttd-d56a690ba432c3ef483ac7a8072266349f2bfc96.tar.xz |
(svn r11649) -Codechange: some code can be simplified thanks to changes in r11642
Diffstat (limited to 'src/rail_cmd.cpp')
-rw-r--r-- | src/rail_cmd.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
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; } |