forked from mirrors/0ad
Add structure tree to the game session. Based on patch by Louhike. Fixes #3101
This was SVN commit r16610.
This commit is contained in:
@@ -741,4 +741,17 @@
|
||||
/>
|
||||
</sprite>
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
CIV ICON
|
||||
==========================================
|
||||
-->
|
||||
|
||||
<sprite name="CivIconOver">
|
||||
<image
|
||||
texture="session/portraits/emblems/states/hover.png"
|
||||
size="0 0 100% 100%"
|
||||
/>
|
||||
</sprite>
|
||||
|
||||
</sprites>
|
||||
|
||||
@@ -304,4 +304,14 @@
|
||||
tooltip_style="pgToolTip"
|
||||
/>
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
CIV ICON
|
||||
==========================================
|
||||
-->
|
||||
<style name="CivIconOverlay"
|
||||
sprite=""
|
||||
sprite_over="CivIconOver"
|
||||
sound_pressed="audio/interface/ui/ui_button_click.ogg"
|
||||
/>
|
||||
</styles>
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
<action on="Press">
|
||||
closeMenu();
|
||||
<![CDATA[
|
||||
Engine.PushGuiPage("page_structree.xml");
|
||||
Engine.PushGuiPage("page_structree.xml", {});
|
||||
]]>
|
||||
</action>
|
||||
</object>
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,2 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<object size="50%-48 -26 50%+48 70" name="civIcon" type="image" tooltip_style="sessionToolTipBold"/>
|
||||
|
||||
<object type="button"
|
||||
size="50%-48 -26 50%+48 70"
|
||||
name="civIcon"
|
||||
tooltip_style="sessionToolTipBold"
|
||||
>
|
||||
<object name="civIconOverlay" style="CivIconOverlay" size="0 0 100% 100%" type="button">
|
||||
<action on="Press">openStrucTree()</action>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
size="100%-164 100%-44 100%-16 100%-16"
|
||||
>
|
||||
<translatableAttribute id="caption">Close</translatableAttribute>
|
||||
<action on="Press">Engine.PopGuiPage();</action>
|
||||
<action on="Press">closeStrucTree();</action>
|
||||
</object>
|
||||
|
||||
</object>
|
||||
|
||||
Reference in New Issue
Block a user