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); } }
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); }