mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r16901) -Fix [FS#3046] (rpbs): when marking trains stuck don't reset the unload counter/stuck when the vehicle is unloading. It'll be automatically reset once the vehicle wants to leave the station
This commit is contained in:
parent
0658d6cb3d
commit
f7b3067fb3
|
@ -1256,6 +1256,7 @@ void PrepareUnload(Vehicle *front_v)
|
|||
static void LoadUnloadVehicle(Vehicle *v, int *cargo_left)
|
||||
{
|
||||
assert(v->current_order.IsType(OT_LOADING));
|
||||
assert(v->load_unload_time_rem != 0);
|
||||
|
||||
/* We have not waited enough time till the next round of loading/unloading */
|
||||
if (--v->load_unload_time_rem != 0) {
|
||||
|
|
|
@ -1644,6 +1644,10 @@ static void MarkTrainAsStuck(Train *v)
|
|||
if (!HasBit(v->flags, VRF_TRAIN_STUCK)) {
|
||||
/* It is the first time the problem occured, set the "train stuck" flag. */
|
||||
SetBit(v->flags, VRF_TRAIN_STUCK);
|
||||
|
||||
/* When loading the vehicle is already stopped. No need to change that. */
|
||||
if (v->current_order.IsType(OT_LOADING)) return;
|
||||
|
||||
v->load_unload_time_rem = 0;
|
||||
|
||||
/* Stop train */
|
||||
|
|
|
@ -1916,7 +1916,7 @@ struct VehicleViewWindow : Window {
|
|||
} else { // no train
|
||||
str = STR_VEHICLE_STATUS_STOPPED;
|
||||
}
|
||||
} else if (v->type == VEH_TRAIN && HasBit(Train::From(v)->flags, VRF_TRAIN_STUCK)) {
|
||||
} else if (v->type == VEH_TRAIN && HasBit(Train::From(v)->flags, VRF_TRAIN_STUCK) && !v->current_order.IsType(OT_LOADING)) {
|
||||
str = STR_TRAIN_STUCK;
|
||||
} else { // vehicle is in a "normal" state, show current order
|
||||
switch (v->current_order.GetType()) {
|
||||
|
|
Loading…
Reference in New Issue