private void LoadPets()
        {
            IPetRecord activePetRecord = null;

            // load info for summoned pets
            if (m_record.PetSummonedCount > 0)
            {
                var pets = SummonedPetRecord.LoadSummonedPetRecords(m_record.EntityLowId);
                foreach (var pet in pets)
                {
                    if (pet.IsActivePet)
                    {
                        activePetRecord = pet;
                    }
                    SummonedPetRecords.Add(pet);
                }
            }

            // load info for permanent pets
            if (m_record.PetCount > 0)
            {
                var pets = PermanentPetRecord.LoadPermanentPetRecords(m_record.EntityLowId);
                foreach (var pet in pets)
                {
                    if (pet.IsActivePet)
                    {
                        activePetRecord = pet;
                    }
                    StabledPetRecords.Add(pet);
                }
            }


            // load active pet
            if (m_record.PetEntryId != 0 && IsPetActive)
            {
                if (activePetRecord != null)
                {
                    var entry = activePetRecord.Entry;
                    if (entry == null)
                    {
                        log.Warn("{0} has invalid PetEntryId: {1} ({2})", this, m_record.PetEntryId, (uint)m_record.PetEntryId);

                        // put back for later (maybe NPCs were not loaded or loaded incorrectly):
                        AddPetRecord(activePetRecord);
                    }
                    else
                    {
                        SpawnActivePet(activePetRecord);
                    }
                }
                else
                {
                    // active Pet does not exist in DB
                    m_record.PetEntryId  = 0;
                    m_record.IsPetActive = false;
                }
            }
        }
 void AddPetRecord(IPetRecord record)
 {
     if (record is SummonedPetRecord)
     {
         SummonedPetRecords.Add((SummonedPetRecord)record);
     }
     else if (record is PermanentPetRecord)
     {
         StabledPetRecords.Add((PermanentPetRecord)record);
     }
     else
     {
         log.Warn("Unclassified PetRecord: " + record);
     }
 }