diff --git a/src/ai/api/ai_vehicle.cpp b/src/ai/api/ai_vehicle.cpp --- a/src/ai/api/ai_vehicle.cpp +++ b/src/ai/api/ai_vehicle.cpp @@ -49,13 +49,7 @@ const Vehicle *v = ::Vehicle::Get(vehicle_id); switch (v->type) { - case VEH_ROAD: { - uint total_length = 0; - for (const Vehicle *u = v; u != NULL; u = u->Next()) { - total_length += ::RoadVehicle::From(u)->rcache.cached_veh_length; - } - return total_length; - } + case VEH_ROAD: return ::RoadVehicle::From(v)->rcache.cached_total_length; case VEH_TRAIN: return ::Train::From(v)->tcache.cached_total_length; default: return -1; } diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -854,9 +854,7 @@ static int CDECL VehicleLengthSorter(con break; case VEH_ROAD: { - const RoadVehicle *u; - for (u = RoadVehicle::From(*a); u != NULL; u = u->Next()) r += u->rcache.cached_veh_length; - for (u = RoadVehicle::From(*b); u != NULL; u = u->Next()) r -= u->rcache.cached_veh_length; + r = RoadVehicle::From(*a)->rcache.cached_total_length - RoadVehicle::From(*b)->rcache.cached_total_length; break; }