Add client setting for whether to sync locale settings with server in multiplayer
This commit is contained in:
@@ -2370,6 +2370,9 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft)
|
|||||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metric (m)
|
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metric (m)
|
||||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m)
|
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m)
|
||||||
|
|
||||||
|
STR_CONFIG_SETTING_SYNC_LOCALE_SETTINGS_NETWORK_SERVER :Sync localisation settings with server in multiplayer: {STRING2}
|
||||||
|
STR_CONFIG_SETTING_SYNC_LOCALE_SETTINGS_NETWORK_SERVER_HELPTEXT :When joining a multiplayer game as a network client, change the localisation settings to match the server
|
||||||
|
|
||||||
STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localisation
|
STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localisation
|
||||||
STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Graphics
|
STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Graphics
|
||||||
STR_CONFIG_SETTING_SOUND :{ORANGE}Sound
|
STR_CONFIG_SETTING_SOUND :{ORANGE}Sound
|
||||||
|
@@ -4069,6 +4069,10 @@ bool AfterLoadGame()
|
|||||||
|
|
||||||
if (_networking && !_network_server) {
|
if (_networking && !_network_server) {
|
||||||
SlProcessVENC();
|
SlProcessVENC();
|
||||||
|
|
||||||
|
if (!_settings_client.client_locale.sync_locale_network_server) {
|
||||||
|
_settings_game.locale = _settings_newgame.locale;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Show this message last to avoid covering up an error message if we bail out part way */
|
/* Show this message last to avoid covering up an error message if we bail out part way */
|
||||||
|
@@ -1750,6 +1750,7 @@ static SettingsContainer &GetSettingsTree()
|
|||||||
localisation->Add(new SettingEntry("locale.units_force"));
|
localisation->Add(new SettingEntry("locale.units_force"));
|
||||||
localisation->Add(new SettingEntry("locale.units_height"));
|
localisation->Add(new SettingEntry("locale.units_height"));
|
||||||
localisation->Add(new SettingEntry("gui.date_format_in_default_names"));
|
localisation->Add(new SettingEntry("gui.date_format_in_default_names"));
|
||||||
|
localisation->Add(new SettingEntry("client_locale.sync_locale_network_server"));
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsPage *graphics = main->Add(new SettingsPage(STR_CONFIG_SETTING_GRAPHICS));
|
SettingsPage *graphics = main->Add(new SettingsPage(STR_CONFIG_SETTING_GRAPHICS));
|
||||||
|
@@ -762,6 +762,11 @@ struct ScenarioSettings {
|
|||||||
bool house_ignore_grf; ///< allow manually adding houses regardless of GRF restrictions
|
bool house_ignore_grf; ///< allow manually adding houses regardless of GRF restrictions
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** Settings related to currency/unit systems. */
|
||||||
|
struct ClientLocaleSettings {
|
||||||
|
bool sync_locale_network_server; ///< sync locale settings with network server
|
||||||
|
};
|
||||||
|
|
||||||
/** All settings together for the game. */
|
/** All settings together for the game. */
|
||||||
struct GameSettings {
|
struct GameSettings {
|
||||||
DifficultySettings difficulty; ///< settings related to the difficulty
|
DifficultySettings difficulty; ///< settings related to the difficulty
|
||||||
@@ -785,6 +790,7 @@ struct GameSettings {
|
|||||||
/** All settings that are only important for the local client. */
|
/** All settings that are only important for the local client. */
|
||||||
struct ClientSettings {
|
struct ClientSettings {
|
||||||
GUISettings gui; ///< settings related to the GUI
|
GUISettings gui; ///< settings related to the GUI
|
||||||
|
ClientLocaleSettings client_locale; ///< settings related to used currency/unit system in the client
|
||||||
NetworkSettings network; ///< settings related to the network
|
NetworkSettings network; ///< settings related to the network
|
||||||
CompanySettings company; ///< default values for per-company settings
|
CompanySettings company; ///< default values for per-company settings
|
||||||
SoundSettings sound; ///< sound effect settings
|
SoundSettings sound; ///< sound effect settings
|
||||||
|
@@ -4101,6 +4101,14 @@ def = nullptr
|
|||||||
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
||||||
cat = SC_BASIC
|
cat = SC_BASIC
|
||||||
|
|
||||||
|
[SDTC_BOOL]
|
||||||
|
var = client_locale.sync_locale_network_server
|
||||||
|
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
|
||||||
|
def = false
|
||||||
|
str = STR_CONFIG_SETTING_SYNC_LOCALE_SETTINGS_NETWORK_SERVER
|
||||||
|
strhelp = STR_CONFIG_SETTING_SYNC_LOCALE_SETTINGS_NETWORK_SERVER_HELPTEXT
|
||||||
|
cat = SC_BASIC
|
||||||
|
|
||||||
[SDT_BOOL]
|
[SDT_BOOL]
|
||||||
var = vehicle.adjacent_crossings
|
var = vehicle.adjacent_crossings
|
||||||
def = true
|
def = true
|
||||||
|
Reference in New Issue
Block a user