public static FontCharacterInfo[] Read(Stream stream) { var characterCount = (int)stream.Length / 8; var charactersInfo = new FontCharacterInfo[characterCount]; stream.Position = 0; for (var i = 0; i < characterCount; i++) { charactersInfo[i] = BinaryMapping.ReadObject <FontCharacterInfo>(stream); } return(charactersInfo); }
public Font(IEnumerable <Arc.Entry> entries, string name) { Name = name; var mtx = RequireFileEntry(entries, $"{name}.mtx"); var clu = RequireFileEntry(entries, $"{name}.clu"); Info = new MemoryStream(RequireFileEntry(entries, $"{name}.inf").Data) .Using(stream => FontInfo.Read(stream)); var clut = new byte[0x40]; Array.Copy(clu.Data, 0, clut, 0, clut.Length); Image1 = new Image(name, mtx, clut, Info.ImageWidth, Info.MaxImageHeight, PixelFormat.Indexed4); Array.Copy(clu.Data, 0x40, clut, 0, clut.Length); Image2 = new Image(name, mtx, clut, Info.ImageWidth, Info.MaxImageHeight, PixelFormat.Indexed4); CharactersInfo = new MemoryStream(RequireFileEntry(entries, $"{name}.cod").Data).Using(stream => FontCharacterInfo.Read(stream)); }