Скрипт ресурсов

Файлы скриптов ресурсов используются во вспомогательном классе hgeResourceManager для определения сложных ресурсов. Это простой текстовый файл, содержаший определения ресурсов.

Общие правила

Скрипт ресурсов состоит из команд, разделенных символами пробела ('\t', '\n', '\r' or ' '). Если обнаружена точка с запятой (';'), то вся остальная часть строки рассматривается как комментарий пользователя и игнорируется. Все команды и названия регистрозависимые.

Общий формат команд такой:

ResourceType ResourceName : BaseResourceName
{
 Parameter1=Value1
 Parameter2=Value2
 ...
 ParameterN=ValueN
}

Параметры могут появляться в любом порядке. Большинство параметров имеют значения по умолчанию и могут быть опущены. Если параметр имеет много значений, все они должны быть указаны. Множественные значения должны быть разделены запятыми : ','.

Названия ресурсов являются словами, которые начинаются с буквы и разделяются символами пробелов. Ресурсы разных типов не могут иметь одинаковые названия. Нельзя также выбирать названия ресурсов совпадающие с названиями команд или параметров. Символы ',', ':', '{', '}' и '=' тоже не доступны в именах. Чтобы определить имя ресурса или путь к файлц содержаший пробелы и/или специальные символы, используйте кавычки: "01name:part1 part2". Помните, что строчки в кавычках не могут занимать несколько строк.

Если указан BaseResourceName и объявлен ресурс с таким названием все параметры копируются в новый ресурс и только указанные заменяются новыми значениями.

Если hgeResourceManager обнаруживает ошибки, загружая скрпит ресурсов, он пытвется пропустить наименьшую часть файла. Все ошибки анализа скрипта записываются в файл протокола с максимально возможным объяснением.

Команда Include

Команда "Include" включает другой файл сприпта для обработки. Это позволяет разбивать ваши скрипты на несколько файлов и использовать их в различных комбинациях. Циклические ссылки и ссылки на себя автоматически определяются и игнорируются.

Пример:

Include level2.res

Команда Resource

Команда "Resource" определяет простой ресурс. Поддерживает параметры:

filename
Имя файла простого ресурса, абсолютное или относительное к директории приложнеия или корню архива ресурсов.
resgroup
Целочисленный идентификатор группы. По умолчанию равен 0, что значит неопределенную группу.

Пример:

Resource level1
{
 filename=levels\level1.dat
 resgroup=1
}

Команда Texture

Команда "Texture" определяет текстуру. Поддерживает параметры:

filename
Имя файла текстуры, абсолютное или относительное к директории приложнеия или корню архива ресурсов.
resgroup
Целочисленный идентификатор группы. По умолчанию равен 0, что значит неопределенную группу.

Пример:

Texture background
{
 filename=images\bg.jpg
 resgroup=1
}

Команда Sound

Команда "Sound" определяет звуковой эффект. Поддерживает параметры:

filename
Имя файла звукового эффекта, абсолютное или относительное к директории приложнеия или корню архива ресурсов.
resgroup
Целочисленный идентификатор группы. По умолчанию равен 0, что значит неопределенную группу.

Пример:

Sound explosion1
{
 filename=sounds\expl1.ogg
 resgroup=1
}

Команда Music

Команда "Music" определяет музыку. Поддерживает параметры:

filename
Имя файла музыки, абсолютное или относительное к директории приложнеия или корню архива ресурсов.
resgroup
Целочисленный идентификатор группы. По умолчанию равен 0, что значит неопределенную группу.

Пример:

Music main_theme
{
 filename=sounds\music1.xm
 resgroup=1
}

КомандаStream

Команда "Stream" определяет аудио поток. Поддерживает параметры:

filename
Имя файла звукового потока, абсолютное или относительное к директории приложнеия или корню архива ресурсов.
resgroup
Целочисленный идентификатор группы. По умолчанию равен 0, что значит неопределенную группу.

Example:

Stream sountrack1
{
 filename=ost.mp3
 resgroup=1
}

Команда Target

Команда "Target" определяет цель рендеринга. Поддерживает парметры:

size
Размеры цели рендеринга, два целых числа: ширина и высота. Должны являться степенью 2. Значение по умолчанию - 256x256.
zbuffer
Булево значение, опрделяющее, использовать Z-буфер для этой цели рендеринга или нет. Значение по умолчанию - false.
resgroup
Целочисленный идентификатор группы. По умолчанию равен 0, что значит неопределенную группу.

Пример:

Target HUD
{
 size=256,256
 zbuffer=false
 resgroup=1
}

Команда Sprite

Команда "Sprite" определяет спрайт. Поддерживает параметры:

