Ticket #1580: 1580.patch
File 1580.patch, 6.2 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
8 8 const g_VictoryConditions = prepareForDropdown(g_Settings ? g_Settings.VictoryConditions : undefined); 9 9 const g_PopulationCapacities = prepareForDropdown(g_Settings ? g_Settings.PopulationCapacities : undefined); 10 10 const g_StartingResources = prepareForDropdown(g_Settings ? g_Settings.StartingResources : undefined); 11 // Gaia color should not be selectable. 12 const g_PlayerColors = initPlayerDefaults().slice(1).map(playerData => playerData.Color); 11 13 12 14 //////////////////////////////////////////////////////////////////////////////////////////////// 13 15 … … 375 377 updateGameAttributes(); 376 378 }; 377 379 380 // Populate color drop-down lists. 381 var colorPicker = Engine.GetGUIObjectByName("playerColorPicker["+i+"]"); 382 colorPicker.list = g_PlayerColors.map(color => '[font="sans-stroke-14"][color="' + color.r + ' ' + color.g + ' ' + color.b + '"] ■[/color][/font]'); 383 colorPicker.list_data = g_PlayerColors.map((color, index) => index); 384 colorPicker.selected = -1; 385 386 // Update color 387 colorPicker.onSelectionChange = function() 388 { 389 if (this.selected == -1) 390 return; 391 392 // Add missing properties 393 g_GameAttributes.settings.PlayerData.forEach((pData, index) => { 394 if (!pData.Color) 395 pData.Color = g_PlayerColors[index]; 396 }); 397 398 // If someone else has that color, give him/her the old one 399 let playerID = g_GameAttributes.settings.PlayerData.findIndex(pData => sameColor(g_PlayerColors[this.selected], pData.Color)); 400 if (playerID != -1) 401 g_GameAttributes.settings.PlayerData[playerID].Color = g_GameAttributes.settings.PlayerData[playerSlot].Color; 402 403 g_GameAttributes.settings.PlayerData[playerSlot].Color = g_PlayerColors[this.selected]; 404 405 if (!g_IsInGuiUpdate) 406 updateGameAttributes(); 407 } 408 378 409 // Set events 379 410 var civ = Engine.GetGUIObjectByName("playerCiv["+i+"]"); 380 411 civ.onSelectionChange = function() { … … 1424 1455 var pTeam = Engine.GetGUIObjectByName("playerTeam["+i+"]"); 1425 1456 var pTeamText = Engine.GetGUIObjectByName("playerTeamText["+i+"]"); 1426 1457 var pColor = Engine.GetGUIObjectByName("playerColor["+i+"]"); 1458 var pColorPicker = Engine.GetGUIObjectByName("playerColorPicker["+i+"]") 1427 1459 1428 1460 // Player data / defaults 1429 1461 var pData = mapSettings.PlayerData ? mapSettings.PlayerData[i] : {}; … … 1430 1462 var pDefs = g_DefaultPlayerData ? g_DefaultPlayerData[i] : {}; 1431 1463 1432 1464 // Common to all game types 1433 var color = rgbToGuiColor(getSetting(pData, pDefs, "Color"));1434 pColor.sprite = "color:" + color+ " 100";1465 var color = getSetting(pData, pDefs, "Color"); 1466 pColor.sprite = "color:" + rgbToGuiColor(color) + " 100"; 1435 1467 pName.caption = translate(getSetting(pData, pDefs, "Name")); 1436 1468 1437 1469 var team = getSetting(pData, pDefs, "Team"); … … 1451 1483 { 1452 1484 pCivText.hidden = false; 1453 1485 pCiv.hidden = true; 1486 pColorPicker.hidden = true; 1454 1487 pTeamText.hidden = false; 1455 1488 pTeam.hidden = true; 1456 1489 // Set text values … … 1466 1499 pCiv.hidden = false; 1467 1500 pTeamText.hidden = true; 1468 1501 pTeam.hidden = false; 1502 pColorPicker.hidden = false; 1469 1503 // Set dropdown values 1470 1504 pCiv.selected = (civ ? pCiv.list_data.indexOf(civ) : 0); 1471 1505 pTeam.selected = (team !== undefined && team >= 0) ? team+1 : 0; 1506 pColorPicker.selected = g_PlayerColors.findIndex(col => sameColor(col, color)); 1472 1507 } 1473 1508 } 1474 1509 -
binaries/data/mods/public/gui/gamesetup/gamesetup.xml
39 39 <!-- Player assignments --> 40 40 <object size="24 49 100%-440 345" type="image" sprite="ModernDarkBoxGold" name="playerAssignmentsPanel"> 41 41 <object size="0 6 100% 30"> 42 <object name="playerNameHeading" type="text" style="ModernLabelText" size="0 0 22% 100%">42 <object name="playerNameHeading" type="text" style="ModernLabelText" size="0 0 16% 100%"> 43 43 <translatableAttribute id="caption">Player Name</translatableAttribute> 44 44 </object> 45 <object name="playerColorHeading" type="text" style="ModernLabelText" size="-3% 0 40% 100%"> 46 <translatableAttribute id="caption">Color</translatableAttribute> 47 </object> 45 48 <object name="playerPlacementHeading" type="text" style="ModernLabelText" size="22%+5 0 50%+35 100%"> 46 49 <translatableAttribute id="caption">Player Placement</translatableAttribute> 47 50 </object> … … 68 71 <repeat count="8"> 69 72 <object name="playerBox[n]" size="0 0 100% 32" hidden="true"> 70 73 <object name="playerColor[n]" type="image" size="0 0 100% 100%"/> 71 <object name="playerName[n]" type="text" style="ModernLabelText" size="0 2 22% 30"/> 74 <object name="playerName[n]" type="text" style="ModernLabelText" size="0 0 16% 100%"/> 75 <object name="playerColorPicker[n]" type="dropdown" style="ModernDropDown" size="15%+5 2 20%+5 30" tooltip_style="onscreenToolTip"> 76 <translatableAttribute id="tooltip">Pick a color.</translatableAttribute> 77 </object> 72 78 <object name="playerAssignment[n]" type="dropdown" style="ModernDropDown" size="22%+5 2 50%+35 30" tooltip_style="onscreenToolTip"> 73 79 <translatableAttribute id="tooltip">Select player.</translatableAttribute> 74 80 </object>