Change: Link houses production on industry chain graph by TPE_PASSENGERS or TPE_MAIL cargo.

This commit is contained in:
Peter Nelson 2024-01-07 19:32:42 +00:00 committed by Peter Nelson
parent 03b2640ea1
commit 2e6c6b719f
1 changed files with 7 additions and 4 deletions

View File

@ -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;
}