Esempio n. 1
0
            public void ReadBinary(BinaryReader reader)
            {
                fontName.position = BinaryStreamOperator.ReadPosition(reader);
                fontFilename.position = BinaryStreamOperator.ReadPosition(reader);
                fontSize = BinaryStreamOperator.ReadSize(reader);
                unknown1 = BinaryStreamOperator.ReadBinary(reader, 16);

                fontSpritePosition = BinaryStreamOperator.ReadPosition(reader);
                long currentPosition = reader.BaseStream.Position;

                reader.BaseStream.Position = fontSpritePosition;
                fontSprite.x = BinaryStreamOperator.ReadInt16(reader);
                fontSprite.y = BinaryStreamOperator.ReadInt16(reader);
                fontSprite.w = BinaryStreamOperator.ReadInt16(reader);
                fontSprite.h = BinaryStreamOperator.ReadInt16(reader);
                reader.BaseStream.Position += 12;
                fontSprite.txtrIndex = BinaryStreamOperator.ReadInt16(reader);
                reader.BaseStream.Position = currentPosition;

                unknown2 = BinaryStreamOperator.ReadBinary(reader, 8);

                int glyphCount = BinaryStreamOperator.ReadSize(reader);

                int[] glyphPosition = new int[glyphCount];
                for (int g = 0; g < glyphCount; g++)
                {
                    glyphPosition[g] = BinaryStreamOperator.ReadPosition(reader);
                }

                for (int g = 0; g < glyphCount; g++)
                {
                    Glyph glyph = new Glyph();
                    reader.BaseStream.Seek(glyphPosition[g], SeekOrigin.Begin);
                    glyph.ReadBinary(reader);
                    glyphList.Add(glyph);
                }
            }