equal
deleted
inserted
replaced
229 } |
229 } |
230 |
230 |
231 /* check the vehicle length (callback) */ |
231 /* check the vehicle length (callback) */ |
232 uint16 veh_len = CALLBACK_FAILED; |
232 uint16 veh_len = CALLBACK_FAILED; |
233 if (HASBIT(EngInfo(u->engine_type)->callbackmask, CBM_VEHICLE_LENGTH)) { |
233 if (HASBIT(EngInfo(u->engine_type)->callbackmask, CBM_VEHICLE_LENGTH)) { |
234 veh_len = GetVehicleCallback(CBID_TRAIN_VEHICLE_LENGTH, 0, 0, u->engine_type, u); |
234 veh_len = GetVehicleCallback(CBID_VEHICLE_LENGTH, 0, 0, u->engine_type, u); |
235 } |
235 } |
236 if (veh_len == CALLBACK_FAILED) veh_len = rvi_u->shorten_factor; |
236 if (veh_len == CALLBACK_FAILED) veh_len = rvi_u->shorten_factor; |
237 veh_len = clamp(veh_len, 0, u->next == NULL ? 7 : 5); // the clamp on vehicles not the last in chain is stricter, as too short wagons can break the 'follow next vehicle' code |
237 veh_len = clamp(veh_len, 0, u->next == NULL ? 7 : 5); // the clamp on vehicles not the last in chain is stricter, as too short wagons can break the 'follow next vehicle' code |
238 u->u.rail.cached_veh_length = 8 - veh_len; |
238 u->u.rail.cached_veh_length = 8 - veh_len; |
239 v->u.rail.cached_total_length += u->u.rail.cached_veh_length; |
239 v->u.rail.cached_total_length += u->u.rail.cached_veh_length; |