public override void Deserialize( GenericReader reader )
{
int version = reader.ReadInt();
switch ( version )
{
case 5:
{
int count = reader.ReadInt();
m_PendingWars = new List<WarDeclaration>();
for( int i = 0; i < count; i++ )
{
m_PendingWars.Add( new WarDeclaration( reader ) );
}
count = reader.ReadInt();
m_AcceptedWars = new List<WarDeclaration>();
for( int i = 0; i < count; i++ )
{
m_AcceptedWars.Add( new WarDeclaration( reader ) );
}
bool isAllianceLeader = reader.ReadBool();
if( isAllianceLeader )
m_AllianceInfo = new AllianceInfo( reader );
else
m_AllianceLeader = reader.ReadGuild() as Guild;
goto case 4;
}
case 4:
{
m_AllyDeclarations = reader.ReadStrongGuildList<Guild>();
m_AllyInvitations = reader.ReadStrongGuildList<Guild>();
goto case 3;
}
case 3:
{
m_TypeLastChange = reader.ReadDateTime();
goto case 2;
}
case 2:
{
m_Type = (GuildType)reader.ReadInt();
goto case 1;
}
case 1:
{
m_LastFealty = reader.ReadDateTime();
goto case 0;
}
case 0:
{
m_Leader = reader.ReadMobile();
if( m_Leader is PlayerMobile )
((PlayerMobile)m_Leader).GuildRank = RankDefinition.Leader;
m_Name = reader.ReadString();
m_Abbreviation = reader.ReadString();
m_Allies = reader.ReadStrongGuildList<Guild>();
m_Enemies = reader.ReadStrongGuildList<Guild>();
m_WarDeclarations = reader.ReadStrongGuildList<Guild>();
m_WarInvitations = reader.ReadStrongGuildList<Guild>();
m_Members = reader.ReadStrongMobileList();
m_Candidates = reader.ReadStrongMobileList();
m_Accepted = reader.ReadStrongMobileList();
m_Guildstone = reader.ReadItem();
m_Teleporter = reader.ReadItem();
m_Charter = reader.ReadString();
m_Website = reader.ReadString();
break;
}
}
if ( m_AllyDeclarations == null )
m_AllyDeclarations = new List<Guild>();
if ( m_AllyInvitations == null )
m_AllyInvitations = new List<Guild>();
if ( m_AcceptedWars == null )
m_AcceptedWars = new List<WarDeclaration>();
if ( m_PendingWars == null )
m_PendingWars = new List<WarDeclaration>();
/*
if ( ( !NewGuildSystem && m_Guildstone == null )|| m_Members.Count == 0 )
Disband();
*/
Timer.DelayCall( TimeSpan.Zero, new TimerCallback( VerifyGuild_Callback ) );
}