Fix: Don't produce invalid cargo. (#11314)

Production for secondary industries did not always check that the produced cargo type isn't valid.
This commit is contained in:
PeterN
2023-09-18 22:43:03 +01:00
committed by GitHub
parent fd2dd4397f
commit 18e75dbc88
3 changed files with 8 additions and 1 deletions

View File

@@ -1169,9 +1169,10 @@ static void TriggerIndustryProduction(Industry *i)
}
} else {
for (auto ita = std::begin(i->accepted); ita != std::end(i->accepted); ++ita) {
if (ita->waiting == 0) continue;
if (ita->waiting == 0 || !IsValidCargoID(ita->cargo)) continue;
for (auto itp = std::begin(i->produced); itp != std::end(i->produced); ++itp) {
if (!IsValidCargoID(itp->cargo)) continue;
itp->waiting = ClampTo<uint16_t>(itp->waiting + (ita->waiting * indspec->input_cargo_multiplier[ita - std::begin(i->accepted)][itp - std::begin(i->produced)] / 256));
}