Экран отряда: подсказка не закрывает статы, имена не режутся

Подсказка вставала НИЖЕ курсора и ложилась ровно на строки
характеристик - те самые, которые объясняет: игрок наводил на броню,
чтобы понять, откуда 28%, и подсказка закрывала строку ARMOR. Теперь
она встаёт выше курсора, там пусто.

Ячейка схрона была 52 пикселя: в неё не влезало даже слово BATTERY, и
половина имён обрезалась на середине. Шесть колонок вместо восьми -
читаемость важнее двух лишних ячеек, прокрутка и так есть.

Сумка вне вылазки честно подписана RAID ONLY: она принадлежит забегу и
очищается при сборке этажа, а молчащий отказ читается как поломка.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
z.kirill 2026-08-17 05:27:22 +03:00
parent 9d715a9c3a
commit da670af6dc
13 changed files with 161 additions and 146 deletions

View File

@ -1,9 +1,10 @@
# Открытая арена с четырьмя опорами. Здесь работает решатель огневых позиций: # Открытая арена с четырьмя опорами. Здесь работает решатель огневых позиций:
# места хватает, и отряд обязан разойтись по линиям, а не сбиться в кучу. # места хватает, и отряд обязан разойтись по линиям, а не сбиться в кучу.
# #
# Опоры стали ОДНОРЯДНЫМИ вместо блоков 2x2, а сама арена сузилась до 12: блок # Опоры отодвинуты В УГЛЫ и стали однорядными. Причина не в красоте: строй из
# отнимал у центра столько пола, что пятеро вставали в него впритык и переставали # пяти занимает поперёк почти четыре тайла, и опора, стоявшая у самого прохода,
# расходиться. Укрытие нужно, чтобы за него зайти, а не чтобы об него спотыкаться. # ловила крайнего бойца намертво — упереться в неё он мог, а обойти нет.
# Полоса пола между дверями противоположных стен обязана быть шире строя.
name arena name arena
size 12 12 size 12 12
weight 3 weight 3
@ -12,20 +13,20 @@ start 0
depth 1 0 depth 1 0
tiles tiles
####+++##### ####+++#####
#..........# #.#......#.#
#..........# #.#......#.#
#..##..##..#
#..........# #..........#
+..........+ +..........+
+..........+ +..........+
+..........+ +..........+
#..........# #..........#
#..##..##..#
#..........# #..........#
#.#......#.#
#.#......#.#
####+++##### ####+++#####
spawn 4 4 0.90 shambler:4 rusher:3 spitter:2 spawn 4 5 0.90 shambler:4 rusher:3 spitter:2
spawn 9 4 0.85 shambler:4 rusher:3 spawn 8 5 0.85 shambler:4 rusher:3
spawn 4 7 0.85 shambler:3 rusher:2 brute:1 spawn 4 7 0.85 shambler:3 rusher:2 brute:1
spawn 9 7 0.90 shambler:4 spitter:2 spawn 8 7 0.90 shambler:4 spitter:2
spawn 6 1 0.40 crate:2 barrel:1 spawn 6 1 0.40 crate:2 barrel:1
spawn 7 10 0.40 crate:1 locker:1 spawn 6 10 0.40 crate:1 locker:1

View File

@ -1,9 +1,9 @@
# Казарма: ряды перегородок и сквозной проход посередине. Твари выходят # Казарма: койки по нишам вдоль стен, середина сквозная. Твари выходят
# из-за переборок сбоку, а не в лоб, — строй приходится разворачивать на ходу. # из-за переборок сбоку, а не в лоб, — строй приходится разворачивать на ходу.
# #
# Перегородок стало вдвое меньше, а проход посередине — в три ряда. Прежние пять # Прежние пять рядов переборок резали казарму на щели шириной в тело: сбоку
# рядов по два тайла резали комнату на щели шириной в тело: сбоку выходить было # выходить было откуда, а разворачиваться в ответ уже негде. Ниши остались
# откуда, а разворачиваться в ответ уже негде. # ровно там, где не мешают проходу от двери до двери.
name barracks name barracks
size 12 9 size 12 9
weight 2 weight 2
@ -12,13 +12,13 @@ start 0
depth 2 0 depth 2 0
tiles tiles
####+++##### ####+++#####
#.#......#.#
#..........# #..........#
#..##..##..#
+..........+ +..........+
+..........+ +..........+
+..........+ +..........+
#..##..##..#
#..........# #..........#
#.#......#.#
####+++##### ####+++#####
spawn 4 1 0.75 shambler:3 rusher:2 spawn 4 1 0.75 shambler:3 rusher:2
spawn 8 1 0.60 spitter:2 shambler:1 spawn 8 1 0.60 spitter:2 shambler:1

