Esempio n. 1
0
        bool HasInheritancheLoop()
        {
            foreach(ClassEntry currClass in m_classes)
            {
                List<ClassEntry> nonVirtualBases = new List<ClassEntry>();
                List<ClassEntry> virtualBases = new List<ClassEntry>();
                currClass.GetAllBases(nonVirtualBases, virtualBases);
                virtualBases.RemoveDupicates();

                if( nonVirtualBases.Concat(virtualBases).HasDuplicate() )
                {
                    return true;
                }
            }
            return false;
        }
Esempio n. 2
0
 public ClassEntry GetRandomBaseOrThis(Random i_rand)
 {
     List<ClassEntry> bases = new List<ClassEntry>();
     List<ClassEntry> virtualBases = new List<ClassEntry>();
     GetAllBases(bases, virtualBases);
     virtualBases.RemoveDupicates();
     bases.AddRange(virtualBases);
     bases.Add(this);
     return bases[i_rand.Next(bases.Count)];
 }