Index: binaries/data/config/default.cfg =================================================================== --- binaries/data/config/default.cfg +++ binaries/data/config/default.cfg @@ -304,6 +304,7 @@ toggle = "Alt+G" ; Toggle visibility of session GUI menu.toggle = "F10" ; Toggle in-game menu barter.toggle = "Ctrl+B" ; Toggle in-game barter/trade page +summary.toggle = "Shift+Tab" ; Toggle in-game summary [hotkey.session.savedgames] delete = Delete ; Delete the selected saved game asking confirmation @@ -323,6 +324,9 @@ fastforward = Space ; If timewarp mode enabled, speed up the game rewind = Backspace ; If timewarp mode enabled, go back to earlier point in the game +[hotkey.summary] +nextpanel = "Tab" ; show next panel in summary screen + [hotkey.text] ; > GUI TEXTBOX HOTKEYS delete.left = "Ctrl+Backspace" ; Delete word to the left of cursor delete.right = "Ctrl+Del" ; Delete word to the right of cursor Index: binaries/data/mods/public/gui/replaymenu/replay_menu.xml =================================================================== --- binaries/data/mods/public/gui/replaymenu/replay_menu.xml +++ binaries/data/mods/public/gui/replaymenu/replay_menu.xml @@ -254,7 +254,7 @@ - + Summary showReplaySummary(); Index: binaries/data/mods/public/gui/session/hotkeys/misc.xml =================================================================== --- binaries/data/mods/public/gui/session/hotkeys/misc.xml +++ binaries/data/mods/public/gui/session/hotkeys/misc.xml @@ -28,6 +28,10 @@ toggleTrade(); + + openGameSummary(); + + toggleConfigBool("silhouettes"); Index: binaries/data/mods/public/gui/session/menu.js =================================================================== --- binaries/data/mods/public/gui/session/menu.js +++ binaries/data/mods/public/gui/session/menu.js @@ -58,6 +58,8 @@ // 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() {}; +let g_SummaryViewPanel = ""; + // Ignore size defined in XML and set the actual menu size here function initMenuPosition() { @@ -1030,7 +1032,8 @@ "gui": { "isInGame": true }, - "callback": "resumeGame" + "viewPanel": g_SummaryViewPanel, + "callback": "resumeGameAndSaveSummaryViewPanel" }); } @@ -1078,6 +1081,12 @@ pauseGame(false, explicit); } +function resumeGameAndSaveSummaryViewPanel(data) +{ + g_SummaryViewPanel = data.viewPanel; + resumeGame(data.explicitResume); +} + /** * Called when the current player toggles a pause button. */ Index: binaries/data/mods/public/gui/summary/summary.js =================================================================== --- binaries/data/mods/public/gui/summary/summary.js +++ binaries/data/mods/public/gui/summary/summary.js @@ -115,6 +115,24 @@ "type": [0, 0] }; +// remember current selected view panel +let g_ViewPanel = ""; + +function nextPanel() +{ + let panel = Object.keys(g_ScorePanelsData)[0]; + if (g_ViewPanel != "") + for (let i in Object.keys(g_ScorePanelsData)) + if (Object.keys(g_ScorePanelsData)[i]+"PanelButton" == g_ViewPanel) + { + panel = +i+1 >= Object.keys(g_ScorePanelsData).length ? "charts" : + Object.keys(g_ScorePanelsData)[++i]; + break; + } + + selectPanel(Engine.GetGUIObjectByName(panel + "PanelButton")); +} + function selectPanel(panel) { // TODO: move panel buttons to a custom parent object @@ -136,6 +154,7 @@ updatePanelData(g_ScorePanelsData[panel.name.substr(0, panel.name.length - "PanelButton".length)]); else [0, 1].forEach(updateCategoryDropdown); + g_ViewPanel = panel.name; } function initCharts() @@ -370,10 +389,11 @@ function continueButton() { if (g_GameData.gui.isInGame) - Engine.PopGuiPageCB(0); + Engine.PopGuiPageCB({"explicitResume": 0, "viewPanel": g_ViewPanel}); else if (g_GameData.gui.isReplay) Engine.SwitchGuiPage("page_replaymenu.xml", { - "replaySelectionData": g_GameData.gui.replaySelectionData + "replaySelectionData": g_GameData.gui.replaySelectionData, + "summaryViewPanel": g_ViewPanel }); else if (Engine.HasXmppClient()) Engine.SwitchGuiPage("page_lobby.xml"); @@ -412,6 +432,9 @@ g_GameData = data; let assignedState = g_GameData.sim.playerStates[g_GameData.gui.assignedPlayer || -1]; + if (data && data.viewPanel) + g_ViewPanel = data.viewPanel; + Engine.GetGUIObjectByName("summaryText").caption = g_GameData.gui.isInGame ? translate("Current Scores") : @@ -475,5 +498,5 @@ calculateTeamCounterDataHelper(); initCharts(); - selectPanel(Engine.GetGUIObjectByName("scorePanelButton")); + selectPanel(Engine.GetGUIObjectByName(g_ViewPanel != "" ? g_ViewPanel : "scorePanelButton")); } Index: binaries/data/mods/public/gui/summary/summary.xml =================================================================== --- binaries/data/mods/public/gui/summary/summary.xml +++ binaries/data/mods/public/gui/summary/summary.xml @@ -15,6 +15,14 @@