View File

@ -1,9 +1,9 @@
# Перекрёсток. Рукава шириной три тайла — ровно как коридоры между комнатами: # Перекрёсток. Рукава шириной пять тайлов: правило «не стрелять сквозь своих»
# правило «не стрелять сквозь своих» упирается в геометрию, и отряд вытягивается # упирается в геометрию, и отряд вытягивается в колонну.
# в колонну, но не встаёт в ней намертво.
# #
# Середина расширена до четырёх рядов: перекрёсток — единственное место, где # Пять, а не три: строй из пяти занимает поперёк почти четыре тайла, и в рукаве
# колонна имеет право снова стать строем, и на трёх рядах она этого не успевала. # шириной три крайние бойцы упирались в его же стены на входе. Комната обязана
# СЖИМАТЬ строй, а не запирать его.
name corridor_x name corridor_x
size 12 12 size 12 12
weight 3 weight 3
@ -12,18 +12,18 @@ start 0
depth 1 0 depth 1 0
tiles tiles
####+++##### ####+++#####
####...##### ###.....####
####...##### ###.....####
####...##### #..........#
+..........+ +..........+
+..........+ +..........+
+..........+ +..........+
#..........# #..........#
####...##### #..........#
####...##### ###.....####
####...##### ###.....####
####+++##### ####+++#####
spawn 6 2 0.60 rusher:3 lurker:1 spawn 5 1 0.60 rusher:3 lurker:1
spawn 6 10 0.60 rusher:3 lurker:1 spawn 5 10 0.60 rusher:3 lurker:1
spawn 2 6 0.50 shambler:2 spitter:1 spawn 2 5 0.50 shambler:2 spitter:1
spawn 10 6 0.50 shambler:2 spitter:1 spawn 9 5 0.50 shambler:2 spitter:1

View File

@ -1,9 +1,9 @@
# Стартовая: просторно, светло по планировке и почти пусто. # Стартовая: просторно, светло по планировке и почти пусто.
# Отряд обязан успеть собраться в строй до первой твари. # Отряд обязан успеть собраться в строй до первой твари.
# #
# Поперёк комнаты идёт сплошная полоса пола в три ряда, и опор осталось по одной # Пусто здесь не от лени. Отряд высаживается в центре и первым делом
# на угол. Первое, что отряд делает после высадки, — разворачивается; делать это # разворачивается; разворот из пяти тел не помещается между двумя тумбами,
# должно быть где, иначе первые секунды каждого этажа уходят на распутывание строя. # и первые секунды каждого этажа уходили на распутывание строя.
name hall_start name hall_start
size 12 10 size 12 10
weight 2 weight 2
@ -12,14 +12,14 @@ start 1
depth 1 0 depth 1 0
tiles tiles
####+++##### ####+++#####
#.#......#.#
#..........# #..........#
#..........# #..........#
#..#....#..#
+..........+ +..........+
+..........+ +..........+
+..........+ +..........+
#..#....#..#
#..........# #..........#
#.#......#.#
####+++##### ####+++#####
spawn 2 2 0.50 crate:2 barrel:1 spawn 4 1 0.50 crate:2 barrel:1
spawn 9 7 0.40 barrel:1 locker:1 spawn 7 8 0.40 barrel:1 locker:1

View File

