namespace NResLib;
///
/// Архив NRes (файл NRes)
///
public record NResArchive(NResArchiveHeader Header, List Files);
///
/// Заголовок файла
///
/// [0..4] ASCII NRes
/// [4..8] Версия кодировщика (должно быть всегда 0x100)
/// [8..12] Количество файлов
/// [12..16] Длина всего архива
public record NResArchiveHeader(string NRes, int Version, int FileCount, int TotalFileLengthBytes);
///
/// В конце файла есть список метаданных,
/// каждый элемент это 64 байта,
/// найти начало можно как (Header.TotalFileLengthBytes - Header.FileCount * 64)
///
/// [0..4] ASCII описание типа файла, например TEXM или MAT0
/// [4..8] Количество элементов в файле (если файл составной, например .trf)
/// [8..12] Неизвестное число
/// [12..16] Длина файла в байтах
/// [16..20] Размер элемента в файле (если файл составной, например .trf)
/// [20..40] ASCII имя файла
/// [40..44] Неизвестное число
/// [44..48] Неизвестное число
/// [48..52] Неизвестное число
/// [52..56] Неизвестное число
/// [56..60] Смещение подфайла от начала NRes (именно самого NRes) в байтах
/// [60..64] Индекс в файле (от 0, не больше чем кол-во файлов)
public record ListMetadataItem(
string FileType,
uint ElementCount,
int Magic1,
int FileLength,
int ElementSize,
string FileName,
int Magic3,
int Magic4,
int Magic5,
int Magic6,
int OffsetInFile,
int Index
);