From f7b3067fb3b0e3620e8198119e0e9644cedd6cdd Mon Sep 17 00:00:00 2001 From: rubidium Date: Tue, 21 Jul 2009 17:14:05 +0000 Subject: (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 --- src/economy.cpp | 1 + src/train_cmd.cpp | 4 ++++ src/vehicle_gui.cpp | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/economy.cpp b/src/economy.cpp index 210ff0d49..53d405e47 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -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) { diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index a85b16f95..172ca934f 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -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 */ diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 0f0c353f1..6a39125aa 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -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()) { -- cgit v1.2.3-70-g09d2