changeset 15257:25f7ec98dc69 draft

(svn r19892) -Fix [FS#3856] (r19792): crash when trying to reserve 'in depot' track on clearing a crashed train
author rubidium <rubidium@openttd.org>
date Sun, 23 May 2010 22:14:22 +0000
parents b69104c5cf8f
children 2b1dd6b766e2
files src/train_cmd.cpp
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -3455,11 +3455,12 @@
 	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;
 		}
 	}