Директивы
Препроцессорные директивы - это специальные слова, которые указывают компилятору на необходимое поведение в процессе компиляции. Они начинаются с символа $
и заключены в фигурные скобки {}
.
$INCLUDE
Подключает внешний текстовый файл к исходнику. Когда компилятор находит указанную директиву, он открывает файл по пути, переданному в качестве параметра директивы и продолжает компиляцию того кода, который записан во внешнем файле. Когда компилятор достигает конца данного файла, он возвращается обратно в предыдущий файл.
Синтаксис:
Если указан относительный путь, компилятор ищет файл в следующем порядке:
папка, где находится файл, содержащий данную директиву
папка
data
для текущего режима редактированиякорневая папка Sanny Builder
корневая папка игры
Если компилятор не может найти файл относительно ни одной из указанных папок это вызовет ошибку.
Вы можете использовать данную директиву неограниченное число раз. Вкладываемые файлы могут также содержать в себе данную директиву.
Короткая форма этой директивы $I
.
$INCLUDE_ONCE
Действует как {$INCLUDE}
с тем единственным отличием, что если файл уже был подключен, он не будет подключен еще раз, и директива будет проигнорирована.
$EXTERNAL
Заставляет скомпилировать файл как внешний скрипт. Получившийся файл будет без заголовка и с локальными метками как .scm
файл из script.img
. Использование данной директивы подразумевает, что в файле содержится только один скрипт или одна миссия.
Аналогом использования данной директивы является опция SKIP_SCM_HEADER
. Данную опцию также можно переключить на главной панели инструментов.
Синтаксис:
Короткая форма этой директивы $E
.
$CLEO
Является аналогом директивы $E
, однако полученный файл автоматически копируется в директорию игра\CLEO
, и получает расширение, указанное в директиве.
Синтаксис:
расширение файла
- опциональный параметр, который определяет какое расширение получит скомпилированный файл. Начинается с .
. По умолчанию равен .cs
.
Эта директива предназначена максимально упростить создание CLEO скриптов.
{$CLEO}
включает в себя {$USE CLEO}
$NOSOURCE
Запрещает компилятору добавлять в конечный файл исходный код скрипта.
Если эта директива отсутствует, то при наличии директив $EXTERNAL
или $CLEO
и при включенной опции Добавлять доп. информацию в SCM
, Sanny Builder добавит исходный код в конец файла для последующего использования при дизассемблировании.
Синтаксис:
$OPCODE
Регистрирует новый опкод.
Обычно описания всех опкодов содержатся в специальном файле, по одному для каждой игры. Но иногда необходимо добавить новый опкод для использования в текущем скрипте. Директива $OPCODE
делает это возможным без редактирования оригинального списка опкодов.
Синтаксис:
либо
либо
описание опкода
- директива принимает описание опкода в том же формате, что и файл INI:
путь к файлу с описанием
- директива также принимает путь к файлу в качестве параметра. Этот файл должен содержать в себе только описания опкодов, которые будут загружены компилятором. Если указан относительный путь, компилятор ищет файл по тем же правилам, что и в директиве $INCLUDE
.
Если директива использована без какого-либо параметра, это ведет к загрузке оригинального списка опкодов и отмене всех сделанных изменений.
Короткая форма этой директивы $O
.
$USE
Разрешает компилятору использовать дополнительный набор инструкций.
Допускается перечисление нескольких имен, разделяемых запятыми.
$VERSION
Эта директива не используется начиная с версии v3.1.0
Устанавливает какая версия опкодов будет использована во время компиляции.
Синтаксис:
X
- ID режима редактированияy
- порядок параметров0
- оригинальный, все параметры идут последовательно 0, 1, 2 и т.д.1
- модифицированный порядок, некоторые параметры переставлены
zzzz
- номер ревизии
По умолчанию компилятор загружает версию <текущий режим>.1.0000
$VERSION_RESTORE
Эта директива не используется начиная с версии v3.1.0
Восстанавливает версию, которая использовалась до директивы $VERSION
.
Синтаксис:
Last updated