diff --git a/src/subsidy.cpp b/src/subsidy.cpp --- a/src/subsidy.cpp +++ b/src/subsidy.cpp @@ -334,10 +334,7 @@ bool FindSubsidyTownCargoRoute() /* Passenger subsidies are not handled here. */ town_cargo_produced[CT_PASSENGERS] = 0; - uint8 cargo_count = 0; - for (CargoID i = 0; i < NUM_CARGO; i++) { - if (town_cargo_produced[i] > 0) cargo_count++; - } + uint8 cargo_count = town_cargo_produced.GetCount(); /* No cargo produced at all? */ if (cargo_count == 0) return false; diff --git a/src/train_gui.cpp b/src/train_gui.cpp --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -329,12 +329,7 @@ int GetTrainDetailsWndVScroll(VehicleID max_cargo[v->cargo_type] += v->cargo_cap; } - /* Set scroll-amount separately from counting, as to not compute num double - * for more carriages of the same type - */ - for (CargoID i = 0; i < NUM_CARGO; i++) { - if (max_cargo[i] > 0) num++; // only count carriages that the train has - } + num = max_cargo.GetCount(); num++; // needs one more because first line is description string } else { for (const Train *v = Train::Get(veh_id); v != nullptr; v = v->GetNextVehicle()) {