Структура.
Записанный в обычном текстовом формате *.TRK-файл доступен для изменения в любом текстовом редакторе. Структурно файл разбит на секции, имеющие определенное фукциональное назначение. Так в секции [MAIN] описывается карта, погода, время начала полета, сведения об игроке, а также его условное алфавитно-цифровое обозначение. Нас интересует только крайняя из них, а именно [$$$record]. В заголовке этой секции стоят начальные условия полета, т.е. начальная скорость, высота и прочие сведения. Поскольку от начальных условий зависит судьба героев трека – то эта информация защищается контрольной суммой ( на вид это самая длинная цифра в голове секции [$$$record]). Попытка изменить начальные условия приводит к отказу в проигрывании (Track file is changed). Все данные после контрольной суммы доступны для редактирования.

В общих чертах формат событий трека можно представить следующей схемой:


{SPC}TimeDelta{ SPC}EventCode{SPC} {EventParam {SPC}} {NewLine}, где

SPC – пробельные символы,
TimeDelta – временной интервал между текущим и предыдущим событием, в миллисекундах трека*
EventCode – код события (смена камеры, движение ее, управляющие воздействия, и пр.)
EventParam – опциональные параметры события (смещения и пр.)
NewLine – терминатор строки.
Фигурными скобками обозначено произвольное количество заключенных в них операторов - начиная с одного.

Пример:

[$$$record]
100
15463679
350.0
450.0
300.0
10.0
3.0
34
3
-1756758428127338886 (контр. сумма)

с самого начала трека (0 в первой колонке) включается внешний вид (код 205) на самолет с номером r01000

0 205 1 25 r01000
0 205 0 0

через 5 секунд трек прерывается нажатием ESC
5000 261 1 0
0 261 0 0

завершение работы трека
0 -1 0 0


Как вы уже успели заметить большинство инструкций идут попарно – разница между ними в третьей колонке. Это как нажатие на кнопку – нажали (1), отпустили (0). Фактически так оно и есть – ведь содержимое трека – это управляющие воздействия, записанные в точности так, как их отрабатывал во время записи виртуальный пилот! Да, мы не упоминали этого раньше, - в треке нет событий, относящихся к искусственному интеллекту. То есть записаны только действия игрока. Все остальное при проигрывании трека рассчитывается заново.