texture
Название текстуры для спрайта. Может быть названием определенной ранее текстуры или просто названием файла.
rect
Область текстуры, используемая для спрайта, четыре числа с плавающей точкой: X и Y координаты левой верхней точки, ширина и высота.
hotspot
Центр спрайта, два числа с плавающей точкой: X и Y смещения от левого верхнего угла спрайта. Значения по умолчанию - 0,0.
blendmode
Режим смешивания, список из одной или нескольких следующих констант: COLORMUL, COLORADD, ALPHABLEND, ALPHAADD, ZWRITE, NOZWRITE. Смотрите Режимы смешивания для более детального описания. Значение по умолчанию - COLORMUL, ALPHABLEND, NOZWRITE.
color
Цвет спрайта, шестнадцатиричное значение. Смотрите Аппаратный формат цвета для более подробной информации. Значение по умолчанию - FFFFFFFF.
zorder
Z-глубина спрайта: число с плавающей запятой. Значение по умолчанию - 0.5.
flip
Два булевых значения, определяющих нужно ли отражать спрайт горизонтально и вертикально. Значения по умолчанию - false, false.
resgroup
Целочисленный идентификатор группы. По умолчанию равен 0, что значит неопределенную группу.

Пример:

Sprite wizard
{
 texture=characters
 rect=0,0,32,32
 hotspot=16,16
 blendmode=COLORMUL,ALPHABLEND,NOZWRITE
 resgroup=1
}

Sprite orc : wizard
{
 rect=0,64,32,32
 color=FF808000
}

Команда Animation

Команда "Animation" определяет анимацию. Она содержит все параметры команды Sprite и плюс следующие:

frames
Общее число кадров анимации, целое число. Значение по умолчанию - 1.
fps
Скорость воспроизведение анимации (кадров в секунду), число с плавающей точкой. Значение по умолчанию - 12.0.
mode
Режим воспроизведения анимации, список из одного или нескольких следующих констант: FORWARD, REVERSE, PINGPONG, NOPINGPONG, LOOP, NOLOOP. Смотрите hgeAnimation::SetMode для более детального описания. Значения по умолчанию FORWARD, LOOP.

Пример:

Animation hero.walk
{
 texture=characters
 rect=0,128,32,32
 frames=8
 fps=6.0
 mode=FORWARD,NOLOOP
 hotspot=16,16
 blendmode=COLORMUL,ALPHABLEND,NOZWRITE
 resgroup=1
}

Команда Font

Команда "Font" опредляет шрифт. Поддерживает параметры:

filename
Имя файла описания шрифта, абсолютное или относительное к директории приложнеия или корню архива ресурсов.
blendmode
Режим смешивания, список из одного или нескольких следующих констант: COLORMUL, COLORADD, ALPHABLEND, ALPHAADD, ZWRITE, NOZWRITE. Смотрите Режимы смешивания для Значение по умолчанию - COLORMUL, ALPHABLEND, NOZWRITE.
color
Цвет шрифта, шестнадцатиричное число: Смотрите Аппаратный формат цвета для подробного описания. Значение по умолчанию - FFFFFFFF.
zorder
Z-глубина шрифта: число с плавающей точкой. Значение по умолчанию 0.5.
scale
Коэффициент масштабирования шрифта, число с плавающей запятой. Значение по умолчанию - 1.0.
rotation
Угол поворота символов в радианах, число с плавающей точкой. Значение по умолчанию - 0.0.
tracking
Разряженность шрифта в пикселях, число с плавающей точкой. Может быть отрицательным. Значение по умолчанию - 0.0.
resgroup
Целочисленный идентификатор группы. По умолчанию равен 0, что значит неопределенную группу.

Пример:

Font tengwar
{
 filename=fonts\tengwar.fnt
 tracking=1.0
 resgroup=1
}

Команда Particle

Команда "Particle" определяет систему частиц. Поддерживает параметры:

filename
Имя файла пресета системы частиц, абсолютное или относительное к директории приложнеия или корню архива ресурсов.
sprite
Имя спрайта, которое необходимо использовать в системе частиц.
fps
Частота обновления системы частиц (кадров в секунду), число с плавающей точкой. Значение по умолчанию 0.0, означает неограниченное обновление.
resgroup
Целочисленный идентификатор группы. По умолчанию равен 0, что значит неопределенную группу.

Пример:

Particle explosion1
{
 filename=data\explosion1.psi
 sprite=explosion1
 fps=50.0
 resgroup=1
}

Команда Distortion

Команда "Distortion" определяет сетку искажения. Поддерживает параметры:

texture
Название текстуры, которое нужно использвать в сетке. Может быть ранее указанная текстура или просто имя файла.
rect
Область текстуры, которая используется в сетке, четыре числа с плавающей точкой: X и Y координаты левого верхнего угла, ширина и высота.
mesh
Размеры сетки, два целых числа: число столбцов и строк. Значение по умолчанию - 2,2.
blendmode
Режим смешивания, список из одной или нескольких следующих констант: COLORMUL, COLORADD, ALPHABLEND, ALPHAADD, ZWRITE, NOZWRITE. Смотрите Режимы смешивания для детального описания. Значение по умолчанию COLORMUL, ALPHABLEND, NOZWRITE.
color
Цвет сетки искажения, шестнадцатиричное число: Смотрите Аппаратный формат цвета для подробного описания. Значение по умолчанию - FFFFFFFF.
zorder
Z-глубина сетки искажения: число с плавающей точкой. Значение по умолчанию - 0.5.
resgroup
Целочисленный идентификатор группы. По умолчанию равен 0, что значит неопределенную группу.

Пример:

Distortion waves
{
 texture=title
 rect=0,0,400,200
 mesh=16,8
 color=FF2060F0
 resgroup=1
}