forked from mirror/OpenTTD
(svn r5155) - Remove the bridge branch merge (revision r5070)
This commit is contained in:
27
npf.c
27
npf.c
@@ -480,7 +480,17 @@ static bool VehicleMayEnterTile(Owner owner, TileIndex tile, DiagDirection enter
|
||||
|
||||
case MP_TUNNELBRIDGE:
|
||||
if ((IsTunnel(tile) && GetTunnelTransportType(tile) == TRANSPORT_RAIL) ||
|
||||
(IsBridge(tile) && GetBridgeTransportType(tile) == TRANSPORT_RAIL)) {
|
||||
(IsBridge(tile) && (
|
||||
(
|
||||
IsBridgeRamp(tile) &&
|
||||
GetBridgeTransportType(tile) == TRANSPORT_RAIL
|
||||
) || (
|
||||
IsBridgeMiddle(tile) &&
|
||||
IsTransportUnderBridge(tile) &&
|
||||
GetTransportTypeUnderBridge(tile) == TRANSPORT_RAIL &&
|
||||
GetBridgeAxis(tile) != DiagDirToAxis(enterdir)
|
||||
)
|
||||
))) {
|
||||
return IsTileOwner(tile, owner);
|
||||
}
|
||||
break;
|
||||
@@ -524,7 +534,6 @@ static void NPFFollowTrack(AyStar* aystar, OpenListNode* current)
|
||||
int i;
|
||||
TrackdirBits trackdirbits, ts;
|
||||
TransportType type = aystar->user_data[NPF_TYPE];
|
||||
bool override_dst_check = false;
|
||||
/* Initialize to 0, so we can jump out (return) somewhere an have no neighbours */
|
||||
aystar->num_neighbours = 0;
|
||||
DEBUG(npf, 4)("Expanding: (%d, %d, %d) [%d]", TileX(src_tile), TileY(src_tile), src_trackdir, src_tile);
|
||||
@@ -535,10 +544,6 @@ static void NPFFollowTrack(AyStar* aystar, OpenListNode* current)
|
||||
* otherwise we wouldn't have got here. It is also facing us,
|
||||
* so we should skip it's body */
|
||||
dst_tile = GetOtherTunnelEnd(src_tile);
|
||||
override_dst_check = true;
|
||||
} else if (IsBridgeTile(src_tile) && GetBridgeRampDirection(src_tile) == src_exitdir) {
|
||||
dst_tile = GetOtherBridgeEnd(src_tile);
|
||||
override_dst_check = true;
|
||||
} else if (type != TRANSPORT_WATER && (IsRoadStopTile(src_tile) || IsTileDepotType(src_tile, type))) {
|
||||
/* This is a road station or a train or road depot. We can enter and exit
|
||||
* those from one side only. Trackdirs don't support that (yet), so we'll
|
||||
@@ -586,14 +591,8 @@ static void NPFFollowTrack(AyStar* aystar, OpenListNode* current)
|
||||
/* I can't enter a tunnel entry/exit tile from a tile above the tunnel. Note
|
||||
* that I can enter the tunnel from a tile below the tunnel entrance. This
|
||||
* solves the problem of vehicles wanting to drive off a tunnel entrance */
|
||||
if (!override_dst_check) {
|
||||
if (IsTileType(dst_tile, MP_TUNNELBRIDGE)) {
|
||||
if (IsTunnel(dst_tile)) {
|
||||
if (GetTunnelDirection(dst_tile) != src_exitdir) return;
|
||||
} else {
|
||||
if (GetBridgeRampDirection(dst_tile) != src_exitdir) return;
|
||||
}
|
||||
}
|
||||
if (IsTunnelTile(dst_tile) && GetTileZ(dst_tile) < GetTileZ(src_tile)) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* check correct rail type (mono, maglev, etc) */
|
||||
|
Reference in New Issue
Block a user