diff --git a/binaries/data/mods/public/gui/page_session_new.xml b/binaries/data/mods/public/gui/page_session_new.xml index a3ee3cb3a1..b89f45a0c7 100644 --- a/binaries/data/mods/public/gui/page_session_new.xml +++ b/binaries/data/mods/public/gui/page_session_new.xml @@ -4,6 +4,8 @@ common/styles.xml common/sprite1.xml common/init.xml + session_new/sprites.xml + session_new/styles.xml session_new/session.xml common/global.xml diff --git a/binaries/data/mods/public/gui/session_new/session.js b/binaries/data/mods/public/gui/session_new/session.js index 7c588f425d..3c4f8cbc85 100644 --- a/binaries/data/mods/public/gui/session_new/session.js +++ b/binaries/data/mods/public/gui/session_new/session.js @@ -7,47 +7,61 @@ function onSimulationUpdate() { updateDebug(); - updateBuildButton(); + updateUnitDisplay(); } function updateDebug() { var debug = getGUIObjectByName("debug"); var simState = Engine.GuiInterfaceCall("GetSimulationState"); - var text = "Simulation:\n" + uneval(simState); - text += "\n\n"; - for (var ent in g_Selection) - { - var entState = Engine.GuiInterfaceCall("GetEntityState", ent); - text += "Entity "+ent+":\n" + uneval(entState); - text += "\n\n"; - text += "Template:\n" + uneval(Engine.GuiInterfaceCall("GetTemplateData", entState.template)); - } + var text = uneval(simState); debug.caption = text; } -function updateBuildButton() +function updateUnitDisplay() { + var detailsPanel = getGUIObjectByName("unitDetails"); + var commandsPanel = getGUIObjectByName("unitCommands"); + var selection = getEntitySelection(); - if (selection.length) + if (selection.length == 0) { - var entity = Engine.GuiInterfaceCall("GetEntityState", selection[0]); - if (entity.buildEntities && entity.buildEntities.length) - { - var ent = entity.buildEntities[0]; - var template = Engine.GuiInterfaceCall("GetTemplateData", ent); - - var name; - if (template.name.specific && template.name.generic) - name = template.name.specific + " (" + template.name.generic + ")"; - else - name = template.name.specific || template.name.generic; - - getGUIObjectByName("testBuild").caption = "Construct "+name; - getGUIObjectByName("testBuild").onpress = function() { testBuild(ent) }; - getGUIObjectByName("testBuild").hidden = false; - return; - } + detailsPanel.hidden = true; + commandsPanel.hidden = true; + return; } - getGUIObjectByName("testBuild").hidden = true; + + var entState = Engine.GuiInterfaceCall("GetEntityState", selection[0]); + var template = Engine.GuiInterfaceCall("GetTemplateData", entState.template); + + detailsPanel.hidden = false; + detailsPanel.caption = uneval(entState)+"\n\n"+uneval(template); + + commandsPanel.hidden = false; + + var i = 0; + for each (var build in entState.buildEntities) + { + var button = getGUIObjectByName("cButton"+i); + var icon = getGUIObjectByName("cIcon"+i); + + var template = Engine.GuiInterfaceCall("GetTemplateData", build); + + var name; + if (template.name.specific && template.name.generic) + name = template.name.specific + " (" + template.name.generic + ")"; + else + name = template.name.specific || template.name.generic || "???"; + + button.hidden = false; + button.tooltip = "Construct " + name; + button.onpress = (function(b) { return function() { testBuild(b) } })(build); + // (need nested functions to get the closure right) + + icon.sprite = "snPortraitSheetHele"; + icon.cell_id = template.name.icon_cell; + ++i; + } + for (; i < 8; ++i) + getGUIObjectByName("cButton"+i).hidden = true; } diff --git a/binaries/data/mods/public/gui/session_new/session.xml b/binaries/data/mods/public/gui/session_new/session.xml index 626fb31398..00cf2fb3c6 100644 --- a/binaries/data/mods/public/gui/session_new/session.xml +++ b/binaries/data/mods/public/gui/session_new/session.xml @@ -39,15 +39,6 @@ this.hidden = !this.hidden; - - @@ -56,24 +47,105 @@ ["Yes", "No!"], [confirmLeave, null]); ]]> - + + + + [default debug text] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [formation commands] + + + + [stance commands] + + + + + - - - - [default debug text] diff --git a/binaries/data/mods/public/gui/session_new/sprites.xml b/binaries/data/mods/public/gui/session_new/sprites.xml new file mode 100644 index 0000000000..3ad149cb65 --- /dev/null +++ b/binaries/data/mods/public/gui/session_new/sprites.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/binaries/data/mods/public/gui/session_new/styles.xml b/binaries/data/mods/public/gui/session_new/styles.xml new file mode 100644 index 0000000000..196a8b7198 --- /dev/null +++ b/binaries/data/mods/public/gui/session_new/styles.xml @@ -0,0 +1,28 @@ + + + +