diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index 135ed5e343..cb74f8d254 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -245,7 +245,12 @@ void RoadVehUpdateCache(RoadVehicle *v, bool same_length) 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); + if (unlikely(v->GetGRFID() == BSWAP32(0x44450602))) { + /* skip callback for known bad GRFs */ + u->vcache.cached_cargo_age_period = EngInfo(u->engine_type)->cargo_age_period; + } else { + 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);