diff --git a/binaries/data/mods/public/gui/common/functions_utility.js b/binaries/data/mods/public/gui/common/functions_utility.js index f7db117d5c..dd9fa954db 100644 --- a/binaries/data/mods/public/gui/common/functions_utility.js +++ b/binaries/data/mods/public/gui/common/functions_utility.js @@ -7,6 +7,15 @@ var g_SoundNotifications = { "nick": { "soundfile": "audio/interface/ui/chat_alert.ogg", "threshold": 3000 } }; +/** + * Save setting for current instance and write setting to the user config file. + */ +function saveSettingAndWriteToUserConfig(setting, value) +{ + Engine.ConfigDB_CreateValue("user", setting, value); + Engine.ConfigDB_WriteValueToFile("user", setting, value, "config/user.cfg"); +} + /** * Returns translated history and gameplay data of all civs, optionally including a mock gaia civ. */ diff --git a/binaries/data/mods/public/gui/gamesetup/gamesetup.js b/binaries/data/mods/public/gui/gamesetup/gamesetup.js index 85379ecb1c..34b3f8e67a 100644 --- a/binaries/data/mods/public/gui/gamesetup/gamesetup.js +++ b/binaries/data/mods/public/gui/gamesetup/gamesetup.js @@ -1097,10 +1097,7 @@ function init(attribs) // Replace empty playername when entering a singleplayermatch for the first time if (!g_IsNetworked) - { - Engine.ConfigDB_CreateValue("user", "playername.singleplayer", singleplayerName()); - Engine.ConfigDB_WriteValueToFile("user", "playername.singleplayer", singleplayerName(), "config/user.cfg"); - } + saveSettingAndWriteToUserConfig("playername.singleplayer", singleplayerName()); initDefaults(); supplementDefaults(); @@ -1377,13 +1374,6 @@ function initSPTips() Engine.GetGUIObjectByName("aiTips").caption = Engine.TranslateLines(Engine.ReadFile("gui/gamesetup/ai.txt")); } -function saveSPTipsSetting() -{ - let enabled = String(Engine.GetGUIObjectByName("displaySPTips").checked); - Engine.ConfigDB_CreateValue("user", "gui.gamesetup.enabletips", enabled); - Engine.ConfigDB_WriteValueToFile("user", "gui.gamesetup.enabletips", enabled, "config/user.cfg"); -} - /** * Distribute the currently visible settings over the settings panel. * First calculate the number of columns required, then place the objects. diff --git a/binaries/data/mods/public/gui/gamesetup/gamesetup.xml b/binaries/data/mods/public/gui/gamesetup/gamesetup.xml index 47554582ba..b18b88e167 100644 --- a/binaries/data/mods/public/gui/gamesetup/gamesetup.xml +++ b/binaries/data/mods/public/gui/gamesetup/gamesetup.xml @@ -136,7 +136,7 @@ Show this message in the future - saveSPTipsSetting(); + saveSettingAndWriteToUserConfig("gui.gamesetup.enabletips", String(this.checked)); diff --git a/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js b/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js index 40a25146dd..21638db41a 100644 --- a/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js +++ b/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js @@ -272,23 +272,13 @@ function switchSetupPage(newPage) Engine.GetGUIObjectByName("continueButton").hidden = newPage == "pageConnecting"; } -function saveSTUNSetting(enabled) -{ - Engine.ConfigDB_CreateValue("user", "lobby.stun.enabled", enabled); - Engine.ConfigDB_WriteValueToFile("user", "lobby.stun.enabled", enabled, "config/user.cfg"); -} - function startHost(playername, servername, port) { startConnectionStatus("server"); - // Save player name - Engine.ConfigDB_CreateValue("user", "playername.multiplayer", playername); - Engine.ConfigDB_WriteValueToFile("user", "playername.multiplayer", playername, "config/user.cfg"); + saveSettingAndWriteToUserConfig("playername.multiplayer", playername); - // Save port - Engine.ConfigDB_CreateValue("user", "multiplayerhosting.port", port); - Engine.ConfigDB_WriteValueToFile("user", "multiplayerhosting.port", port, "config/user.cfg"); + saveSettingAndWriteToUserConfig("multiplayerhosting.port", port); let hostFeedback = Engine.GetGUIObjectByName("hostFeedback"); @@ -366,12 +356,9 @@ function startJoin(playername, ip, port, useSTUN, hostJID = "") else { // Only save the player name and host address if they're valid and we're not in the lobby - Engine.ConfigDB_CreateValue("user", "playername.multiplayer", playername); - Engine.ConfigDB_WriteValueToFile("user", "playername.multiplayer", playername, "config/user.cfg"); - Engine.ConfigDB_CreateValue("user", "multiplayerserver", ip); - Engine.ConfigDB_WriteValueToFile("user", "multiplayerserver", ip, "config/user.cfg"); - Engine.ConfigDB_CreateValue("user", "multiplayerjoining.port", port); - Engine.ConfigDB_WriteValueToFile("user", "multiplayerjoining.port", port, "config/user.cfg"); + saveSettingAndWriteToUserConfig("playername.multiplayer", playername); + saveSettingAndWriteToUserConfig("multiplayerserver", ip); + saveSettingAndWriteToUserConfig("multiplayerjoining.port", port); } return true; } diff --git a/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.xml b/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.xml index 243a79c58f..d956451647 100644 --- a/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.xml +++ b/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.xml @@ -108,7 +108,7 @@ - saveSTUNSetting(String(this.checked)); + saveSettingAndWriteToUserConfig("lobby.stun.enabled", String(this.checked)); Use STUN to work around firewalls diff --git a/binaries/data/mods/public/gui/lobby/lobby.js b/binaries/data/mods/public/gui/lobby/lobby.js index b7f2e12992..03cc77c3d8 100644 --- a/binaries/data/mods/public/gui/lobby/lobby.js +++ b/binaries/data/mods/public/gui/lobby/lobby.js @@ -783,10 +783,7 @@ function toggleBuddy() updateToggleBuddy(); - // Don't save empty strings to the config file - let buddies = g_Buddies.filter(nick => nick).join(g_BuddyListDelimiter) || g_BuddyListDelimiter; - Engine.ConfigDB_CreateValue("user", "lobby.buddies", buddies); - Engine.ConfigDB_WriteValueToFile("user", "lobby.buddies", buddies, "config/user.cfg"); + saveSettingAndWriteToUserConfig("lobby.buddies", g_Buddies.filter(nick => nick).join(g_BuddyListDelimiter) || g_BuddyListDelimiter); updatePlayerList(); updateGameList(); diff --git a/binaries/data/mods/public/gui/prelobby/prelobby.js b/binaries/data/mods/public/gui/prelobby/prelobby.js index 42610d0803..2c87e4e848 100644 --- a/binaries/data/mods/public/gui/prelobby/prelobby.js +++ b/binaries/data/mods/public/gui/prelobby/prelobby.js @@ -191,15 +191,12 @@ function onTick() { Engine.PopGuiPage(); Engine.SwitchGuiPage("page_lobby.xml", { "dialog": false }); - Engine.ConfigDB_CreateValue("user", "playername.multiplayer", username); - Engine.ConfigDB_WriteValueToFile("user", "playername.multiplayer", username, "config/user.cfg"); - Engine.ConfigDB_CreateValue("user", "lobby.login", username); - Engine.ConfigDB_WriteValueToFile("user", "lobby.login", username, "config/user.cfg"); + saveSettingAndWriteToUserConfig("playername.multiplayer", username); + saveSettingAndWriteToUserConfig("lobby.login", username); // We only store the encrypted password, so make sure to re-encrypt it if changed before saving. if (password != g_EncryptedPassword.substring(0, 10)) g_EncryptedPassword = Engine.EncryptPassword(password, username); - Engine.ConfigDB_CreateValue("user", "lobby.password", g_EncryptedPassword); - Engine.ConfigDB_WriteValueToFile("user", "lobby.password", g_EncryptedPassword, "config/user.cfg"); + saveSettingAndWriteToUserConfig("lobby.password", g_EncryptedPassword); break; } } diff --git a/binaries/data/mods/public/gui/session/menu.js b/binaries/data/mods/public/gui/session/menu.js index 48f58bb987..7332a74a39 100644 --- a/binaries/data/mods/public/gui/session/menu.js +++ b/binaries/data/mods/public/gui/session/menu.js @@ -350,10 +350,7 @@ function updateChatHistory() function onToggleChatWindowExtended() { - // Save user preference - let extended = Engine.GetGUIObjectByName("extendedChat").checked.toString(); - Engine.ConfigDB_CreateValue("user", "chat.session.extended", extended); - Engine.ConfigDB_WriteValueToFile("user", "chat.session.extended", extended, "config/user.cfg"); + saveSettingAndWriteToUserConfig("chat.session.extended", String(Engine.GetGUIObjectByName("extendedChat").checked)); resizeChatWindow(); diff --git a/binaries/data/mods/public/gui/session/session.js b/binaries/data/mods/public/gui/session/session.js index cffba3e80e..947eb92c18 100644 --- a/binaries/data/mods/public/gui/session/session.js +++ b/binaries/data/mods/public/gui/session/session.js @@ -1280,8 +1280,7 @@ function recalculateStatusBarDisplay(remove = false) function toggleConfigBool(configName) { let enabled = Engine.ConfigDB_GetValue("user", configName) != "true"; - Engine.ConfigDB_CreateValue("user", configName, String(enabled)); - Engine.ConfigDB_WriteValueToFile("user", configName, String(enabled), "config/user.cfg"); + saveSettingAndWriteToUserConfig(configName, String(enabled)); return enabled; } diff --git a/binaries/data/mods/public/gui/splashscreen/splashscreen.xml b/binaries/data/mods/public/gui/splashscreen/splashscreen.xml index c5d3cfe138..0628d90e92 100644 --- a/binaries/data/mods/public/gui/splashscreen/splashscreen.xml +++ b/binaries/data/mods/public/gui/splashscreen/splashscreen.xml @@ -28,12 +28,8 @@ OK