aboutsummaryrefslogtreecommitdiff
path: root/src/game/Player.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r--src/game/Player.cpp24
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;