From f649496caafb2946d982dbea84d7232e4fb3f3c9 Mon Sep 17 00:00:00 2001 From: michi_cc Date: Sun, 2 Nov 2008 17:42:28 +0000 Subject: [PATCH] (svn r14558) -Fix (r13957): Converting the track type of a tunnel/bridge could cause trains to get stuck. --- src/rail_cmd.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index e7c9956ab6..3b3621c464 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -1393,7 +1393,8 @@ CommandCost CmdConvertRail(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) Track track = DiagDirToDiagTrack(GetTunnelBridgeDirection(tile)); if (GetTunnelBridgeReservation(tile)) { Vehicle *v = GetTrainForReservation(tile, track); - if (v != NULL) { + if (v != NULL && !HasPowerOnRail(v->u.rail.railtype, totype)) { + /* No power on new rail type, reroute. */ FreeTrainTrackReservation(v); *vehicles_affected.Append() = v; }