diff --git a/binaries/data/mods/public/gui/common/functions_utility.js b/binaries/data/mods/public/gui/common/functions_utility.js index 392848dc62..2af05fea6e 100644 --- a/binaries/data/mods/public/gui/common/functions_utility.js +++ b/binaries/data/mods/public/gui/common/functions_utility.js @@ -141,6 +141,16 @@ function sanitizePlayerName(name, stripUnicode, stripSpaces) return sanitizedName.substr(0,20); } +function singleplayerName() +{ + return Engine.ConfigDB_GetValue("user", "playername.singleplayer") || Engine.GetSystemUsername(); +} + +function multiplayerName() +{ + return Engine.ConfigDB_GetValue("user", "playername.multiplayer") || Engine.GetSystemUsername(); +} + function tryAutoComplete(text, autoCompleteList) { if (!text.length) diff --git a/binaries/data/mods/public/gui/gamesetup/gamesetup.js b/binaries/data/mods/public/gui/gamesetup/gamesetup.js index d9d4a8f861..e1b7b7cd13 100644 --- a/binaries/data/mods/public/gui/gamesetup/gamesetup.js +++ b/binaries/data/mods/public/gui/gamesetup/gamesetup.js @@ -226,6 +226,13 @@ function init(attribs) g_IsController = attribs.type != "client"; g_ServerName = attribs.serverName || undefined; + // 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"); + } + // Get default player data - remove gaia g_DefaultPlayerData = g_Settings.PlayerDefaults; g_DefaultPlayerData.shift(); @@ -1165,7 +1172,8 @@ function selectMap(name) // Reset player assignments on map change if (!g_IsNetworked) - g_PlayerAssignments = { "local": { "name": translate("You"), "player": 1, "civ": "", "team": -1, "ready": 0 } }; + g_PlayerAssignments = { "local": { "name": singleplayerName(), "player": 1, "civ": "", "team": -1, "ready": 0 } }; + else { let numPlayers = mapSettings.PlayerData ? mapSettings.PlayerData.length : g_GameAttributes.settings.PlayerData.length; diff --git a/binaries/data/mods/public/gui/gamesetup/gamesetup_mp.js b/binaries/data/mods/public/gui/gamesetup/gamesetup_mp.js index e4c7d548ad..7ebcc2acc3 100644 --- a/binaries/data/mods/public/gui/gamesetup/gamesetup_mp.js +++ b/binaries/data/mods/public/gui/gamesetup/gamesetup_mp.js @@ -194,8 +194,8 @@ function switchSetupPage(oldpage, newpage) function startHost(playername, servername) { // Save player name - Engine.ConfigDB_CreateValue("user", "playername", playername); - Engine.ConfigDB_WriteValueToFile("user", "playername", playername, "config/user.cfg"); + Engine.ConfigDB_CreateValue("user", "playername.multiplayer", playername); + Engine.ConfigDB_WriteValueToFile("user", "playername.multiplayer", playername, "config/user.cfg"); // Disallow identically named games in the multiplayer lobby if (Engine.HasXmppClient()) @@ -263,8 +263,8 @@ function startJoin(playername, ip) 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", playername); - Engine.ConfigDB_WriteValueToFile("user", "playername", playername, "config/user.cfg"); + 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"); } @@ -274,6 +274,6 @@ function startJoin(playername, ip) function getDefaultGameName() { return sprintf(translate("%(playername)s's game"), { - "playername": Engine.ConfigDB_GetValue("user", "playername") + "playername": multiplayerName() }); } diff --git a/binaries/data/mods/public/gui/gamesetup/gamesetup_mp.xml b/binaries/data/mods/public/gui/gamesetup/gamesetup_mp.xml index 08fbc9040d..12fbd7fd63 100644 --- a/binaries/data/mods/public/gui/gamesetup/gamesetup_mp.xml +++ b/binaries/data/mods/public/gui/gamesetup/gamesetup_mp.xml @@ -4,6 +4,7 @@