From 4092471a98f8a3fdfb75b2ff946535349536f4e8 Mon Sep 17 00:00:00 2001 From: rubidium Date: Sun, 23 May 2010 22:14:22 +0000 Subject: (svn r19892) -Fix [FS#3856] (r19792): crash when trying to reserve 'in depot' track on clearing a crashed train --- src/train_cmd.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index fc8ec0253..2dfca725c 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3455,11 +3455,12 @@ static Vehicle *CollectTrackbitsFromCrashedVehiclesEnum(Vehicle *v, void *data) TrackBits *trackbits = (TrackBits *)data; if (v->type == VEH_TRAIN && (v->vehstatus & VS_CRASHED) != 0) { - if (Train::From(v)->track == TRACK_BIT_WORMHOLE) { + TrackBits train_tbits = Train::From(v)->track; + if (train_tbits == TRACK_BIT_WORMHOLE) { /* Vehicle is inside a wormhole, v->track contains no useful value then. */ *trackbits |= DiagDirToDiagTrackBits(GetTunnelBridgeDirection(v->tile)); - } else { - *trackbits |= Train::From(v)->track; + } else if (train_tbits != TRACK_BIT_DEPOT) { + *trackbits |= train_tbits; } } -- cgit v1.2.3-54-g00ecf