Fix signal on tun/bridge gradual decel end tile detection

pull/59/head
Jonathan G Rennison 6 years ago
parent def3a3933b
commit df72bc6e09

@ -3660,7 +3660,18 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
}
if (old_tile == gp.new_tile && IsTunnelBridgeWithSignalSimulation(v->tile) && v->IsFrontEngine()) {
TileIndex next_tile = old_tile + TileOffsByDir(v->direction);
if (IsTileType(next_tile, MP_TUNNELBRIDGE) && ReverseDiagDir(GetTunnelBridgeDirection(next_tile)) == DirToDiagDir(v->direction)) {
bool is_exit = false;
if (IsTileType(next_tile, MP_TUNNELBRIDGE) && IsTunnelBridgeWithSignalSimulation(next_tile) &&
ReverseDiagDir(GetTunnelBridgeDirection(next_tile)) == DirToDiagDir(v->direction)) {
if (IsBridge(next_tile) && IsBridge(v->tile)) {
// bridge ramp facing towards us
is_exit = true;
} else if (IsTunnel(next_tile) && IsTunnel(v->tile)) {
// tunnel exit at same height
is_exit = (GetTileZ(next_tile) == GetTileZ(v->tile));
}
}
if (is_exit) {
if (CheckTrainStayInWormHole(v, next_tile)) {
TrainApproachingLineEnd(v, true, false);
}

Loading…
Cancel
Save