Index: ps/trunk/binaries/data/mods/mod/gui/common/terms.js
===================================================================
--- ps/trunk/binaries/data/mods/mod/gui/common/terms.js
+++ ps/trunk/binaries/data/mods/mod/gui/common/terms.js
@@ -21,10 +21,7 @@
function acceptTerms(data)
{
g_Terms[data.page].accepted = data.accepted;
-
- let value = data.accepted ? getTermsHash(data.page) : "0";
- Engine.ConfigDB_CreateValue("user", g_Terms[data.page].config, value);
- Engine.ConfigDB_WriteValueToFile("user", g_Terms[data.page].config, value, "config/user.cfg");
+ Engine.ConfigDB_CreateAndWriteValueToFile("user", g_Terms[data.page].config, data.accepted ? getTermsHash(data.page) : "0", "config/user.cfg");
if (g_Terms[data.page].callback)
g_Terms[data.page].callback(data);
Index: ps/trunk/binaries/data/mods/public/gui/common/functions_utility.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/common/functions_utility.js
+++ ps/trunk/binaries/data/mods/public/gui/common/functions_utility.js
@@ -9,15 +9,6 @@
};
/**
- * 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.
*/
function loadCivData(selectableOnly, gaia)
Index: ps/trunk/binaries/data/mods/public/gui/gamesetup/gamesetup.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/gamesetup/gamesetup.js
+++ ps/trunk/binaries/data/mods/public/gui/gamesetup/gamesetup.js
@@ -1141,7 +1141,7 @@
// Replace empty playername when entering a singleplayermatch for the first time
if (!g_IsNetworked)
- saveSettingAndWriteToUserConfig("playername.singleplayer", singleplayerName());
+ Engine.ConfigDB_CreateAndWriteValueToFile("user", "playername.singleplayer", singleplayerName(), "config/user.cfg");
initDefaults();
supplementDefaults();
Index: ps/trunk/binaries/data/mods/public/gui/gamesetup/gamesetup.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/gamesetup/gamesetup.xml
+++ ps/trunk/binaries/data/mods/public/gui/gamesetup/gamesetup.xml
@@ -125,7 +125,7 @@
Show this message in the future.
Index: ps/trunk/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js
+++ ps/trunk/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js
@@ -284,9 +284,9 @@
{
startConnectionStatus("server");
- saveSettingAndWriteToUserConfig("playername.multiplayer", playername);
+ Engine.ConfigDB_CreateAndWriteValueToFile("user", "playername.multiplayer", playername, "config/user.cfg");
- saveSettingAndWriteToUserConfig("multiplayerhosting.port", port);
+ Engine.ConfigDB_CreateAndWriteValueToFile("user", "multiplayerhosting.port", port, "config/user.cfg");
let hostFeedback = Engine.GetGUIObjectByName("hostFeedback");
@@ -361,9 +361,9 @@
else
{
// Only save the player name and host address if they're valid and we're not in the lobby
- saveSettingAndWriteToUserConfig("playername.multiplayer", playername);
- saveSettingAndWriteToUserConfig("multiplayerserver", ip);
- saveSettingAndWriteToUserConfig("multiplayerjoining.port", port);
+ Engine.ConfigDB_CreateAndWriteValueToFile("user", "playername.multiplayer", playername, "config/user.cfg");
+ Engine.ConfigDB_CreateAndWriteValueToFile("user", "multiplayerserver", ip, "config/user.cfg");
+ Engine.ConfigDB_CreateAndWriteValueToFile("user", "multiplayerjoining.port", port, "config/user.cfg");
}
return true;
}
Index: ps/trunk/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.xml
+++ ps/trunk/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.xml
@@ -108,7 +108,7 @@
Index: ps/trunk/binaries/data/mods/public/gui/splashscreen/splashscreen.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/splashscreen/splashscreen.xml
+++ ps/trunk/binaries/data/mods/public/gui/splashscreen/splashscreen.xml
@@ -28,8 +28,8 @@
OK
Index: ps/trunk/source/ps/scripting/JSInterface_ConfigDB.h
===================================================================
--- ps/trunk/source/ps/scripting/JSInterface_ConfigDB.h
+++ ps/trunk/source/ps/scripting/JSInterface_ConfigDB.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 Wildfire Games.
+/* Copyright (C) 2019 Wildfire Games.
* This file is part of 0 A.D.
*
* 0 A.D. is free software: you can redistribute it and/or modify
@@ -34,6 +34,7 @@
bool RemoveValue(ScriptInterface::CxPrivate* pCxPrivate, const std::wstring& cfgNsString, const std::string& name);
bool WriteFile(ScriptInterface::CxPrivate* pCxPrivate, const std::wstring& cfgNsString, const Path& path);
bool WriteValueToFile(ScriptInterface::CxPrivate* pCxPrivate, const std::wstring& cfgNsString, const std::string& name, const std::string& value, const Path& path);
+ void CreateAndWriteValueToFile(ScriptInterface::CxPrivate* pCxPrivate, const std::wstring& cfgNsString, const std::string& name, const std::string& value, const Path& path);
bool Reload(ScriptInterface::CxPrivate* pCxPrivate, const std::wstring& cfgNsString);
bool SetFile(ScriptInterface::CxPrivate* pCxPrivate, const std::wstring& cfgNsString, const Path& path);
void RegisterScriptFunctions(const ScriptInterface& scriptInterface);
Index: ps/trunk/source/ps/scripting/JSInterface_ConfigDB.cpp
===================================================================
--- ps/trunk/source/ps/scripting/JSInterface_ConfigDB.cpp
+++ ps/trunk/source/ps/scripting/JSInterface_ConfigDB.cpp
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 Wildfire Games.
+/* Copyright (C) 2019 Wildfire Games.
* This file is part of 0 A.D.
*
* 0 A.D. is free software: you can redistribute it and/or modify
@@ -140,6 +140,12 @@
return g_ConfigDB.WriteValueToFile(cfgNs, name, value, path);
}
+void JSI_ConfigDB::CreateAndWriteValueToFile(ScriptInterface::CxPrivate* pCxPrivate, const std::wstring& cfgNsString, const std::string& name, const std::string& value, const Path& path)
+{
+ CreateValue(pCxPrivate, cfgNsString, name, value);
+ WriteValueToFile(pCxPrivate, cfgNsString, name, value, path);
+}
+
bool JSI_ConfigDB::Reload(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), const std::wstring& cfgNsString)
{
EConfigNamespace cfgNs;
@@ -168,6 +174,7 @@
scriptInterface.RegisterFunction("ConfigDB_RemoveValue");
scriptInterface.RegisterFunction("ConfigDB_WriteFile");
scriptInterface.RegisterFunction("ConfigDB_WriteValueToFile");
+ scriptInterface.RegisterFunction("ConfigDB_CreateAndWriteValueToFile");
scriptInterface.RegisterFunction("ConfigDB_SetFile");
scriptInterface.RegisterFunction("ConfigDB_Reload");
}