1
0
Fork 0

(svn r21836) -Fix: when a train was reversed while inside a tunnel/bridge, it wouldn't have (re)set the GOINGUP/DOWN bits after leaving the tunnel/bridge

release/1.1
smatz 2011-01-18 20:40:36 +00:00
parent 772de6b52d
commit c0b051eb33
1 changed files with 5 additions and 0 deletions

View File

@ -3146,6 +3146,11 @@ static void TrainController(Train *v, Vehicle *nomove)
TryReserveRailTrack(gp.new_tile, DiagDirToDiagTrack(GetTunnelBridgeDirection(gp.new_tile)));
CheckNextTrainTile(v);
}
/* Prevent v->UpdateInclination() being called with wrong parameters.
* This could happen if the train was reversed inside the tunnel/bridge. */
if (gp.old_tile == gp.new_tile) {
gp.old_tile = GetOtherTunnelBridgeEnd(gp.old_tile);
}
} else {
v->x_pos = gp.x;
v->y_pos = gp.y;