diff --git a/Config/XUi_InGame/windows.xml b/Config/XUi_InGame/windows.xml
index 43e0b1c..1f688c4 100644
--- a/Config/XUi_InGame/windows.xml
+++ b/Config/XUi_InGame/windows.xml
@@ -133,16 +133,27 @@
просвечивают обоями чертогов - красные заголовки сливались, картинка была полупрозрачной. -->
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/HarmonySrc/NecroTome.cs b/HarmonySrc/NecroTome.cs
index 64732f3..d40bd72 100644
--- a/HarmonySrc/NecroTome.cs
+++ b/HarmonySrc/NecroTome.cs
@@ -143,9 +143,12 @@ namespace NecromancerTome
[Preserve]
public class XUiC_NecroTome : XUiController
{
- /// Кнопок глав на странице оглавления (btnCh1..10 в windows.xml). Глав будет много (указание 10.10) -
- /// оглавление листается теми же «Назад/Далее», что и главы.
- const int MaxButtons = 10;
+ /// Кнопки глав в оглавлении (btnCh1..20 в windows.xml). Глав будет много (указание 10.10): до Rows - один
+ /// столбец по центру, больше - два столбца по Rows («я бы их сделал в две колонки»), ещё больше - страницы,
+ /// листаются теми же «Назад/Далее», что и главы.
+ const int MaxButtons = 20, Rows = 10;
+ /// Места кнопок (windows.xml: ширина 560, шаг строк 60 от y -130): столбец по центру окна 1300 и два столбца.
+ const int ColCenterX = 370, ColLeftX = 60, ColRightX = 680, RowTopY = -130, RowStep = 60;
XUiV_Label _title, _text, _page;
XUiV_Texture _img;
@@ -216,16 +219,21 @@ namespace NecromancerTome
_open.Add(c);
}
}
- int pages = Mathf.Max(1, (_open.Count + MaxButtons - 1) / MaxButtons);
+ bool twoCols = _open.Count > Rows;
+ int perPage = twoCols ? MaxButtons : Rows;
+ int pages = Mathf.Max(1, (_open.Count + perPage - 1) / perPage);
_tocPage = Mathf.Clamp(_p, 0, pages - 1);
int b = 0;
- for (int i = _tocPage * MaxButtons; i < _open.Count && b < MaxButtons; i++)
+ for (int i = _tocPage * perPage; i < _open.Count && b < perPage; i++)
{
int c = _open[i];
NecroTomeBook.Chapter ch = NecroTomeBook.Chapters[c];
_buttonChapter[b] = c;
if (_chapterButtons[b] != null)
{
+ // Сначала левый столбец сверху вниз, потом правый.
+ int x = !twoCols ? ColCenterX : b < Rows ? ColLeftX : ColRightX;
+ _chapterButtons[b].ViewComponent.Position = new Vector2i(x, RowTopY - RowStep * (b % Rows));
_chapterButtons[b].Text = Localization.Get(ch.TitleKey);
_chapterButtons[b].ViewComponent.IsVisible = true;
}