changeset 8241:4648f777da55 draft

(svn r11805) -Fix [FS#1620]: VEHICLE_TRIGGER_EMPTY was triggered continuously while train waiting in station.
author frosch <frosch@openttd.org>
date Thu, 10 Jan 2008 13:13:18 +0000
parents 5dc230e1a851
children 2114c740d1dd
files src/economy.cpp
diffstat 1 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/economy.cpp
+++ b/src/economy.cpp
@@ -1564,7 +1564,7 @@
 	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 @@
 
 			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 @@
 			 * 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 @@
 		}
 	}
 
+	/* 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 @@
 
 	v->load_unload_time_rem = unloading_time;
 
-	if (completely_empty) {
+	if (completely_emptied) {
 		TriggerVehicle(v, VEHICLE_TRIGGER_EMPTY);
 	}