From 3c9d3f5ecd4c366369e033ba303dd52a2b32cc9c Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 24 May 2014 19:13:34 +0000 Subject: (svn r26612) -Add: Method to copy newgrf parameters. --- src/newgrf_config.cpp | 13 ++++++++++++- src/newgrf_config.h | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 2b268183f..6b7b8c377 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -82,7 +82,7 @@ GRFConfig::GRFConfig(const GRFConfig &config) : 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; @@ -107,6 +107,17 @@ GRFConfig::~GRFConfig() for (uint i = 0; i < this->param_info.Length(); i++) delete this->param_info[i]; } +/** + * 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. diff --git a/src/newgrf_config.h b/src/newgrf_config.h index 906f9620d..e19d8d608 100644 --- a/src/newgrf_config.h +++ b/src/newgrf_config.h @@ -177,6 +177,8 @@ struct GRFConfig : ZeroedMemoryAllocator { struct GRFConfig *next; ///< NOSAVE: Next item in the linked list + void CopyParams(const GRFConfig &src); + bool IsOpenTTDBaseGRF() const; const char *GetTextfile(TextfileType type) const; -- cgit v1.2.3-70-g09d2