changeset 7087:39792f9f0512 draft

(svn r10354) -Fix [FS#950]: loading indicator showed "^" when the train would load at the given station.
author rubidium <rubidium@openttd.org>
date Wed, 27 Jun 2007 14:37:46 +0000
parents 787d1ac148e4
children 2ee4ebcf0e11
files src/vehicle.cpp
diffstat 1 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -2272,22 +2272,27 @@
 	int max = 0;
 	int cars = 0;
 	int unloading = 0;
+	bool loading = false;
 
 	assert(color != NULL);
 
+	const Vehicle *u = v;
+	const Station *st = GetStation(v->last_station_visited);
+
 	/* Count up max and used */
 	for (; v != NULL; v = v->next) {
 		count += v->cargo.Count();
 		max += v->cargo_cap;
 		if (v->cargo_cap != 0) {
 			unloading += HASBIT(v->vehicle_flags, VF_CARGO_UNLOADING) ? 1 : 0;
+			loading |= (u->current_order.flags & OF_UNLOAD) == 0 && st->goods[v->cargo_type].days_since_pickup != 255;
 			cars++;
 		}
 	}
 
-	if (unloading == 0)         *color = STR_PERCENT_UP;
-	else if (cars == unloading) *color = STR_PERCENT_DOWN;
-	else                        *color = STR_PERCENT_UP_DOWN;
+	if (unloading == 0 && loading)          *color = STR_PERCENT_UP;
+	else if (cars == unloading || !loading) *color = STR_PERCENT_DOWN;
+	else                                    *color = STR_PERCENT_UP_DOWN;
 
 	/* Train without capacity */
 	if (max == 0) return 100;