public static Theme Read(Stream s)
{
if (!s.CanSeek)
throw new ArgumentException("Stream can't Seek", nameof(s));
var body = new Theme();
using (var br = new BinaryReader(s, Encoding.ASCII, true))
{
var flag = br.ReadUInt32() == 1;
if (!flag)
throw new InvalidDataException("Not a Theme File (Was File Decompressed?)");
var flags = Read_Flags(s);
var cOffs = Read_ColorOffsets(s, flags);
var tOffs = Read_TextureOffsets(s, flags);
var colors = Read_Colors(s, flags, cOffs);
var textures = Read_Textures(s, flags, tOffs);
var cwav = Read_CWav(s, flags);
body.Flags = flags;
body.Colors = colors;
body.Textures = textures;
body.CWAV = cwav;
}
return body;
}