|
|
|
@ -2428,10 +2428,11 @@ struct CargoesRow {
|
|
|
|
|
if (!IsValidCargoID(cargo_fld->u.cargo.supp_cargoes[i])) ind_fld->u.industry.other_produced[i] = others[--other_count];
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
/* Houses only display what is demanded. */
|
|
|
|
|
/* Houses only display cargo that towns produce. */
|
|
|
|
|
for (uint i = 0; i < cargo_fld->u.cargo.num_cargoes; i++) {
|
|
|
|
|
CargoID cid = cargo_fld->u.cargo.vertical_cargoes[i];
|
|
|
|
|
if (cid == CT_PASSENGERS || cid == CT_MAIL) cargo_fld->ConnectCargo(cid, true);
|
|
|
|
|
TownProductionEffect tpe = CargoSpec::Get(cid)->town_production_effect;
|
|
|
|
|
if (tpe == TPE_PASSENGERS || tpe == TPE_MAIL) cargo_fld->ConnectCargo(cid, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -2683,8 +2684,10 @@ struct IndustryCargoesWindow : public Window {
|
|
|
|
|
static bool HousesCanSupply(const CargoID *cargoes, uint length)
|
|
|
|
|
{
|
|
|
|
|
for (uint i = 0; i < length; i++) {
|
|
|
|
|
if (!IsValidCargoID(cargoes[i])) continue;
|
|
|
|
|
if (cargoes[i] == CT_PASSENGERS || cargoes[i] == CT_MAIL) return true;
|
|
|
|
|
CargoID cid = cargoes[i];
|
|
|
|
|
if (!IsValidCargoID(cid)) continue;
|
|
|
|
|
TownProductionEffect tpe = CargoSpec::Get(cid)->town_production_effect;
|
|
|
|
|
if (tpe == TPE_PASSENGERS || tpe == TPE_MAIL) return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|