@ -1,9 +1,10 @@
# Гнездо: глухое ядро посередине и кольцо вокруг него. Линий огня почти нет, # Гнездо: выводковые камеры по углам, середина открыта. Линий огня почти нет —
# зато клинку есть где работать — сектор упирается в стену, а не в союзника. # они упираются в углы, — зато клинку есть где работать.
# #
# Кольцо теперь в три тайла со всех сторон, а перегородок внутри него нет вовсе. # Кольцевые перегородки посередине пришлось убрать: между ними оставались
# Прежние два вложенных кольца давали проходы шириной в одну клетку: отряд не # проходы в одну клетку, и отряд не обходил гнездо, а вставал в нём. Тесноту
# обходил ядро, он в нём застревал, и «нет линий огня» превращалось в «нет игры». # теперь делает не ширина прохода, а то, что тварей выпускают со всех четырёх
# сторон сразу.
name nest name nest
size 12 12 size 12 12
weight 2 weight 2
@ -12,18 +13,18 @@ start 0
depth 4 0 depth 4 0
tiles tiles
####+++##### ####+++#####
##.......###
##.......###
#..........# #..........#
#..........# +..........+
#..........# +..........+
#...####...#
+...####...+
+...####...+
+..........+ +..........+
#..........# #..........#
#..........# #..........#
#..........# ###.......##
###.......##
####+++##### ####+++#####
spawn 5 1 0.85 shambler:3 brute:1 spawn 5 1 0.85 shambler:3 brute:1
spawn 2 5 0.80 lurker:2 rusher:2 spawn 3 5 0.80 lurker:2 rusher:2
spawn 9 5 0.80 lurker:2 rusher:2 spawn 8 5 0.80 lurker:2 rusher:2
spawn 6 10 0.85 shambler:3 spitter:2 spawn 6 10 0.85 shambler:3 spitter:2

View File

@ -1,9 +1,9 @@
# Яма: колодец посередине с единственным входом снизу. Громилу в нём # Яма: колодец в дальнем углу, а не посередине. Громилу в нём приходится
# приходится разбирать вдвоём, а круг его удара достаёт обоих. # разбирать вдвоём, а круг его удара достаёт обоих.
# #
# Колодец сузился до двух тайлов, зато обход вокруг него стал трёхрядным. Смысл # Посередине колодец стоять не может: он перегораживал бы проход от двери к
# комнаты в том, что В КОЛОДЦЕ тесно, а не в том, что тесно везде: раньше отряд # двери, и строй упирался бы в его стенку всей шириной. В углу он делает ровно
# вставал ещё на подходе и до ямы просто не доходил. # то же самое — заставляет лезть в тесноту, — но лезть туда решает игрок.
name pit name pit
size 12 12 size 12 12
weight 2 weight 2
@ -12,19 +12,19 @@ start 0
depth 6 0 depth 6 0
tiles tiles
####+++##### ####+++#####
#.#......#.#
#.#......#.#
#..........#
+..........+
+..........+
+..........+
#..........# #..........#
#..........# #..........#
#..........# #.#.....#..#
#...####...# #.#.....#..#
+...#..#...+
+...#..#...+
+...#..#...+
#..........#
#..........#
#..........#
####+++##### ####+++#####
spawn 5 6 0.95 brute:3 shambler:2 spawn 9 10 0.95 brute:3 shambler:2
spawn 2 4 0.70 spitter:2 rusher:2 spawn 2 5 0.70 spitter:2 rusher:2
spawn 9 4 0.70 spitter:2 rusher:2 spawn 9 5 0.70 spitter:2 rusher:2
spawn 6 10 0.60 shambler:3 lurker:1 spawn 6 8 0.60 shambler:3 lurker:1
spawn 2 9 0.40 barrel:2 crate:1 spawn 5 1 0.40 barrel:2 crate:1

View File

@ -1,9 +1,8 @@
# Склад: обстановки много, тварей мало. Место, где игрок узнаёт, что хлам # Склад: обстановки много, тварей мало. Место, где игрок узнаёт, что хлам
# ломается, — и тратит на это магазин, которого потом не хватит. # ломается, — и тратит на это магазин, которого потом не хватит.
# #
# Стеллаж стал одним глухим блоком посередине, а обход вокруг него — трёхрядным. # Стеллажи стоят вдоль стен, а не двойной рамкой посередине: рамка оставляла по
# Прежняя двойная рамка оставляла по краям щели в один тайл: отряд входил на # краям щели в один тайл, и отряд входил на склад, а выходил из него гуськом.
# склад и не мог из него выйти иначе как гуськом.
name storage name storage
size 12 10 size 12 10
weight 2 weight 2
@ -12,16 +11,16 @@ start 0
depth 1 0 depth 1 0
tiles tiles
####+++##### ####+++#####
#.#......#.#
#.#......#.#
#..........# #..........#
#..........# +..........+
#...####...# +..........+
+...####...+
+...####...+
+..........+ +..........+
#..........# #..........#
#..........# #.#......#.#
####+++##### ####+++#####
spawn 2 4 0.90 crate:4 barrel:3 locker:2 spawn 4 1 0.90 crate:4 barrel:3 locker:2
spawn 9 4 0.85 crate:3 barrel:2 spawn 8 1 0.85 crate:3 barrel:2
spawn 5 7 0.70 barrel:2 locker:2 spawn 4 8 0.70 barrel:2 locker:2
spawn 1 1 0.45 shambler:2 lurker:1 spawn 1 4 0.45 shambler:2 lurker:1

