Roadblox.dat — различия между версиями
Материал из GTAModding.ru
DK22 (обсуждение | вклад) (Новая страница: «Файл roadblox.dat хранит информацию о местах создания полицейских заграждений на карте в GTA SA. …») |
DK22 (обсуждение | вклад) м (→Пример чтения файла) |
||
Строка 20: | Строка 20: | ||
{ | { | ||
NodeInfo info; | NodeInfo info; | ||
− | + | 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); }