예제 #1
0
        public void Write(Stream outputStream)
        {
            BinaryWriter writer = new BinaryWriter(outputStream, Encoding.Default, true);

            writer.Write(Encoding.Default.GetBytes(Signature));
            writer.Write(LittleEndianMagicNumber);
            writer.Write((byte)Entries.Count);
            writer.WriteZeros(1);
            writer.Write(FfntHeaderSize);
            writer.AlignWrite(16, 0x00);

            long entryHeaderPosition = outputStream.Position;

            outputStream.Position += Entries.Count * FfntEntryHeader.FfntEntryHeaderSize;
            writer.AlignWrite(16, 0x00);

            List <FfntEntryHeader> ffntEntryHeaders = new List <FfntEntryHeader>();

            foreach (var entry in Entries)
            {
                ffntEntryHeaders.Add(entry.GetHeader(outputStream));
                entry.Write(outputStream);
                writer.AlignWrite(16, 0x00);
            }

            outputStream.Position = entryHeaderPosition;

            foreach (var header in ffntEntryHeaders)
            {
                header.Write(outputStream);
            }
        }
예제 #2
0
        public override void Write(Stream outputStream)
        {
            BinaryWriter writer = new BinaryWriter(outputStream, Encoding.Default, true);

            writer.AlignWrite(16, 0x00);
            writer.Write(Unknown1);
            writer.Write(Data.Length);
            writer.Write(Unknown2);
            writer.Write(Unknown3);
            writer.Write(Data);
        }