Cache the last vehicle in a consist to have a visual effect
This commit is contained in:
@@ -224,6 +224,7 @@ void RoadVehUpdateCache(RoadVehicle *v, bool same_length)
|
||||
|
||||
v->gcache.cached_total_length = 0;
|
||||
|
||||
Vehicle *last_vis_effect = v;
|
||||
for (RoadVehicle *u = v; u != NULL; u = u->Next()) {
|
||||
/* Check the v->first cache. */
|
||||
assert(u->First() == v);
|
||||
@@ -241,10 +242,13 @@ void RoadVehUpdateCache(RoadVehicle *v, bool same_length)
|
||||
|
||||
/* Update visual effect */
|
||||
u->UpdateVisualEffect();
|
||||
ClrBit(u->vcache.cached_veh_flags, VCF_LAST_VISUAL_EFFECT);
|
||||
if (!(HasBit(u->vcache.cached_vis_effect, VE_ADVANCED_EFFECT) && GB(u->vcache.cached_vis_effect, 0, VE_ADVANCED_EFFECT) == VESM_NONE)) last_vis_effect = u;
|
||||
|
||||
/* Update cargo aging period. */
|
||||
u->vcache.cached_cargo_age_period = GetVehicleProperty(u, PROP_ROADVEH_CARGO_AGE_PERIOD, EngInfo(u->engine_type)->cargo_age_period);
|
||||
}
|
||||
SetBit(last_vis_effect->vcache.cached_veh_flags, VCF_LAST_VISUAL_EFFECT);
|
||||
|
||||
uint max_speed = GetVehicleProperty(v, PROP_ROADVEH_SPEED, 0);
|
||||
v->vcache.cached_max_speed = (max_speed != 0) ? max_speed * 4 : RoadVehInfo(v->engine_type)->max_speed;
|
||||
|
Reference in New Issue
Block a user