View File

@ -1,27 +1,27 @@
# Схрон: тесная комната с глухим сейфом посередине. Хват здесь опаснее всего — # Схрон: самая маленькая комната набора. Хват здесь опаснее всего — вырванного
# вырванного из строя бойца в такой тесноте нечем прикрыть. # из строя бойца в такой тесноте нечем прикрыть.
# #
# Тесно тут за счёт РАЗМЕРА комнаты, а не за счёт щелей: камера в камере давала # Тесно тут за счёт РАЗМЕРА, а не за счёт щелей: камера в камере давала обходы
# обходы шириной в одну клетку, и отряд не столько рисковал, сколько стоял. # шириной в одну клетку, и отряд в схроне не рисковал, а стоял.
# Обход теперь трёхрядный, а схрон всё равно самая маленькая комната набора.
name vault name vault
size 10 10 size 11 11
weight 1 weight 1
theme 3 theme 3
start 0 start 0
depth 8 0 depth 8 0
tiles tiles
####+++### ####+++####
#........# #.#.....#.#
#........# #.#.....#.#
#........# #.........#
+...##...+ +.........+
+...##...+ +.........+
+...##...+ +.........+
#........# #.........#
#........# #.#.....#.#
####+++### #.#.....#.#
spawn 7 5 0.90 lurker:3 brute:1 ####+++####
spawn 1 1 0.55 rusher:2 shambler:1 spawn 5 5 0.90 lurker:3 brute:1
spawn 8 8 0.55 spitter:2 spawn 4 1 0.55 rusher:2 shambler:1
spawn 4 8 0.40 locker:2 crate:1 spawn 6 9 0.55 spitter:2
spawn 4 9 0.40 locker:2 crate:1

View File

@ -1,7 +1,8 @@
# Ряд камер. Ниши по бокам: в них удобно стоять и невозможно отступать. # Ряд камер. Ниши по бокам: в них удобно стоять и невозможно отступать.
# #
# Ниш стало меньше, а проход между рядами — трёхрядным: ниша должна быть местом, # Ниш стало вдвое меньше, и стоят они у самых стен. Прежний частокол оставлял
# КУДА зашли, а не единственным местом, где помещается тело. # между камерами проходы в одну клетку: ниша должна быть местом, КУДА зашли,
# а не единственным местом, где помещается тело.
name cells name cells
size 12 9 size 12 9
weight 3 weight 3
@ -9,14 +10,14 @@ theme 0
depth 1 0 depth 1 0
tiles tiles
####+++##### ####+++#####
#.#......#.#
#..........# #..........#
#.#.#..#.#.#
+..........+ +..........+
+..........+ +..........+
+..........+ +..........+
#.#.#..#.#.#
#..........# #..........#
#.#......#.#
####+++##### ####+++#####
spawn 2 1 0.65 rusher:3 shambler:2 spawn 4 1 0.65 rusher:3 shambler:2
spawn 10 7 0.65 rusher:3 shambler:2 spawn 8 7 0.65 rusher:3 shambler:2
spawn 6 4 0.40 bandage:2 knife:1 rifle:1 spawn 6 4 0.40 bandage:2 knife:1 rifle:1

View File

@ -1,12 +1,11 @@
# Зев. Открытая арена с ядром посередине: единственное место в наборе, где # Зев. Открытая арена: единственное место в наборе, где отряд может встать
# отряд может встать кругом. # кругом, — а встать кругом впятером нельзя нигде, где проход уже четырёх тайлов.
# #
# У ядра ДВА прохода, север и юг. Глухая коробка посередине выглядит на сетке # Ядро посередине пришлось убрать не ради простора, а ради проходимости: оно
# так же, но точка спавна внутри неё недостижима: тварь не дойдёт до отряда и # стояло ровно на линии между дверями и ловило строй всей шириной. Урок, ради
# не будет убита, и этаж тихо станет легче. Ровно это и ловит --check. # которого его когда-то рисовали, остался в силе: точка спавна в глухой коробке
# # недостижима, тварь до отряда не дойдёт, и этаж тихо станет легче. Ровно это
# Кольцо вокруг ядра — три тайла со всех сторон: встать кругом впятером нельзя # и ловит --check.
# в обходе шириной в два тела, там можно только выстроиться в очередь.
name maw name maw
size 12 11 size 12 11
weight 2 weight 2
@ -14,17 +13,17 @@ theme 2
depth 3 0 depth 3 0
tiles tiles
####+++##### ####+++#####
#.#......#.#
#.#......#.#
#..........# #..........#
+..........+
+..........+
+..........+
#..........# #..........#
#..........# #.#......#.#
#...#..#...# #.#......#.#
+...#..#...+
+...#..#...+
+...#..#...+
#...#..#...#
#..........#
####+++##### ####+++#####
spawn 6 5 0.85 brute:3 lurker:2 spawn 6 5 0.85 brute:3 lurker:2
spawn 1 1 0.60 spitter:2 rusher:2 spawn 4 1 0.60 spitter:2 rusher:2
spawn 10 9 0.60 spitter:2 rusher:2 spawn 8 9 0.60 spitter:2 rusher:2
spawn 10 1 0.45 shotgun:1 plate:1 cleaver:1 spawn 8 1 0.45 shotgun:1 plate:1 cleaver:1

