diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -82,7 +82,7 @@ GRFConfig::GRFConfig(const GRFConfig &co this->name->AddRef(); this->info->AddRef(); this->url->AddRef(); - if (config.error != NULL) this->error = new GRFError(*config.error); + if (config.error != NULL) this->error = new GRFError(*config.error); for (uint i = 0; i < config.param_info.Length(); i++) { if (config.param_info[i] == NULL) { *this->param_info.Append() = NULL; @@ -108,6 +108,17 @@ GRFConfig::~GRFConfig() } /** + * Copy the parameter information from the \a src config. + * @param src Source config. + */ +void GRFConfig::CopyParams(const GRFConfig &src) +{ + this->num_params = src.num_params; + this->num_valid_params = src.num_valid_params; + MemCpyT(this->param, src.param, lengthof(this->param)); +} + +/** * Get the name of this grf. In case the name isn't known * the filename is returned. * @return The name of filename of this grf.