Merge branch 'signal_tunnels_bridges-sx' into jgrpp
# Conflicts: # src/saveload/afterload.cpp # src/saveload/extended_ver_sl.cpp # src/signal.cpp # src/train_cmd.cpp
This commit is contained in:
@@ -364,7 +364,7 @@ protected:
|
||||
if (IsTunnel(m_new_tile)) {
|
||||
if (!m_is_tunnel) {
|
||||
DiagDirection tunnel_enterdir = GetTunnelBridgeDirection(m_new_tile);
|
||||
if (tunnel_enterdir != m_exitdir || IsTunnelBridgeExit(m_new_tile)) {
|
||||
if (tunnel_enterdir != m_exitdir) {
|
||||
m_err = EC_NO_WAY;
|
||||
return false;
|
||||
}
|
||||
@@ -372,7 +372,7 @@ protected:
|
||||
} else { // IsBridge(m_new_tile)
|
||||
if (!m_is_bridge) {
|
||||
DiagDirection ramp_enderdir = GetTunnelBridgeDirection(m_new_tile);
|
||||
if (ramp_enderdir != m_exitdir || IsTunnelBridgeExit(m_new_tile)) {
|
||||
if (ramp_enderdir != m_exitdir) {
|
||||
m_err = EC_NO_WAY;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -943,6 +943,10 @@ static void NPFFollowTrack(AyStar *aystar, OpenListNode *current)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (IsTileType(dst_tile, MP_TUNNELBRIDGE) && IsTunnelBridgeExit(dst_tile) && DiagDirToDiagTrackdir(GetTunnelBridgeDirection(dst_tile)) == dst_trackdir) {
|
||||
/* Entering a signalled bridge/tunnel from the wrong side, equivalent to encountering a one-way signal from the wrong side */
|
||||
break;
|
||||
}
|
||||
{
|
||||
/* We've found ourselves a neighbour :-) */
|
||||
AyStarNode *neighbour = &aystar->neighbours[i];
|
||||
|
||||
@@ -360,6 +360,10 @@ public:
|
||||
}
|
||||
}
|
||||
}
|
||||
if (IsTileType(tile, MP_TUNNELBRIDGE) && IsTunnelBridgeExit(tile) && DiagDirToDiagTrackdir(GetTunnelBridgeDirection(tile)) == trackdir) {
|
||||
/* Entering a signalled bridge/tunnel from the wrong side, equivalent to encountering a one-way signal from the wrong side */
|
||||
n.m_segment->m_end_segment_reason |= ESRB_DEAD_END;
|
||||
}
|
||||
return cost;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user