diff --git a/binaries/data/mods/public/gui/common/common_sprites.xml b/binaries/data/mods/public/gui/common/common_sprites.xml
index d4e86194fa..f06da89df5 100644
--- a/binaries/data/mods/public/gui/common/common_sprites.xml
+++ b/binaries/data/mods/public/gui/common/common_sprites.xml
@@ -741,4 +741,17 @@
/>
+
+
+
+
+
+
diff --git a/binaries/data/mods/public/gui/common/common_styles.xml b/binaries/data/mods/public/gui/common/common_styles.xml
index 8cbebd987b..b1dc017ac7 100644
--- a/binaries/data/mods/public/gui/common/common_styles.xml
+++ b/binaries/data/mods/public/gui/common/common_styles.xml
@@ -304,4 +304,14 @@
tooltip_style="pgToolTip"
/>
+
+
diff --git a/binaries/data/mods/public/gui/pregame/mainmenu.xml b/binaries/data/mods/public/gui/pregame/mainmenu.xml
index 81e0000ef9..cc11939e57 100644
--- a/binaries/data/mods/public/gui/pregame/mainmenu.xml
+++ b/binaries/data/mods/public/gui/pregame/mainmenu.xml
@@ -175,7 +175,7 @@
closeMenu();
diff --git a/binaries/data/mods/public/gui/session/menu.js b/binaries/data/mods/public/gui/session/menu.js
index e4ed936fe9..7fba100360 100644
--- a/binaries/data/mods/public/gui/session/menu.js
+++ b/binaries/data/mods/public/gui/session/menu.js
@@ -616,6 +616,18 @@ function toggleGameSpeed()
gameSpeed.hidden = !gameSpeed.hidden;
}
+function openStrucTree()
+{
+ closeMenu();
+ closeOpenDialogs();
+ pauseGame();
+ var data = { // TODO add info about researched techs and unlocked entities
+ "civ" : g_Players[Engine.GetPlayerID()].civ,
+ "callback": "resumeGame",
+ };
+ Engine.PushGuiPage("page_structree.xml", data);
+}
+
/**
* Pause the game in single player mode.
*/
diff --git a/binaries/data/mods/public/gui/session/session.js b/binaries/data/mods/public/gui/session/session.js
index 50006d53fe..1b625f3a90 100644
--- a/binaries/data/mods/public/gui/session/session.js
+++ b/binaries/data/mods/public/gui/session/session.js
@@ -186,9 +186,10 @@ function init(initData, hotloadData)
}
else
{
+ var civName = g_CivData[g_Players[Engine.GetPlayerID()].civ].Name;
// TODO: Get a civ icon for gaia/observers.
Engine.GetGUIObjectByName("civIcon").sprite = "stretched:" + g_CivData[g_Players[Engine.GetPlayerID()].civ].Emblem;
- Engine.GetGUIObjectByName("civIcon").tooltip = g_CivData[g_Players[Engine.GetPlayerID()].civ].Name;
+ Engine.GetGUIObjectByName("civIconOverlay").tooltip = sprintf(translate("%(civ)s - Structure Tree"), {"civ": civName});
}
g_GameSpeeds = initGameSpeeds();
@@ -249,8 +250,9 @@ function selectViewPlayer(playerID)
Engine.SetPlayerID(playerID);
if (playerID > 0)
{
+ var civName = g_CivData[g_Players[playerID].civ].Name
Engine.GetGUIObjectByName("civIcon").sprite = "stretched:" + g_CivData[g_Players[playerID].civ].Emblem;
- Engine.GetGUIObjectByName("civIcon").tooltip = g_CivData[g_Players[playerID].civ].Name;
+ Engine.GetGUIObjectByName("civIconOverlay").tooltip = sprintf(translate("%(civ)s - Structure Tree"), {"civ": civName});
}
}
diff --git a/binaries/data/mods/public/gui/session/top_panel/civ_icon.xml b/binaries/data/mods/public/gui/session/top_panel/civ_icon.xml
index f255cfa82e..7883610371 100644
--- a/binaries/data/mods/public/gui/session/top_panel/civ_icon.xml
+++ b/binaries/data/mods/public/gui/session/top_panel/civ_icon.xml
@@ -1,2 +1,11 @@
-
+
+
diff --git a/binaries/data/mods/public/gui/structree/structree.js b/binaries/data/mods/public/gui/structree/structree.js
index 27b495dc30..39fa1f87e3 100644
--- a/binaries/data/mods/public/gui/structree/structree.js
+++ b/binaries/data/mods/public/gui/structree/structree.js
@@ -7,12 +7,12 @@ var g_ParsedData = {
var g_Lists = {};
var g_CivData = {};
var g_SelectedCiv = "";
-
+var g_CallbackSet = false;
/**
* Initialize the dropdown containing all the available civs
*/
-function init()
+function init(data)
{
g_CivData = loadCivData(true);
@@ -24,14 +24,21 @@ function init()
// Alphabetically sort the list, ignoring case
civList.sort(sortNameIgnoreCase);
- var civListNames = [ civ.name for each (civ in civList) ];
- var civListCodes = [ civ.code for each (civ in civList) ];
-
// Set civ control
var civSelection = Engine.GetGUIObjectByName("civSelection");
- civSelection.list = civListNames;
- civSelection.list_data = civListCodes;
- civSelection.selected = 0;
+ civSelection.list = civList.map(c => c.name);
+ civSelection.list_data = civList.map(c => c.code);
+
+ if(data.civ)
+ {
+ civSelection.selected = civSelection.list_data.indexOf(data.civ);
+ selectCiv(data.civ);
+ }
+ else
+ civSelection.selected = 0;
+
+ if (data.callback)
+ g_CallbackSet = true;
}
function selectCiv(civCode)
@@ -248,3 +255,11 @@ function selectCiv(civCode)
// Draw tree
draw();
}
+
+function closeStrucTree()
+{
+ if (g_CallbackSet)
+ Engine.PopGuiPageCB(0);
+ else
+ Engine.PopGuiPage();
+}
diff --git a/binaries/data/mods/public/gui/structree/structree.xml b/binaries/data/mods/public/gui/structree/structree.xml
index 138372ece9..93646930b1 100644
--- a/binaries/data/mods/public/gui/structree/structree.xml
+++ b/binaries/data/mods/public/gui/structree/structree.xml
@@ -87,7 +87,7 @@
size="100%-164 100%-44 100%-16 100%-16"
>
Close
- Engine.PopGuiPage();
+ closeStrucTree();