diff --git a/src/blitter/32bpp_optimized.cpp b/src/blitter/32bpp_optimized.cpp index b80fb7914f..e5df968205 100644 --- a/src/blitter/32bpp_optimized.cpp +++ b/src/blitter/32bpp_optimized.cpp @@ -424,7 +424,6 @@ Sprite *Blitter_32bppOptimized::EncodeInternal(SpriteType sprite_type, const Spr dest_sprite->y_offs = root_sprite.y_offs; SpriteData *dst = (SpriteData *)dest_sprite->data; - memset(dst, 0, sizeof(*dst)); uint32_t offset = 0; for (ZoomLevel z = zoom_min; z <= zoom_max; z++) { diff --git a/src/object_base.h b/src/object_base.h index 163f771c65..3f87fa429f 100644 --- a/src/object_base.h +++ b/src/object_base.h @@ -45,7 +45,7 @@ struct Object : ObjectPool::PoolItem<&_object_pool> { static inline void IncTypeCount(ObjectType type) { assert(type < NUM_OBJECTS); - counts[type]++; + Object::counts[type]++; } /** @@ -56,7 +56,7 @@ struct Object : ObjectPool::PoolItem<&_object_pool> { static inline void DecTypeCount(ObjectType type) { assert(type < NUM_OBJECTS); - counts[type]--; + Object::counts[type]--; } /** @@ -67,17 +67,17 @@ struct Object : ObjectPool::PoolItem<&_object_pool> { static inline uint16_t GetTypeCount(ObjectType type) { assert(type < NUM_OBJECTS); - return counts[type]; + return Object::counts[type]; } /** Resets object counts. */ static inline void ResetTypeCounts() { - memset(&counts, 0, sizeof(counts)); + Object::counts.fill(0); } protected: - static uint16_t counts[NUM_OBJECTS]; ///< Number of objects per type ingame + static std::array counts; ///< Number of objects per type ingame }; /** diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp index 20c89fa6d6..0d3c7554a0 100644 --- a/src/object_cmd.cpp +++ b/src/object_cmd.cpp @@ -45,7 +45,7 @@ ObjectPool _object_pool("Object"); INSTANTIATE_POOL_METHODS(Object) -uint16_t Object::counts[NUM_OBJECTS]; +/* static */ std::array Object::counts; /** * Get the object associated with a tile. diff --git a/src/saveload/settings_sl.cpp b/src/saveload/settings_sl.cpp index f8f82ae797..75f53ada6b 100644 --- a/src/saveload/settings_sl.cpp +++ b/src/saveload/settings_sl.cpp @@ -25,7 +25,7 @@ */ void PrepareOldDiffCustom() { - memset(_old_diff_custom, 0, sizeof(_old_diff_custom)); + _old_diff_custom.fill(0); } /** diff --git a/src/settings_table.h b/src/settings_table.h index 372e4739bb..3b1e8e1056 100644 --- a/src/settings_table.h +++ b/src/settings_table.h @@ -39,6 +39,6 @@ extern SettingTable _win32_settings; static const uint GAME_DIFFICULTY_NUM = 18; extern const std::array _old_diff_settings; -extern uint16_t _old_diff_custom[GAME_DIFFICULTY_NUM]; +extern std::array _old_diff_custom; #endif /* SETTINGS_TABLE_H */ diff --git a/src/spriteloader/spriteloader.hpp b/src/spriteloader/spriteloader.hpp index 8b8da72384..cf4673b760 100644 --- a/src/spriteloader/spriteloader.hpp +++ b/src/spriteloader/spriteloader.hpp @@ -31,7 +31,7 @@ using SpriteComponents = EnumBitSet class SpriteCollMap { - std::array data; + std::array data{}; public: inline constexpr T &operator[](const ZoomLevel &zoom) { return this->data[to_underlying(zoom)]; } inline constexpr const T &operator[](const ZoomLevel &zoom) const { return this->data[to_underlying(zoom)]; } diff --git a/src/table/settings/difficulty_settings.ini b/src/table/settings/difficulty_settings.ini index 001a8a0a58..47b003a821 100644 --- a/src/table/settings/difficulty_settings.ini +++ b/src/table/settings/difficulty_settings.ini @@ -10,7 +10,7 @@ [pre-amble] const std::array _old_diff_settings{"max_no_competitors", "competitor_start_time", "number_towns", "industry_density", "max_loan", "initial_interest", "vehicle_costs", "competitor_speed", "competitor_intelligence", "vehicle_breakdowns", "subsidy_multiplier", "construction_cost", "terrain_type", "quantity_sea_lakes", "economy", "line_reverse_mode", "disasters", "town_council_tolerance"}; -uint16_t _old_diff_custom[GAME_DIFFICULTY_NUM]; +std::array _old_diff_custom; uint8_t _old_diff_level; ///< Old difficulty level from old savegames static void DifficultyNoiseChange(int32_t new_value);