WPL

Материал из GTAModding.ru
Перейти к: навигация, поиск

Файлы Windows PLacement выполняют такую же роль, как и файлы IPL из предыдущих частей.

Содержание

Формат файла

Любой WPL файл начинается с заголовка размером 68 байт. Каждый параметр отвечает за количество блоков в соответствующей секции. В большинстве секций находятся блоки с данными о расположении объектов.

4b - UINT32   - (Версия)    - Всегда равна "3"
4b - UINT32   - (секция 0)  - inst
4b - UINT32   - (секция 1)  - 0 (unused)
4b - UINT32   - (секция 2)  - grge
4b - UINT32   - (секция 3)  - cars (только в файлах *_stream*.wpl)
4b - UINT32   - (секция 4)  - tcyc 
4b - UINT32   - (секция 5)  - 0 (unused)
4b - UINT32   - (секция 6)  - 0 (unused)
4b - UINT32   - (секция 7)  - 0 (unused)
4b - UINT32   - (секция 8)  - mlop (только в файлах *_strbig*.wpl)
4b - UINT32   - (секция 9)  - lodm (только в файлах lodcull_*.wpl)
4b - UINT32   - (секция 10) - slow
4b - UINT32   - (секция 11) - 0 (unused)
4b - UINT32   - (секция 12) - 0 (unused)
4b - UINT32   - (секция 13) - 0 (unused)
4b - UINT32   - (секция 14) - 0 (unused)
4b - UINT32   - (секция 15) - blok

Примечание: порядок секций в файле немного отличается от порядка в заголовке, записи из секции 15 (если они есть) идут следующими за секцией 4.

inst

Информация размещения объектов соответствует секции instance .ipl файлов. Здесь схожая структура как у бинарных IPL файлов (введенные с San Andreas).

Размер: 48 байт
4b - float   - Позиция X
4b - float   - Позиция Y
4b - float   - Позиция Z
4b - float   - Вращение X
4b - float   - Вращение Y
4b - float   - Вращение Z
4b - float   - Вращение W
4b - UINT32  - Хеш названия модели
4b - UINT32  - Flags
4b - INT32   - LOD-Индекс
4b - INT32   - Unknown
4b - float   - Unknown

Информация вращения в виде кватерниона

grge

Размер: 48 байт
4b - float   - X1
4b - float   - Y1
4b - float   - Z1
4b - float   - frontX
4b - float   - frontY
4b - float   - X2
4b - float   - Y2
4b - float   - Z2
4b - UINT32  - DoorType
4b - UINT32  - GarageType
8b - char    - GarageName
X1, Y1, Z1
нижний левый передний угол
frontX, frontY
нижний правый передний угол
X2, Y2, Z2
верхний левый задний
DoorType
тип дверей
GarageType
тип гаража (1=гараж с дверью, 2=pay'n'spray, 5=место парковки)
GarageName
идентификатор из GXT файла

cars

Используется только в (*_stream*.wpl) файлах.

Размер: 56 байт
4b - float   - X
4b - float   - Y
4b - float   - Z
4b - float   - Unknown
4b - float   - Rotation
4b - float   - Rotation
4b - UINT32  - Model name hash
4b - int32   - Car color 1
4b - int32   - Car color 2
4b - int32   - Car color 3
4b - int32   - Specular color
4b - UINT32  - Flags
4b - int32   - Alarm
4b - int32   - Unknown
X, Y, Z
Координаты расположения.
Rotation
Поворот автомобиля
Model name hash
Хеш имени модели.
Car color 1-3
Параметр задаёт цвета автомобилю
Specular Color
Цвет спекуляра
Flags
Флаги
Alarm
Сигнализация

tcyc

Секция управляет некоторыми изменениями в графическом плане, или эффектами. Имена берутся из файлов timecycmodifiers№.dat.

Размер: 44 байт
4b - float   - X1
4b - float   - Y1
4b - float   - Z1
4b - float   - X2
4b - float   - Y2
4b - float   - Z2
4b - UINT32  - Unknown1
4b - UINT32  - Unknown2
4b - UINT32  - Unknown3
4b - UINT32  - Unknown4
4b - UINT32  - Hash
X1, Y1, Z1
нижний левый передний угол
X2, Y2, Z2
верхний правый задний угол
Hash - Хэш имени бокса.

mlop

Используется только в (*_strbig*.wpl) файлах.

Через эту секцию, разработчики расставляли двери к домам, а также некоторые вывески в метро и др.

Размер: 64 байт
24b - char    - modelname
4b  - UINT32  - flags
4b  - UINT32  - interior index // interior inst index
4b  - UINT32  - Unknown
4b  - float   - Pos X
4b  - float   - Pos Y
4b  - float   - Pos Z
4b  - float   - Rot X
4b  - float   - Rot Y
4b  - float   - Rot Z
4b  - float   - Rot W
modelname
название модели
Pos X, Pos Y, Pos Z
координаты объекта
Rot X, Rot Y, Rot Z, Rot W
вращение объекта (в виде кватерниона)

lodm

Присутствие секции lodm наблюдается файлах, имена которых начинаются с "lodcull_**.wpl" (см. папку pc\data\maps\generic)

Размер: 388 байт
4b  - float   - X1
4b  - float   - Y1
4b  - float   - Z1
4b  - float   - X2
4b  - float   - Y2
4b  - float   - Z2
4b  - UINT32  - Unknown
4b  - UINT32  - hash1 
4b  - UINT32  - hash2
4b  - UINT32  - hash3
4b  - UINT32  - hash4
4b  - UINT32  - hash5
4b  - UINT32  - hash6
4b  - UINT32  - hash7
4b  - UINT32  - hash8
4b  - UINT32  - hash9
4b  - UINT32  - hash10
32b - char    - modelname1
32b - char    - modelname2
32b - char    - modelname3
32b - char    - modelname4
32b - char    - modelname5
32b - char    - modelname6
32b - char    - modelname7
32b - char    - modelname8
32b - char    - modelname9
32b - char    - modelname10
X1, Y1, Z1
нижний левый передний угол
X2, Y2, Z2
верхний правый задний
hash[i]
хеш имени модели modelname[i]
modelname[i]
имя модели, которое соответствует хешу hash[i]

slow

Размер: 24 байт
4b - float     - X1
4b - float     - Y1
4b - float     - Z1
4b - float     - X2
4b - float     - Y2
4b - float     - Z2
X1, Y1, Z1
нижний левый передний угол
X2, Y2, Z2
верхний левый задний

blok

Секция "blok" использовалась разработчиками для указания различных заметок на карте игры. Секция игнорируется игрой.

Размер: 132 байт
4b  - UINT32    - Zone
92b - char      - Author | Time
4b  - UINT32    - Unknown
4b  - float     - X1
4b  - float     - Y1
4b  - float     - X2
4b  - float     - Y2
4b  - float     - X3
4b  - float     - Y3
4b  - float     - X4
4b  - float     - Y4
Zone
имя зоны
Author | Time
Здесь указывается автор и время
X1, Y1, X2, Y2, X3, Y3, X4, Y4
плоскость

Ссылки

Топик на GTAForums