Beispiel #1
0
        public void Write(FileWriter writer)
        {
            writer.ByteOrder = Syroot.BinaryData.ByteOrder.BigEndian;

            BlockCounter = 1;

            writer.WriteSignature("FFNT");
            writer.Write(BOM);
            writer.CheckByteOrderMark(BOM);
            writer.Write(HeaderSize);
            writer.Write(Version);
            long _ofsFileSize = writer.Position;

            writer.Write(uint.MaxValue);
            long _ofsBlockNum = writer.Position;

            writer.Write((ushort)0); //BlockCount
            writer.Write((ushort)0);

            writer.SeekBegin(HeaderSize);
            FontSection.Write(writer, this);

            //Save Block Count
            using (writer.TemporarySeek(_ofsBlockNum, SeekOrigin.Begin))
            {
                writer.Write((ushort)(BlockCounter + 1));
            }

            //Save File size
            using (writer.TemporarySeek(_ofsFileSize, SeekOrigin.Begin))
            {
                writer.Write((uint)(writer.BaseStream.Length));
            }
        }
Beispiel #2
0
        public void Write(FileWriter writer)
        {
            writer.ByteOrder = Syroot.BinaryData.ByteOrder.BigEndian;

            BlockCounter = 1;

            writer.WriteSignature(Signature);
            writer.Write(BOM);
            writer.CheckByteOrderMark(BOM);

            if (Signature == "TNFR")
            {
                writer.ReverseMagic = true;
            }

            long _ofsFileSize;
            long _ofsBlockNum;

            if (Platform == PlatformType.Wii)
            {
                writer.Write((ushort)Version);
                _ofsFileSize = writer.Position;
                writer.Write(uint.MaxValue);
                writer.Write(HeaderSize);
                _ofsBlockNum = writer.Position;
                writer.Write((ushort)0); //BlockCount
            }
            else
            {
                writer.Write(HeaderSize);
                writer.Write(Version);
                _ofsFileSize = writer.Position;
                writer.Write(uint.MaxValue);
                _ofsBlockNum = writer.Position;
                writer.Write((ushort)0); //BlockCount
                writer.Write((ushort)0);
            }

            writer.SeekBegin(HeaderSize);
            FontSection.Write(writer, this);
            if (KerningTable != null)
            {
                BlockCounter++;
                KerningTable.Write(writer, this);
            }

            //Save Block Count
            using (writer.TemporarySeek(_ofsBlockNum, SeekOrigin.Begin))
            {
                writer.Write((ushort)(BlockCounter + 1));
            }

            //Save File size
            using (writer.TemporarySeek(_ofsFileSize, SeekOrigin.Begin))
            {
                writer.Write((uint)(writer.BaseStream.Length));
            }
        }
Beispiel #3
0
 public Configuration()
 {
     BindingSection(out _font, v => _font = v);
     BindingSection(out _analogControl, v => _analogControl = v);
     BindingSection(out _graphics, v => _graphics           = v);
     BindingSection(out _cheats, v => _cheats           = v);
     BindingSection(out _import, v => _import           = v);
     BindingSection(out _export, v => _export           = v);
     BindingSection(out _tetraMaster, v => _tetraMaster = v);
     BindingSection(out _fixes, v => _fixes             = v);
     BindingSection(out _hacks, v => _hacks             = v);
     BindingSection(out _battle, v => _battle           = v);
     BindingSection(out _icons, v => _icons             = v);
     BindingSection(out _debug, v => _debug             = v);
 }