changeset 2829:29c943af24b3 draft

(svn r3377) -Fix: [ FS#24 ] Min. profit in detail performance rating gave you full points if you had no vehicles, and was limited to 20k. Solved both. (Partly based on Graphite his patch)
author truelight <truelight@openttd.org>
date Fri, 06 Jan 2006 22:16:17 +0000
parents e12c87420dcd
children c24013761c37
files economy.c
diffstat 1 files changed, 11 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/economy.c
+++ b/economy.c
@@ -124,25 +124,31 @@
 /* Count vehicles */
 	{
 		Vehicle *v;
-		int32 min_profit = _score_info[SCORE_MIN_PROFIT].needed;
+		int32 min_profit = 0;
+		bool min_profit_first = true;
 		uint num = 0;
 
 		FOR_ALL_VEHICLES(v) {
 			if (v->owner != owner)
 				continue;
 			if ((v->type == VEH_Train && IsFrontEngine(v)) ||
-					v->type == VEH_Road ||
-					(v->type == VEH_Aircraft && v->subtype<=2) ||
-					v->type == VEH_Ship) {
+					 v->type == VEH_Road ||
+					(v->type == VEH_Aircraft && v->subtype <= 2) ||
+					 v->type == VEH_Ship) {
 				num++;
 				if (v->age > 730) {
-					if (min_profit > v->profit_last_year)
+					/* Find the vehicle with the lowest amount of profit */
+					if (min_profit_first == true) {
+						min_profit = v->profit_last_year;
+						min_profit_first = false;
+					} else if (min_profit > v->profit_last_year)
 						min_profit = v->profit_last_year;
 				}
 			}
 		}
 
 		_score_part[owner][SCORE_VEHICLES] = num;
+		/* Don't allow negative min_profit to show */
 		if (min_profit > 0)
 			_score_part[owner][SCORE_MIN_PROFIT] = min_profit;
 	}