public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 7 ); // version
SaveFlag flags = SaveFlag.None;
SetSaveFlag( ref flags, SaveFlag.Identified, m_Identified != false );
SetSaveFlag( ref flags, SaveFlag.MaxHitPoints, m_MaxHitPoints != 0 );
SetSaveFlag( ref flags, SaveFlag.HitPoints, m_HitPoints != 0 );
SetSaveFlag( ref flags, SaveFlag.Crafter, m_Crafter != null );
SetSaveFlag( ref flags, SaveFlag.Quality, m_Quality != ArmorQuality.Regular );
SetSaveFlag( ref flags, SaveFlag.Durability, m_Durability != ArmorDurabilityLevel.Regular );
SetSaveFlag( ref flags, SaveFlag.Protection, m_Protection != ArmorProtectionLevel.Regular );
SetSaveFlag( ref flags, SaveFlag.Resource, m_Resource != DefaultResource );
SetSaveFlag( ref flags, SaveFlag.BaseArmor, m_ArmorBase != -1 );
SetSaveFlag( ref flags, SaveFlag.StrBonus, m_StrBonus != -1 );
SetSaveFlag( ref flags, SaveFlag.DexBonus, m_DexBonus != -1 );
SetSaveFlag( ref flags, SaveFlag.IntBonus, m_IntBonus != -1 );
SetSaveFlag( ref flags, SaveFlag.StrReq, m_StrReq != -1 );
SetSaveFlag( ref flags, SaveFlag.DexReq, m_DexReq != -1 );
SetSaveFlag( ref flags, SaveFlag.IntReq, m_IntReq != -1 );
SetSaveFlag( ref flags, SaveFlag.MedAllowance, m_Meditate != (AMA)(-1) );
SetSaveFlag( ref flags, SaveFlag.PlayerConstructed, m_PlayerConstructed != false );
writer.WriteEncodedInt( (int) flags );
if ( GetSaveFlag( flags, SaveFlag.MaxHitPoints ) )
writer.WriteEncodedInt( (int) m_MaxHitPoints );
if ( GetSaveFlag( flags, SaveFlag.HitPoints ) )
writer.WriteEncodedInt( (int) m_HitPoints );
if ( GetSaveFlag( flags, SaveFlag.Crafter ) )
writer.Write( (Mobile) m_Crafter );
if ( GetSaveFlag( flags, SaveFlag.Quality ) )
writer.WriteEncodedInt( (int) m_Quality );
if ( GetSaveFlag( flags, SaveFlag.Durability ) )
writer.WriteEncodedInt( (int) m_Durability );
if ( GetSaveFlag( flags, SaveFlag.Protection ) )
writer.WriteEncodedInt( (int) m_Protection );
if ( GetSaveFlag( flags, SaveFlag.Resource ) )
writer.WriteEncodedInt( (int) m_Resource );
if ( GetSaveFlag( flags, SaveFlag.BaseArmor ) )
writer.WriteEncodedInt( (int) m_ArmorBase );
if ( GetSaveFlag( flags, SaveFlag.StrBonus ) )
writer.WriteEncodedInt( (int) m_StrBonus );
if ( GetSaveFlag( flags, SaveFlag.DexBonus ) )
writer.WriteEncodedInt( (int) m_DexBonus );
if ( GetSaveFlag( flags, SaveFlag.IntBonus ) )
writer.WriteEncodedInt( (int) m_IntBonus );
if ( GetSaveFlag( flags, SaveFlag.StrReq ) )
writer.WriteEncodedInt( (int) m_StrReq );
if ( GetSaveFlag( flags, SaveFlag.DexReq ) )
writer.WriteEncodedInt( (int) m_DexReq );
if ( GetSaveFlag( flags, SaveFlag.IntReq ) )
writer.WriteEncodedInt( (int) m_IntReq );
if ( GetSaveFlag( flags, SaveFlag.MedAllowance ) )
writer.WriteEncodedInt( (int) m_Meditate );
}