(svn r2411) - Codechange: Have trains cache stuff like consist power/weight/max speed instead of recalculating it each time.

- Fix: Station ratings now depends on the max speed of a consist, without being affected by other speed limits from realistic acceleration.
This commit is contained in:
hackykid
2005-06-05 15:37:00 +00:00
parent b30a413cfe
commit e878e4d815
5 changed files with 92 additions and 55 deletions

View File

@@ -979,7 +979,6 @@ static void DrawTrainDetailsWindow(Window *w)
{
const Vehicle *v, *u;
uint16 tot_cargo[NUM_CARGO][2]; // count total cargo ([0]-actual cargo, [1]-total cargo)
int max_speed = 0xFFFF;
int i,num,x,y,sel;
StringID str;
byte det_tab = WP(w, traindetails_d).tab;
@@ -999,8 +998,6 @@ static void DrawTrainDetailsWindow(Window *w)
tot_cargo[u->cargo_type][0] += u->cargo_count;
tot_cargo[u->cargo_type][1] += u->cargo_cap;
}
if (RailVehInfo(u->engine_type)->max_speed != 0)
max_speed = min(max_speed, RailVehInfo(u->engine_type)->max_speed);
} while ( (u = u->next) != NULL);
/* set scroll-amount seperately from counting, as to not
@@ -1043,7 +1040,7 @@ static void DrawTrainDetailsWindow(Window *w)
SetDParam(3, GetTrainRunningCost(v) >> 8);
DrawString(x, 15, STR_885D_AGE_RUNNING_COST_YR, 0);
SetDParam(2, max_speed * 10 >> 4);
SetDParam(2, v->u.rail.cached_max_speed * 10 >> 4);
SetDParam(1, v->u.rail.cached_power);
SetDParam(0, v->u.rail.cached_weight);
DrawString(x, 25, STR_885E_WEIGHT_T_POWER_HP_MAX_SPEED, 0);