@@ -3651,16 +3651,12 @@ static void TrainController(Vehicle *v,
goto invalid_rail;
}
if (HasBit(r, VETS_ENTERED_STATION)) {
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();
InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
@@ -1555,12 +1555,16 @@ uint8 CalcPercentVehicleFilled(const Veh
void VehicleEnterDepot(Vehicle *v)
{
switch (v->type) {
case VEH_TRAIN:
InvalidateWindowClasses(WC_TRAINS_LIST);
/* Clear path reservation */
if (!IsFrontEngine(v)) v = v->First();
UpdateSignalsOnSegment(v->tile, INVALID_DIAGDIR, v->owner);
v->load_unload_time_rem = 0;
ClrBit(v->u.rail.flags, VRF_TOGGLE_REVERSE);
TrainConsistChanged(v, true);
break;
Status change: