Roadblox.dat — различия между версиями

Материал из GTAModding.ru
Перейти к: навигация, поиск
(Новая страница: «Файл roadblox.dat хранит информацию о местах создания полицейских заграждений на карте в GTA SA. …»)
 
м (Пример чтения файла)
 
Строка 20: Строка 20:
 
{
 
{
 
     NodeInfo info;
 
     NodeInfo info;
     unsigned int count;
+
     signed int count;
 
     char line[32];
 
     char line[32];
 
     FILE * dat = fopen("data\\paths\\roadblox.dat", "rb");
 
     FILE * dat = fopen("data\\paths\\roadblox.dat", "rb");

Текущая версия на 14:07, 14 сентября 2013

Файл roadblox.dat хранит информацию о местах создания полицейских заграждений на карте в GTA SA.

Формат

Файл начинается с параметра - кол-ва используемых мест для заграждений. Далее следует информация об этих местах. Информация об одном таком месте состоит из id зоны на карте путей и id пути в этой зоне.

struct NodeInfo
{
    signed __int16 areaId;
    unsigned __int16 nodeId;
};
struct _RoadBloxFile
{
    signed __int32 count;
    NodeInfo places[325];
};

Редактирование

Файл можно редактировать, но при этом его размер должен оставаться не меньше оригинального. Параметр "count" может иметь значение "-1" (в таком случае информация о местах заграждений будет игнорироваться).

Пример чтения файла

void main()
{
    NodeInfo info;
    signed int count;
    char line[32];
    FILE * dat = fopen("data\\paths\\roadblox.dat", "rb");
    FILE * txt = fopen("data\\paths\\roadblox.txt", "wt");
    fread(&count, 4, 1, dat);
    sprintf(line, "count: %d\n", count);
    fputs(line, txt);
    for(int i = 1; i < 326; i++)
    {
        fread(&info, 4, 1, dat);
        sprintf(line, "  %3d area: %2d node: %3d\n", i, info.areaId, info.nodeId);
        fputs(line, txt);
    }
    fclose(txt);
    fclose(dat);
}