Index: binaries/data/mods/public/gui/session/selection_panels.js =================================================================== --- binaries/data/mods/public/gui/session/selection_panels.js +++ binaries/data/mods/public/gui/session/selection_panels.js @@ -125,7 +125,7 @@ g_SelectionPanels.Command = { "getMaxNumberOfItems": function() { - return 6; + return 12; }, "getItems": function(unitEntStates) { @@ -162,6 +162,7 @@ data.icon.sprite = "stretched:session/icons/" + data.item.icon; + let buttonsPerPage = this.getMaxNumberOfItems()/2; let size = data.button.size; // count on square buttons, so size.bottom is the width too let spacer = size.bottom + 1; @@ -169,9 +170,19 @@ size.rleft = 50; size.rright = 50; // offset from the center calculation - size.left = (data.i - data.numberOfItems / 2) * spacer; + size.left = (data.i % buttonsPerPage - Math.min(data.numberOfItems, buttonsPerPage) / 2) * spacer; size.right = size.left + size.bottom; data.button.size = size; + + data.button.hidden = g_IsFirstCommandPage == (data.i >= this.getMaxNumberOfItems()/2); + + let fitsOnePage = data.numberOfItems <= buttonsPerPage; + if (fitsOnePage) + g_IsFirstCommandPage = true; + + Engine.GetGUIObjectByName("unitCommandArrowN").hidden = fitsOnePage || !g_IsFirstCommandPage; + Engine.GetGUIObjectByName("unitCommandArrowP").hidden = fitsOnePage || g_IsFirstCommandPage; + return true; } }; Index: binaries/data/mods/public/gui/session/selection_panels_middle/unit_commands.xml =================================================================== --- binaries/data/mods/public/gui/session/selection_panels_middle/unit_commands.xml +++ binaries/data/mods/public/gui/session/selection_panels_middle/unit_commands.xml @@ -6,12 +6,18 @@ z="30" > - -