21. Выключение компонентов

Короткая глава про одну кнопку, которая экономит много работы.

Зачем

Участок сценария перестал быть нужен — на неделю, до конца акции, до выяснения. Разобрать его и собрать обратно значит потерять связи, имена и настройки, а потом восстанавливать их по памяти.

Выключение решает это иначе: компонент остаётся на карте и в сценарии, но не исполняется — вызов проходит сквозь него дальше.

Как

Тумблер в заголовке панели — или пункт Выключить компонент в контекстном меню.

Тумблер в заголовке панели
Figure 1. Тумблер включённости

Если выделено несколько компонентов, тумблер работает на всю группу разом. Когда состояние у выделенных разное, он так и показывает — и одно нажатие приводит всех к общему.

Как выглядит на карте

Выключенный компонент среди включённых
Figure 2. Выключенный компонент

Выключенный компонент бледнее остальных — вместе со своим именем и связями. Ни рамки, ни перечёркивания: он не «сломан», он просто не участвует.

Затенение в режиме трассировки выглядит похоже, но означает другое: «этот компонент не на пути». Не перепутайте — в трассировке гаснет большая часть карты сразу, а выключенные компоненты бледные всегда.

Что происходит с вызовом

Цепочка не разрывается. Вызов доходит до выключенного компонента, не исполняет его и идёт дальше — по основной ветке, по happy-way.

Какая ветка считается основной, зависит от типа:

Тип Куда уйдёт вызов

Обычный компонент с одним переходом

По Переходу

Сравнение

По ветке «Правда» — то есть по успешной

Меню

По ветке Переход, прочее

То есть выключение — это не «вырезать шаг», а «пропустить шаг». Всё, что компонент делал — проиграл, спросил, записал, — не произойдёт; всё, что было после него по основному ходу, произойдёт как обычно.

Отсюда две вещи, о которых стоит помнить.

Логика ветвления исчезает вместе с компонентом. Выключив Сравнение, вы не выключаете проверку — вы делаете её всегда истинной. Ветка «Ложь» перестаёт срабатывать вовсе.

Основная ветка должна быть заполнена. Если у выключенного компонента её нет, идти дальше некуда — и вызов на нём и закончится.

Чем это лучше удаления

Цепочка остаётся целой

удалив компонент, вы порвёте связь и будете восстанавливать её руками. Выключив — оставите её как есть: вызов пойдёт сквозь.

Ничего не теряется

связи на выключенный компонент остаются, свойства остаются, имя остаётся. Включить обратно — одно нажатие.

Сравнение версий покажет одну строку

в истории видно ровно то, что произошло: компонент выключили. После удаления и восстановления разница была бы куда шумнее.

Понятно коллеге

выключенный участок на карте виден. Удалённый — не виден никак, и через месяц никто не вспомнит, что он был.

Если участок выключен «на время», стоит написать в его описании, до какого времени и почему. Иначе через полгода никто не решится ни включить его, ни удалить.

◀ 20. Трассировка ветки

22. Когда что-то не так ▶