diff options
author | frosch <frosch@openttd.org> | 2008-01-10 13:13:18 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2008-01-10 13:13:18 +0000 |
commit | 9629b266774bd692082f1ce75e7b1f3ebf4916f8 (patch) | |
tree | 05faffe07d605738d838f2781671361597d05e72 /src | |
parent | 88f11bbfeb253a09bacc56476783399680f20bb1 (diff) | |
download | openttd-9629b266774bd692082f1ce75e7b1f3ebf4916f8.tar.xz |
(svn r11805) -Fix [FS#1620]: VEHICLE_TRIGGER_EMPTY was triggered continuously while train waiting in station.
Diffstat (limited to 'src')
-rw-r--r-- | src/economy.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/economy.cpp b/src/economy.cpp index ca6177c34..02b928a42 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -1564,7 +1564,7 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left) int result = 0; uint cap; - bool completely_empty = true; + bool completely_emptied = true; bool anything_unloaded = false; bool anything_loaded = false; uint32 cargo_not_full = 0; @@ -1612,7 +1612,7 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left) anything_unloaded = true; if (_patches.gradual_loading && remaining) { - completely_empty = false; + completely_emptied = false; } else { /* We have finished unloading (cargo count == 0) */ ClrBit(v->vehicle_flags, VF_CARGO_UNLOADING); @@ -1665,9 +1665,9 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left) * loading them. Since this will cause * VEHICLE_TRIGGER_EMPTY to be called at the time when * the whole vehicle chain is really totally empty, the - * completely_empty assignment can then be safely + * completely_emptied assignment can then be safely * removed; that's how TTDPatch behaves too. --pasky */ - completely_empty = false; + completely_emptied = false; anything_loaded = true; ge->cargo.MoveTo(&v->cargo, cap, CargoList::MTA_CARGO_LOAD, st->xy); @@ -1687,6 +1687,9 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left) } } + /* Only set completly_emptied, if we just unloaded all remaining cargo */ + completely_emptied &= anything_unloaded; + /* We update these variables here, so gradual loading still fills * all wagons at the same time instead of using the same 'improved' * loading algorithm for the wagons (only fill wagon when there is @@ -1754,7 +1757,7 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left) v->load_unload_time_rem = unloading_time; - if (completely_empty) { + if (completely_emptied) { TriggerVehicle(v, VEHICLE_TRIGGER_EMPTY); } |