WPL
Материал из GTAModding.ru
Версия от 03:37, 7 сентября 2012; Solom (обсуждение | вклад)
Файлы 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
Секция блок обозначает зоны, над которыми работали разработчики. Используется в качестве заметок, но сама секция игнорируется игрой.
Размер: 132 байт 4b - UINT32 - Zone 92b - char - Unknownstring 4b - UINT32 - Unknown(Flag?) 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
- имя зоны
- Unknownstring
- совсем непонятная строка
- X1, Y1, X2, Y2, X3, Y3, X4, Y4
- плоскость