Lost Heaven modding
Advertisement
Lost Heaven modding
Эту статью надо править
Road bin

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

Расположены в папках Mafia\missions\missonName\
Редактируются программами road.bin Creator (zibob) и road.bin Editor (djbozskoz)

Моддинг[]

Редактирование в указанных выше программах обязательно надо описать, а пока несколько замечаний.

  • В файле описываются два вида точек: перекрестки и промежуточные точки (у каждого типа своя нумерация)
  • Каждая точка имеет свой номер и ссылается на номера соседних точек
  • Вводить их надо по-порядку от 0 до последней.
  • В замкнутом маршруте должны быть как минимум три перекрестка (см. верхнюю картинку)
  • Между перекрестками должно быть как минимум две промежуточные точки
  • Тупики отмечаются точками типа перекресток
Обучающее видео от автора Road.bin Editor
Видео по Road.bin Creator

Формат файла[]

Можно восстановить по информации от djbozkosz и GOLOD55 ниже.

А пока заготовка.

----------------------------------------------------------------
variable         type       description
----------------------------------------------------------------
fileSgn          long       константа = 02 00 00 00
crossroadsCount  long       число точек перекрестков
crossroadsDesc1  0xEC byte  описание точки первого перекрестка
...
crossroadsDescN  0xEC byte  и последнего
wayPointCount    long       число промежуточных точек
wayPointDesc1    0x18 byte  описание первой промежуточной точки
...
wayPointDescN    0x18 byte  и последней
---------------------------------------------------------------- 

crossroadsDescХ описание точки перекрестка (проверить порядок переменных)
----------------------------------------------------------------
variable         type       description
----------------------------------------------------------------
xPos      float   Х координата перекрестка
yPos      float   Y
zPos      float   Z
unknown   4 byte  ?
speed     float   максимальная скорость на нем, км\ч

...
---------------------------------------------------------------- 

wayPointDescХ описание промежуточной точки
----------------------------------------------------------------
variable  type    description
----------------------------------------------------------------
xPos      float   Х координата промежуточной точки
yPos      float   Y
zPos      float   Z
speed     float   максимальная скорость на этом участке, км\ч
unknown   8 byte  номера соседних точек, номера точек следующих
                  за соседними
----------------------------------------------------------------

Документация road.bin GOLOD55\26.12.2004

1. Файл состоит из двух разделов, в каждом из них - некоторое количество секторов. Разделы расположены друг за другом и имеют разделитель, являющийся чек-суммой кол-ва секторов во втором разделе ( тип L).
2. В начале файла стоит заголовок  02000000, затем - чек-сумма кол-ва секторов в первом разделе (тип L). 
3. Размер сектора в первом разделе равен 236 байт. То есть: при умножении чек-суммы кол-ва секторов на 236, получаем размер всего раздела (в байтах). 
4. Размер сектора во втором разделе равен 24 байта. То есть: при умножении чек-суммы кол-ва секторов на 24, получаем размер всего раздела (в байтах).
5. Структура сектора в первом разделе представляет собой подсектор с общими данными (28 байт) и основной подсектор (208 байт), который состоит из 4 блоков (по 52 байта), имеющих в свою очередь также подблок с общими данными (20 байт) + 4 основных подблока (по 8 байт).




                                   Структура сектора первого раздела

                                                      подсектор с общими данными
F Коорд X
F Коорд Y
F Коорд Z
S флаг?
2байта const = CCCC (разделитель?)
F Некий множитель скорости на данном участке (или при движении к данной точке)
6байт ??? 
2байта обычно = FFFF (разделитель?)

                                                       подблок с общими данными
S флаг?
2байта const = CCCC (разделитель?)
F ? 
F ? 1.5730119 похоже на pi/2
B флаг?
1байт const = CC (разделитель?)
L ? 
2байта const = CCCC (разделитель?)                                                                   

                                                               основной подблок
2байта const = 0000 (разделитель?)
B ? флаг???
1байт const = CC (разделитель?)F? 


                                    Структура сектора второго раздела
F Коорд X
F Коорд Y
F Коорд Z
F Некий множитель скорости на данном участке (или при движении к данной точке)
B ?
B ? 
B ?
B ?
S ?
S? 
Advertisement