Ejemplo n.º 1
0
        //============================================================================*
        // RemoveCaliber()
        //============================================================================*

        public void RemoveCaliber(cFirearmCaliber FirearmCaliber)
        {
            if (FirearmCaliber == null)
            {
                return;
            }

            cCaliber Caliber = FirearmCaliber.Caliber;

            //----------------------------------------------------------------------------*
            // Remove the caliber
            //----------------------------------------------------------------------------*

            m_FirearmCaliberList.Remove(FirearmCaliber);

            //----------------------------------------------------------------------------*
            // If it was the primary, pick a new one
            //----------------------------------------------------------------------------*

            bool fPrimaryFound = false;

            foreach (cFirearmCaliber CheckCaliber in m_FirearmCaliberList)
            {
                if (CheckCaliber.Primary)
                {
                    fPrimaryFound = true;

                    break;
                }
            }

            if (!fPrimaryFound)
            {
                if (m_FirearmCaliberList.Count > 0)
                {
                    m_FirearmCaliberList[0].Primary = true;
                }
            }

            //----------------------------------------------------------------------------*
            // Remove firearm bullets that match the removed caliber
            //----------------------------------------------------------------------------*

            while (true)
            {
                bool fRemoved = false;

                foreach (cFirearmBullet CheckBullet in m_FirearmBulletList)
                {
                    if (CheckBullet.Caliber.CompareTo(Caliber) == 0)
                    {
                        m_FirearmBulletList.Remove(CheckBullet);

                        fRemoved = true;

                        break;
                    }
                }

                if (!fRemoved)
                {
                    break;
                }
            }
        }