Возможности

Sanny Builder как среда программирования предоставляет пользователю следующие возможности.

Подсветка синтаксиса

Sanny Builder подсвечивает код разными цветами, чтобы облегчить его чтение. Настройки подсветки могут быть изменены в опциях программы.

Быстрый переход по тексту

Текущую строку можно запомнить, если поставить закладку нажатием Ctrl+Shift+0..9, а затем вернуться к ней нажатием Ctrl+0..9. Удалить все закладки можно через меню Правка -> Удалить закладки.

Также можно перейти к строке по ее номеру через опцию Перейти.... Она вызывается комбинацией Ctrl+G. Введите порядковый номер нужной строки, и редактор быстро переместит Вас к ней.

Моментальный поиск

Моментальный поиск позволяет находить слово или метку прямо в редакторе без вызова диалога поиска.

Чтобы найти в тексте другое вхождение слова под курсором, нажмите Ctrl+Num6, чтобы искать его ниже по тексту или Ctrl+Num4, чтобы искать выше. Курсор немедленно переместится к строке, где есть такое слово. Продолжайте нажимать Ctrl+Num4/Num6, чтобы найти другие строки с нужным словом.

Чтобы перейти к строке, обозначенной меткой (например, :MyLabel), поместите курсор на ссылку на эту метку (@MyLabel) и нажмите Ctrl+Num2. Редактор немедленно переместит курсор к строке с искомой меткой.

Если позиция курсора не изменилась, это означает, что моментальный поиск не смог найти нужное слово в тексте.

Перед изменением позиции курсора моментальный поиск запоминает текущую позицию, и если вы решили вернуться на предыдущее место, нажмите Ctrl+Num8.

Показ различной информации о текущем опкоде

При включенной опции Показывать информацию об опкодах в нижней панели редактора выводится:

Поиск нужного опкода

Используйте программу поиска опкодов, чтобы найти нужный опкод.

Изменение координат и угла разворота игрока

Нажмите Ctrl+Alt+1, когда запущена игра, и появится окно менеджера. Здесь вы можете установить новые координаты и угол разворота игрока и скопировать текущие. В верхнем поле ввода вы можете указать сразу 3 координаты, разделив их пробелом или ,. Также вы можете быстро вставить координаты игрока в редакторе комбинацией Ctrl+Shift+C. Вставка угла разворота (z_angle) в редакторе производится нажатием Ctrl+Shift+E.

Запись и воспроизведение нажатий кнопок

Можно записывать последовательность нажатия клавиш (макрос) и воспроизводить ее позднее. Например, есть следующий код:

