diff options
Diffstat (limited to 'src/game/Player.cpp')
| -rw-r--r-- | src/game/Player.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 608ad81f7a9..db73fd2637e 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -1710,7 +1710,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati // resummon pet if(pet && m_temporaryUnsummonedPetNumber) { - Pet* NewPet = new Pet; + Pet* NewPet = new Pet(this); if(!NewPet->LoadPetFromDB(this, 0, m_temporaryUnsummonedPetNumber, true)) delete NewPet; @@ -15535,7 +15535,7 @@ void Player::LoadPet() // just not added to the map if(IsInWorld()) { - Pet *pet = new Pet; + Pet *pet = new Pet(this); if(!pet->LoadPetFromDB(this,0,0,true)) delete pet; } @@ -17028,16 +17028,6 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent) if(!pet || pet->GetOwnerGUID()!=GetGUID()) return; - // only if current pet in slot - switch(pet->getPetType()) - { - case POSSESSED_PET: - pet->RemoveCharmedOrPossessedBy(NULL); - default: - SetPet(pet, false); - break; - } - pet->CombatStop(); if(returnreagent) @@ -17056,6 +17046,16 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent) pet->SavePetToDB(mode); + // only if current pet in slot + switch(pet->getPetType()) + { + case POSSESSED_PET: + pet->RemoveCharmedOrPossessedBy(NULL); + default: + SetPet(pet, false); + break; + } + pet->CleanupsBeforeDelete(); pet->AddObjectToRemoveList(); pet->m_removed = true; |
