(svn r14559) -Fix [FS#2387]: A train could be blocked inside a depot if it was reversed just after leaving the depot.
authormichi_cc
Sun, 02 Nov 2008 19:32:24 +0000
changeset 10314 ac0958307f68
parent 10313 57bba78128d2
child 10315 b3c652b3a316
(svn r14559) -Fix [FS#2387]: A train could be blocked inside a depot if it was reversed just after leaving the depot.
src/train_cmd.cpp
src/vehicle.cpp
--- a/src/train_cmd.cpp	Sun Nov 02 17:42:28 2008 +0000
+++ b/src/train_cmd.cpp	Sun Nov 02 19:32:24 2008 +0000
@@ -3654,10 +3654,6 @@
 						TrainEnterStation(v, r >> VETS_STATION_ID_OFFSET);
 						return;
 					}
-					if (v->Next() == NULL && IsRailDepotTile(v->tile) && HasBit(r, VETS_ENTERED_WORMHOLE)) {
-						SetDepotWaypointReservation(v->tile, false);
-						if (_settings_client.gui.show_track_reservation) MarkTileDirtyByTile(v->tile);
-					}
 
 					if (v->current_order.IsType(OT_LEAVESTATION)) {
 						v->current_order.Free();
--- a/src/vehicle.cpp	Sun Nov 02 17:42:28 2008 +0000
+++ b/src/vehicle.cpp	Sun Nov 02 19:32:24 2008 +0000
@@ -1558,6 +1558,10 @@
 	switch (v->type) {
 		case VEH_TRAIN:
 			InvalidateWindowClasses(WC_TRAINS_LIST);
+			/* Clear path reservation */
+			SetDepotWaypointReservation(v->tile, false);
+			if (_settings_client.gui.show_track_reservation) MarkTileDirtyByTile(v->tile);
+
 			if (!IsFrontEngine(v)) v = v->First();
 			UpdateSignalsOnSegment(v->tile, INVALID_DIAGDIR, v->owner);
 			v->load_unload_time_rem = 0;