From b48d192ee923065e07a5ef6d51595e049b3c197f Mon Sep 17 00:00:00 2001 From: elexis Date: Wed, 4 Apr 2018 16:53:31 +0000 Subject: [PATCH] Simplify JS GUI session init. Move all GUI init calls from init to initGUIObjects. Move all GUI logic from init and initGUIObjects to functions called from the latter. This was SVN commit r21657. --- binaries/data/mods/public/gui/session/menu.js | 15 ++-- .../data/mods/public/gui/session/session.js | 89 ++++++++++--------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/binaries/data/mods/public/gui/session/menu.js b/binaries/data/mods/public/gui/session/menu.js index 923c62eedf..314fb2e732 100644 --- a/binaries/data/mods/public/gui/session/menu.js +++ b/binaries/data/mods/public/gui/session/menu.js @@ -74,17 +74,10 @@ var g_SummarySelectedData; // Redefined every time someone makes a tribute (so we can save some data in a closure). Called in input.js handleInputBeforeGui. var g_FlushTributing = function() {}; -function initSessionMenuButtons() -{ - initMenuPosition(); - updateGameSpeedControl(); - resizeDiplomacyDialog(); - resizeTradeDialog(); -} - -function initMenuPosition() +function initMenu() { Engine.GetGUIObjectByName("menu").size = "100%-164 " + MENU_TOP + " 100% " + MENU_BOTTOM; + Engine.GetGUIObjectByName("menuExitButton").enabled = !Engine.IsAtlasRunning(); } function updateMenuPosition(dt) @@ -777,6 +770,8 @@ function updateTraderTexts() */ function barterOpenCommon(resourceCode, idx, prefix) { + g_BarterSell = g_BarterSell || g_ResourceData.GetCodes()[0]; + let barterButton = {}; for (let action of g_BarterActions) barterButton[action] = Engine.GetGUIObjectByName(prefix + action + "Button[" + idx + "]"); @@ -1025,6 +1020,8 @@ function toggleTutorial() function updateGameSpeedControl() { + Engine.GetGUIObjectByName("gameSpeedButton").hidden = g_IsNetworked; + let player = g_Players[Engine.GetPlayerID()]; g_GameSpeeds = getGameSpeedChoices(!player || player.state != "active"); diff --git a/binaries/data/mods/public/gui/session/session.js b/binaries/data/mods/public/gui/session/session.js index 03bbbec9f6..b965f3ea83 100644 --- a/binaries/data/mods/public/gui/session/session.js +++ b/binaries/data/mods/public/gui/session/session.js @@ -269,43 +269,18 @@ function init(initData, hotloadData) if (initData.savedGUIData) restoreSavedGameData(initData.savedGUIData); - - Engine.GetGUIObjectByName("gameSpeedButton").hidden = g_IsNetworked; } else if (g_IsReplay)// Needed for autostart loading option g_PlayerAssignments.local.player = -1; LoadModificationTemplates(); - updatePlayerData(); - - g_BarterSell = g_ResourceData.GetCodes()[0]; - initializeMusic(); // before changing the perspective - - initSessionMenuButtons(); - - for (let slot in Engine.GetGUIObjectByName("panelEntityPanel").children) - initPanelEntities(slot); - - g_DisplayedPlayerColors = g_Players.map(player => player.color); - updateViewedPlayerDropdown(); - - // Select "observer" in the view player dropdown when rejoining as a defeated player - let player = g_Players[Engine.GetPlayerID()]; - Engine.GetGUIObjectByName("viewPlayer").selected = player && player.state == "defeated" ? 0 : Engine.GetPlayerID() + 1; - - // If in Atlas editor, disable the exit button - if (Engine.IsAtlasRunning()) - Engine.GetGUIObjectByName("menuExitButton").enabled = false; + initGUIObjects(); if (hotloadData) g_Selection.selected = hotloadData.selection; - Engine.SetBoundingBoxDebugOverlay(false); - updateEnabledRangeOverlayTypes(); - initChatWindow(); - sendLobbyPlayerlistUpdate(); onSimulationUpdate(); setTimeout(displayGamestateNotifications, 1000); @@ -321,6 +296,19 @@ function init(initData, hotloadData) // setTimeout(function() { reportPerformance(60); }, 60000); } +function initGUIObjects() +{ + initMenu(); + updateGameSpeedControl(); + resizeDiplomacyDialog(); + resizeTradeDialog(); + initPanelEntities(); + initViewedPlayerDropdown(); + initChatWindow(); + Engine.SetBoundingBoxDebugOverlay(false); + updateEnabledRangeOverlayTypes(); +} + function updatePlayerData() { let simState = GetSimState(); @@ -372,16 +360,21 @@ function updatePlayerData() function updateDiplomacyColorsButton() { g_DiplomacyColorsToggle = !g_DiplomacyColorsToggle; + let diplomacyColorsButton = Engine.GetGUIObjectByName("diplomacyColorsButton"); + diplomacyColorsButton.sprite = g_DiplomacyColorsToggle ? "stretched:session/minimap-diplomacy-on.png" : "stretched:session/minimap-diplomacy-off.png"; + diplomacyColorsButton.sprite_over = g_DiplomacyColorsToggle ? "stretched:session/minimap-diplomacy-on-highlight.png" : "stretched:session/minimap-diplomacy-off-highlight.png"; + Engine.GetGUIObjectByName("diplomacyColorsWindowButtonIcon").sprite = g_DiplomacyColorsToggle ? "stretched:session/icons/diplomacy-on.png" : "stretched:session/icons/diplomacy.png"; + updateDisplayedPlayerColors(); } @@ -469,26 +462,27 @@ function updateHotkeyTooltips() }); } -function initPanelEntities(slot) +function initPanelEntities() { - let button = Engine.GetGUIObjectByName("panelEntityButton[" + slot + "]"); + Engine.GetGUIObjectByName("panelEntityPanel").children.forEach((button, slot) => { - button.onPress = function() { - let panelEnt = g_PanelEntities.find(ent => ent.slot !== undefined && ent.slot == slot); - if (!panelEnt) - return; + button.onPress = function() { + let panelEnt = g_PanelEntities.find(ent => ent.slot !== undefined && ent.slot == slot); + if (!panelEnt) + return; - if (!Engine.HotkeyIsPressed("selection.add")) - g_Selection.reset(); + if (!Engine.HotkeyIsPressed("selection.add")) + g_Selection.reset(); - g_Selection.addList([panelEnt.ent]); - }; + g_Selection.addList([panelEnt.ent]); + }; - button.onDoublePress = function() { - let panelEnt = g_PanelEntities.find(ent => ent.slot !== undefined && ent.slot == slot); - if (panelEnt) - selectAndMoveTo(getEntityOrHolder(panelEnt.ent)); - }; + button.onDoublePress = function() { + let panelEnt = g_PanelEntities.find(ent => ent.slot !== undefined && ent.slot == slot); + if (panelEnt) + selectAndMoveTo(getEntityOrHolder(panelEnt.ent)); + }; + }); } /** @@ -513,6 +507,16 @@ function initializeMusic() playAmbient(); } +function initViewedPlayerDropdown() +{ + g_DisplayedPlayerColors = g_Players.map(player => player.color); + updateViewedPlayerDropdown(); + + // Select "observer" in the view player dropdown when rejoining as a defeated player + let player = g_Players[Engine.GetPlayerID()]; + Engine.GetGUIObjectByName("viewPlayer").selected = player && player.state == "defeated" ? 0 : Engine.GetPlayerID() + 1; +} + function updateViewedPlayerDropdown() { let viewPlayer = Engine.GetGUIObjectByName("viewPlayer"); @@ -903,8 +907,7 @@ function confirmExit() closeOpenDialogs(); // Don't ask for exit if other humans are still playing - let isHost = g_IsController && g_IsNetworked; - let askExit = !isHost || isHost && g_Players.every((player, i) => + let askExit = !Engine.HasNetServer() || g_Players.every((player, i) => i == 0 || player.state != "active" || g_GameAttributes.settings.PlayerData[i].AI != "");