View File

@ -1,9 +1,8 @@
# Стартовая HOLLOW. Тесная и короткая: вид сверху показывает всю комнату # Стартовая HOLLOW. Тесная и короткая: вид сверху показывает всю комнату
# сразу, и просторный зал первого этажа не оставил бы ничего на потом. # сразу, и просторный зал первого этажа не оставил бы ничего на потом.
# #
# Тесная — по размеру, а не по проходам. От четырёх опор осталась одна: отряд # Тесная — по РАЗМЕРУ, а не по проходам. Четыре тумбы посередине стояли ровно
# высаживается сюда всем составом и первым делом разворачивается, а разворот # там, где отряд разворачивается после высадки, и разворот в них упирался.
# между четырьмя тумбами упирался в них, а не в стены.
name mouth name mouth
size 11 9 size 11 9
weight 2 weight 2
@ -12,13 +11,13 @@ start 1
depth 1 0 depth 1 0
tiles tiles
####+++#### ####+++####
#.........# #.#.....#.#
#.........# #.........#
+.........+ +.........+
+....#....+ +.........+
+.........+ +.........+
#.........# #.........#
#.........# #.#.....#.#
####+++#### ####+++####
spawn 2 1 0.45 barrel:1 spawn 4 1 0.45 barrel:1
spawn 8 7 0.45 barrel:1 spawn 6 7 0.45 barrel:1

View File

@ -1,9 +1,9 @@
# Колодец. Узкий и длинный: строй здесь не развернуть, и это единственное, # Колодец. Узкий и длинный: строй здесь не развернуть, и это единственное,
# что комната делает. # что комната делает.
# #
# «Не развернуть» — это пять тайлов в ширину против трёх рядов строя, а не щель # «Не развернуть» — это пять тайлов в ширину против четырёх, которые занимает
# в одну клетку. Перемычки теперь поджимают колодец с БОКОВ до трёх тайлов, а не # строй, а не щель в одну клетку. Перемычки поперёк колодца убраны: они не
# перекрывают его посередине: отряд проходит с трудом, но проходит. # сжимали отряд, они его останавливали.
name shaft name shaft
size 7 12 size 7 12
weight 2 weight 2
@ -13,11 +13,11 @@ tiles
##+++## ##+++##
#.....# #.....#
#.....# #.....#
##...## #.....#
+.....+ +.....+
+.....+ +.....+
+.....+ +.....+
##...## #.....#
#.....# #.....#
#.....# #.....#
#.....# #.....#

View File

