Index: binaries/data/config/default.cfg =================================================================== --- binaries/data/config/default.cfg +++ binaries/data/config/default.cfg @@ -154,6 +154,8 @@ ; > DIALOG HOTKEYS summary = "Ctrl+Tab" ; Toggle in-game summary lobby = "Alt+L" ; Show the multiplayer lobby in a dialog window. +structree = "Alt+Shift+S" ; Show structure tree +civinfo = "Alt+Shift+H" ; Show civilization info ; > CLIPBOARD CONTROLS copy = "Ctrl+C" ; Copy to clipboard Index: binaries/data/mods/public/gui/civinfo/civinfo.js =================================================================== --- binaries/data/mods/public/gui/civinfo/civinfo.js +++ binaries/data/mods/public/gui/civinfo/civinfo.js @@ -3,17 +3,28 @@ */ const g_CivData = loadCivData(true, false); +/* + * Callback function on closing gui via Engine.PopGuiPage(). + */ +var g_Callback = ""; + /** * Initialize the dropdown containing all the available civs. */ -function init(settings) +function init(data = {}) { + if (data.callback) + { + g_CallbackSet = true; + g_Callback = data.callback; + } + var civList = Object.keys(g_CivData).map(civ => ({ "name": g_CivData[civ].Name, "code": civ })).sort(sortNameIgnoreCase); var civSelection = Engine.GetGUIObjectByName("civSelection"); civSelection.list = civList.map(civ => civ.name); civSelection.list_data = civList.map(civ => civ.code); - civSelection.selected = 0; + civSelection.selected = data.civ ? civSelection.list_data.indexOf(data.civ) : 0; } /** @@ -79,6 +90,17 @@ return coloredText(string + "\n", "white"); } +function switchToStrucTreePage() +{ + Engine.PopGuiPage(); + Engine.PushGuiPage("page_structree.xml", { "civ": g_SelectedCiv, "callback": g_Callback }); +} + +function close() +{ + closePage({ "civ": g_SelectedCiv, "page": "page_civinfo.xml" }); +} + /** * Updates the GUI after the user selected a civ from dropdown. * @@ -88,6 +110,8 @@ { var civInfo = g_CivData[code]; + g_SelectedCiv = code; + if(!civInfo) error(sprintf("Error loading civ data for \"%(code)s\"", { "code": code })); Index: binaries/data/mods/public/gui/civinfo/civinfo.xml =================================================================== --- binaries/data/mods/public/gui/civinfo/civinfo.xml +++ binaries/data/mods/public/gui/civinfo/civinfo.xml @@ -4,6 +4,19 @@