Sanny Builder
Search…
Типы данных
Код разделен на отдельные элементы, каждый из которых обозначается по-своему и играет свою роль в скрипте.

Переменные

Если перед именем переменной (комбинация букв, цифр, и _) стоит знак $ - это глобальная переменная.
1
0004: $MyVar = 100
Copied!
Именем локальной переменной может быть только число, после которого стоит @. Это число является индексом в списке локальных переменных, выделенных для текущего скрипта или миссии.
1
Copied!
Переменная ADMA (Advanced Direct Memory Access, усовершенствованный доступ к памяти) - это указатель на определенный адрес внутри файла main.scm. Они используются так же как глобальные переменные, но в отличие от них ADMA могут читать и писать значения по любому адресу в пределах main.scm.
1
$myVar = &0 // прочитать первые 4 байта main.scm и записать значение в $myVar
2
&57 += &120(&231,4i) // также могут использоваться как элементы массива
Copied!
ADMA переменные не влияют на размер буфера для глобальных переменных, выделенного в заголовке main.scm.

Метки

Метки указывают на определенную строку кода и используются в условных (опкод 004D) и безусловных переходах (опкоды 0002, 0050). Имя метки состоит из букв, цифр и _ и всегда начинается с :
1
:MyLabel
Copied!
Чтобы использовать такую метку в опкоде замените : на @
1
0002: jump @MyLabel
Copied!
Если имя метки написано как самостоятельное выражение с парой скобок в конце, это представляет собой вызов подпрограммы командой gosub:
1
// следующие выражения эквивалентны
2
MyLabel()
3
gosub @MyLabel
Copied!

Строковые литералы

Текст, обрамленный одинарными кавычками ' ', - это короткий строковый литерал (до 15 символов).
1
03A4: script_name 'MAIN'
Copied!
Текст, обрамленный двойными кавычками " ", - это длинный строковый литерал (максимальная длина определяется опкодом).
Если внутри литерала используется кавычка, она должна быть заэкранирована при помощи обратного слэша\
1
0662: write_debug_message "Hello, \"world\"! \n 'Here we go!'"
Copied!
Допускается использование пустых строк '' или "".

Строковые переменные

Глобальные переменные, содержащие короткий строковый литерал, начинаются с s$.
1
05A9: s$MyString = 'GLOBAL'
Copied!
Локальные переменные, содержащие короткий строковый литерал, заканчиваются на @s.
1
05AA: [email protected] = 'LOCAL'
Copied!
Глобальные переменные, содержащие длинный строковый литерал, начинаются с v$.
1
06D1: v$MyString = "LONG_GLOBAL"
Copied!
Локальные переменные, содержащие длинный строковый литерал, заканчиваются на @v.
1
06D2: [email protected] = "LONG_LOCAL"
Copied!

Имена моделей

Вместо ID моделей из .ide файлов могут использоваться их имена, перед которыми стоит #
1
0247: request_model #CELLPHONE
Copied!

Числа в 16-ричном формате

0x - число в шестнадцатиричном формате -0x - отрицательное число в шестнадцатиричном формате
1
0004: $var = -0xBB08
Copied!
Разрешенный диапазон шестнадцатиричных чисел лежит между -80000000 и 7FFFFFFF.
Last modified 1mo ago