- Timestamp:
- 08/28/11 23:32:35 (13 years ago)
- Location:
- ps/trunk/binaries/data/mods/public/gui
- Files:
-
- 10 edited
-
common/common_styles.xml (modified) (5 diffs)
-
common/styles.xml (modified) (18 diffs)
-
gamesetup/gamesetup.js (modified) (75 diffs)
-
gamesetup/gamesetup.xml (modified) (10 diffs)
-
gamesetup/styles.xml (modified) (3 diffs)
-
pregame/mainmenu.xml (modified) (32 diffs)
-
session/session.xml (modified) (30 diffs)
-
summary/sprites.xml (modified) (1 diff)
-
summary/summary.js (modified) (4 diffs)
-
summary/summary.xml (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ps/trunk/binaries/data/mods/public/gui/common/common_styles.xml
r10119 r10130 2 2 3 3 <styles> 4 5 6 7 8 4 9 5 … … 99 95 /> 100 96 97 <style name="ChatText" 98 font="serif-9" 99 textcolor="white" 100 text_align="left" 101 text_valign="top" 102 /> 103 104 101 105 102 106 … … 115 119 ========================================== 116 120 --> 117 121 118 122 <style name="TranslucentPanel" 119 123 sprite="BackgroundTranslucent" … … 124 128 text_valign="top" 125 129 /> 126 130 127 131 <style name="TranslucentPanelThinBorder" 128 132 sprite="TranslucentPanelThinBorder" … … 140 144 text_valign="top" 141 145 /> 142 146 143 147 <style name="SubmenuPanel" 144 148 sprite="SubmenuPanel" -
ps/trunk/binaries/data/mods/public/gui/common/styles.xml
r7766 r10130 28 28 --> 29 29 30 <style name="thinWheatWindow"30 <!-- <style name="thinWheatWindow" 31 31 sprite="thinWheatWindowSand" 32 32 buffer_zone="10" … … 34 34 text_valign="top" 35 35 /> 36 36 37 37 <style name="wheatWindow" 38 38 sprite="wheatWindowSand" … … 55 55 text_align="center" 56 56 text_valign="center" 57 /> 57 />--> 58 58 59 59 <!-- … … 63 63 --> 64 64 65 <style name="skin*Hele*Window"65 <!-- <style name="skin*Hele*Window" 66 66 sprite="bkGraniteBorderBlack" 67 67 buffer_zone="10" … … 84 84 text_align="center" 85 85 text_valign="center" 86 /> 86 />--> 87 87 88 88 <!-- … … 92 92 --> 93 93 94 <style name="wheatButton"94 <!-- <style name="wheatButton" 95 95 sprite="wheatButton" 96 96 sprite_disabled="wheatButtonDisabled" … … 187 187 text_align="left" 188 188 text_valign="center" 189 /> 190 189 />--> 190 191 191 <!-- 192 192 This control is new, so here's a summary: … … 208 208 --> 209 209 210 <style name="wheatDropDown"210 <!-- <style name="wheatDropDown" 211 211 dropdown_buffer="1" 212 212 font="serif-13" … … 230 230 scrollbar="true" 231 231 scrollbar_style="wheatScrollBar" 232 /> 232 />--> 233 233 234 234 <!-- … … 244 244 --> 245 245 246 <style name="wheatTextHeadMaxBlack"246 <!-- <style name="wheatTextHeadMaxBlack" 247 247 ghost="true" 248 248 font="serif-bold-18" 249 249 text_align="center" 250 250 textcolor="black" 251 /> 251 />--> 252 252 253 253 <!-- … … 258 258 --> 259 259 260 <style name="wheatTextHeadBlack"260 <!-- <style name="wheatTextHeadBlack" 261 261 ghost="true" 262 262 font="serif-16" 263 263 textcolor="black" 264 /> 264 />--> 265 265 266 266 <!-- … … 271 271 --> 272 272 273 <style name="wheatTextLabelBlack"273 <!-- <style name="wheatTextLabelBlack" 274 274 ghost="true" 275 275 font="serif-14" 276 276 textcolor="black" 277 /> 277 />--> 278 278 279 279 <!-- … … 284 284 --> 285 285 286 <style name="fancyTextHeadGold"286 <!-- <style name="fancyTextHeadGold" 287 287 ghost="true" 288 288 font="serif-16" … … 294 294 font="serif-14" 295 295 textcolor="white" 296 /> 296 />--> 297 297 298 298 <!-- … … 302 302 --> 303 303 304 <style name="wheatBorderBlack"305 scrollbar_style="wheatScrollBar" 304 <!-- <style name="wheatBorderBlack" 305 scrollbar_style="wheatScrollBar" 306 306 sprite="bkBorderBlack" 307 307 sprite_selectarea="bkFillGray" … … 323 323 textcolor="black" 324 324 textcolor_selected="white" 325 /> 325 />--> 326 326 327 327 <!-- … … 331 331 --> 332 332 333 <style name="wheatProgressBarBlue"333 <!-- <style name="wheatProgressBarBlue" 334 334 sprite_background="bkBorderBlack" 335 335 sprite_bar="bkBlueBorderBlack" … … 337 337 tooltip_style="snToolTip" 338 338 tooltip="(TBA)" 339 /> 339 />--> 340 340 341 341 </styles> -
ps/trunk/binaries/data/mods/public/gui/gamesetup/gamesetup.js
r9783 r10130 43 43 44 44 var g_MapFilters = []; 45 45 46 46 // To prevent the display locking up while we load the map metadata, 47 47 // we'll start with a 'loading' message and switch to the main screen in the … … 77 77 // Load AI list 78 78 g_AIs = Engine.GetAIs(); 79 79 80 80 // Sort AIs by displayed name 81 81 g_AIs.sort(function (a, b) { 82 82 return a.data.name < b.data.name ? -1 : b.data.name < a.data.name ? +1 : 0; 83 83 }); 84 84 85 85 // Get default player data - remove gaia 86 86 g_DefaultPlayerData = initPlayerDefaults(); 87 87 g_DefaultPlayerData.shift(); 88 88 89 89 g_MapSizes = initMapSizes(); 90 90 91 91 // Init civs 92 92 initCivNameList(); 93 93 94 94 // Init map types 95 95 var mapTypes = getGUIObjectByName("mapTypeSelection"); 96 96 mapTypes.list = ["Scenario","Random"]; 97 97 mapTypes.list_data = ["scenario","random"]; 98 98 99 99 // Setup map filters - will appear in order they are added 100 100 addFilter("Default", function(settings) { return settings && !keywordTestOR(settings.Keywords, ["demo", "hidden"]); }); … … 102 102 addFilter("Old Maps", function(settings) { return !settings; }); 103 103 addFilter("All Maps", function(settings) { return true; }); 104 104 105 105 // Populate map filters dropdown 106 106 var mapFilters = getGUIObjectByName("mapFilterSelection"); 107 107 mapFilters.list = getFilters(); 108 108 g_GameAttributes.mapFilter = "Default"; 109 109 110 110 // Setup controls for host only 111 111 if (g_IsController) … … 113 113 mapTypes.selected = 0; 114 114 mapFilters.selected = 0; 115 115 116 116 initMapNameList(); 117 117 118 118 var numPlayersSelect = getGUIObjectByName("numPlayersSelection"); 119 119 var players = []; … … 123 123 numPlayersSelect.list_data = players; 124 124 numPlayersSelect.selected = MAX_PLAYERS - 1; 125 125 126 126 var victoryConditions = getGUIObjectByName("victoryCondition"); 127 127 victoryConditions.list = VICTORY_TEXT; … … 133 133 g_GameAttributes.settings.GameType = VICTORY_DATA[this.selected]; 134 134 } 135 135 136 136 if (!g_IsInGuiUpdate) 137 137 { … … 140 140 }; 141 141 victoryConditions.selected = VICTORY_DEFAULTIDX; 142 142 143 143 var mapSize = getGUIObjectByName("mapSize"); 144 144 mapSize.list = g_MapSizes.names; … … 150 150 g_GameAttributes.settings.Size = g_MapSizes.tiles[this.selected]; 151 151 } 152 152 153 153 if (!g_IsInGuiUpdate) 154 154 { … … 156 156 } 157 157 }; 158 158 159 159 getGUIObjectByName("revealMap").onPress = function() 160 160 { // Update attributes so other players can see change 161 161 g_GameAttributes.settings.RevealMap = this.checked; 162 162 163 163 if (!g_IsInGuiUpdate) 164 164 { … … 166 166 } 167 167 }; 168 168 169 169 getGUIObjectByName("lockTeams").onPress = function() 170 170 { // Update attributes so other players can see change 171 171 g_GameAttributes.settings.LockTeams = this.checked; 172 172 173 173 if (!g_IsInGuiUpdate) 174 174 { … … 184 184 getGUIObjectByName("mapFilterSelection").hidden = true; 185 185 getGUIObjectByName("mapSelection").enabled = false; 186 186 187 187 // Disable player and game options controls 188 188 // TODO: Shouldn't players be able to choose their own assignment? … … 193 193 getGUIObjectByName("playerTeam["+i+"]").hidden = true; 194 194 } 195 195 196 196 getGUIObjectByName("numPlayersBox").hidden = true; 197 197 198 198 // Disable "start game" button 199 199 // TODO: Perhaps replace this with a "ready" button, and require host to wait? 200 200 getGUIObjectByName("startGame").enabled = false; 201 201 } 202 202 203 203 // Set up offline-only bits: 204 204 if (!g_IsNetworked) … … 206 206 getGUIObjectByName("chatPanel").hidden = true; 207 207 } 208 208 209 209 // Settings for all possible player slots 210 210 var boxSpacing = 32; … … 218 218 boxSize.bottom = i * boxSpacing + h; 219 219 box.size = boxSize; 220 220 221 221 // Populate team dropdowns 222 222 var team = getGUIObjectByName("playerTeam["+i+"]"); … … 224 224 team.list_data = [-1, 0, 1, 2, 3]; 225 225 team.selected = 0; 226 226 227 227 let playerSlot = i; // declare for inner function use 228 228 team.onSelectionChange = function() … … 232 232 g_GameAttributes.settings.PlayerData[playerSlot].Team = this.selected - 1; 233 233 } 234 234 235 235 if (!g_IsInGuiUpdate) 236 236 { … … 238 238 } 239 239 }; 240 240 241 241 // Set events 242 242 var civ = getGUIObjectByName("playerCiv["+i+"]"); … … 247 247 g_GameAttributes.settings.PlayerData[playerSlot].Civ = this.list_data[this.selected]; 248 248 } 249 249 250 250 if (!g_IsInGuiUpdate) 251 251 { … … 254 254 }; 255 255 } 256 256 257 257 if (g_IsNetworked) 258 258 { … … 282 282 reportDisconnect(message.reason); 283 283 break; 284 284 285 285 default: 286 286 error("Unrecognised netstatus type "+message.status); … … 288 288 } 289 289 break; 290 290 291 291 case "gamesetup": 292 292 if (message.data) // (the host gets undefined data on first connect, so skip that) … … 297 297 onGameAttributesChange(); 298 298 break; 299 299 300 300 case "players": 301 301 // Find and report all joinings/leavings … … 318 318 updatePlayerList(); 319 319 break; 320 320 321 321 case "start": 322 322 Engine.SwitchGuiPage("page_loading.xml", { 323 "attribs": g_GameAttributes, 324 "isNetworked" : g_IsNetworked, 323 "attribs": g_GameAttributes, 324 "isNetworked" : g_IsNetworked, 325 325 "playerAssignments": g_PlayerAssignments 326 326 }); 327 327 break; 328 328 329 329 case "chat": 330 330 addChatMessage({ "type": "message", "guid": message.guid, "text": message.text }); … … 340 340 { 341 341 var mapData = loadMapData(map); 342 342 343 343 if (!mapData || !mapData.settings || !mapData.settings.Name) 344 344 { // Give some msg that map format is unsupported … … 346 346 return map; 347 347 } 348 348 349 349 return mapData.settings.Name; 350 350 } … … 357 357 return settings[property]; 358 358 } 359 359 360 360 // Use defaults 361 361 if (defaults && (property in defaults)) … … 363 363 return defaults[property]; 364 364 } 365 365 366 366 return undefined; 367 367 } … … 372 372 // Cache civ data 373 373 g_CivData = loadCivData(); 374 374 375 375 // Extract name/code, and skip civs that are explicitly disabled 376 376 // (intended for unusable incomplete civs) … … 381 381 // Alphabetically sort the list, ignoring case 382 382 civList.sort(sortNameIgnoreCase); 383 383 384 384 var civListNames = [ civ.name for each (civ in civList) ]; 385 385 var civListCodes = [ civ.code for each (civ in civList) ]; … … 402 402 var mapSelectionBox = getGUIObjectByName("mapSelection") 403 403 var mapFiles; 404 404 405 405 switch (g_GameAttributes.mapType) 406 406 { … … 408 408 mapFiles = getXMLFileList(g_GameAttributes.mapPath); 409 409 break; 410 410 411 411 case "random": 412 412 mapFiles = getJSONFileList(g_GameAttributes.mapPath); 413 413 break; 414 414 415 415 default: 416 416 error("initMapNameList: Unexpected map type '"+g_GameAttributes.mapType+"'"); 417 417 return; 418 418 } 419 419 420 420 // Apply map filter, if any defined 421 421 var mapList = []; … … 424 424 var file = mapFiles[i]; 425 425 var mapData = loadMapData(file); 426 426 427 427 if (g_GameAttributes.mapFilter && mapData && testFilter(g_GameAttributes.mapFilter, mapData.settings)) 428 428 { … … 430 430 } 431 431 } 432 432 433 433 // Alphabetically sort the list, ignoring case 434 434 mapList.sort(sortNameIgnoreCase); 435 435 436 436 var mapListNames = [ map.name for each (map in mapList) ]; 437 437 var mapListFiles = [ map.file for each (map in mapList) ]; 438 438 439 439 // Select the default map 440 440 var selected = mapListFiles.indexOf(g_GameAttributes.map); … … 444 444 selected = 0; 445 445 } 446 446 447 447 // Update the list control 448 448 mapSelectionBox.list = mapListNames; … … 457 457 return undefined; 458 458 } 459 459 460 460 if (!g_MapData[name]) 461 461 { … … 465 465 g_MapData[name] = Engine.LoadMapSettings(g_GameAttributes.mapPath+name); 466 466 break; 467 467 468 468 case "random": 469 469 g_MapData[name] = parseJSONData(g_GameAttributes.mapPath+name+".json"); 470 470 break; 471 471 472 472 default: 473 473 error("loadMapData: Unexpected map type '"+g_GameAttributes.mapType+"'"); … … 475 475 } 476 476 } 477 477 478 478 return g_MapData[name]; 479 479 } … … 523 523 return; 524 524 } 525 525 526 526 // Network clients can't change number of players 527 527 if (g_IsNetworked && !g_IsController) … … 529 529 return; 530 530 } 531 531 532 532 // Only meaningful for random maps 533 533 if (g_GameAttributes.mapType != "random") … … 535 535 return; 536 536 } 537 537 538 538 // Update player data 539 539 var pData = g_GameAttributes.settings.PlayerData; … … 551 551 } 552 552 } 553 553 554 554 updateGameAttributes(); 555 555 } … … 576 576 // Clear old map data 577 577 g_MapData = {}; 578 578 579 579 // Select correct path 580 580 switch (g_GameAttributes.mapType) … … 586 586 g_GameAttributes.mapPath = "maps/scenarios/"; 587 587 break; 588 588 589 589 case "random": 590 590 g_GameAttributes.mapPath = "maps/random/"; … … 594 594 }; 595 595 break; 596 596 597 597 default: 598 598 error("selectMapType: Unexpected map type '"+g_GameAttributes.mapType+"'"); … … 618 618 return; 619 619 } 620 620 621 621 g_GameAttributes.mapFilter = filterName; 622 622 623 623 initMapNameList(); 624 624 … … 640 640 return; 641 641 } 642 642 643 643 // Return if we have no map 644 644 if (!name) … … 649 649 var mapData = loadMapData(name); 650 650 var mapSettings = (mapData && mapData.settings ? deepcopy(mapData.settings) : {}); 651 651 652 652 // Copy any new settings 653 653 g_GameAttributes.map = name; … … 675 675 { 676 676 var numPlayers = (mapSettings.PlayerData ? mapSettings.PlayerData.length : g_GameAttributes.settings.PlayerData.length); 677 677 678 678 for (var guid in g_PlayerAssignments) 679 679 { // Unassign extra players … … 686 686 } 687 687 } 688 688 689 689 updateGameAttributes(); 690 690 } … … 697 697 return; 698 698 } 699 699 700 700 // Check that we have a map 701 701 if (!g_GameAttributes.map) … … 703 703 return; 704 704 } 705 705 706 706 if (g_IsNetworked) 707 707 { … … 727 727 Engine.StartGame(g_GameAttributes, playerID); 728 728 Engine.SwitchGuiPage("page_loading.xml", { 729 "attribs": g_GameAttributes, 730 "isNetworked" : g_IsNetworked, 729 "attribs": g_GameAttributes, 730 "isNetworked" : g_IsNetworked, 731 731 "playerAssignments": g_PlayerAssignments 732 732 }); … … 739 739 { 740 740 g_IsInGuiUpdate = true; 741 741 742 742 // Don't set any attributes here, just show the changes in GUI 743 743 744 744 var mapName = g_GameAttributes.map || ""; 745 745 var mapSettings = g_GameAttributes.settings; 746 746 var numPlayers = (mapSettings.PlayerData ? mapSettings.PlayerData.length : MAX_PLAYERS); 747 747 748 748 // Update some controls for clients 749 749 if (!g_IsController) … … 757 757 var mapSelectionBox = getGUIObjectByName("mapSelection"); 758 758 mapSelectionBox.selected = mapSelectionBox.list_data.indexOf(mapName); 759 759 760 760 initMapNameList(); 761 761 } 762 762 763 763 // Controls common to all map types 764 764 var revealMap = getGUIObjectByName("revealMap"); … … 774 774 var sizeIdx = (g_MapSizes.tiles.indexOf(mapSettings.Size) != -1 ? g_MapSizes.tiles.indexOf(mapSettings.Size) : g_MapSizes.default); 775 775 var victoryIdx = (VICTORY_DATA.indexOf(mapSettings.GameType) != -1 ? VICTORY_DATA.indexOf(mapSettings.GameType) : VICTORY_DEFAULTIDX); 776 776 777 777 // Handle map type specific logic 778 778 switch (g_GameAttributes.mapType) … … 787 787 victoryCondition.hidden = false; 788 788 lockTeams.hidden = false; 789 789 790 790 mapSizeText.caption = "Map size:"; 791 791 mapSize.selected = sizeIdx; 792 792 revealMapText.caption = "Reveal map:"; 793 793 revealMap.checked = (mapSettings.RevealMap ? true : false); 794 794 795 795 victoryConditionText.caption = "Victory condition:"; 796 796 victoryCondition.selected = victoryIdx; … … 805 805 lockTeamsText.caption = "Teams locked: " + (mapSettings.LockTeams === undefined || mapSettings.LockTeams ? "Yes" : "No"); 806 806 } 807 808 break; 809 807 808 break; 809 810 810 case "scenario": 811 811 // For scenario just reflect settings for the current map … … 815 815 victoryCondition.hidden = true; 816 816 lockTeams.hidden = true; 817 817 818 818 mapSizeText.caption = "Map size: Default"; 819 819 revealMapText.caption = "Reveal map: " + (mapSettings.RevealMap ? "Yes" : "No"); 820 820 victoryConditionText.caption = "Victory condition: " + VICTORY_TEXT[victoryIdx]; 821 821 lockTeamsText.caption = "Teams locked: " + (mapSettings.LockTeams === undefined || mapSettings.LockTeams ? "Yes" : "No"); 822 823 break; 824 822 823 break; 824 825 825 default: 826 826 error("onGameAttributesChange: Unexpected map type '"+g_GameAttributes.mapType+"'"); 827 827 return; 828 828 } 829 829 830 830 // Display map name 831 831 getGUIObjectByName("mapInfoName").caption = getMapDisplayName(mapName); 832 832 833 833 // Load the description from the map file, if there is one 834 834 var description = mapSettings.Description || "Sorry, no description available."; 835 835 836 836 // Describe the number of players 837 837 var playerString = numPlayers + " " + (numPlayers == 1 ? "player" : "players") + ". "; 838 838 839 839 for (var i = 0; i < MAX_PLAYERS; ++i) 840 840 { 841 841 // Show only needed player slots 842 842 getGUIObjectByName("playerBox["+i+"]").hidden = (i >= numPlayers); 843 843 844 844 // Show player data or defaults as necessary 845 845 if (i < numPlayers) … … 855 855 var pData = mapSettings.PlayerData ? mapSettings.PlayerData[i] : {}; 856 856 var pDefs = g_DefaultPlayerData ? g_DefaultPlayerData[i] : {}; 857 857 858 858 // Common to all game types 859 859 var color = iColorToString(getSetting(pData, pDefs, "Colour")); 860 860 pColor.sprite = "colour:"+color+" 100"; 861 861 pName.caption = getSetting(pData, pDefs, "Name"); 862 862 863 863 var team = getSetting(pData, pDefs, "Team"); 864 864 var civ = getSetting(pData, pDefs, "Civ"); 865 865 866 866 // For clients or scenarios, hide some player dropdowns 867 867 if (!g_IsController || g_GameAttributes.mapType == "scenario") … … 871 871 pTeamText.hidden = false; 872 872 pTeam.hidden = true; 873 873 874 874 // Set text values 875 875 pCivText.caption = g_CivData[civ].Name; … … 882 882 pTeamText.hidden = true; 883 883 pTeam.hidden = false; 884 884 885 885 // Set dropdown values 886 886 pCiv.selected = (civ ? pCiv.list_data.indexOf(civ) : 0); … … 891 891 892 892 getGUIObjectByName("mapInfoDescription").caption = playerString + description; 893 893 894 894 g_IsInGuiUpdate = false; 895 895 … … 904 904 Engine.SetNetworkGameAttributes(g_GameAttributes); 905 905 } 906 else 906 else 907 907 { 908 908 onGameAttributesChange(); … … 919 919 var aiAssignments = {}; 920 920 var noAssignment; 921 921 922 922 for (var guid in g_PlayerAssignments) 923 923 { … … 925 925 var hostID = hostNameList.length; 926 926 var player = g_PlayerAssignments[guid].player; 927 927 928 928 hostNameList.push(name); 929 929 hostGuidList.push(guid); … … 941 941 hostNameList.push("[color=\"90 90 90 255\"]Unassigned"); 942 942 hostGuidList.push(""); 943 943 944 944 for (var i = 0; i < MAX_PLAYERS; ++i) 945 945 { 946 946 let playerSlot = i; 947 947 let playerID = i+1; // we don't show Gaia, so first slot is ID 1 948 948 949 949 var selection = assignments[playerID]; 950 950 951 951 var configButton = getGUIObjectByName("playerConfig["+i+"]"); 952 952 configButton.hidden = true; … … 967 967 selection = noAssignment; 968 968 } 969 969 970 970 // Since no human is assigned, show the AI config button 971 971 if (g_IsController) … … 1006 1006 } 1007 1007 } 1008 1008 1009 1009 var assignBox = getGUIObjectByName("playerAssignment["+i+"]"); 1010 1010 assignBox.list = hostNameList; … … 1097 1097 var username = escapeText(msg.username || g_PlayerAssignments[msg.guid].name); 1098 1098 var message = escapeText(msg.text); 1099 1099 1100 1100 // TODO: Maybe host should have distinct font/color? 1101 var color = " 0 0 0";1102 1101 var color = "white"; 1102 1103 1103 if (g_PlayerAssignments[msg.guid] && g_PlayerAssignments[msg.guid].player != 255) 1104 1104 { // Valid player who has been assigned - get player colour … … 1109 1109 var pData = mapSettings.PlayerData ? mapSettings.PlayerData[player] : {}; 1110 1110 var pDefs = g_DefaultPlayerData ? g_DefaultPlayerData[player] : {}; 1111 1111 1112 1112 color = iColorToString(getSetting(pData, pDefs, "Colour")); 1113 1113 } 1114 1114 1115 1115 var formatted; 1116 1116 switch (msg.type) 1117 1117 { 1118 1118 case "connect": 1119 formatted = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font] [color=" 64 64 64"]has joined[/color]';1119 formatted = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font] [color="gold"]has joined[/color]'; 1120 1120 break; 1121 1121 1122 1122 case "disconnect": 1123 formatted = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font] [color=" 64 64 64"]has left[/color]';1123 formatted = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font] [color="gold"]has left[/color]'; 1124 1124 break; 1125 1125 … … 1149 1149 newFilter.name = name; 1150 1150 newFilter.filter = filterFunc; 1151 1151 1152 1152 g_MapFilters.push(newFilter); 1153 1153 } … … 1166 1166 filters.push(g_MapFilters[i].name); 1167 1167 } 1168 1168 1169 1169 return filters; 1170 1170 } … … 1180 1180 } 1181 1181 } 1182 1182 1183 1183 error("Invalid map filter: "+name); 1184 1184 return false; … … 1192 1192 return false; 1193 1193 } 1194 1194 1195 1195 for (var m = 0; m < matches.length; ++m) 1196 1196 { // Fail on not match … … 1210 1210 return false; 1211 1211 } 1212 1212 1213 1213 for (var m = 0; m < matches.length; ++m) 1214 1214 { // Success on match -
ps/trunk/binaries/data/mods/public/gui/gamesetup/gamesetup.xml
r10122 r10130 12 12 <object type="image" z="0" sprite="BackgroundBlack"/> 13 13 14 <object type="image" style="StonePanel " size="50%-190 50%-80 50%+190 50%+80" name="loadingWindow">14 <object type="image" style="StonePanelLight" size="50%-190 50%-80 50%+190 50%+80" name="loadingWindow"> 15 15 16 16 <object type="text" style="StoneDialogTitleBar" size="50%-128 0%-16 50%+128 16"> … … 36 36 <!-- Map selection --> 37 37 <object size="20 64 250 100%-20"> 38 38 39 39 <object size="0 0 40% 100%"> 40 40 <object name="mapTypeHeading" type="text" style="RightLabelText" size="0 0 100% 28">Match Type:</object> 41 41 <object name="mapFilterHeading" type="text" style="RightLabelText" size="0 34 100% 60">Map Filter:</object> 42 42 </object> 43 43 44 44 <object name="mapTypeSelection" 45 45 type="dropdown" … … 50 50 <action on="SelectionChange">selectMapType(this.list_data[this.selected]);</action> 51 51 </object> 52 52 53 53 <object name="mapFilterSelection" 54 54 type="dropdown" … … 59 59 <action on="SelectionChange">selectMapFilter(this.list[this.selected]);</action> 60 60 </object> 61 61 62 62 <object name="mapSelection" 63 63 style="StoneList" … … 68 68 <action on="SelectionChange">selectMap(this.list_data[this.selected]);</action> 69 69 </object> 70 70 71 71 <object type="image" sprite="BackgroundIndentFillDark" size="0 100%-190 100% 100%"> 72 72 <object name="mapInfoName" type="text" style="LeftLabelText" size="0 0 100% 30"/> 73 73 <object name="mapInfoDescription" type="text" style="SmallLeftLabelText" size="0 24 100% 100%"/> 74 74 </object> 75 75 76 76 </object> 77 77 … … 125 125 </object> 126 126 </object> 127 128 127 128 129 129 <!-- Options --> 130 130 <object name="gameOptionsBox" size="260 100%-260 100% 100%-190"> … … 142 142 </object> 143 143 </object> 144 145 144 145 146 146 <!-- Chat window --> 147 147 <object name="chatPanel" size="260 100%-190 100%-20 100%-58" type="image" sprite="BackgroundIndentFillDark"> 148 148 149 149 <object name="chatText" size="3 1 100%-1 100%-25" type="text" style="chatPanel"/> 150 150 151 151 <object name="chatInput" size="2 100%-23 100%-66 100%-3" type="input" style="StoneInput"> 152 152 <action on="Press">submitChatInput();</action> 153 153 </object> 154 154 155 155 <object size="100%-65 100%-23 100% 100%-3" type="button" style="StoneButton"> 156 156 Send 157 157 <action on="Press">submitChatInput();</action> 158 158 </object> 159 159 160 160 </object> 161 161 … … 170 170 size="260 100%-64 100%-310 100%-16" 171 171 >[Tooltip text]</object> 172 172 173 173 <object 174 174 name="cancelGame" … … 184 184 ]]></action> 185 185 </object> 186 186 187 187 <object 188 188 name="startGame" … … 195 195 <action on="Press">launchGame();</action> 196 196 </object> 197 197 198 198 </object> 199 199 -
ps/trunk/binaries/data/mods/public/gui/gamesetup/styles.xml
r7664 r10130 3 3 <styles> 4 4 5 <style name="indentedPanel"5 <!-- <style name="indentedPanel" 6 6 buffer_zone="5" 7 7 font="serif-14" … … 11 11 text_align="left" 12 12 text_valign="center" 13 /> 13 />--> 14 14 15 15 <style name="chatPanel" … … 17 17 font="serif-13" 18 18 scrollbar="true" 19 scrollbar_style=" wheatScrollBar"19 scrollbar_style="StoneScrollBar" 20 20 scroll_bottom="true" 21 textcolor=" black"22 textcolor_selected=" white"21 textcolor="white" 22 textcolor_selected="gold" 23 23 text_align="left" 24 24 text_valign="center" -
ps/trunk/binaries/data/mods/public/gui/pregame/mainmenu.xml
r10122 r10130 12 12 --> 13 13 14 <object type="image" sprite=" bkFillBlack"/>14 <object type="image" sprite="BackgroundBlack"/> 15 15 16 16 <object name="pg"> … … 85 85 You can automatically send us anonymous feedback that will help us fix bugs, and improve performance and compatibility. 86 86 </object> 87 <object type="button" style=" wheatButton" size="4 100%-36 150 100%-4">88 [font="serif-bold-16"]Enable feedback87 <object type="button" style="StoneButton" size="8 100%-36 146 100%-8"> 88 Enable feedback 89 89 <action on="Press">Engine.SetUserReportEnabled(true);</action> 90 90 </object> 91 <object type="button" style=" wheatButton" size="100%-150 100%-36 100%-4 100%-4">91 <object type="button" style="StoneButton" size="100%-146 100%-36 100%-8 100%-8"> 92 92 Technical details 93 93 <action on="Press">Engine.PushGuiPage("page_manual.xml", { "page": "userreport" });</action> … … 126 126 size="4 130 100%-4 200" 127 127 type="input" 128 style=" wheatInput"128 style="StoneInput" 129 129 multiline="true" 130 130 scrollbar="true" 131 scrollbar_style=" wheatScrollBar"131 scrollbar_style="StoneScrollBar" 132 132 /> 133 133 134 <object size="100%-124 204 100%-4 23 6" type="button" style="wheatButton">134 <object size="100%-124 204 100%-4 232" type="button" style="StoneButton"> 135 135 Send Message 136 136 <action on="Press">submitUserReportMessage();</action> 137 137 </object> 138 138 139 <object type="button" style=" wheatButton" size="4 100%-36 150 100%-4">139 <object type="button" style="StoneButton" size="8 100%-36 146 100%-8"> 140 140 Disable feedback 141 141 <action on="Press">Engine.SetUserReportEnabled(false);</action> 142 142 </object> 143 <object type="button" style=" wheatButton" size="100%-150 100%-36 100%-4 100%-4">143 <object type="button" style="StoneButton" size="100%-146 100%-36 100%-8 100%-8"> 144 144 Technical details 145 145 <action on="Press">Engine.PushGuiPage("page_manual.xml", { "page": "userreport" });</action> 146 146 </object> 147 147 </object> 148 148 149 149 150 150 <!-- … … 170 170 size="100%-2 0 100% 100%" 171 171 /> 172 172 173 173 <object name="productLogo" 174 174 type="image" … … 177 177 size="50%-110 30 50%+110 130" 178 178 /> 179 179 180 180 <object name="mainMenuButtons" 181 181 type="image" … … 189 189 ghost="false" 190 190 /> 191 191 192 192 <!-- LEARN TO PLAY BUTTON --> 193 193 <object name="menuLearnToPlayButton" … … 206 206 </action> 207 207 </object> 208 208 209 209 <!-- SINGLEPLAYER BUTTON --> 210 210 <object name="menuSinglePlayerButton" … … 222 222 </action> 223 223 </object> 224 224 225 225 <!-- MULTIPLAYER BUTTON --> 226 226 <object name="menuMultiplayerButton" … … 238 238 </action> 239 239 </object> 240 240 241 241 <!-- TOOLS AND OPTIONS BUTTON --> 242 242 <object name="menuToolsAndOptionsButton" … … 254 254 </action> 255 255 </object> 256 256 257 257 <!-- HISTORY BUTTON --> 258 258 <object name="menuHistoryButton" … … 271 271 </action> 272 272 </object> 273 273 274 274 <!-- EXIT BUTTON --> 275 275 <object name="menuExitButton" … … 292 292 </object> 293 293 294 <!-- PRE-RELEASE INFO --> 294 <!-- PRE-RELEASE INFO --> 295 295 <object size="8 100%-340 100%-8 100%-100" 296 type="image" 296 type="image" 297 297 style="TranslucentPanelThinBorder" 298 298 > 299 299 300 <!-- PRE-RELEASE WARNING --> 301 <object 302 style="fancyTextHeadWhite"303 type="text" 300 <!-- PRE-RELEASE WARNING --> 301 <object 302 font="serif-14" 303 type="text" 304 304 textcolor="white" 305 305 size="8 8 100%-8 100%-36" 306 306 ghost="true" 307 > 307 > 308 308 [font="serif-bold-18"]Alpha Version[/font] 309 309 310 WARNING: This is an early development version of the game. Many features have not been added yet. 311 312 Get involved at: wildfiregames.com/0ad 313 </object> 314 315 <!-- CONTACT METHODS --> 316 <object type="button" 310 WARNING: This is an early development version of the game. Many features have not been added yet. 311 312 Get involved at: wildfiregames.com/0ad 313 </object> 314 315 <!-- CONTACT METHODS --> 316 <object type="button" 317 317 style="StoneButton" 318 318 tooltip_style="pgToolTip" 319 319 tooltip="Click to open wildfiregames.com/0ad in your web browser." 320 320 size="8 100%-36 50%-4 100%-8" 321 > 322 Website 323 <action on="Press"><![CDATA[ 324 var url = "http://wildfiregames.com/0ad/"; 325 Engine.OpenURL(url); 326 messageBox(400, 200, "Opening "+url+" in default web browser. Please wait...", "Opening page", 2); 327 ]]></action> 328 </object> 329 321 > 322 Website 323 <action on="Press"><![CDATA[ 324 var url = "http://wildfiregames.com/0ad/"; 325 Engine.OpenURL(url); 326 messageBox(400, 200, "Opening "+url+" in default web browser. Please wait...", "Opening page", 2); 327 ]]></action> 328 </object> 329 330 330 <object type="button" 331 331 style="StoneButton" 332 332 tooltip_style="pgToolTip" 333 333 tooltip="Click to chat in IRC. (#0ad at webchat.quakenet.org)" 334 size="50%+4 100%-36 100%-8 100%-8" 335 > 336 IRC 337 <action on="Press"><![CDATA[ 338 var url = "http://webchat.quakenet.org/?channels=0ad"; 339 Engine.OpenURL(url); 340 messageBox(400, 200, "Opening "+url+" in default web browser. Please wait...", "Opening page", 2); 341 ]]></action> 342 </object> 343 </object> 334 size="50%+4 100%-36 100%-8 100%-8" 335 > 336 IRC 337 <action on="Press"><![CDATA[ 338 var url = "http://webchat.quakenet.org/?channels=0ad"; 339 Engine.OpenURL(url); 340 messageBox(400, 200, "Opening "+url+" in default web browser. Please wait...", "Opening page", 2); 341 ]]></action> 342 </object> 343 </object> 344 344 345 345 <!-- LOGO AND BUILD VERSION --> … … 376 376 ]]></action> 377 377 </object> 378 378 379 379 </object> 380 381 380 381 382 382 <!-- 383 383 ========================================== … … 385 385 ========================================== 386 386 --> 387 387 388 388 <object name="submenuScreen" 389 389 type="image" … … 395 395 getGUIObjectByName("MainMenuPanelRightBorderTop").size = "100%-2 0 100% 100%"; 396 396 </action> 397 397 398 398 <!-- submenu --> 399 399 <object name="submenu" … … 443 443 </object> 444 444 </object> 445 445 446 446 <!-- submenuMultiplayer --> 447 447 <object name="submenuMultiplayer" … … 467 467 ]]></action> 468 468 </object> 469 469 470 470 <object name="subMenuMultiplayerHostButton" 471 471 type="button" … … 532 532 </object><!-- end of submenu --> 533 533 </object><!-- end of submenu screen --> 534 535 536 537 538 539 540 541 542 543 544 545 546 534 535 536 537 538 539 540 541 542 543 544 545 546 547 547 <!-- 548 548 <object name="pgCampaignsBt" … … 635 635 636 636 637 637 638 638 639 639 … … 668 668 var creditsArray = readFileLines("gui/text/credits.txt"); 669 669 670 // Populate credits list. 670 // Populate credits list. 671 671 for (var creditsIndex = 0; creditsIndex < creditsArray.length; creditsIndex++) 672 672 { … … 736 736 z="90" 737 737 hidden="true" 738 sprite="bkTranslucent" 738 sprite="bkTranslucent" 739 739 >--> 740 740 … … 765 765 ]]></action> 766 766 </object> 767 --> 767 --> 768 768 <!-- Add campaign screen controls here later --> 769 <!-- 769 <!-- 770 770 </object> 771 771 --> … … 832 832 g_ConfigDB.system["sound.mastergain"] = getGUIObjectByName ("pgOptionsAudioMusicGain").caption; 833 833 } 834 ]]></action> 834 ]]></action> 835 835 </object> 836 836 --> … … 912 912 g_ConfigDB.system["sound.mastergain"] = getGUIObjectByName ("pgOptionsAudioMusicGain").caption; 913 913 } 914 ]]></action> 914 ]]></action> 915 915 </object> 916 916 --> … … 988 988 // g_ConfigDB.system["sound.mastergain"] = getGUIObjectByName ("pgOptionsAudioMusicGain").caption; 989 989 } 990 ]]></action> 990 ]]></action> 991 991 </object> 992 992 --> … … 1064 1064 // g_ConfigDB.system["sound.mastergain"] = getGUIObjectByName ("pgOptionsAudioMusicGain").caption; 1065 1065 } 1066 ]]></action> 1066 ]]></action> 1067 1067 </object> 1068 1068 --> … … 1139 1139 // g_ConfigDB.system["sound.mastergain"] = getGUIObjectByName ("pgOptionsAudioMusicGain").caption; 1140 1140 } 1141 ]]></action> 1141 ]]></action> 1142 1142 </object> 1143 1143 … … 1487 1487 size="80% 91% 99% 99%" 1488 1488 tooltip="Display System Information." 1489 tooltip_style="pgFloatingToolTip" 1489 tooltip_style="pgFloatingToolTip" 1490 1490 >System Info 1491 1491 <action on="Press"><![CDATA[ … … 1538 1538 <action on="Press"><![CDATA[ 1539 1539 // Clicking the checkbox reverses the buttons 1540 ]]></action> 1540 ]]></action> 1541 1541 </object> 1542 1542 … … 1584 1584 ]]></action> 1585 1585 </object> 1586 --> 1586 --> 1587 1587 <!-- 1588 1588 =============================================== … … 1619 1619 size="60% 92% 90% 100%" 1620 1620 tooltip="Close Options Screen, abandoning all changes." 1621 tooltip_style="pgFloatingToolTip" 1621 tooltip_style="pgFloatingToolTip" 1622 1622 >Cancel 1623 1623 <action on="Press"><![CDATA[ 1624 // Close Options Screen, abandoning all changes. 1624 // Close Options Screen, abandoning all changes. 1625 1625 closeMainMenuSubWindow ("pgOptions"); 1626 1626 ]]></action> 1627 1627 </object> 1628 1629 </object> 1628 1629 </object> 1630 1630 --> 1631 1631 <!-- … … 1680 1680 <!--END OF pgSubWindow--> 1681 1681 <!-- </object>--> 1682 1682 1683 1683 </objects> -
ps/trunk/binaries/data/mods/public/gui/session/session.xml
r10122 r10130 33 33 <!-- HOTKEYS (For some reason, they won't work properly unless outside menu) --> 34 34 <!-- ================================ ================================ --> 35 35 36 36 <!-- Exit button Hotkey --> 37 37 <!-- … … 39 39 messageBox(400, 200, "Do you really want to quit?", "Confirmation", 0, 40 40 ["Yes", "No!"], [leaveGame, null]); 41 ]]></action> 41 ]]></action> 42 42 --> 43 43 44 44 <object hotkey="leave"> 45 45 <action on="Press">escapeKeyAction();</action> … … 60 60 <action on="Press">togglePause();</action> 61 61 </object> 62 62 63 63 <!-- Delete button Hotkey (For some reason it won't work when the console is visible --> 64 64 <object hotkey="session.kill"> … … 70 70 <action on="Press">setCameraFollow(g_Selection.toList()[0]);</action> 71 71 </object> 72 72 73 73 <!-- Find idle warrior - TODO: Potentially move this to own UI button? --> 74 74 <object hotkey="selection.idlewarrior"> 75 75 <action on="Press">findIdleUnit(["Hero", "Super", "CitizenSoldier", "Siege", "Warship"]);</action> 76 76 </object> 77 77 78 78 <!-- ================================ ================================ --> 79 79 <!-- Developer / Debug items --> 80 80 <!-- ================================ ================================ --> 81 81 82 82 <!-- Debug text --> 83 83 <object name="debug" … … 97 97 98 98 <object size="0 0 100%-18 16" type="text" style="devCommandsText">Control all units</object> 99 <object size="100%-16 0 100% 16" type="checkbox" name="devControlAll" style=" wheatCrossBox">99 <object size="100%-16 0 100% 16" type="checkbox" name="devControlAll" style="StoneCrossBox"> 100 100 <action on="Press"> 101 101 g_DevSettings.controlAll = this.checked; … … 105 105 106 106 <object size="0 16 100%-18 32" type="text" style="devCommandsText">Display selection state</object> 107 <object size="100%-16 16 100% 32" type="checkbox" name="devDisplayState" style=" wheatCrossBox"/>107 <object size="100%-16 16 100% 32" type="checkbox" name="devDisplayState" style="StoneCrossBox"/> 108 108 109 109 <object size="0 32 100%-18 48" type="text" style="devCommandsText">Pathfinder overlay</object> 110 <object size="100%-16 32 100% 48" type="checkbox" style=" wheatCrossBox">110 <object size="100%-16 32 100% 48" type="checkbox" style="StoneCrossBox"> 111 111 <action on="Press">Engine.GuiInterfaceCall("SetPathfinderDebugOverlay", this.checked);</action> 112 112 </object> 113 113 114 114 <object size="0 48 100%-18 64" type="text" style="devCommandsText">Obstruction overlay</object> 115 <object size="100%-16 48 100% 64" type="checkbox" style=" wheatCrossBox">115 <object size="100%-16 48 100% 64" type="checkbox" style="StoneCrossBox"> 116 116 <action on="Press">Engine.GuiInterfaceCall("SetObstructionDebugOverlay", this.checked);</action> 117 117 </object> 118 118 119 119 <object size="0 64 100%-18 80" type="text" style="devCommandsText">Unit motion overlay</object> 120 <object size="100%-16 64 100% 80" type="checkbox" style=" wheatCrossBox">120 <object size="100%-16 64 100% 80" type="checkbox" style="StoneCrossBox"> 121 121 <action on="Press">g_Selection.SetMotionDebugOverlay(this.checked);</action> 122 122 </object> 123 123 124 124 <object size="0 80 100%-18 96" type="text" style="devCommandsText">Range overlay</object> 125 <object size="100%-16 80 100% 96" type="checkbox" style=" wheatCrossBox">125 <object size="100%-16 80 100% 96" type="checkbox" style="StoneCrossBox"> 126 126 <action on="Press">Engine.GuiInterfaceCall("SetRangeDebugOverlay", this.checked);</action> 127 127 </object> 128 128 129 129 <object size="0 96 100%-18 112" type="text" style="devCommandsText">Restrict camera</object> 130 <object size="100%-16 96 100% 112" type="checkbox" style=" wheatCrossBox" checked="true">130 <object size="100%-16 96 100% 112" type="checkbox" style="StoneCrossBox" checked="true"> 131 131 <action on="Press">gameView.constrainCamera = this.checked;</action> 132 132 </object> 133 133 134 134 <object size="0 112 100%-18 128" type="text" style="devCommandsText">Reveal map</object> 135 <object name="devCommandsRevealMap" size="100%-16 112 100% 128" type="checkbox" style=" wheatCrossBox">135 <object name="devCommandsRevealMap" size="100%-16 112 100% 128" type="checkbox" style="StoneCrossBox"> 136 136 <action on="Press">Engine.PostNetworkCommand({"type": "reveal-map", "enable": this.checked});</action> 137 137 </object> 138 138 139 139 <object size="0 128 100%-18 144" type="text" style="devCommandsText">Enable time warp</object> 140 <object size="100%-16 128 100% 144" type="checkbox" name="devTimeWarp" style=" wheatCrossBox">140 <object size="100%-16 128 100% 144" type="checkbox" name="devTimeWarp" style="StoneCrossBox"> 141 141 <action on="Press">Engine.EnableTimeWarpRecording(this.checked ? 10 : 0);</action> 142 142 </object> 143 143 144 144 <object size="0 144 100%-18 160" type="text" style="devCommandsText">Promote selected units</object> 145 <object size="100%-16 144 100% 160" type="button" style=" wheatCrossBox">145 <object size="100%-16 144 100% 160" type="button" style="StoneCrossBox"> 146 146 <action on="Press">Engine.PostNetworkCommand({"type": "promote", "entities": g_Selection.toList()});</action> 147 147 </object> … … 195 195 196 196 </object> 197 197 198 198 <!-- ================================ ================================ --> 199 199 <!-- Menu --> … … 207 207 closeMenu(); 208 208 </action> 209 209 210 210 <object name="menu" 211 211 style="StonePanelThinBorder" … … 215 215 > 216 216 <object size="4 36 100%-4 50%+20"> 217 217 218 218 <!-- Settings button --> 219 219 <object type="button" … … 285 285 <object name="sessionDialogTitle" type="text" style="TitleText" size="0 -2 100% 100%">Settings</object> 286 286 </object> 287 287 288 288 <object style="TranslucentPanelThinBorder" 289 289 type="image" … … 292 292 <!-- Settings / shadows --> 293 293 <object size="0 10 100%-80 35" type="text" style="RightLabelText" ghost="true">Enable Shadows</object> 294 <object name="shadowsCheckbox" size="100%-56 15 100%-30 40" type="checkbox" style=" wheatCrossBox" checked="true">294 <object name="shadowsCheckbox" size="100%-56 15 100%-30 40" type="checkbox" style="StoneCrossBox" checked="true"> 295 295 <action on="Load">if (renderer.shadows) this.checked = true; else this.checked = false;</action> 296 296 <action on="Press">renderer.shadows = this.checked;</action> 297 </object> 297 </object> 298 298 299 299 <!-- Settings / Shadow PCF --> 300 300 <object size="0 35 100%-80 60" type="text" style="RightLabelText" ghost="true">Enable Shadow Filtering</object> 301 <object name="shadowPCFCheckbox" size="100%-56 40 100%-30 65" type="checkbox" style=" wheatCrossBox" checked="true">301 <object name="shadowPCFCheckbox" size="100%-56 40 100%-30 65" type="checkbox" style="StoneCrossBox" checked="true"> 302 302 <action on="Load">if (renderer.shadowPCF) this.checked = true; else this.checked = false;</action> 303 303 <action on="Press">renderer.shadowPCF = this.checked;</action> … … 306 306 <!-- Settings / Water --> 307 307 <object size="0 60 100%-80 85" type="text" style="RightLabelText" ghost="true">Enable Water Reflections</object> 308 <object name="fancyWaterCheckbox" size="100%-56 65 100%-30 90" type="checkbox" style=" wheatCrossBox" checked="true">308 <object name="fancyWaterCheckbox" size="100%-56 65 100%-30 90" type="checkbox" style="StoneCrossBox" checked="true"> 309 309 <action on="Load">if (renderer.fancyWater) this.checked = true; else this.checked = false;</action> 310 310 <action on="Press">renderer.fancyWater = this.checked;</action> … … 313 313 <!-- Settings / Music--> 314 314 <object size="0 85 100%-80 110" type="text" style="RightLabelText" ghost="true">Enable Music</object> 315 <object size="100%-56 90 100%-30 115" type="checkbox" style=" wheatCrossBox" checked="true">315 <object size="100%-56 90 100%-30 115" type="checkbox" style="StoneCrossBox" checked="true"> 316 316 <action on="Press">if (this.checked) startMusic(); else stopMusic();</action> 317 317 </object> … … 319 319 <!-- Settings / Dev Overlay --> 320 320 <object size="0 110 100%-80 135" type="text" style="RightLabelText" ghost="true">Developer Overlay</object> 321 <object size="100%-56 115 100%-30 140" type="checkbox" style=" wheatCrossBox" checked="false">321 <object size="100%-56 115 100%-30 140" type="checkbox" style="StoneCrossBox" checked="false"> 322 322 <action on="Press">toggleDeveloperOverlay();</action> 323 323 </object> 324 324 </object> 325 325 326 326 <!-- Close button --> 327 327 <object type="button" … … 348 348 <object 349 349 size="10 0 45% 100%" 350 > 350 > 351 351 <!-- Food --> 352 352 <object size="0 0 90 100%" type="image" style="resourceCounter" tooltip="Food" tooltip_style="sessionToolTipBold"> … … 389 389 <!-- ================================ ================================ --> 390 390 <!--<object size="50%+50 4 50%+300 100%-2" name="PhaseTitleBar" type="text" font="serif-bold-stroke-14" textcolor="white"> Death Match :: Village Phase</object>--> 391 392 391 392 393 393 <!-- ================================ ================================ --> 394 394 <!-- ALPHA LABELS (alpha, build time, revision) --> 395 395 <!-- ================================ ================================ --> 396 396 397 397 <!-- Displays Alpha name and number --> 398 398 <object size="70%-128 0 70%+128 100%" name="alphaLabel" type="text" style="CenteredLabelText" text_valign="top" ghost="true"> 399 399 ALPHA VI : Fortuna 400 400 401 401 <!-- Displays build date and revision number--> 402 402 <object size="50%-128 0 50%+128 100%-2" name="buildTimeLabel" type="text" text_align="center" text_valign="bottom" font="serif-12" textcolor="white" ghost="true"> … … 417 417 <action on="Press">openMenu();</action> 418 418 </object> <!-- END OF MENU BUTTON --> 419 419 420 420 </object> <!-- END OF TOP PANEL --> 421 421 … … 451 451 sprite="mapPanel" 452 452 z="20" 453 > 453 > 454 454 <object name="minimap" 455 455 type="minimap" … … 494 494 </object> 495 495 </object> 496 496 497 497 <object name="unitGarrisonPanel" 498 498 size="24 12 100% 100%" … … 535 535 <!-- Unit details for Single Unit --> 536 536 <object size="50%-112 0 50%+112 100%" name="detailsAreaSingle"> 537 537 538 538 <!-- Player Name --> 539 539 <object size="0 0 100% 40" name="player" type="text" style="largeCenteredOutlinedText" tooltip_style="sessionToolTipBold"/> 540 540 541 541 <!-- Stats --> 542 542 <object size="8 36 50%-48 100%" name="statsArea" type="image"> … … 559 559 <object type="image" sprite="glassSquareIcon" ghost="true"/> 560 560 </object> 561 561 562 562 <!-- Stats Bars --> 563 563 <object size= "50%+48 40 100% 136" type="image" tooltip_style="sessionToolTip"> … … 568 568 <object type="image" sprite="statsBarShader" ghost="true"/> 569 569 </object> 570 570 571 571 <!-- Stamina bar --> 572 572 <object size="32 0 44 100%" type="image" name="stamina" tooltip="Stamina" tooltip_style="sessionToolTip"> … … 575 575 <object type="image" sprite="statsBarShader" ghost="true"/> 576 576 </object> 577 577 578 578 <!-- Resource bar --> 579 579 <object size="18 0 30 100%" type="image" name="resources" tooltip="Resources" tooltip_style="sessionToolTip"> … … 582 582 <object type="image" sprite="statsBarShader" ghost="true"/> 583 583 </object> 584 584 585 585 <!-- Experience bar --> 586 586 <object size="46 0 58 100%" type="image" name="experience" tooltip="Experience" tooltip_style="sessionToolTip"> … … 590 590 </object> 591 591 </object> 592 592 593 593 <!-- Specific Name --> 594 594 <object size="0 142 100% 162" name="specific" type="text" style="largeCenteredOutlinedText" tooltip_style="sessionToolTipBold"/> … … 597 597 <!-- Unit details for Multiple Units --> 598 598 <object size="50%-112 0 50%+112 100%" name="detailsAreaMultiple"> 599 599 600 600 <object name="unitSelectionPanel" 601 601 size="20 12 100%-20 100%" … … 611 611 </repeat> 612 612 </object> 613 </object> 613 </object> 614 614 615 615 <!-- Total --> 616 616 <object size="100%-42 12 100%-8 46" type="image" sprite="groupsIcon"> 617 617 <object size="0 0 100% 100%" type="text" style="largeCenteredOutlinedText" name="numberOfUnits"/> 618 </object> 618 </object> 619 619 620 620 <!-- Stats Bars --> … … 626 626 <object type="image" sprite="statsBarShader" ghost="true"/> 627 627 </object> 628 628 629 629 <!-- Stamina bar --> 630 630 <object size="14 0 26 100%" type="image" name="staminaMultiple" tooltip="Stamina" tooltip_style="sessionToolTipBold"> … … 728 728 729 729 </object><!-- END OF BOTTOM PANEL --> 730 730 731 731 </object> <!-- END OF SN OBJECT --> 732 732 733 733 <!-- ================================ ================================ --> 734 734 <!-- Selection bandbox --> … … 750 750 <action on="Press">leaveGame()</action> 751 751 </object> 752 752 753 753 </object> 754 754 -
ps/trunk/binaries/data/mods/public/gui/summary/sprites.xml
r10103 r10130 2 2 3 3 <sprites> 4 <sprite name="bgInfoHeading">5 <image backcolor="255 255 255 30" size="0 0 100% 100%"/>4 <sprite name="TabSpacer"> 5 <image backcolor="gold" size="0 0 100% 100%"/> 6 6 </sprite> 7 8 <sprite name="bgInfoBox"> 9 <image backcolor="50 35 0 100" size="0 0 100% 100%" /> 7 8 <sprite name="ForegroundTab"> 9 <image backcolor="255 255 255 40" size="0 0 100% 100%"/> 10 <image backcolor="gold" size="0 0 2 100%"/> 11 <image backcolor="gold" size="2 0 100%-2 2"/> 12 <image backcolor="gold" size="100%-2 0 100% 100%"/> 13 </sprite> 14 15 <sprite name="BackgroundTab"> 16 <image backcolor="50 35 0 120" size="0 0 100% 100%"/> 17 <image backcolor="gold" size="0 0 1 100%"/> 18 <image backcolor="gold" size="1 0 100%-1 1"/> 19 <image backcolor="gold" size="100%-1 0 100% 100%"/> 20 </sprite> 21 22 <sprite name="ForegroundBody"> 23 <image backcolor="255 255 255 40" size="0 0 100% 100%"/> 24 <image backcolor="gold" size="0 0 2 100%"/> 25 <image backcolor="gold" size="2 100%-2 100%-2 100%"/> 26 <image backcolor="gold" size="100%-2 0 100% 100%"/> 10 27 </sprite> 11 28 </sprites> -
ps/trunk/binaries/data/mods/public/gui/summary/summary.js
r8690 r10130 28 28 { 29 29 getGUIObjectByName(panelNames[i]).hidden = true; 30 getGUIObjectByName(panelButtonNames[i]).sprite = " bgInfoHeading";30 getGUIObjectByName(panelButtonNames[i]).sprite = "BackgroundTab"; 31 31 } 32 32 else 33 { 33 { 34 34 getGUIObjectByName(panelNames[i]).hidden = false; 35 getGUIObjectByName(panelButtonNames[i]).sprite = "bgInfoBox"; 35 getGUIObjectByName(panelButtonNames[i]).sprite = "ForegroundTab"; 36 adjustTabDividers(getGUIObjectByName(panelButtonNames[i]).size); 36 37 } 37 38 } 38 39 } 39 40 41 function adjustTabDividers(tabSize) 42 { 43 var leftSpacer = getGUIObjectByName("tabDividerLeft"); 44 var rightSpacer = getGUIObjectByName("tabDividerRight"); 45 leftSpacer.size = "20 " + leftSpacer.size.top + " " + (tabSize.left + 2) + " " + leftSpacer.size.bottom; 46 rightSpacer.size = (tabSize.right - 2) + " " + rightSpacer.size.top + " 100%-20 " + rightSpacer.size.bottom; 47 } 48 40 49 function init(data) 41 50 { … … 45 54 46 55 getGUIObjectByName("summaryText").caption = data.gameResult; 47 48 // Space player boxes56 57 // Space player boxes 49 58 var boxSpacing = 32; 50 59 for (var i = 0; i < panelNames.length; ++i) 60 { 51 61 for (var j = 0; j < MAX_SLOTS; ++j) 52 62 { … … 58 68 box.size = boxSize; 59 69 } 60 61 // TODO set mapPlayers as playerCounters.length 70 } 71 72 // TODO set maxPlayers as playerCounters.length 62 73 var maxPlayers = data.playerStates.length - 1; 63 64 // align headers65 var left = 50; 74 75 // Align headers 76 var left = 50; 66 77 var width = 100; 67 78 var playerNameHeadingWidth = 200; 68 getGUIObjectByName("playerName0Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;69 getGUIObjectByName("unitsTrainedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;70 getGUIObjectByName("unitsLostHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;71 getGUIObjectByName("enemyUnitsKilledHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;72 getGUIObjectByName("buildingsConstructedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;73 getGUIObjectByName("buildingsLostHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;74 getGUIObjectByName("enemyBuildingsDestroyedHeading").size = left + " 6 " + (left + width) + " 100%"; left += width;75 76 var left = 50;77 getGUIObjectByName("playerName1Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;78 getGUIObjectByName("civCentresBuiltHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;79 getGUIObjectByName("enemyCivCentresDestroyedHeading").size = left + " 6 " + (left + width) + " 100%"; left += width;80 getGUIObjectByName("mapExplorationHeading").size = left + " 6 " + (left + width) + " 100%"; left += width;81 82 var left = 50;83 getGUIObjectByName("playerName2Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;84 getGUIObjectByName("foodGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;85 getGUIObjectByName("vegetarianRatioHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;86 getGUIObjectByName("woodGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;87 getGUIObjectByName("metalGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;88 getGUIObjectByName("stoneGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;89 getGUIObjectByName("treasuresCollectedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;90 79 getGUIObjectByName("playerName0Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth; 80 getGUIObjectByName("unitsTrainedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 81 getGUIObjectByName("unitsLostHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 82 getGUIObjectByName("enemyUnitsKilledHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 83 getGUIObjectByName("buildingsConstructedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 84 getGUIObjectByName("buildingsLostHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 85 getGUIObjectByName("enemyBuildingsDestroyedHeading").size = left + " 6 " + (left + width) + " 100%"; left += width; 86 87 left = 50; 88 getGUIObjectByName("playerName1Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth; 89 getGUIObjectByName("civCentresBuiltHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 90 getGUIObjectByName("enemyCivCentresDestroyedHeading").size = left + " 6 " + (left + width) + " 100%"; left += width; 91 getGUIObjectByName("mapExplorationHeading").size = left + " 6 " + (left + width) + " 100%"; left += width; 92 93 left = 50; 94 getGUIObjectByName("playerName2Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth; 95 getGUIObjectByName("foodGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 96 getGUIObjectByName("vegetarianRatioHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 97 getGUIObjectByName("woodGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 98 getGUIObjectByName("metalGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 99 getGUIObjectByName("stoneGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 100 getGUIObjectByName("treasuresCollectedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width; 101 91 102 // Show counters 92 103 for (var i = 0; i < MAX_SLOTS; ++i) 93 { 104 { 94 105 if (i < maxPlayers) 95 106 { 96 107 var playerState = data.playerStates[i+1]; 97 108 98 109 for (var k = 0; k < panelNames.length; ++k) 99 110 { 100 111 var playerBox = getGUIObjectByName("playerBox"+k+"["+i+"]"); 101 playerBox.hidden = false; 102 103 var colourString = "colour: " 104 + Math.floor(playerState.colour.r * 255) + " " 105 + Math.floor(playerState.colour.g * 255) + " " 112 playerBox.hidden = false; 113 114 var colourString = "colour: " 115 + Math.floor(playerState.colour.r * 255) + " " 116 + Math.floor(playerState.colour.g * 255) + " " 106 117 + Math.floor(playerState.colour.b * 255); 107 118 playerBox.sprite = colourString + " 32"; 108 119 var playerColourBox = getGUIObjectByName("playerColourBox"+k+"["+i+"]"); 109 120 playerColourBox.sprite = colourString + " 255"; 110 121 111 122 var playerName = getGUIObjectByName("playerName"+k+"["+i+"]"); 112 123 playerName.caption = playerState.name; 113 114 124 115 125 getGUIObjectByName("civIcon"+k+"["+i+"]").sprite = "stretched:"+civData[playerState.civ].Emblem; 116 126 } 117 118 var unitsTrained = getGUIObjectByName("unitsTrained["+i+"]");119 var unitsLost = getGUIObjectByName("unitsLost["+i+"]");120 var enemyUnitsKilled = getGUIObjectByName("enemyUnitsKilled["+i+"]");121 var buildingsConstructed = getGUIObjectByName("buildingsConstructed["+i+"]");122 var buildingsLost = getGUIObjectByName("buildingsLost["+i+"]");123 var enemyBuildingsDestroyed = getGUIObjectByName("enemyBuildingsDestroyed["+i+"]");124 125 var civCentresBuilt = getGUIObjectByName("civCentresBuilt["+i+"]");126 var enemyCivCentresDestroyed = getGUIObjectByName("enemyCivCentresDestroyed["+i+"]");127 var mapExploration = getGUIObjectByName("mapExploration["+i+"]");128 129 var foodGathered = getGUIObjectByName("foodGathered["+i+"]");130 var vegetarianRatio = getGUIObjectByName("vegetarianRatio["+i+"]");131 var woodGathered = getGUIObjectByName("woodGathered["+i+"]");132 var metalGathered = getGUIObjectByName("metalGathered["+i+"]");133 var stoneGathered = getGUIObjectByName("stoneGathered["+i+"]");134 var treasuresCollected = getGUIObjectByName("treasuresCollected["+i+"]");135 127 128 var unitsTrained = getGUIObjectByName("unitsTrained["+i+"]"); 129 var unitsLost = getGUIObjectByName("unitsLost["+i+"]"); 130 var enemyUnitsKilled = getGUIObjectByName("enemyUnitsKilled["+i+"]"); 131 var buildingsConstructed = getGUIObjectByName("buildingsConstructed["+i+"]"); 132 var buildingsLost = getGUIObjectByName("buildingsLost["+i+"]"); 133 var enemyBuildingsDestroyed = getGUIObjectByName("enemyBuildingsDestroyed["+i+"]"); 134 135 var civCentresBuilt = getGUIObjectByName("civCentresBuilt["+i+"]"); 136 var enemyCivCentresDestroyed = getGUIObjectByName("enemyCivCentresDestroyed["+i+"]"); 137 var mapExploration = getGUIObjectByName("mapExploration["+i+"]"); 138 139 var foodGathered = getGUIObjectByName("foodGathered["+i+"]"); 140 var vegetarianRatio = getGUIObjectByName("vegetarianRatio["+i+"]"); 141 var woodGathered = getGUIObjectByName("woodGathered["+i+"]"); 142 var metalGathered = getGUIObjectByName("metalGathered["+i+"]"); 143 var stoneGathered = getGUIObjectByName("stoneGathered["+i+"]"); 144 var treasuresCollected = getGUIObjectByName("treasuresCollected["+i+"]"); 145 136 146 // align counters 137 138 varleft = 240;139 varwidth = 100;140 unitsTrained.size = left + " 2 " + (left + width) + " 100%"; left += width;141 unitsLost.size = left + " 2 " + (left + width) + " 100%"; left += width;142 enemyUnitsKilled.size = left + " 2 " + (left + width) + " 100%"; left += width;143 buildingsConstructed.size = left + " 2 " + (left + width) + " 100%"; left += width;144 buildingsLost.size = left + " 2 " + (left + width) + " 100%"; left += width;145 enemyBuildingsDestroyed.size = left + " 2 " + (left + width) + " 100%"; left += width;146 varsize = getGUIObjectByName("playerBox0["+i+"]").size;147 148 left = 240; 149 width = 100; 150 unitsTrained.size = left + " 2 " + (left + width) + " 100%"; left += width; 151 unitsLost.size = left + " 2 " + (left + width) + " 100%"; left += width; 152 enemyUnitsKilled.size = left + " 2 " + (left + width) + " 100%"; left += width; 153 buildingsConstructed.size = left + " 2 " + (left + width) + " 100%"; left += width; 154 buildingsLost.size = left + " 2 " + (left + width) + " 100%"; left += width; 155 enemyBuildingsDestroyed.size = left + " 2 " + (left + width) + " 100%"; left += width; 156 size = getGUIObjectByName("playerBox0["+i+"]").size; 147 157 size.right = left + 10; 148 158 getGUIObjectByName("playerBox0["+i+"]").size = size; 149 150 varleft = 240;151 civCentresBuilt.size = left + " 2 " + (left + width) + " 100%"; left += width;152 enemyCivCentresDestroyed.size = left + " 2 " + (left + width) + " 100%"; left += width;153 mapExploration.size = left + " 2 " + (left + width) + " 100%"; left += width;154 varsize = getGUIObjectByName("playerBox1["+i+"]").size;159 160 left = 240; 161 civCentresBuilt.size = left + " 2 " + (left + width) + " 100%"; left += width; 162 enemyCivCentresDestroyed.size = left + " 2 " + (left + width) + " 100%"; left += width; 163 mapExploration.size = left + " 2 " + (left + width) + " 100%"; left += width; 164 size = getGUIObjectByName("playerBox1["+i+"]").size; 155 165 size.right = left + 10; 156 166 getGUIObjectByName("playerBox1["+i+"]").size = size; 157 158 varleft = 240;159 foodGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;160 vegetarianRatio.size = left + " 2 " + (left + width) + " 100%"; left += width;161 woodGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;162 metalGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;163 stoneGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;167 168 left = 240; 169 foodGathered.size = left + " 2 " + (left + width) + " 100%"; left += width; 170 vegetarianRatio.size = left + " 2 " + (left + width) + " 100%"; left += width; 171 woodGathered.size = left + " 2 " + (left + width) + " 100%"; left += width; 172 metalGathered.size = left + " 2 " + (left + width) + " 100%"; left += width; 173 stoneGathered.size = left + " 2 " + (left + width) + " 100%"; left += width; 164 174 treasuresCollected.size = left + " 2 " + (left + width) + " 100%"; left += width; 165 varsize = getGUIObjectByName("playerBox2["+i+"]").size;175 size = getGUIObjectByName("playerBox2["+i+"]").size; 166 176 size.right = left + 10; 167 177 getGUIObjectByName("playerBox2["+i+"]").size = size; 168 178 169 179 // display counters 170 unitsTrained.caption = playerState.statistics.unitsTrained;171 unitsLost.caption = playerState.statistics.unitsLost;172 enemyUnitsKilled.caption = playerState.statistics.enemyUnitsKilled;173 buildingsConstructed.caption = playerState.statistics.buildingsConstructed;174 buildingsLost.caption = playerState.statistics.buildingsLost;175 enemyBuildingsDestroyed.caption = playerState.statistics.enemyBuildingsDestroyed;176 177 civCentresBuilt.caption = playerState.statistics.civCentresBuilt;178 enemyCivCentresDestroyed.caption = playerState.statistics.enemyCivCentresDestroyed;179 mapExploration.caption = playerState.statistics.percentMapExplored + "%";180 181 foodGathered.caption = playerState.statistics.resourcesGathered.food;182 vegetarianRatio.caption = Math.floor(playerState.statistics.resourcesGathered.food > 0 ?180 unitsTrained.caption = playerState.statistics.unitsTrained; 181 unitsLost.caption = playerState.statistics.unitsLost; 182 enemyUnitsKilled.caption = playerState.statistics.enemyUnitsKilled; 183 buildingsConstructed.caption = playerState.statistics.buildingsConstructed; 184 buildingsLost.caption = playerState.statistics.buildingsLost; 185 enemyBuildingsDestroyed.caption = playerState.statistics.enemyBuildingsDestroyed; 186 187 civCentresBuilt.caption = playerState.statistics.civCentresBuilt; 188 enemyCivCentresDestroyed.caption = playerState.statistics.enemyCivCentresDestroyed; 189 mapExploration.caption = playerState.statistics.percentMapExplored + "%"; 190 191 foodGathered.caption = playerState.statistics.resourcesGathered.food; 192 vegetarianRatio.caption = Math.floor(playerState.statistics.resourcesGathered.food > 0 ? 183 193 (playerState.statistics.resourcesGathered.vegetarianFood / playerState.statistics.resourcesGathered.food) * 100 : 0) + "%"; 184 woodGathered.caption = playerState.statistics.resourcesGathered.wood;185 metalGathered.caption = playerState.statistics.resourcesGathered.metal;186 stoneGathered.caption = playerState.statistics.resourcesGathered.stone;187 treasuresCollected.caption = playerState.statistics.treasuresCollected;194 woodGathered.caption = playerState.statistics.resourcesGathered.wood; 195 metalGathered.caption = playerState.statistics.resourcesGathered.metal; 196 stoneGathered.caption = playerState.statistics.resourcesGathered.stone; 197 treasuresCollected.caption = playerState.statistics.treasuresCollected; 188 198 } 189 199 else … … 197 207 } 198 208 } 199 } 209 210 selectPanel(0); 211 } -
ps/trunk/binaries/data/mods/public/gui/summary/summary.xml
r10122 r10130 10 10 <script file="gui/common/functions_civinfo.js"/> 11 11 <script file="gui/summary/summary.js"/> 12 <object type="image" sprite=" bkFillBlack">12 <object type="image" sprite="BackgroundBlack"> 13 13 14 14 <object type="image" … … 19 19 Summary 20 20 </object> 21 22 <object type="image" sprite=" bgInfoHeading" size="16 16 100%-16 46">23 <object 21 22 <object type="image" sprite="ForegroundBody" size="20 20 100%-20 50"> 23 <object 24 24 name="summaryText" 25 25 type="text" … … 29 29 text_align="center" 30 30 /> 31 32 <object 31 32 <object 33 33 name="timeElapsed" 34 34 type="text" … … 39 39 /> 40 40 </object> 41 42 43 <object name="unitsBuildingsPanelButton" type="button" sprite="bgInfoBox" size="16 75 166 101"> 41 42 <object name="tabDividerLeft" type="image" sprite="TabSpacer" size="172 100 174 102"/> 43 <object name="tabDividerRight" type="image" sprite="TabSpacer" size="328 100 330 102"/> 44 45 <object name="unitsBuildingsPanelButton" type="button" sprite="ForegroundTab" size="20 75 170 100"> 44 46 <action on="Press">selectPanel(0);</action> 45 47 <object type="text" style="TitleText" ghost="true">Units/buildings</object> 46 48 </object> 47 <object name="conquestPanelButton" type="button" sprite="bgInfoHeading" size="172 75 322 101"> 49 50 <object name="conquestPanelButton" type="button" sprite="BackgroundTab" size="176 75 326 100"> 48 51 <action on="Press">selectPanel(1);</action> 49 52 <object type="text" style="TitleText" ghost="true">Conquest</object> 50 53 </object> 51 <object name="resourcesPanelButton" type="button" sprite="bgInfoHeading" size="328 75 476 101"> 54 55 <object name="resourcesPanelButton" type="button" sprite="BackgroundTab" size="332 75 480 100"> 52 56 <action on="Press">selectPanel(2);</action> 53 57 <object type="text" style="TitleText" ghost="true">Resources</object> 54 58 </object> 55 <object name="unitsBuildingsPanel" type="image" sprite="bgInfoBox" size="16 100 100%-16 100%-16"> 56 59 60 <object name="unitsBuildingsPanel" type="image" sprite="ForegroundBody" size="20 100 100%-20 100%-48"> 61 57 62 <object size="0 0 100% 100%-50"> 58 63 <object name="playerName0Heading" type="text" style="LeftTabLabelText"> … … 77 82 Enemy buildings destroyed 78 83 </object> 79 80 </object> 81 84 85 </object> 86 82 87 <object size="0 65 100% 100%-50"> 83 88 <repeat count="8"> … … 95 100 </repeat> 96 101 </object> 97 102 98 103 </object> 99 <object name="conquestPanel" type="image" sprite=" bgInfoBox" size="16 100 100%-16 100%-16" hidden="true">100 104 <object name="conquestPanel" type="image" sprite="ForegroundBody" size="20 100 100%-20 100%-48" hidden="true"> 105 101 106 <object size="0 0 100% 100%-50"> 102 107 <object name="playerName1Heading" type="text" style="LeftTabLabelText"> … … 112 117 Map exploration 113 118 </object> 114 </object> 115 119 </object> 120 116 121 <object size="0 65 100% 100%-50"> 117 122 <repeat count="8"> … … 126 131 </repeat> 127 132 </object> 128 133 129 134 </object> 130 <object name="resourcesPanel" type="image" sprite=" bgInfoBox" size="16 100 100%-16 100%-16" hidden="true">131 135 <object name="resourcesPanel" type="image" sprite="ForegroundBody" size="20 100 100%-20 100%-48" hidden="true"> 136 132 137 <object size="0 0 100% 100%-50"> 133 138 <object name="playerName2Heading" type="text" style="LeftTabLabelText"> … … 152 157 Treasures collected 153 158 </object> 154 </object> 155 159 </object> 160 156 161 <object size="0 65 100% 100%-50"> 157 162 <repeat count="8"> … … 169 174 </repeat> 170 175 </object> 171 176 172 177 </object> 173 178 174 179 <object type="button" style="StoneButton" size="100%-176 100%-48 100%-20 100%-20"> 175 180 Main Menu
Note:
See TracChangeset
for help on using the changeset viewer.
