Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
            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));
            }