private static void Write_Flags
(Stream s, Theme body, TextureOffsets tOff, ColorOffsets cOff, uint wOff)
{
using (BinaryWriter bw = new BinaryWriter(s, Encoding.ASCII, true))
{
// Version
bw.Write(1);
// BGM Flag
bw.Write((byte) 0);
bw.Write((byte) (body.Flags.BackgroundMusic ? 1 : 0));
bw.Write((byte) 0);
bw.Write((byte) 0);
// Unkown
bw.Write((uint) 0);
// Top Screen
bw.Write((uint) body.Flags.TopDrawType);
bw.Write((uint) body.Flags.TopFrameType);
bw.Write((uint) cOff.TopBackground);
bw.Write((uint) tOff.Top);
bw.Write((uint) tOff.TopExt);
// Bottom Screen
bw.Write((uint) body.Flags.BottomDrawType);
bw.Write((uint) body.Flags.BottomFrameType);
bw.Write((uint) tOff.Bottom);
// Cursor
bw.Write((uint) (body.Flags.CursorColor ? 1 : 0));
bw.Write((uint) cOff.Cursor);
// 3D Folder
bw.Write((uint) (body.Flags.FolderColor ? 1 : 0));
bw.Write((uint) cOff.Folder);
// 2D Folder
bw.Write((uint) (body.Flags.FolderTexture ? 1 : 0));
bw.Write((uint) tOff.FolderClosed);
bw.Write((uint) tOff.FolderOpen);
// 3D File
bw.Write((uint) (body.Flags.FileColor ? 1 : 0));
bw.Write((uint) cOff.File);
// 2D File
bw.Write((uint) (body.Flags.FileTexture ? 1 : 0));
bw.Write((uint) tOff.FileLarge);
bw.Write((uint) tOff.FileSmall);
// Arrow Button
bw.Write((uint) (body.Flags.ArrowButtonColor ? 1 : 0));
bw.Write((uint) cOff.ArrowButton);
// Arrow
bw.Write((uint) (body.Flags.ArrowColor ? 1 : 0));
bw.Write((uint) cOff.Arrow);
// Open Close
bw.Write((uint) (body.Flags.OpenCloseColor ? 1 : 0));
bw.Write((uint) cOff.Open);
bw.Write((uint) cOff.Close);
// Game Text
bw.Write((uint) body.Flags.GameTextDrawType);
bw.Write((uint) cOff.GameText);
// Bottom Solid
bw.Write((uint) (body.Flags.BottomBackgroundInnerColor ? 1 : 0));
bw.Write((uint) cOff.BottomSolid);
// Bottom Outer
bw.Write((uint) (body.Flags.BottomBackgroundOuterColor ? 1 : 0));
bw.Write((uint) cOff.BottomOuter);
// Folder BG
bw.Write((uint) (body.Flags.FolderBackgroundColor ? 1 : 0));
bw.Write((uint) cOff.FolderBackground);
// Folder Arrow
bw.Write((uint) (body.Flags.FolderArrowColor ? 1 : 0));
bw.Write((uint) cOff.FolderArrow);
// Bottom Corner
bw.Write((uint) (body.Flags.BottomCornerButtonColor ? 1 : 0));
bw.Write((uint) cOff.BottomCornerButton);
// Top Corner
bw.Write((uint) (body.Flags.TopCornerButtonColor ? 1 : 0));
bw.Write((uint) cOff.TopCornerButton);
// Demo Text
bw.Write((uint) (body.Flags.DemoTextColor ? 1 : 0));
bw.Write((uint) cOff.DemoText);
// SFX
bw.Write((uint) (body.Flags.SoundEffect ? 1 : 0));
bw.Write((uint) body.CWAV.Length);
bw.Write((uint) wOff);
}
}