Ticket #1580: 1580.8.diff
File 1580.8.diff, 6.1 KB (added by , 9 years ago) |
---|
-
binaries/data/mods/public/gui/common/functions_utility.js
148 148 149 149 // ==================================================================== 150 150 151 function sameColor(color1, color2) 152 { 153 return color1.r === color2.r && color1.g === color2.g && color1.b === color2.b; 154 } 155 156 // ==================================================================== 157 151 158 /** 152 159 * Convert time in milliseconds to [hh:]mm:ss string representation. 153 160 * @param time Time period in milliseconds (integer) -
binaries/data/mods/public/gui/gamesetup/gamesetup.js
10 10 const g_PopulationCapacities = prepareForDropdown(g_Settings ? g_Settings.PopulationCapacities : undefined); 11 11 const g_StartingResources = prepareForDropdown(g_Settings ? g_Settings.StartingResources : undefined); 12 12 13 const g_PlayerColors = initPlayerDefaults().slice(1).map(playerData => playerData.Color); 14 13 15 //////////////////////////////////////////////////////////////////////////////////////////////// 14 16 15 17 // Is this is a networked game, or offline … … 380 382 updateGameAttributes(); 381 383 }; 382 384 385 // Populate color drop-down lists. 386 var colorPicker = Engine.GetGUIObjectByName("playerColorPicker["+i+"]"); 387 colorPicker.list = g_PlayerColors.map(color => '[color="' + color.r + ' ' + color.g + ' ' + color.b + '"]■[/color]' ); 388 colorPicker.list_data = g_PlayerColors.map((color, index) => index); 389 colorPicker.selected = -1; 390 391 // Update color 392 colorPicker.onSelectionChange = function() 393 { 394 if (this.selected == -1) 395 return; 396 397 // Add missing properties 398 g_GameAttributes.settings.PlayerData.forEach((pData, index) => { 399 if (!pData.Color) 400 pData.Color = g_PlayerColors[index]; 401 }); 402 403 // If someone else has that color, give him/her the old one 404 let playerID = g_GameAttributes.settings.PlayerData.findIndex(pData => sameColor(g_PlayerColors[this.selected], pData.Color)); 405 if (playerID != -1) 406 g_GameAttributes.settings.PlayerData[playerID].Color = g_GameAttributes.settings.PlayerData[playerSlot].Color; 407 408 g_GameAttributes.settings.PlayerData[playerSlot].Color = g_PlayerColors[this.selected]; 409 410 if (!g_IsInGuiUpdate) 411 updateGameAttributes(); 412 } 413 383 414 // Set events 384 415 var civ = Engine.GetGUIObjectByName("playerCiv["+i+"]"); 385 416 civ.onSelectionChange = function() { … … 1422 1453 var pTeam = Engine.GetGUIObjectByName("playerTeam["+i+"]"); 1423 1454 var pTeamText = Engine.GetGUIObjectByName("playerTeamText["+i+"]"); 1424 1455 var pColor = Engine.GetGUIObjectByName("playerColor["+i+"]"); 1456 var pColorPicker = Engine.GetGUIObjectByName("playerColorPicker["+i+"]") 1425 1457 1426 1458 // Player data / defaults 1427 1459 var pData = mapSettings.PlayerData ? mapSettings.PlayerData[i] : {}; … … 1428 1460 var pDefs = g_DefaultPlayerData ? g_DefaultPlayerData[i] : {}; 1429 1461 1430 1462 // Common to all game types 1431 var color = rgbToGuiColor(getSetting(pData, pDefs, "Color"));1432 pColor.sprite = "color:" + color+ " 100";1463 var color = getSetting(pData, pDefs, "Color"); 1464 pColor.sprite = "color:" + rgbToGuiColor(color) + " 100"; 1433 1465 pName.caption = translate(getSetting(pData, pDefs, "Name")); 1434 1466 1435 1467 var team = getSetting(pData, pDefs, "Team"); … … 1449 1481 { 1450 1482 pCivText.hidden = false; 1451 1483 pCiv.hidden = true; 1484 pColorPicker.hidden = true; 1452 1485 pTeamText.hidden = false; 1453 1486 pTeam.hidden = true; 1454 1487 // Set text values … … 1464 1497 pCiv.hidden = false; 1465 1498 pTeamText.hidden = true; 1466 1499 pTeam.hidden = false; 1500 pColorPicker.hidden = false; 1467 1501 // Set dropdown values 1468 1502 pCiv.selected = (civ ? pCiv.list_data.indexOf(civ) : 0); 1469 1503 pTeam.selected = (team !== undefined && team >= 0) ? team+1 : 0; 1504 pColorPicker.selected = g_PlayerColors.findIndex(col => sameColor(col, color)); 1470 1505 } 1471 1506 } 1472 1507 -
binaries/data/mods/public/gui/gamesetup/gamesetup.xml
42 42 <!-- Player assignments --> 43 43 <object size="24 49 100%-440 345" type="image" sprite="ModernDarkBoxGold" name="playerAssignmentsPanel"> 44 44 <object size="0 6 100% 30"> 45 <object name="playerNameHeading" type="text" style="ModernLabelText" size="0 0 22% 100%">45 <object name="playerNameHeading" type="text" style="ModernLabelText" size="0 0 16% 100%"> 46 46 <translatableAttribute id="caption">Player Name</translatableAttribute> 47 47 </object> 48 <object name="playerColorHeading" type="text" style="ModernLabelText" size="-3% 0 40% 100%"> 49 <translatableAttribute id="caption">Color</translatableAttribute> 50 </object> 48 51 <object name="playerPlacementHeading" type="text" style="ModernLabelText" size="22%+5 0 50%+35 100%"> 49 52 <translatableAttribute id="caption">Player Placement</translatableAttribute> 50 53 </object> … … 71 74 <repeat count="8"> 72 75 <object name="playerBox[n]" size="0 0 100% 32" hidden="true"> 73 76 <object name="playerColor[n]" type="image" size="0 0 100% 100%"/> 74 <object name="playerName[n]" type="text" style="ModernLabelText" size="0 2 22% 30"/> 77 <object name="playerName[n]" type="text" style="ModernLabelText" size="0 0 16% 100%"/> 78 <object name="playerColorPicker[n]" type="dropdown" style="ModernDropDown" size="15%+5 2 20%+5 30" tooltip_style="onscreenToolTip"> 79 <translatableAttribute id="tooltip">Pick a color.</translatableAttribute> 80 </object> 75 81 <object name="playerAssignment[n]" type="dropdown" style="ModernDropDown" size="22%+5 2 50%+35 30" tooltip_style="onscreenToolTip"> 76 82 <translatableAttribute id="tooltip">Select player.</translatableAttribute> 77 83 </object>