Список опкодов (SCM.INI)

Документацию по опкодам можно найти в Sanny Builder Library.

Основной файл, который обеспечивает компиляцию и дизассемблирование скриптов, – INI файл со списком опкодов. В Sanny Builder есть список опкодов для каждого режима редактирования.

Начиная с версии 4.0 этот файл является необязательным для работы и может быть заменен определениями команд, доступными для скачивания в формате JSON в Sanny Builder Library. Новые режимы редактирования используют только файлы SBL.

Формат файла

Строки, начинающиеся с ;, игнорируются.

Метаданные

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

VERSION – номер версии. См. директиву $VERSION PUBLISHER – автор изменений DATE – дата обновления Дизассемблер выводит эту информацию в комментарии на первой строке исходника.

Опкоды

Каждая строка с опкодом имеет следующий формат:

xxxx=N, yyyy XXXX – номер опкода N – кол-во параметров yyyy – описание опкода

Не допускается редактирование первых двух значений (номер опкода и кол-во параметров). Описание опкода может меняться свободно.

Если в INI файле содержится несколько определений для одного и того же опкода, используется последнее.

Существует соглашение, по которому описание условного опкода всегда начинается с двух пробелов.

Параметры опкодов

Параметры - это динамическая часть опкода. В описании опкода они начинаются и заканчиваются %

0001=1,wait %1d% ms

Данная строка указывает дизассемблеру, что для опкода 0001 следует написать слова wait и ms, а между ними единственный параметр опкода:

0001: wait 10 ms

Определение параметра включает в себя его порядковый номер и тип.

Порядок следования параметров

Число в параметре %1d% - его порядковый номер. Он нужен, потому что в некоторых опкодах параметры переставлены местами для улучшения читабельности кода.

0053=5,%5d% = create_player %1o% at %2d% %3d% %4d%

Для опкода 0053 дизассемблер поставит 5-й параметр в начале:

0053: $PLAYER_CHAR = сreate_player #NULL at 2488.562 -1666.865 12.8757 

Если бы параметры выводились в оригинальном порядке, опкод 0053 выглядел бы так:

0053: сreate_player #NULL at 2488.562 -1666.865 12.8757 $PLAYER_CHAR

Изменение порядка следования параметров должно быть крайней мерой, т.к. оно приводит к несовместимости старых скриптов с новым INI файлом.

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

Типы параметров

Буква после номера параметра обозначает его тип.

d - любое значение p - имя метки o - имя модели (включая объекты) m - имя модели из .ide файла (исключая объекты) g - ключ из .gxt файла x - ID внешнего скрипта k - строковый литерал фиксированной длины (128 байтов)

Типы параметров могут свободно меняться в случае необходимости.

Last updated