Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/public/gui/summary/summary.js
Show First 20 Lines • Show All 119 Lines • ▼ Show 20 Lines | |||||
// Selected chart indexes | // Selected chart indexes | ||||
var g_SelectedChart = { | var g_SelectedChart = { | ||||
"category": [0, 0], | "category": [0, 0], | ||||
"value": [0, 0], | "value": [0, 0], | ||||
"type": [0, 0] | "type": [0, 0] | ||||
}; | }; | ||||
/* | |||||
* Array of the panel button names. | |||||
*/ | |||||
var g_PanelButtons = []; | |||||
/* | |||||
* Remember the name of the currently opened view panel. | |||||
*/ | |||||
var g_SelectedPanel = ""; | |||||
function init(data) | function init(data) | ||||
{ | { | ||||
// Fill globals | // Fill globals | ||||
g_GameData = data; | g_GameData = data; | ||||
g_ScorePanelsData = getScorePanelsData(); | g_ScorePanelsData = getScorePanelsData(); | ||||
g_PanelButtons = Object.keys(g_ScorePanelsData).concat(["charts"]).map(panel => panel + "PanelButton"); | |||||
g_SelectedPanel = g_PanelButtons[0]; | |||||
if (data && data.selectedData) | |||||
{ | |||||
g_SelectedPanel = data.selectedData.panel; | |||||
g_SelectedChart = data.selectedData.charts; | |||||
} | |||||
initTeamData(); | initTeamData(); | ||||
calculateTeamCounterDataHelper(); | calculateTeamCounterDataHelper(); | ||||
// Output globals | // Output globals | ||||
initPlayerBoxPositions(); | initPlayerBoxPositions(); | ||||
initGUICharts(); | initGUICharts(); | ||||
initGUILabelsAndButtons(); | initGUILabelsAndButtons(); | ||||
selectPanel(Engine.GetGUIObjectByName("scorePanelButton")); | selectPanel(Engine.GetGUIObjectByName(g_SelectedPanel)); | ||||
for (let button of g_PanelButtons) | |||||
{ | |||||
let tab = Engine.GetGUIObjectByName(button); | |||||
tab.onMouseWheelUp = () => selectNextTab(1); | |||||
tab.onMouseWheelDown = () => selectNextTab(-1); | |||||
} | |||||
} | |||||
/* | |||||
* Show next/previous panel. | |||||
* @param direction - 1/-1 forward, backward panel. | |||||
*/ | |||||
function selectNextTab(direction) | |||||
{ | |||||
selectPanel(Engine.GetGUIObjectByName(g_PanelButtons[ | |||||
(g_PanelButtons.indexOf(g_SelectedPanel) + direction + g_PanelButtons.length) % g_PanelButtons.length])); | |||||
} | } | ||||
function selectPanel(panel) | function selectPanel(panel) | ||||
{ | { | ||||
// TODO: move panel buttons to a custom parent object | // TODO: move panel buttons to a custom parent object | ||||
for (let button of Engine.GetGUIObjectByName("summaryWindow").children) | for (let button of Engine.GetGUIObjectByName("summaryWindow").children) | ||||
if (button.name.endsWith("PanelButton")) | if (button.name.endsWith("PanelButton")) | ||||
button.sprite = "ModernTabHorizontalBackground"; | button.sprite = "ModernTabHorizontalBackground"; | ||||
panel.sprite = "ModernTabHorizontalForeground"; | panel.sprite = "ModernTabHorizontalForeground"; | ||||
adjustTabDividers(panel.size); | adjustTabDividers(panel.size); | ||||
let generalPanel = Engine.GetGUIObjectByName("generalPanel"); | let generalPanel = Engine.GetGUIObjectByName("generalPanel"); | ||||
let chartsPanel = Engine.GetGUIObjectByName("chartsPanel"); | let chartsPanel = Engine.GetGUIObjectByName("chartsPanel"); | ||||
let chartsHidden = panel.name != "chartsPanelButton"; | let chartsHidden = panel.name != "chartsPanelButton"; | ||||
generalPanel.hidden = !chartsHidden; | generalPanel.hidden = !chartsHidden; | ||||
chartsPanel.hidden = chartsHidden; | chartsPanel.hidden = chartsHidden; | ||||
if (chartsHidden) | if (chartsHidden) | ||||
updatePanelData(g_ScorePanelsData[panel.name.substr(0, panel.name.length - "PanelButton".length)]); | updatePanelData(g_ScorePanelsData[panel.name.substr(0, panel.name.length - "PanelButton".length)]); | ||||
else | else | ||||
[0, 1].forEach(updateCategoryDropdown); | [0, 1].forEach(updateCategoryDropdown); | ||||
g_SelectedPanel = panel.name; | |||||
} | } | ||||
function initGUICharts() | function initGUICharts() | ||||
{ | { | ||||
let player_colors = []; | let player_colors = []; | ||||
for (let i = 1; i <= g_PlayerCount; ++i) | for (let i = 1; i <= g_PlayerCount; ++i) | ||||
{ | { | ||||
let playerState = g_GameData.sim.playerStates[i]; | let playerState = g_GameData.sim.playerStates[i]; | ||||
▲ Show 20 Lines • Show All 218 Lines • ▼ Show 20 Lines | messageBox( | ||||
[null, startReplay] | [null, startReplay] | ||||
); | ); | ||||
else | else | ||||
startReplay(); | startReplay(); | ||||
} | } | ||||
function continueButton() | function continueButton() | ||||
{ | { | ||||
let summarySelectedData = { | |||||
"panel": g_SelectedPanel, | |||||
"charts": g_SelectedChart | |||||
}; | |||||
if (g_GameData.gui.isInGame) | if (g_GameData.gui.isInGame) | ||||
Engine.PopGuiPageCB(0); | Engine.PopGuiPageCB({ | ||||
"explicitResume": 0, | |||||
"summarySelectedData": summarySelectedData | |||||
}); | |||||
else if (g_GameData.gui.isReplay) | else if (g_GameData.gui.isReplay) | ||||
Engine.SwitchGuiPage("page_replaymenu.xml", { | Engine.SwitchGuiPage("page_replaymenu.xml", { | ||||
"replaySelectionData": g_GameData.gui.replaySelectionData | "replaySelectionData": g_GameData.gui.replaySelectionData, | ||||
"summarySelectedData": summarySelectedData | |||||
}); | }); | ||||
else if (Engine.HasXmppClient()) | else if (Engine.HasXmppClient()) | ||||
Engine.SwitchGuiPage("page_lobby.xml"); | Engine.SwitchGuiPage("page_lobby.xml"); | ||||
else | else | ||||
Engine.SwitchGuiPage("page_pregame.xml"); | Engine.SwitchGuiPage("page_pregame.xml"); | ||||
} | } | ||||
function startReplay() | function startReplay() | ||||
▲ Show 20 Lines • Show All 88 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator