Ticket #3979: t3979_no_you_dont_v1.patch
File t3979_no_you_dont_v1.patch, 14.7 KB (added by , 8 years ago) |
---|
-
binaries/data/mods/public/gui/common/functions_utility.js
function sanitizePlayerName(name, stripU 139 139 sanitizedName = sanitizedName.replace(/\s/g, ""); 140 140 // Limit the length to 20 characters 141 141 return sanitizedName.substr(0,20); 142 142 } 143 143 144 function singleplayerName() 145 { 146 return Engine.ConfigDB_GetValue("user", "playername.singleplayer") || Engine.GetSystemUsername(); 147 } 148 149 function multiplayerName() 150 { 151 return Engine.ConfigDB_GetValue("user", "playername.multiplayer") || Engine.GetSystemUsername(); 152 } 153 144 154 function tryAutoComplete(text, autoCompleteList) 145 155 { 146 156 if (!text.length) 147 157 return text; 148 158 -
binaries/data/mods/public/gui/gamesetup/gamesetup.js
function init(attribs) 219 219 220 220 g_IsNetworked = attribs.type != "offline"; 221 221 g_IsController = attribs.type != "client"; 222 222 g_ServerName = attribs.serverName || undefined; 223 223 224 // Replace empty playername when entering a singleplayermatch for the first time 225 if (!g_IsNetworked) 226 { 227 Engine.ConfigDB_CreateValue("user", "playername.singleplayer", singleplayerName()); 228 Engine.ConfigDB_WriteValueToFile("user", "playername.singleplayer", singleplayerName(), "config/user.cfg"); 229 } 230 224 231 // Get default player data - remove gaia 225 232 g_DefaultPlayerData = g_Settings.PlayerDefaults; 226 233 g_DefaultPlayerData.shift(); 227 234 for (let i in g_DefaultPlayerData) 228 235 g_DefaultPlayerData[i].Civ = "random"; … … function selectMap(name) 1162 1169 g_GameAttributes.settings.PlayerData[i].AIDiff = g_DefaultPlayerData[i].AIDiff; 1163 1170 } 1164 1171 1165 1172 // Reset player assignments on map change 1166 1173 if (!g_IsNetworked) 1167 g_PlayerAssignments = { "local": { "name": translate("You"), "player": 1, "civ": "", "team": -1, "ready": 0 } }; 1174 g_PlayerAssignments = { "local": { "name": singleplayerName(), "player": 1, "civ": "", "team": -1, "ready": 0 } }; 1175 1168 1176 else 1169 1177 { 1170 1178 let numPlayers = mapSettings.PlayerData ? mapSettings.PlayerData.length : g_GameAttributes.settings.PlayerData.length; 1171 1179 1172 1180 for (let guid in g_PlayerAssignments) -
binaries/data/mods/public/gui/gamesetup/gamesetup_mp.js
function switchSetupPage(oldpage, newpag 192 192 } 193 193 194 194 function startHost(playername, servername) 195 195 { 196 196 // Save player name 197 Engine.ConfigDB_CreateValue("user", "playername ", playername);198 Engine.ConfigDB_WriteValueToFile("user", "playername ", playername, "config/user.cfg");197 Engine.ConfigDB_CreateValue("user", "playername.multiplayer", playername); 198 Engine.ConfigDB_WriteValueToFile("user", "playername.multiplayer", playername, "config/user.cfg"); 199 199 200 200 // Disallow identically named games in the multiplayer lobby 201 201 if (Engine.HasXmppClient()) 202 202 { 203 203 for (let g of Engine.GetGameList()) … … function startJoin(playername, ip) 257 257 if (Engine.HasXmppClient()) 258 258 Engine.LobbySetPlayerPresence("playing"); 259 259 else 260 260 { 261 261 // Only save the player name and host address if they're valid and we're not in the lobby 262 Engine.ConfigDB_CreateValue("user", "playername ", playername);263 Engine.ConfigDB_WriteValueToFile("user", "playername ", playername, "config/user.cfg");262 Engine.ConfigDB_CreateValue("user", "playername.multiplayer", playername); 263 Engine.ConfigDB_WriteValueToFile("user", "playername.multiplayer", playername, "config/user.cfg"); 264 264 Engine.ConfigDB_CreateValue("user", "multiplayerserver", ip); 265 265 Engine.ConfigDB_WriteValueToFile("user", "multiplayerserver", ip, "config/user.cfg"); 266 266 } 267 267 return true; 268 268 } 269 269 270 270 function getDefaultGameName() 271 271 { 272 272 return sprintf(translate("%(playername)s's game"), { 273 "playername": Engine.ConfigDB_GetValue("user", "playername")273 "playername": multiplayerName() 274 274 }); 275 275 } -
binaries/data/mods/public/gui/gamesetup/gamesetup_mp.xml
2 2 3 3 <objects> 4 4 5 5 <script file="gui/common/network.js"/> 6 6 <script file="gui/common/functions_global_object.js"/> 7 <script file="gui/common/functions_utility.js"/> 7 8 <script file="gui/gamesetup/gamesetup_mp.js"/> 8 9 9 10 <!-- Add a translucent black background to fade out the menu page --> 10 11 <object type="image" sprite="ModernFade"/> 11 12 … … 29 30 <translatableAttribute id="caption">Player name:</translatableAttribute> 30 31 </object> 31 32 32 33 <object name="joinPlayerName" type="input" size="50%+10 40 100%-20 64" style="ModernInput"> 33 34 <action on="Load"> 34 this.caption = Engine.ConfigDB_GetValue("user", "playername");35 Engine.GetGUIObjectByName("joinPlayerName").caption = multiplayerName(); 35 36 </action> 36 37 </object> 37 38 38 39 <object type="text" size="20 80 50% 110" style="ModernLabelText" text_align="right"> 39 40 <translatableAttribute id="caption">Server Hostname or IP:</translatableAttribute> 40 41 </object> 41 42 42 43 <object name="joinServer" type="input" size="50%+10 80 100%-20 104" style="ModernInput"> 43 44 <action on="Load"> 44 this.caption = Engine.ConfigDB_GetValue("user", "multiplayerserver") 45 this.caption = Engine.ConfigDB_GetValue("user", "multiplayerserver"); 45 46 </action> 46 47 </object> 47 48 48 49 <object hotkey="confirm" type="button" size="50%+5 100%-45 100%-18 100%-17" style="ModernButtonRed"> 49 50 <translatableAttribute id="caption">Continue</translatableAttribute> … … 67 68 <translatableAttribute id="caption">Player name:</translatableAttribute> 68 69 </object> 69 70 70 71 <object name="hostPlayerName" type="input" size="50%+10 40 100%-20 64" style="ModernInput"> 71 72 <action on="Load"> 72 this.caption = Engine.ConfigDB_GetValue("user", "playername");73 this.caption = multiplayerName(); 73 74 </action> 74 75 </object> 75 76 </object> 76 77 77 78 <!-- Host server name is only used on games started through the lobby. --> -
binaries/data/mods/public/gui/lobby/prelobby.js
function onTick() 177 177 break; 178 178 case "connected": 179 179 { 180 180 Engine.PopGuiPage(); 181 181 Engine.SwitchGuiPage("page_lobby.xml"); 182 Engine.ConfigDB_CreateValue("user", "playername ", sanitizePlayerName(username, true, true));183 Engine.ConfigDB_WriteValueToFile("user", "playername ", sanitizePlayerName(username, true, true), "config/user.cfg");182 Engine.ConfigDB_CreateValue("user", "playername.multiplayer", sanitizePlayerName(username, true, true)); 183 Engine.ConfigDB_WriteValueToFile("user", "playername.multiplayer", sanitizePlayerName(username, true, true), "config/user.cfg"); 184 184 Engine.ConfigDB_CreateValue("user", "lobby.login", username); 185 185 Engine.ConfigDB_WriteValueToFile("user", "lobby.login", username, "config/user.cfg"); 186 186 // We only store the encrypted password, so make sure to re-encrypt it if changed before saving. 187 187 if (password != g_EncrytedPassword.substring(0, 10)) 188 188 g_EncrytedPassword = Engine.EncryptPassword(password, username); -
binaries/data/mods/public/gui/options/options.json
1 1 { 2 2 "generalSetting": 3 3 [ 4 4 { 5 "type": "string", 6 "label": "Playername (Single Player)", 7 "tooltip": "How you want to be addressed in Single Player matches).", 8 "parameters": { "config": "playername.singleplayer" } 9 }, 10 { 11 "type": "string", 12 "label": "Playername (Multiplayer)", 13 "tooltip": "How you want to be addressed in Multiplayer matches (except lobby).", 14 "parameters": { "config": "playername.multiplayer" } 15 }, 16 { 5 17 "type": "boolean", 6 18 "label": "Windowed Mode", 7 19 "tooltip": "Start 0 A.D. in a window", 8 20 "parameters": { "config": "windowed" } 9 21 }, -
binaries/data/mods/public/gui/replaymenu/replay_actions.js
function reallyStartVisualReplay(replayD 62 62 Engine.SwitchGuiPage("page_loading.xml", { 63 63 "attribs": Engine.GetReplayAttributes(replayDirectory), 64 64 "isNetworked": false, 65 65 "playerAssignments": { 66 66 "local":{ 67 "name": translate("You"),67 "name": singleplayerName(), 68 68 "player": -1 69 69 } 70 70 }, 71 71 "savedGUIData": "", 72 72 "isReplay": true, -
binaries/data/mods/public/gui/session/messages.js
function colorizePlayernameHelper(userna 650 650 return '[color="' + playerColor + '"]' + (username || translate("Unknown Player")) + "[/color]"; 651 651 } 652 652 653 653 function formatDefeatMessage(msg) 654 654 { 655 let defeatMsg; 656 let playername; 657 658 // In singleplayer, the local player is "You". "You has" is incorrect. 659 if (!g_IsNetworked && msg.player == Engine.GetPlayerID()) 660 { 661 // Translation: String used to colorize the word "You" of that sentence 662 playername = colorizePlayernameHelper(translateWithContext("You have been defeated", "You"), msg.player); 663 if (msg.resign) 664 defeatMsg = translate("%(You)s have resigned."); 665 else 666 defeatMsg = translate("%(You)s have been defeated."); 667 } 668 else 669 { 670 playername = colorizePlayernameByID(msg.player); 671 if (msg.resign) 672 defeatMsg = translate("%(player)s has resigned."); 673 else 674 defeatMsg = translate("%(player)s has been defeated."); 675 } 676 677 return sprintf(defeatMsg, { 678 "player": playername, 679 "You": playername 680 }); 655 return sprintf( 656 msg.resign ? 657 translate("%(player)s has resigned.") : 658 translate("%(player)s has been defeated."), 659 { "player": colorizePlayernameByID(msg.player) } 660 ); 681 661 } 682 662 683 663 function formatDiplomacyMessage(msg) 684 664 { 685 665 let messageType; -
binaries/data/mods/public/gui/session/session.js
var g_CivData = {}; 72 72 /** 73 73 * For restoring selection, order and filters when returning to the replay menu 74 74 */ 75 75 var g_ReplaySelectionData; 76 76 77 var g_PlayerAssignments = { "local": { "name": translate("You"), "player": 1 } }; 77 var g_PlayerAssignments = { 78 "local": { 79 "name": singleplayerName(), 80 "player": 1 81 } 82 }; 78 83 79 84 /** 80 85 * Cache dev-mode settings that are frequently or widely used. 81 86 */ 82 87 var g_DevSettings = { -
binaries/data/mods/public/gui/session/utility_functions.js
function getTradingTooltip(gain) 85 85 gainString += translate("+") + gain.market1Gain; 86 86 if (gain.market2Gain && gain.market2Owner == gain.traderOwner) 87 87 gainString += translate("+") + gain.market2Gain; 88 88 89 89 var tooltip = sprintf(translate("%(gain)s (%(player)s)"), { 90 gain: gainString,91 player: (!g_IsNetworked && gain.traderOwner == playerID) ? translate("You"): simState.players[gain.traderOwner].name90 "gain": gainString, 91 "player": simState.players[gain.traderOwner].name 92 92 }); 93 93 94 94 if (gain.market1Gain && gain.market1Owner != gain.traderOwner) 95 95 tooltip += translateWithContext("Separation mark in an enumeration", ", ") + sprintf(translate("%(gain)s (%(player)s)"), { 96 gain: gain.market1Gain,97 player: (!g_IsNetworked && gain.market1Owner == playerID) ? translate("You"): simState.players[gain.market1Owner].name96 "gain": gain.market1Gain, 97 "player": simState.players[gain.market1Owner].name 98 98 }); 99 99 if (gain.market2Gain && gain.market2Owner != gain.traderOwner) 100 100 tooltip += translateWithContext("Separation mark in an enumeration", ", ") + sprintf(translate("%(gain)s (%(player)s)"), { 101 gain: gain.market2Gain,102 player: (!g_IsNetworked && gain.market2Owner == playerID) ? translate("You"): simState.players[gain.market2Owner].name101 "gain": gain.market2Gain, 102 "player": simState.players[gain.market2Owner].name 103 103 }); 104 104 105 105 return tooltip; 106 106 } 107 107 -
binaries/data/mods/public/gui/summary/summary.js
function startReplay() 138 138 Engine.SwitchGuiPage("page_loading.xml", { 139 139 "attribs": Engine.GetReplayAttributes(g_GameData.replayDirectory), 140 140 "isNetworked": false, 141 141 "playerAssignments": { 142 142 "local": { 143 "name": translate("You"),143 "name": singleplayerName(), 144 144 "player": -1 145 145 } 146 146 }, 147 147 "savedGUIData": "", 148 148 "isReplay": true, -
source/gui/scripting/ScriptFunctions.cpp
void SetBoundingBoxDebugOverlay(ScriptIn 746 746 void Script_EndGame(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) 747 747 { 748 748 EndGame(); 749 749 } 750 750 751 CStrW GetSystemUsername(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) 752 { 753 return sys_get_user_name(); 754 } 755 756 751 757 // Cause the game to exit gracefully. 752 758 // params: 753 759 // returns: 754 760 // notes: 755 761 // - Exit happens after the current main loop iteration ends … … void GuiScriptingInit(ScriptInterface& s 1115 1121 scriptInterface.RegisterFunction<void, &DumpSimState>("DumpSimState"); 1116 1122 scriptInterface.RegisterFunction<void, &DumpTerrainMipmap>("DumpTerrainMipmap"); 1117 1123 scriptInterface.RegisterFunction<void, unsigned int, &EnableTimeWarpRecording>("EnableTimeWarpRecording"); 1118 1124 scriptInterface.RegisterFunction<void, &RewindTimeWarp>("RewindTimeWarp"); 1119 1125 scriptInterface.RegisterFunction<void, bool, &SetBoundingBoxDebugOverlay>("SetBoundingBoxDebugOverlay"); 1126 scriptInterface.RegisterFunction<CStrW, &GetSystemUsername>("GetSystemUsername"); 1120 1127 }