# Управление Command & Conquer: Generals — Zero Hour на Nintendo Switch

Порт одновременно принимает Joy-Con/Pro Controller и сенсорный экран. Ввод проходит
через оригинальный SDL mouse/keyboard path Generals, поэтому кнопки и жесты работают
так же, как соответствующие действия мыши и клавиатуры в ПК-версии.

## Joy-Con / Pro Controller

| Элемент | Действие |
| --- | --- |
| Левый стик | Перемещение камеры по карте |
| Правый стик | Перемещение виртуального курсора |
| A | ЛКМ: выбор юнита/здания, кнопки интерфейса; удержание позволяет тянуть рамку |
| B | ПКМ: контекстный приказ выбранным юнитам |
| X | Клавиша `A`: Attack Move |
| Y | Клавиша `S`: Stop |
| ZR | `Shift`: очередь команд / модификатор |
| ZL | `Ctrl`: модификатор групп/выделения |
| + | `Esc`: меню/отмена |
| - | `Tab`: тактическое действие оригинальной игры |
| D-Pad ↑ | Группа 1 |
| D-Pad → | Группа 2 |
| D-Pad ↓ | Группа 3 |
| D-Pad ← | Группа 4 |
| R | Приблизить камеру |
| L | Отдалить камеру |

### Отцепленные Joy-Con

Поддерживаются Joy-Con, подключённые к консоли, пара в grip/tabletop-режиме,
Pro Controller и два физически отцепленных Joy-Con. Игра принимает все активные
стандартные Npad ID и объединяет их в один RTS-контроллер. Это важно для пары,
которую Horizon может назначить как два отдельных контроллера (`No1` + `No2`).

Если подключено несколько лишних контроллеров, их ввод тоже будет объединён. Для
обычной игры оставьте подключёнными только ту пару Joy-Con/Pro Controller, которой
планируете управлять.

## Сенсорный экран

| Жест | Действие |
| --- | --- |
| Одиночный tap | ЛКМ: выбрать объект или нажать кнопку UI |
| Перетаскивание одним пальцем | ЛКМ-drag: рамка выделения группы |
| Double tap | ПКМ: контекстный приказ в точке касания |
| Долгое удержание (~0.5 с) | ПКМ: контекстный приказ в точке касания |
| Перетаскивание двумя пальцами | Панорамирование камеры |
| Pinch двумя пальцами | Масштаб камеры |

После двухпальцевого жеста оставшийся на экране палец не создаёт случайный клик:
новый одиночный жест начинается только после полного отпускания экрана.

## Настройка чувствительности

Файл: `sdmc:/switch/generalszh/config/controls.ini`.

```ini
Select = A
Command = B
AttackMove = X
Stop = Y
QueueModifier = ZR
GroupModifier = ZL
Menu = PLUS
Tactical = MINUS
Group1 = DUP
Group2 = DRIGHT
Group3 = DDOWN
Group4 = DLEFT
ZoomIn = R
ZoomOut = L

CursorSensitivity = 600
CameraSensitivity = 1
Deadzone = 4000
```

`CursorSensitivity` задаётся в пикселях в секунду (`100..2000`),
`CameraSensitivity` — множитель (`0.1..5`), `Deadzone` — сырое значение стика
(`0..30000`). Изменения читаются при следующем запуске игры.
