20 #include "table/strings.h" 
   36   Money feeder_share = 0;
 
   41   DrawString(left, right, y + y_offset, STR_VEHICLE_INFO_BUILT_VALUE);
 
   48     memset(subtype_text, 0, 
sizeof(subtype_text));
 
   50     for (
const Vehicle *u = v; u != NULL; u = u->
Next()) {
 
   51       max_cargo[u->cargo_type] += u->cargo_cap;
 
   52       if (u->cargo_cap > 0) {
 
   54         if (text != STR_EMPTY) subtype_text[u->cargo_type] = text;
 
   58     GetString(capacity, STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY, 
lastof(capacity));
 
   62       if (max_cargo[i] > 0) {
 
   67         GetString(buffer, STR_JUST_CARGO, 
lastof(buffer));
 
   72         if (subtype_text[i] != 0) {
 
   73           GetString(buffer, subtype_text[i], 
lastof(buffer));
 
   83     for (
const Vehicle *u = v; u != NULL; u = u->
Next()) {
 
   84       if (u->cargo_cap == 0) 
continue;
 
   86       str = STR_VEHICLE_DETAILS_CARGO_EMPTY;
 
   87       if (u->cargo.StoredCount() > 0) {
 
   91         str = STR_VEHICLE_DETAILS_CARGO_FROM;
 
   92         feeder_share += u->cargo.FeederShare();
 
  106     str = STR_VEHICLE_DETAILS_CARGO_EMPTY;
 
  111       str = STR_VEHICLE_DETAILS_CARGO_FROM;
 
  138   int max_width = right - left + 1;
 
  145   int px = rtl ? max_width + skip : -skip;
 
  146   for (; u != NULL && (rtl ? px > 0 : px < max_width); u = u->
Next()) {
 
  148     int width = u->GetDisplayImageWidth(&offset);
 
  150     if (rtl ? px + width > 0 : px - width < max_width) {
 
  153       u->GetImage(dir, image_type, &seq);
 
  157     px += rtl ? -width : width;
 
  160   if (v->
index == selection) {