$Actor = Actor.Create(CivMale, #MALE01, 100.0, 100.0, 10.0)
$ActorWithGun = Actor.Create(CivMale, #MALE01, 110.0, 100.0, 20.0)
$Gang01 = Actor.Create(CivMale, #MALE01, 120.0, 100.0, 30.0)
$Gang02 = Actor.Create(CivMale, #MALE01, 130.0, 100.0, 40.0)
$Killer = Actor.Create(CivMale, #MALE01, 140.0, 100.0, 50.0)
$ActorWithoutGun = Actor.Create(CivMale, #MALE01, 150.0, 100.0, 60.0)

Допустим, нужно обменять переменные в каждой паре строк (поставить вместо $Actor $ActorWithGun, а вместо $ActorWithGun - $Actor и т.д.).

Поставьте курсор на первую строку и нажмите Ctrl+M. С этого момента редактор запоминает все нажатия клавиш, так что будьте осторожны.

  1. Зажмите Ctrl и нажмите один раз стрелку вправо. Ctrl нужен так как строки разной длины.

  2. Теперь нажмите Shift+Home и Ctrl+Ins.

  3. Нажмите стрелку вниз. Курсор должен оказаться на второй строке, при этом глобальная переменная будет в буфере обмена.

  4. Нажмите Ctrl+стрелка вправо и Shift+Ins.

  5. Нажмите Ctrl+стрелка влево, Shift+Home, Ctrl+Ins и кнопку Delete

  6. Нажмите стрелку вверх

  7. Нажмите Ctrl+Shift+стрелка вправо и Shift+Ins

  8. Нажмите кнопку Home.

Теперь первые две строки выглядят так:

$ActorWithGun = Actor.Create(CivMale, 100.0, 100.0, 10.0)
$Actor = Actor.Create(CivMale, 110.0, 100.0, 20.0)

и курсор стоит в начале первой строки. Теперь нажмите Ctrl+M. Макрос записан. Теперь можно воспроизводить записанную последовательность комбинацией Ctrl+P. Установите курсор на третью строку, нажмите Ctrl+P, и переменные $Gang01 и $Gang02 поменяются местами.

Во время записи макроса можно поставить/снять запись на паузу нажатием Ctrl+P.

Замена номеров миссий на их названия

Sanny Builder допускает использовать имя миссии в команде start_mission. Именем миссии явлется ее метка, которая определена в блоке DEFINE MISSION.

Например, у вас есть

DEFINE MISSION 10 AT @MYMISSION

Вы можете использовать вместо start_mission 10 команду start_mission MYMISSION.

Также существует опция Заменять номера миссий. Когда она включена, дизассемблер автоматически заменяет все номера миссий в коде на их имена. Эта опция дает возможность безболезненно удалять миссии, не заботясь о переименовывании номеров в коде.

Для дополнительного удобства после команды start_mission можно вызвать список имен миссий нажатием Ctrl+пробел.

См. также Быстрый переход к миссии.

Использование оригинальных имен миссий

Начиная с версии 3.2.0 Sanny Builder поддерживает оригинальные названия миссий для каждого режима редактирования. Названия содержатся в файле missions.txt. Этот файл используется при дизассемблировании, чтобы добавить название миссии как комментарий рядом командой определения (DEFINE MISSION) или вызова миссии (start_mission).

При дизассемблировании main.scm с измененными миссиями, отредактируйте соответствующий файл missions.txt, чтобы названий миссий соответствовали скрипту.

Многоязычный интерфейс

Sanny Builder обладает интерфейсом, переведенным на 15 языков. Переключить язык можно в опциях (F10). Информацию по созданию или изменению переводов можно найти на sannybuilder/translations.

Меню внешних приложений

Вы можете добавить в меню Инструменты до 9 внешних приложений и запускать по мере необходимости. Каждому приложению можно присвоить комбинацию горячих клавиш и параметры, необходимые для запуска.

Для передачи в запускаемое приложение пути к открытому в редакторе файлу используйте специальное слово: $SB_FileName.

Начиная с версии 3.7.0 также можно использовать переменные @sb: и @game:, которые представляют директорию Sanny Builder и директорию текущей игры соответственно, в параметрах вызываемого приложения:

Комментирование кода

Комментарии обозначаются в коде двумя слэшами //. Все, что идет после // до конца строки, игнорируется компилятором.

Для того чтобы закомментировать несколько строк сразу либо только часть строки (например в середине или начале), используйте блочные комментарии {}

0001: wait {это игнорируется} 0 ms

Начиная с версии 3.06 Sanny Builder поддерживает C++-подобные комментарии /* */.

0001: wait /* комментарий */ 0 ms

Также вы можете закомментировать несколько строк, выделив их и нажав Ctrl+Q (это сочетание клавиш можно изменить в опциях). Для раскоментирования выделите текст и нажмите Ctrl+Q еще раз.

Проверка обновлений

Sanny Builder может проверить, доступна ли новая версия программы. Чтобы использовать эту возможность, пройдите в меню Справка->Проверить обновления.... Программа подключится к серверу обновлений и предложит скачать и установить обновление, если оно найдено.

Sanny Builder может автоматически проверять наличие обновления при запуске, если вы включите соответствующую опцию в окне меню обновлений.