diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp index be46cc21a..370731980 100644 --- a/src/game/Pet.cpp +++ b/src/game/Pet.cpp @@ -101,7 +101,7 @@ void Pet::RemoveFromWorld() Unit::RemoveFromWorld(); } -bool Pet::LoadPetFromDB( Unit* owner, uint32 petentry, uint32 petnumber, bool current ) +bool Pet::LoadPetFromDB( Player* owner, uint32 petentry, uint32 petnumber, bool current ) { m_loading = true; diff --git a/src/game/Pet.h b/src/game/Pet.h index 29c96dcc1..174d49ad4 100644 --- a/src/game/Pet.h +++ b/src/game/Pet.h @@ -133,7 +133,7 @@ class Pet : public Creature bool Create (uint32 guidlow, Map *map, uint32 Entry, uint32 pet_number); bool CreateBaseAtCreature(Creature* creature); - bool LoadPetFromDB( Unit* owner,uint32 petentry = 0,uint32 petnumber = 0, bool current = false ); + bool LoadPetFromDB( Player* owner,uint32 petentry = 0,uint32 petnumber = 0, bool current = false ); void SavePetToDB(PetSaveMode mode); void Remove(PetSaveMode mode, bool returnreagent = false); static void DeleteFromDB(uint32 guidlow); diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 56d86dc87..d4550ae66 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -3283,7 +3283,7 @@ void Spell::EffectSummon(uint32 i) uint32 level = m_caster->getLevel(); Pet* spawnCreature = new Pet(SUMMON_PET); - if(spawnCreature->LoadPetFromDB(m_caster,pet_entry)) + if(m_caster->GetTypeId()==TYPEID_PLAYER && spawnCreature->LoadPetFromDB((Player*)m_caster,pet_entry)) { // set timer for unsummon int32 duration = GetSpellDuration(m_spellInfo); @@ -4099,7 +4099,7 @@ void Spell::EffectSummonPet(uint32 i) Pet* NewSummon = new Pet; // petentry==0 for hunter "call pet" (current pet summoned if any) - if(NewSummon->LoadPetFromDB(m_caster,petentry)) + if(m_caster->GetTypeId() == TYPEID_PLAYER && NewSummon->LoadPetFromDB((Player*)m_caster,petentry)) { if(NewSummon->getPetType()==SUMMON_PET) { diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 29fd84654..c7d021930 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8419,7 +8419,7 @@ void Unit::Unmount() if(GetTypeId() == TYPEID_PLAYER && IsInWorld() && ((Player*)this)->GetTemporaryUnsummonedPetNumber() && isAlive()) { Pet* NewPet = new Pet; - if(!NewPet->LoadPetFromDB(this, 0, ((Player*)this)->GetTemporaryUnsummonedPetNumber(), true)) + if(!NewPet->LoadPetFromDB((Player*)this, 0, ((Player*)this)->GetTemporaryUnsummonedPetNumber(), true)) delete NewPet; ((Player*)this)->SetTemporaryUnsummonedPetNumber(0);