From 903119115b8bad1e6950f8cc0d3aa8ea4ecdedec Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Fri, 19 Jan 2024 20:07:47 +0000 Subject: [PATCH] Fix 9602de4: FinaliseCargoArray did nothing. (#11839) `CargoSpec::Iterate()` deliberately skips invalid cargo types, but `FinaliseCargoCarry()` is only interested in them. --- src/cargotype.h | 1 + src/newgrf.cpp | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/cargotype.h b/src/cargotype.h index 50c89b237d..da4e663495 100644 --- a/src/cargotype.h +++ b/src/cargotype.h @@ -175,6 +175,7 @@ private: static CargoSpec array[NUM_CARGO]; ///< Array holding all CargoSpecs friend void SetupCargoForClimate(LandscapeID l); + friend void FinaliseCargoArray(); }; extern CargoTypes _cargo_mask; diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 8332c3d0c7..e38027190a 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -9174,13 +9174,13 @@ static void FinaliseEngineArray() } /** Check for invalid cargoes */ -static void FinaliseCargoArray() +void FinaliseCargoArray() { - for (CargoSpec *cs : CargoSpec::Iterate()) { - if (!cs->IsValid()) { - cs->name = cs->name_single = cs->units_volume = STR_NEWGRF_INVALID_CARGO; - cs->quantifier = STR_NEWGRF_INVALID_CARGO_QUANTITY; - cs->abbrev = STR_NEWGRF_INVALID_CARGO_ABBREV; + for (CargoSpec &cs : CargoSpec::array) { + if (!cs.IsValid()) { + cs.name = cs.name_single = cs.units_volume = STR_NEWGRF_INVALID_CARGO; + cs.quantifier = STR_NEWGRF_INVALID_CARGO_QUANTITY; + cs.abbrev = STR_NEWGRF_INVALID_CARGO_ABBREV; } } }