public static NativeEntry[] From(BinaryReader rd, SectionEntry header, SmxNameTable names) { if (header.Size % Size != 0) { throw new Exception("invalid native table size"); } var count = header.Size / Size; var entries = new NativeEntry[count]; for (var i = 0; i < count; i++) { var entry = new NativeEntry(); entry.nameoffs = rd.ReadInt32(); entry.Name = names.StringAt(entry.nameoffs); entries[i] = entry; } return(entries); }
public SmxNativeTable(FileHeader file, SectionEntry header, SmxNameTable names) : base(file, header) { natives_ = NativeEntry.From(file.SectionReader(header), header, names); }
public static NativeEntry[] From(BinaryReader rd, SectionEntry header, SmxNameTable names) { if (header.Size % Size != 0) throw new Exception("invalid native table size"); var count = header.Size / Size; var entries = new NativeEntry[count]; for (var i = 0; i < count; i++) { var entry = new NativeEntry(); entry.nameoffs = rd.ReadInt32(); entry.Name = names.StringAt(entry.nameoffs); entries[i] = entry; } return entries; }