mirror of https://github.com/OpenTTD/OpenTTD
(svn r19992) -Fix [FS#3878]: Clear force_proceed when entering depots and when loading.
-Fix (r18515): Resetting of force_proceed on manual stopping did not work.release/1.1
parent
03c87faea1
commit
94efc4c3b9
|
@ -2905,6 +2905,9 @@ static void TrainEnterStation(Train *v, StationID station)
|
||||||
AI::NewEvent(v->owner, new AIEventStationFirstVehicle(st->index, v->index));
|
AI::NewEvent(v->owner, new AIEventStationFirstVehicle(st->index, v->index));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
v->force_proceed = 0;
|
||||||
|
SetWindowDirty(WC_VEHICLE_VIEW, v->index);
|
||||||
|
|
||||||
v->BeginLoading();
|
v->BeginLoading();
|
||||||
|
|
||||||
StationAnimationTrigger(st, v->tile, STAT_ANIM_TRAIN_ARRIVES);
|
StationAnimationTrigger(st, v->tile, STAT_ANIM_TRAIN_ARRIVES);
|
||||||
|
@ -3876,10 +3879,10 @@ static bool TrainLocoHandler(Train *v, bool mode)
|
||||||
int j = v->UpdateSpeed();
|
int j = v->UpdateSpeed();
|
||||||
|
|
||||||
/* we need to invalidate the widget if we are stopping from 'Stopping 0 km/h' to 'Stopped' */
|
/* we need to invalidate the widget if we are stopping from 'Stopping 0 km/h' to 'Stopped' */
|
||||||
if (v->cur_speed == 0 && v->tcache.last_speed == 0 && (v->vehstatus & VS_STOPPED)) {
|
if (v->cur_speed == 0 && (v->vehstatus & VS_STOPPED)) {
|
||||||
/* If we manually stopped, we're not force-proceeding anymore. */
|
/* If we manually stopped, we're not force-proceeding anymore. */
|
||||||
v->force_proceed = 0;
|
v->force_proceed = 0;
|
||||||
SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
|
SetWindowDirty(WC_VEHICLE_VIEW, v->index);
|
||||||
}
|
}
|
||||||
|
|
||||||
int adv_spd = (v->direction & 1) ? 192 : 256;
|
int adv_spd = (v->direction & 1) ? 192 : 256;
|
||||||
|
|
|
@ -1061,6 +1061,7 @@ void VehicleEnterDepot(Vehicle *v)
|
||||||
|
|
||||||
UpdateSignalsOnSegment(t->tile, INVALID_DIAGDIR, t->owner);
|
UpdateSignalsOnSegment(t->tile, INVALID_DIAGDIR, t->owner);
|
||||||
t->wait_counter = 0;
|
t->wait_counter = 0;
|
||||||
|
t->force_proceed = 0;
|
||||||
ClrBit(t->flags, VRF_TOGGLE_REVERSE);
|
ClrBit(t->flags, VRF_TOGGLE_REVERSE);
|
||||||
t->ConsistChanged(true);
|
t->ConsistChanged(true);
|
||||||
break;
|
break;
|
||||||
|
@ -1082,6 +1083,7 @@ void VehicleEnterDepot(Vehicle *v)
|
||||||
break;
|
break;
|
||||||
default: NOT_REACHED();
|
default: NOT_REACHED();
|
||||||
}
|
}
|
||||||
|
SetWindowDirty(WC_VEHICLE_VIEW, v->index);
|
||||||
|
|
||||||
if (v->type != VEH_TRAIN) {
|
if (v->type != VEH_TRAIN) {
|
||||||
/* Trains update the vehicle list when the first unit enters the depot and calls VehicleEnterDepot() when the last unit enters.
|
/* Trains update the vehicle list when the first unit enters the depot and calls VehicleEnterDepot() when the last unit enters.
|
||||||
|
|
Loading…
Reference in New Issue