(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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user