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"
>
Index: binaries/data/mods/public/gui/session/unit_commands.js
===================================================================
--- binaries/data/mods/public/gui/session/unit_commands.js
+++ binaries/data/mods/public/gui/session/unit_commands.js
@@ -17,6 +17,8 @@
"Upgrade": 0
};
+var g_IsFirstCommandPage = true;
+
/**
* Set the position of a panel object according to the index,
* from left to right, from top to bottom.