(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)

This commit is contained in:
truelight
2006-01-06 22:16:17 +00:00
parent 45a0cc607c
commit 336a58e797

View File

@@ -124,25 +124,31 @@ int UpdateCompanyRatingAndValue(Player *p, bool update)
/* Count vehicles */ /* Count vehicles */
{ {
Vehicle *v; Vehicle *v;
int32 min_profit = _score_info[SCORE_MIN_PROFIT].needed; int32 min_profit = 0;
bool min_profit_first = true;
uint num = 0; uint num = 0;
FOR_ALL_VEHICLES(v) { FOR_ALL_VEHICLES(v) {
if (v->owner != owner) if (v->owner != owner)
continue; continue;
if ((v->type == VEH_Train && IsFrontEngine(v)) || if ((v->type == VEH_Train && IsFrontEngine(v)) ||
v->type == VEH_Road || v->type == VEH_Road ||
(v->type == VEH_Aircraft && v->subtype<=2) || (v->type == VEH_Aircraft && v->subtype <= 2) ||
v->type == VEH_Ship) { v->type == VEH_Ship) {
num++; num++;
if (v->age > 730) { 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; min_profit = v->profit_last_year;
} }
} }
} }
_score_part[owner][SCORE_VEHICLES] = num; _score_part[owner][SCORE_VEHICLES] = num;
/* Don't allow negative min_profit to show */
if (min_profit > 0) if (min_profit > 0)
_score_part[owner][SCORE_MIN_PROFIT] = min_profit; _score_part[owner][SCORE_MIN_PROFIT] = min_profit;
} }