mirror of https://github.com/OpenTTD/OpenTTD
(svn r12348) -Fix (r7573): NTP skipped junction just after bridge end
parent
08f0179916
commit
2c74f39273
|
@ -611,37 +611,22 @@ start_at:
|
||||||
/* If the tile is the entry tile of a tunnel, and we're not going out of the tunnel,
|
/* If the tile is the entry tile of a tunnel, and we're not going out of the tunnel,
|
||||||
* need to find the exit of the tunnel. */
|
* need to find the exit of the tunnel. */
|
||||||
if (IsTileType(tile, MP_TUNNELBRIDGE)) {
|
if (IsTileType(tile, MP_TUNNELBRIDGE)) {
|
||||||
if (IsTunnel(tile)) {
|
if (GetTunnelBridgeDirection(tile) != ReverseDiagDir(direction)) {
|
||||||
if (GetTunnelBridgeDirection(tile) != ReverseDiagDir(direction)) {
|
/* We are not just driving out of the tunnel/bridge */
|
||||||
/* We are not just driving out of the tunnel */
|
if (GetTunnelBridgeDirection(tile) != direction ||
|
||||||
if (GetTunnelBridgeDirection(tile) != direction ||
|
GetTunnelBridgeTransportType(tile) != tpf->tracktype) {
|
||||||
GetTunnelBridgeTransportType(tile) != tpf->tracktype) {
|
/* We are not driving into the tunnel/bridge, or it is an invalid tunnel/bridge */
|
||||||
/* We are not driving into the tunnel, or it is an invalid tunnel */
|
continue;
|
||||||
continue;
|
}
|
||||||
}
|
if (!HasBit(tpf->railtypes, GetRailType(tile))) {
|
||||||
if (!HasBit(tpf->railtypes, GetRailType(tile))) {
|
bits = TRACK_BIT_NONE;
|
||||||
bits = TRACK_BIT_NONE;
|
break;
|
||||||
break;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
TileIndex endtile = GetOtherTunnelEnd(tile);
|
TileIndex endtile = GetOtherTunnelBridgeEnd(tile);
|
||||||
si.cur_length += DIAG_FACTOR * (GetTunnelBridgeLength(tile, endtile) + 1);
|
si.cur_length += DIAG_FACTOR * (GetTunnelBridgeLength(tile, endtile) + 1);
|
||||||
tile = endtile;
|
tile = endtile;
|
||||||
/* tile now points to the exit tile of the tunnel */
|
/* tile now points to the exit tile of the tunnel/bridge */
|
||||||
}
|
|
||||||
} else { // IsBridge(tile)
|
|
||||||
TileIndex tile_end;
|
|
||||||
if (GetTunnelBridgeDirection(tile) != ReverseDiagDir(direction)) {
|
|
||||||
/* We are not just leaving the bridge */
|
|
||||||
if (GetTunnelBridgeDirection(tile) != direction ||
|
|
||||||
GetTunnelBridgeTransportType(tile) != tpf->tracktype) {
|
|
||||||
/* Not entering the bridge or not compatible */
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tile_end = GetOtherBridgeEnd(tile);
|
|
||||||
si.cur_length += DIAG_FACTOR * (GetTunnelBridgeLength(tile, tile_end) + 1);
|
|
||||||
tile = tile_end;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue