From 9eccf5cd0793d7f26d996a6ef83850367fd10603 Mon Sep 17 00:00:00 2001 From: elexis Date: Sun, 15 May 2016 17:13:35 +0000 Subject: [PATCH] Use an actual playername instead of "You" in singleplayer, fixes #3979. Differentiate between SP and MP name and allow editing it in the settings. Defaults to the OS username. Makes sharing singleplayer replays more effective. Also fixes a troublesome colorization of "You" in a translated sentence, refs #3501. This was SVN commit r18180. --- .../public/gui/common/functions_utility.js | 10 ++++++ .../mods/public/gui/gamesetup/gamesetup.js | 10 +++++- .../mods/public/gui/gamesetup/gamesetup_mp.js | 10 +++--- .../public/gui/gamesetup/gamesetup_mp.xml | 7 ++-- .../data/mods/public/gui/lobby/prelobby.js | 4 +-- .../data/mods/public/gui/options/options.json | 12 +++++++ .../public/gui/replaymenu/replay_actions.js | 2 +- .../data/mods/public/gui/session/messages.js | 32 ++++--------------- .../data/mods/public/gui/session/session.js | 7 +++- .../public/gui/session/utility_functions.js | 12 +++---- .../data/mods/public/gui/summary/summary.js | 2 +- source/gui/scripting/ScriptFunctions.cpp | 7 ++++ 12 files changed, 69 insertions(+), 46 deletions(-) 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 @@