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

@@ -1122,6 +1122,9 @@ static bool SearchLumberMillTrees(TileIndex tile, void *user_data)
*/
static void ChopLumberMillTrees(Industry *i)
{
/* Skip production if cargo slot is invalid. */
if (!IsValidCargoID(i->produced[0].cargo)) return;
/* We only want to cut trees if all tiles are completed. */
for (TileIndex tile_cur : i->location) {
if (i->TileBelongsToIndustry(tile_cur)) {
@@ -1160,6 +1163,7 @@ static void ProduceIndustryGoods(Industry *i)
IndustryBehaviour indbehav = indsp->behaviour;
for (auto &p : i->produced) {
if (!IsValidCargoID(p.cargo)) continue;
p.waiting = ClampTo<uint16_t>(p.waiting + p.rate);
}