diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 06948ee6c9..58ff40a974 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -436,11 +436,7 @@ Company *DoStartupNewCompany(bool is_ai) c->inaugurated_year = _cur_year; RandomCompanyManagerFaceBits(c->face, (GenderEthnicity)Random(), false); // create a random company manager face - /* Settings for non-ai companies are copied from the client settings later. */ - if (is_ai) { - c->settings.engine_renew_money = 100000; - c->settings.engine_renew_months = 6; - } + SetDefaultCompanySettings(c->index); GeneratePresidentName(c); diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index dd59938923..379ec8fa41 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -7,7 +7,6 @@ #include "heightmap.h" #include "gui.h" #include "variables.h" -#include "settings_func.h" #include "debug.h" #include "genworld.h" #include "network/network.h" @@ -27,6 +26,7 @@ #include "querystring_gui.h" #include "town.h" #include "thread.h" +#include "settings_func.h" #include "table/strings.h" #include "table/sprites.h" diff --git a/src/settings.cpp b/src/settings.cpp index ad0ac1de33..af99588e77 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1507,6 +1507,19 @@ void SetCompanySetting(uint index, int32 value) } } +/** + * Set the company settings for a new company to their default values. + */ +void SetDefaultCompanySettings(CompanyID cid) +{ + Company *c = Company::Get(cid); + const SettingDesc *sd; + for (sd = _company_settings; sd->save.cmd != SL_END; sd++) { + void *var = GetVariableAddress(&c->settings, &sd->save); + Write_ValidateSetting(var, sd, (int32)sd->desc.def); + } +} + /** * Sync all company settings in a multiplayer game. */ diff --git a/src/settings_func.h b/src/settings_func.h index f1824fd7ab..e04038ef71 100644 --- a/src/settings_func.h +++ b/src/settings_func.h @@ -27,5 +27,6 @@ void DeleteGRFPresetFromConfig(const char *config_name); uint GetCompanySettingIndex(const char *name); void SyncCompanySettings(); +void SetDefaultCompanySettings(CompanyID cid); #endif /* SETTINGS_FUNC_H */