public void FixGuilds()
        {
            m_AllianceName       = "";
            m_AllianceLeader     = false;
            m_WarInitializations = new ArrayList();
            ArrayList list = new ArrayList();

            m_WarKills = (WarKillsItem[])list.ToArray(typeof(WarKillsItem));

            if (WarTimer1 == null)
            {
                WarTimer1 = new WarTimer();
                WarTimer1.Start();
            }
        }
        public Guild(Mobile leader, string name, string abbreviation) : base()
        {
            m_Leader = leader;

            m_Members         = new ArrayList();
            m_Allies          = new ArrayList();
            m_Enemies         = new ArrayList();
            m_WarDeclarations = new ArrayList();
            m_WarInvitations  = new ArrayList();

            m_AllyDeclarations = new ArrayList();
            m_AllyInvitations  = new ArrayList();
            m_Candidates       = new ArrayList();
            m_Accepted         = new ArrayList();

            m_LastFealty = DateTime.Now;

            m_Name         = name;
            m_Abbreviation = abbreviation;

            m_AllianceName       = "";
            m_AllianceLeader     = false;
            m_WarInitializations = new ArrayList();
            ArrayList list = new ArrayList();

            m_WarKills = (WarKillsItem[])list.ToArray(typeof(WarKillsItem));

            m_TypeLastChange = DateTime.MinValue;

            AddMember(m_Leader);
            if (WarTimer1 == null)
            {
                WarTimer1 = new WarTimer();
                WarTimer1.Start();
            }
        }
        public override void Deserialize(GenericReader reader)
        {
            int version = reader.ReadInt();

            if (version < 5)
            {
                FixGuilds();
            }

            switch (version)
            {
            case 5:
            {
                m_WarInitializations = reader.ReadGuildList();
                m_WarKills           = new WarKillsItem[reader.ReadInt()];
                for (int i = 0; i < m_WarKills.Length; ++i)
                {
                    m_WarKills[i].w_Guild  = reader.ReadGuild() as Guild;
                    m_WarKills[i].Kills    = reader.ReadInt();
                    m_WarKills[i].MaxKills = reader.ReadInt();
                    m_WarKills[i].WarTime  = (uint)reader.ReadInt();
                    m_WarKills[i].ExpTime  = (uint)reader.ReadInt();
                }
                m_AllianceLeader = reader.ReadBool();
                m_AllianceName   = reader.ReadString();
                goto case 4;
            }

            case 4:
            {
                m_AllyDeclarations = reader.ReadGuildList();
                m_AllyInvitations  = reader.ReadGuildList();

                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();
                m_Name         = reader.ReadString();
                m_Abbreviation = reader.ReadString();

                m_Allies          = reader.ReadGuildList();
                m_Enemies         = reader.ReadGuildList();
                m_WarDeclarations = reader.ReadGuildList();
                m_WarInvitations  = reader.ReadGuildList();

                m_Members    = reader.ReadMobileList();
                m_Candidates = reader.ReadMobileList();
                m_Accepted   = reader.ReadMobileList();

                m_Guildstone = reader.ReadItem();
                m_Teleporter = reader.ReadItem();

                m_Charter = reader.ReadString();
                m_Website = reader.ReadString();

                break;
            }
            }

            if (m_AllyDeclarations == null)
            {
                m_AllyDeclarations = new ArrayList();
            }

            if (m_AllyInvitations == null)
            {
                m_AllyInvitations = new ArrayList();
            }

            if (m_WarInitializations == null)
            {
                m_WarInitializations = new ArrayList();
            }

            if (WarTimer1 == null)
            {
                WarTimer1 = new WarTimer();
                WarTimer1.Start();
            }

            if (m_Guildstone == null || m_Members.Count == 0)
            {
                Disband();
            }
        }