From 2b31ebad0dd0bca24269db7e7660e089b5bbab39 Mon Sep 17 00:00:00 2001 From: elexis Date: Mon, 27 Nov 2017 17:35:55 +0000 Subject: [PATCH] Cleanup summary screen init. First fill all global helper variables before pushing the data to the GUI (IPO model). init should always be the first function declaration in a file. Split and rename init functions. Fill g_ScorePanelsData from init so that it becomes independent from the file include order. Include all files of the summary directory instead of each file individually, as in D619. This was SVN commit r20538. --- .../data/mods/public/gui/summary/layout.js | 4 +- .../data/mods/public/gui/summary/summary.js | 39 ++++++++++++------- .../data/mods/public/gui/summary/summary.xml | 7 +--- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/binaries/data/mods/public/gui/summary/layout.js b/binaries/data/mods/public/gui/summary/layout.js index 347d12cc69..983d1329f8 100644 --- a/binaries/data/mods/public/gui/summary/layout.js +++ b/binaries/data/mods/public/gui/summary/layout.js @@ -1,4 +1,4 @@ -var g_ScorePanelsData = { +var getScorePanelsData = () => ({ "score": { "caption": translate("Score"), "headings": [ @@ -208,7 +208,7 @@ var g_ScorePanelsData = { ], "teamCounterFn": calculateMiscellaneousTeam } -}; +}); function getColoredTypeTranslation(type) { diff --git a/binaries/data/mods/public/gui/summary/summary.js b/binaries/data/mods/public/gui/summary/summary.js index 22c8fb4cef..1b543afc56 100644 --- a/binaries/data/mods/public/gui/summary/summary.js +++ b/binaries/data/mods/public/gui/summary/summary.js @@ -1,10 +1,12 @@ const g_CivData = loadCivData(false, false); +var g_ScorePanelsData; + var g_MaxHeadingTitle = 9; var g_LongHeadingWidth = 250; var g_PlayerBoxYSize = 40; var g_PlayerBoxGap = 2; -var g_PlayerBoxAlpha = " 50"; +var g_PlayerBoxAlpha = 50; var g_TeamsBoxYStart = 40; var g_TypeColors = { @@ -125,6 +127,21 @@ var g_SelectedChart = { "type": [0, 0] }; +function init(data) +{ + // Fill globals + g_GameData = data; + g_ScorePanelsData = getScorePanelsData(); + initTeamData(); + calculateTeamCounterDataHelper(); + + // Output globals + initPlayerBoxPositions(); + initGUICharts(); + initGUILabelsAndButtons(); + selectPanel(Engine.GetGUIObjectByName("scorePanelButton")); +} + function selectPanel(panel) { // TODO: move panel buttons to a custom parent object @@ -148,7 +165,7 @@ function selectPanel(panel) [0, 1].forEach(updateCategoryDropdown); } -function initCharts() +function initGUICharts() { let player_colors = []; for (let i = 1; i <= g_PlayerCount; ++i) @@ -161,9 +178,8 @@ function initCharts() ); } - [0, 1].forEach(i => { + for (let i = 0; i < 2; ++i) Engine.GetGUIObjectByName("chart[" + i + "]").series_color = player_colors; - }); let chartLegend = Engine.GetGUIObjectByName("chartLegend"); chartLegend.caption = g_GameData.sim.playerStates.slice(1).map( @@ -343,7 +359,7 @@ function updatePanelData(panelInfo) let rowPlayerObject = Engine.GetGUIObjectByName(rowPlayer); rowPlayerObject.hidden = false; - rowPlayerObject.sprite = colorString + g_PlayerBoxAlpha; + rowPlayerObject.sprite = colorString + " " + g_PlayerBoxAlpha; let boxSize = rowPlayerObject.size; boxSize.right = rowPlayerObjectWidth; @@ -419,9 +435,8 @@ function startReplay() }); } -function init(data) +function initGUILabelsAndButtons() { - g_GameData = data; let assignedState = g_GameData.sim.playerStates[g_GameData.gui.assignedPlayer || -1]; Engine.GetGUIObjectByName("summaryText").caption = @@ -439,8 +454,6 @@ function init(data) translate("You have been defeated...") : translate("You have abandoned the game."); - initPlayerBoxPositions(); - Engine.GetGUIObjectByName("timeElapsed").caption = sprintf( translate("Game time elapsed: %(time)s"), { "time": timeToString(g_GameData.sim.timeElapsed) @@ -456,7 +469,10 @@ function init(data) }); Engine.GetGUIObjectByName("replayButton").hidden = g_GameData.gui.isInGame || !g_GameData.gui.replayDirectory; +} +function initTeamData() +{ // Panels g_PlayerCount = g_GameData.sim.playerStates.length - 1; @@ -481,9 +497,4 @@ function init(data) if (!g_Teams) for (let p = 0; p < g_PlayerCount; ++p) g_GameData.sim.playerStates[p+1].team = -1; - - calculateTeamCounterDataHelper(); - - initCharts(); - selectPanel(Engine.GetGUIObjectByName("scorePanelButton")); } diff --git a/binaries/data/mods/public/gui/summary/summary.xml b/binaries/data/mods/public/gui/summary/summary.xml index 40b09af93e..467410b922 100644 --- a/binaries/data/mods/public/gui/summary/summary.xml +++ b/binaries/data/mods/public/gui/summary/summary.xml @@ -3,12 +3,7 @@