Синтаксис компиляции SCRIPT.DAT

romiq.kh@gmail.com
v0.3 2014-06-03

<u>Синтаксис файла</u>

Команды указываются построчно, разбиение одной команды на несколько строк не 
допускается. Часть строки после символа '#' считается комментарием.

Обозначения:
 * \<обязательные параметры\>
 * [необязательные]
 * "строка"

В файле могут быть определены следующие записи:

 * OBJ - объекты, попадают в первую половину SCRIPT.DAT
 * SCENE - сцены, попадают во вторую половину SCRIPT.DAT
 * RES - ресурсы, попадают в RESOURCE.QRC
 
<u>OBJ</u>

OBJ \<идентификатор объекта\> \<номер 0..0xffff\> "\<Имя\>"
  [обработчики событий - ON]
ENDOBJ

<u>SCENE</u>

SCENE \<идентификатор сцены\> \<номер 0..0xffff\> "\<Имя\>"
  [обработчики событий - ON]
  [ссылки на другие объекты - REF]
ENDSCENE

<u>RES</u>

RES \<идентификатор ресурса\> \<номер 0..0xffff\> "\<путь\>"

<u>ON</u>

Обработчик события. Вызывается при применении на объекте операции.
При загрузке скрипта ко всем объектам и сценам применяется операция TOTALINIT.

ON \<операция\>
ON \<операция\> [\<статус 0..0xff\> \<идентификатор объекта 0..0xffff\>]
ON \<операция\> [\<статус 0..0xff\> THIS]
  [операции]
ENDON

<u>REF</u>

REF \<ссылка на объект\> [\<аргумент 1\> [\<аргумент 2\> [\<аргумент 3\> [\<аргумент 4\> [\<аргумент 5\>]]]]]

Указывает на объект находящийся на сцене. Эти записи попадают в файл
  BACKGRND.BG.

Отсутствующие аргументы будут заменены на -1 (0xffffffff).
 
<u>ZEROREF</u>

Используется если запись в BACKGRND.BG необходима, но ни один из объектов не 
добавлен к сцене. Если у сцены уже были указаны REF использвание этого операнда 
невозможно.

<u>операции</u>

\<код операции\> \<ссылка на объект\> [\<аргумент 1\> [\<аргумент 2\> [\<аргумент 3\>]]]

Ссылка на объект может быть указана на текущий объекта с помощью слова THIS.

Отсутствующие аргументы будут заменены на -1 (0xffff).

Операции:

 *  1 - USE
 *  2 - SETPOS
 *  3 - GOTO
 *  4 - LOOK
 *  5 - SAY
 *  6 - TAKE
 *  9 - WALK
 * 10 - TALK
 * 11 - END
 * 14 - SET
 * 15 - SHOW
 * 16 - HIDE
 * 17 - DIALOG
 * 18 - ZBUFFER
 * 19 - TOTALINIT
 * 20 - ANIMATE
 * 21 - STATUS
 * 22 - ADDINV
 * 23 - DELINV
 * 24 - STOP
 * 25 - CURSOR
 * 26 - OBJECTUSE
 * 27 - ACTIVE
 * 28 - SAID
 * 29 - SETSEQ
 * 30 - ENDSEQ
 * 31 - CHECK
 * 32 - IF
 * 33 - DESCRIPTION
 * 34 - HALF
 * 36 - WALKTO
 * 37 - WALKVICH
 * 38 - INITBG
 * 39 - USERMSG
 * 40 - SYSTEM
 * 41 - SETZBUFFER
 * 42 - CONTINUE
 * 43 - MAP
 * 44 - PASSIVE
 * 45 - NOMAP
 * 46 - SETINV
 * 47 - BGSFX
 * 48 - MUSIC
 * 49 - IMAGE
 * 50 - STAND,
 * 51 - ON
 * 52 - OFF
 * 53 - PLAY
 * 54 - LEAVEBG
 * 55 - SHAKE
 * 56 - SP
 * 57 - RANDOM
 * 58 - JUMP
 * 59 - JUMPVICH
 * 60 - PART
 * 61 - CHAPTER
 * 62 - AVI
 * 63 - TOMAP
 * число 0..0xffff