@ -151,8 +151,11 @@ constexpr int SQ_HINT_Y = 250, SQ_HINT_STEP = 10;
// Схрон: то, что лежит на базе между вылазками. Двумя рядами во всю ширину // Схрон: то, что лежит на базе между вылазками. Двумя рядами во всю ширину
// внизу, а не колонкой сбоку: в схроне десятки предметов, и подпись каждого // внизу, а не колонкой сбоку: в схроне десятки предметов, и подпись каждого
// должна читаться — иначе выбор снаряжения превращается в перебор иконок. // должна читаться — иначе выбор снаряжения превращается в перебор иконок.
constexpr int SQ_STASH_X = 22, SQ_STASH_Y = 208, SQ_STASH_W = 52, SQ_STASH_H = 18; // Ячейка схрона шире, а колонок меньше: в 52 пикселя не влезало даже слово
constexpr int SQ_STASH_GX = 4, SQ_STASH_GY = 3, SQ_STASH_COLS = 8, SQ_STASH_ROWS = 2; // BATTERY, и половина имён обрезалась на середине. Читаемость важнее, чем ещё
// две ячейки в ряду: прокрутка есть, а угадывать вещь по обрубку — нет.
constexpr int SQ_STASH_X = 16, SQ_STASH_Y = 206, SQ_STASH_W = 74, SQ_STASH_H = 18;
constexpr int SQ_STASH_GX = 4, SQ_STASH_GY = 3, SQ_STASH_COLS = 6, SQ_STASH_ROWS = 2;
constexpr int SQ_STASH_CELLS = SQ_STASH_COLS * SQ_STASH_ROWS; constexpr int SQ_STASH_CELLS = SQ_STASH_COLS * SQ_STASH_ROWS;
// Мастерская. Слева схрон той же сеткой, что и на экране отряда (привычка // Мастерская. Слева схрон той же сеткой, что и на экране отряда (привычка
@ -385,9 +388,16 @@ void DrawTip(const Layout& l, const Tip& t, int mx, int my)
int wide = 0; int wide = 0;
for (int i = 0; i < t.count; ++i) wide = std::max(wide, TextW(l, t.lines[i], 8)); for (int i = 0; i < t.count; ++i) wide = std::max(wide, TextW(l, t.lines[i], 8));
UiRect box{mx + 8, my + 8, wide + pad * 2, t.count * step + pad * 2 - 2}; // Подсказка встаёт ВЫШЕ курсора, а не ниже.
// Подсказка не должна вылезать за кадр: у края экрана она переезжает на //
// другую сторону курсора, а не обрезается. // Ниже она ложилась ровно на строки характеристик — те самые, которые
// объясняет: игрок наводил на броню, чтобы понять, откуда 28%, и подсказка
// закрывала строку ARMOR. Сверху под ней только пустое место.
UiRect box{mx + 8, my - 6 - (t.count * step + pad * 2 - 2), wide + pad * 2,
t.count * step + pad * 2 - 2};
// И не должна вылезать за кадр: у края экрана она переезжает на другую
// сторону курсора, а не обрезается.
if (box.x + box.w > INTERNAL_W - 2) box.x = mx - 8 - box.w; if (box.x + box.w > INTERNAL_W - 2) box.x = mx - 8 - box.w;
if (box.y + box.h > INTERNAL_H - 2) box.y = INTERNAL_H - 2 - box.h; if (box.y + box.h > INTERNAL_H - 2) box.y = INTERNAL_H - 2 - box.h;
if (box.x < 2) box.x = 2; if (box.x < 2) box.x = 2;
@ -545,11 +555,13 @@ void BuildWidgets(const Ui& ui, const Game& game, const Layout& l, Widgets& out)
} }
// Сумка ОБЩАЯ: она не зависит от выбранного бойца, и переложить // Сумка ОБЩАЯ: она не зависит от выбранного бойца, и переложить
// из неё может любой (sim/items.h). // из неё может любой (sim/items.h). Вне вылазки она недоступна:
// сумка принадлежит забегу и очищается при сборке этажа.
for (int s = 0; s < SQUAD_BAG_SLOTS; ++s) for (int s = 0; s < SQUAD_BAG_SLOTS; ++s)
{ {
Widget& w = out.Add(UiPart::BAG, s, BagRect(s)); Widget& w = out.Add(UiPart::BAG, s, BagRect(s));
w.item = game.squad.bag.slots[s]; w.item = game.squad.bag.slots[s];
w.enabled = ui.started;
} }
// Строки характеристик тоже наводимы. Читать «SPEED 95%» и гадать, // Строки характеристик тоже наводимы. Читать «SPEED 95%» и гадать,
@ -1364,7 +1376,10 @@ void DrawSquadScreen(const Layout& l, const Game& game, const Ui& ui, const Widg
} }
} }
Text(l, "BAG", SQ_BAG_X, SQ_BAG_Y - 14, 10, COL_TEXT); // Подпись честно говорит, почему сумка не берёт вещи вне забега. Молчащий
// отказ читается как поломка — а это правило: сумка принадлежит вылазке.
if (ui.started) Text(l, "BAG", SQ_BAG_X, SQ_BAG_Y - 14, 10, COL_TEXT);
else Text(l, "BAG - RAID ONLY", SQ_BAG_X, SQ_BAG_Y - 14, 8, COL_DEAD);
if (game.profile) if (game.profile)
{ {