changeset 13995:bc8b836e1fb9 draft

(svn r18537) -Fix (r17436): Also do not account cargo in statistics, if it was not accepted.
author frosch <frosch@openttd.org>
date Sat, 19 Dec 2009 15:51:55 +0000
parents 486560a72171
children 3f141ce0d4ec
files src/economy.cpp
diffstat 1 files changed, 9 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/economy.cpp
+++ b/src/economy.cpp
@@ -929,23 +929,23 @@
 {
 	assert(num_pieces > 0);
 
-	/* Update company statistics */
-	company->cur_economy.delivered_cargo += num_pieces;
-	SetBit(company->cargo_types, cargo_type);
-
 	const Station *st = Station::Get(dest);
 
-	/* Increase town's counter for some special goods types */
-	const CargoSpec *cs = CargoSpec::Get(cargo_type);
-	if (cs->town_effect == TE_FOOD) st->town->new_act_food += num_pieces;
-	if (cs->town_effect == TE_WATER) st->town->new_act_water += num_pieces;
-
 	/* Give the goods to the industry. */
 	uint accepted = DeliverGoodsToIndustry(st, cargo_type, num_pieces, src_type == ST_INDUSTRY ? src : INVALID_INDUSTRY);
 
 	/* If this cargo type is always accepted, accept all */
 	if (HasBit(st->always_accepted, cargo_type)) accepted = num_pieces;
 
+	/* Update company statistics */
+	company->cur_economy.delivered_cargo += accepted;
+	if (accepted > 0) SetBit(company->cargo_types, cargo_type);
+
+	/* Increase town's counter for some special goods types */
+	const CargoSpec *cs = CargoSpec::Get(cargo_type);
+	if (cs->town_effect == TE_FOOD) st->town->new_act_food += accepted;
+	if (cs->town_effect == TE_WATER) st->town->new_act_water += accepted;
+
 	/* Determine profit */
 	Money profit = GetTransportedGoodsIncome(accepted, DistanceManhattan(source_tile, st->xy), days_in_transit, cargo_type);