Changeset - r8815:88ce42a3affb
[Not reviewed]
master
0 1 0
smatz - 16 years ago 2008-04-04 15:10:54
smatz@openttd.org
(svn r12561) -Fix: do not affect town rating change by the order in which we examine stations
1 file changed with 9 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/town_cmd.cpp
Show inline comments
 
@@ -2261,16 +2261,23 @@ static void UpdateTownGrowRate(Town *t)
 
			if (st->time_since_load <= 20 || st->time_since_unload <= 20) {
 
				n++;
 
				if (IsValidPlayer(st->owner)) {
 
					t->ratings[st->owner] = min((int)RATING_MAXIMUM, t->ratings[st->owner] + RATING_STATION_UP_STEP);
 
					int new_rating = t->ratings[st->owner] + RATING_STATION_UP_STEP;
 
					t->ratings[st->owner] = min(new_rating, INT16_MAX); // do not let it overflow
 
				}
 
			} else {
 
				if (IsValidPlayer(st->owner)) {
 
					t->ratings[st->owner] = max((int)RATING_MINIMUM, t->ratings[st->owner] + RATING_STATION_DOWN_STEP);
 
					int new_rating = t->ratings[st->owner] + RATING_STATION_DOWN_STEP;
 
					t->ratings[st->owner] = max(new_rating, INT16_MIN);
 
				}
 
			}
 
		}
 
	}
 

	
 
	/* clamp all ratings to valid values */
 
	for (uint i = 0; i < MAX_PLAYERS; i++) {
 
		t->ratings[i] = Clamp(t->ratings[i], RATING_MINIMUM, RATING_MAXIMUM);
 
	}
 

	
 
	ClrBit(t->flags12, TOWN_IS_FUNDED);
 
	if (_patches.town_growth_rate == 0 && t->fund_buildings_months == 0) return;
 

	
0 comments (0 inline, 0 general)