RPF
Материал из GTAModding.ru
Версия от 15:03, 18 марта 2009; Dageron (обсуждение | вклад)
RPF - новый вид архивов, предстатвленных в GTAIV (в большинстве своем "тотально" использовались в консольных версиях).
В настоящее время могут быть отредактированы в OpenIV и SparkIV.
Содержание |
Заголовок
Все RPF файлы имеют однотипный заголовок, из которого можно узнать версию архива, количество содержимого и зашифрован ли архив.
4b - INT32 - Версия RPF (2: 0x32465052; 3: 0x33465052). 4b - INT32 - Размер таблицы содержимого. 4b - INT32 - Количество содержимых объектов. 4b - INT32 - Unknown. 4b - INT32 - Зашифрован ли архив (если не зашифрован, то флаг равен нулю).
Таблица содержимого
Размер таблицы содержимого определяется значением в заголовке архива. Сама таблица начинается после 2048 байт от начала файла, ее шифрование так же зависит от соответствующего значения в заголовке См. Шифрование (GTA 4).
Содержит разделы директорий и файлов. Оба раздела отличаются своими структурами.
Раздел директорий
4b - INT32 - Оффсет имени (определяет оффсет в таблице названий где находится имя директории). 4b - INT32 - Флаги (дает информацию о директории). 4b - UINT32 - Индекс (дает информацию о номере в таблице первого файла директории). 4b - UINT32 - Количество файлов в директории.
Раздел файлов
4b - INT32 - Оффсет имени (определяет оффсет в таблице названий). 4b - INT32 - Размер (определяет размер файла). 3b - UINT24 - Оффсет (определяет оффсет файла в архиве). 1b - UCHAR8 - Тип ресурса (определяет версию ресурса - только для RSC). 4b - UINT32 - Определяет сжат файл или нет.
В качестве алгоритма сжатия используется Zlib.