public void Unpack(BinaryReader reader) { Flags = reader.ReadUInt32(); Options = (CharacterOptions1)reader.ReadUInt32(); if ((Flags & 0x00000001) != 0) { ShortCutManager.Unpack(reader); } Tab1.Unpack(reader); if ((Flags & 0x00000004) != 0) { Tab2.Unpack(reader); Tab3.Unpack(reader); Tab4.Unpack(reader); Tab5.Unpack(reader); } if ((Flags & 0x00000010) != 0) { Tab2.Unpack(reader); Tab3.Unpack(reader); Tab4.Unpack(reader); Tab5.Unpack(reader); Tab6.Unpack(reader); Tab7.Unpack(reader); } if ((Flags & 0x00000400) != 0) { Tab2.Unpack(reader); Tab3.Unpack(reader); Tab4.Unpack(reader); Tab5.Unpack(reader); Tab6.Unpack(reader); Tab7.Unpack(reader); Tab8.Unpack(reader); } if ((Flags & 0x00000008) != 0) { DesiredComps.Unpack(reader); } if ((Flags & 0x00000020) != 0) { SpellFilters = (SpellBookFilterOptions)reader.ReadUInt32(); } if ((Flags & 0x00000040) != 0) { Options2 = (CharacterOptions2)reader.ReadUInt32(); } if ((Flags & 0x00000080) != 0) { TimestampFormat = reader.ReadString16L(); } if ((Flags & 0x00000100) != 0) { GenericQualities.Unpack(reader); } if ((Flags & 0x00000200) != 0) { VersionRow = reader.ReadUInt32(); Properties.Unpack(reader); reader.Align(); } }