Fix b6a116a: convert server_advertise to server_game_type in config file (#9515)

This commit is contained in:
Loïc Guilloux 2021-08-28 14:41:07 +02:00 committed by GitHub
parent aa83488fde
commit 8d2162ba2d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 1 deletions

View File

@ -156,6 +156,7 @@ public:
enum IniFileVersion : uint32 { enum IniFileVersion : uint32 {
IFV_0, ///< 0 All versions prior to introduction. IFV_0, ///< 0 All versions prior to introduction.
IFV_PRIVATE_SECRETS, ///< 1 PR#9298 Moving of settings from openttd.cfg to private.cfg / secrets.cfg. IFV_PRIVATE_SECRETS, ///< 1 PR#9298 Moving of settings from openttd.cfg to private.cfg / secrets.cfg.
IFV_GAME_TYPE, ///< 2 PR#9515 Convert server_advertise to server_game_type.
IFV_MAX_VERSION, ///< Highest possible ini-file version. IFV_MAX_VERSION, ///< Highest possible ini-file version.
}; };
@ -1218,6 +1219,19 @@ void LoadFromConfig(bool startup)
/* Load basic settings only during bootstrap, load other settings not during bootstrap */ /* Load basic settings only during bootstrap, load other settings not during bootstrap */
if (!startup) { if (!startup) {
/* Convert network.server_advertise to network.server_game_type, but only if network.server_game_type is set to default value. */
if (generic_version < IFV_GAME_TYPE) {
if (_settings_client.network.server_game_type == SERVER_GAME_TYPE_LOCAL) {
IniGroup *network = generic_ini.GetGroup("network", false);
if (network != nullptr) {
IniItem *server_advertise = network->GetItem("server_advertise", false);
if (server_advertise != nullptr && server_advertise->value == "true") {
_settings_client.network.server_game_type = SERVER_GAME_TYPE_PUBLIC;
}
}
}
}
_grfconfig_newgame = GRFLoadConfig(generic_ini, "newgrf", false); _grfconfig_newgame = GRFLoadConfig(generic_ini, "newgrf", false);
_grfconfig_static = GRFLoadConfig(generic_ini, "newgrf-static", true); _grfconfig_static = GRFLoadConfig(generic_ini, "newgrf-static", true);
AILoadConfig(generic_ini, "ai_players"); AILoadConfig(generic_ini, "ai_players");
@ -1272,6 +1286,14 @@ void SaveToConfig()
} }
} }
/* Remove network.server_advertise. */
if (generic_version < IFV_GAME_TYPE) {
IniGroup *network = generic_ini.GetGroup("network", false);
if (network != nullptr) {
network->RemoveItem("server_advertise");
}
}
HandleSettingDescs(generic_ini, private_ini, secrets_ini, IniSaveSettings, IniSaveSettingList); HandleSettingDescs(generic_ini, private_ini, secrets_ini, IniSaveSettings, IniSaveSettingList);
GRFSaveConfig(generic_ini, "newgrf", _grfconfig_newgame); GRFSaveConfig(generic_ini, "newgrf", _grfconfig_newgame);
GRFSaveConfig(generic_ini, "newgrf-static", _grfconfig_static); GRFSaveConfig(generic_ini, "newgrf-static", _grfconfig_static);

View File

@ -280,7 +280,6 @@ struct NetworkSettings {
std::string server_password; ///< password for joining this server std::string server_password; ///< password for joining this server
std::string rcon_password; ///< password for rconsole (server side) std::string rcon_password; ///< password for rconsole (server side)
std::string admin_password; ///< password for the admin network std::string admin_password; ///< password for the admin network
bool server_advertise; ///< Advertise the server to the game coordinator.
std::string client_name; ///< name of the player (as client) std::string client_name; ///< name of the player (as client)
std::string default_company_pass; ///< default password for new companies in encrypted form std::string default_company_pass; ///< default password for new companies in encrypted form
std::string connect_to_ip; ///< default for the "Add server" query std::string connect_to_ip; ///< default for the "Add server" query