ThemeEditor.Common.Themes.Theme.Write C# (CSharp) Method

Write() public static method

public static Write ( Theme b, Stream s ) : void
b Theme
s Stream
return void
        public static void Write(Theme b, Stream s)
        {
            if (!s.CanSeek || !s.CanWrite)
                throw new ArgumentException("Provided Stream can't Seek or Write", nameof(s));

            int start = (int) s.Position;

            using (BinaryWriter bw = new BinaryWriter(s, Encoding.ASCII, true))
            {
                // Data Pad
                bw.Seek(0xD0 + start, SeekOrigin.Current);

                // Write Data
                var cOffs = Write_Colors(s, b);
                var tOffs = Write_Textures(s, b);
                var wOff = Write_CWavs(s, b);

                // Offset into Start
                cOffs.Offset(-start);
                tOffs.Offset(-start);
                wOff = (uint) (wOff - start);

                // Header Offset
                bw.Seek(0 + start, SeekOrigin.Begin);

                // Write Header
                Write_Flags(s, b, tOffs, cOffs, wOff);

                // 0x10c Pad
                int rem = (int) (s.Position % 0x10);
                bw.Seek(rem - 1, SeekOrigin.End);
                bw.Write((byte) 0);
            }
        }