(svn r14559) -Fix [FS#2387]: A train could be blocked inside a depot if it was reversed just after leaving the depot.
--- 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;