public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
BookContent content = this.DefaultContent;
SaveFlags flags = SaveFlags.None;
if ( m_Title != ( content == null ? null : content.Title ) )
flags |= SaveFlags.Title;
if ( m_Author != ( content == null ? null : content.Author ) )
flags |= SaveFlags.Author;
if ( m_Writable )
flags |= SaveFlags.Writable;
if ( content == null || !content.IsMatch( m_Pages ) )
flags |= SaveFlags.Content;
writer.Write( (int) 4 ); // version
writer.Write( (byte) flags );
if ( (flags & SaveFlags.Title) != 0 )
writer.Write( m_Title );
if ( (flags & SaveFlags.Author) != 0 )
writer.Write( m_Author );
if ( (flags & SaveFlags.Content) != 0 )
{
writer.WriteEncodedInt( m_Pages.Length );
for ( int i = 0; i < m_Pages.Length; ++i )
m_Pages[i].Serialize( writer );
}
}