1
0
Fork 0

Codechange: remove ZeroedMemoryAllocator from GRFFile

pull/13641/head
Rubidium 2025-02-22 12:28:07 +01:00 committed by rubidium42
parent 5cee804f98
commit 3e511f2ce7
4 changed files with 23 additions and 26 deletions

View File

@ -886,7 +886,7 @@ static void HandleEconomyFluctuations()
*/
void ResetPriceBaseMultipliers()
{
memset(_price_base_multiplier, 0, sizeof(_price_base_multiplier));
_price_base_multiplier.fill(0);
}
/**

View File

@ -172,7 +172,7 @@ enum Price : uint8_t {
DECLARE_INCREMENT_DECREMENT_OPERATORS(Price)
typedef Money Prices[PR_END]; ///< Prices of everything. @see Price
typedef int8_t PriceMultipliers[PR_END];
using PriceMultipliers = std::array<int8_t, PR_END>;
/** Types of expenses. */
enum ExpensesType : uint8_t {

View File

@ -9213,9 +9213,7 @@ GRFFile::GRFFile(const GRFConfig &config)
this->traininfo_vehicle_width = TRAININFO_DEFAULT_VEHICLE_WIDTH;
/* Mark price_base_multipliers as 'not set' */
for (Price i = PR_BEGIN; i < PR_END; i++) {
this->price_base_multipliers[i] = INVALID_PRICE_MODIFIER;
}
this->price_base_multipliers.fill(INVALID_PRICE_MODIFIER);
/* Initialise rail type map with default rail types */
this->railtype_map.fill(INVALID_RAILTYPE);

View File

@ -18,7 +18,6 @@
#include "newgrf_callbacks.h"
#include "newgrf_text_type.h"
#include "core/bitmath_func.hpp"
#include "core/alloc_type.hpp"
#include "core/mem_func.hpp"
/**
@ -109,13 +108,13 @@ struct GRFLabel {
};
/** Dynamic data of a loaded NewGRF */
struct GRFFile : ZeroedMemoryAllocator {
std::string filename;
uint32_t grfid;
uint8_t grf_version;
struct GRFFile {
std::string filename{};
uint32_t grfid = 0;
uint8_t grf_version = 0;
uint sound_offset;
uint16_t num_sounds;
uint sound_offset = 0;
uint16_t num_sounds = 0;
std::vector<std::unique_ptr<struct StationSpec>> stations;
std::vector<std::unique_ptr<struct HouseSpec>> housespec;
@ -126,34 +125,34 @@ struct GRFFile : ZeroedMemoryAllocator {
std::vector<std::unique_ptr<struct AirportTileSpec>> airtspec;
std::vector<std::unique_ptr<struct RoadStopSpec>> roadstops;
std::vector<uint32_t> param;
std::vector<uint32_t> param{};
std::vector<GRFLabel> labels; ///< List of labels
std::vector<GRFLabel> labels{}; ///< List of labels
std::vector<CargoLabel> cargo_list; ///< Cargo translation table (local ID -> label)
std::vector<CargoLabel> cargo_list{}; ///< Cargo translation table (local ID -> label)
std::array<uint8_t, NUM_CARGO> cargo_map{}; ///< Inverse cargo translation table (CargoType -> local ID)
std::vector<BadgeID> badge_list; ///< Badge translation table (local index -> global index)
std::unordered_map<uint16_t, BadgeID> badge_map;
std::vector<BadgeID> badge_list{}; ///< Badge translation table (local index -> global index)
std::unordered_map<uint16_t, BadgeID> badge_map{};
std::vector<RailTypeLabel> railtype_list; ///< Railtype translation table
std::vector<RailTypeLabel> railtype_list{}; ///< Railtype translation table
std::array<RailType, RAILTYPE_END> railtype_map{};
std::vector<RoadTypeLabel> roadtype_list; ///< Roadtype translation table (road)
std::vector<RoadTypeLabel> roadtype_list{}; ///< Roadtype translation table (road)
std::array<RoadType, ROADTYPE_END> roadtype_map{};
std::vector<RoadTypeLabel> tramtype_list; ///< Roadtype translation table (tram)
std::vector<RoadTypeLabel> tramtype_list{}; ///< Roadtype translation table (tram)
std::array<RoadType, ROADTYPE_END> tramtype_map{};
CanalProperties canal_local_properties[CF_END]; ///< Canal properties as set by this NewGRF
std::array<CanalProperties, CF_END> canal_local_properties{}; ///< Canal properties as set by this NewGRF
std::unordered_map<uint8_t, LanguageMap> language_map; ///< Mappings related to the languages.
std::unordered_map<uint8_t, LanguageMap> language_map{}; ///< Mappings related to the languages.
int traininfo_vehicle_pitch; ///< Vertical offset for drawing train images in depot GUI and vehicle details
uint traininfo_vehicle_width; ///< Width (in pixels) of a 8/8 train vehicle in depot GUI and vehicle details
int traininfo_vehicle_pitch = 0; ///< Vertical offset for drawing train images in depot GUI and vehicle details
uint traininfo_vehicle_width = 0; ///< Width (in pixels) of a 8/8 train vehicle in depot GUI and vehicle details
uint32_t grf_features; ///< Bitset of GrfSpecFeature the grf uses
PriceMultipliers price_base_multipliers; ///< Price base multipliers as set by the grf.
uint32_t grf_features = 0; ///< Bitset of GrfSpecFeature the grf uses
PriceMultipliers price_base_multipliers{}; ///< Price base multipliers as set by the grf.
GRFFile(const struct GRFConfig &config);