diff --git a/src/newgrf.cpp b/src/newgrf.cpp index fc3597d2bc..f847209db3 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -8838,7 +8838,7 @@ void ResetNewGRFData() ResetCustomRoadStops(); /* Reset canal sprite groups and flags */ - memset(_water_feature, 0, sizeof(_water_feature)); + _water_feature.fill({}); /* Reset the snowline table. */ ClearSnowLine(); diff --git a/src/newgrf_canal.cpp b/src/newgrf_canal.cpp index b3e725b0d7..0bb7260533 100644 --- a/src/newgrf_canal.cpp +++ b/src/newgrf_canal.cpp @@ -18,7 +18,7 @@ #include "safeguards.h" /** Table of canal 'feature' sprite groups */ -WaterFeature _water_feature[CF_END]; +std::array _water_feature; /** Scope resolver of a canal tile. */ struct CanalScopeResolver : public ScopeResolver { diff --git a/src/newgrf_canal.h b/src/newgrf_canal.h index 416403888a..28d4c8403d 100644 --- a/src/newgrf_canal.h +++ b/src/newgrf_canal.h @@ -20,15 +20,15 @@ enum CanalFeatureFlag : uint8_t { /** Information about a water feature. */ struct WaterFeature { - const SpriteGroup *group; ///< Sprite group to start resolving. - const GRFFile *grffile; ///< NewGRF where 'group' belongs to. - uint8_t callback_mask; ///< Bitmask of canal callbacks that have to be called. - uint8_t flags; ///< Flags controlling display. + const SpriteGroup *group = nullptr; ///< Sprite group to start resolving. + const GRFFile *grffile = nullptr; ///< NewGRF where 'group' belongs to. + uint8_t callback_mask = 0; ///< Bitmask of canal callbacks that have to be called. + uint8_t flags = 0; ///< Flags controlling display. }; /** Table of canal 'feature' sprite groups */ -extern WaterFeature _water_feature[CF_END]; +extern std::array _water_feature; SpriteID GetCanalSprite(CanalFeature feature, TileIndex tile);