TESVSnip.Domain.Model.GroupRecord.SaveData C# (CSharp) Method

SaveData() private method

private SaveData ( BinaryWriter writer ) : void
writer System.IO.BinaryWriter
return void
        internal override void SaveData(BinaryWriter writer)
        {
            long startpos = writer.BaseStream.Position;
            var svSize = (uint)this.Size;
            var svSize2 = (uint)this.Size2;
            WriteString(writer, "GRUP");
            writer.Write(svSize); // Write uncompressed size for now
            writer.Write(this.data);
            writer.Write(this.groupType);
            writer.Write(this.dateStamp);
            writer.Write(this.flags); // should this check for oblivion?
            foreach (Rec r in this.Records)
            {
                r.SaveData(writer);
            }

            writer.Flush();
            long curpos = writer.BaseStream.Position;
            var wrSize = (uint)(curpos - startpos);
            if (wrSize != svSize2)
            {
                // fix size due to compression
                writer.BaseStream.Position = startpos + 4;
                writer.Write(wrSize); // Write the actuall compressed group size
                writer.BaseStream.Position = curpos;
            }
        }