diff options
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r-- | src/game/Player.cpp | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 88932020d38..8b41206928e 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -16643,15 +16643,7 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent) } // only if current pet in slot - switch(pet->getPetType()) - { - case POSSESSED_PET: - pet->RemoveCharmedOrPossessedBy(NULL); - break; - default: - pet->SavePetToDB(mode); - break; - } + pet->SavePetToDB(mode); SetMinion(pet, false); @@ -16681,8 +16673,8 @@ void Player::StopCastingCharm() if(charm->GetTypeId() == TYPEID_UNIT) { - if(((Creature*)charm)->isPet() && ((Pet*)charm)->getPetType() == POSSESSED_PET) - ((Pet*)charm)->Remove(PET_SAVE_AS_DELETED); + if(((Creature*)charm)->HasSummonMask(SUMMON_MASK_PUPPET)) + ((Puppet*)charm)->UnSummon(); } if(GetCharmGUID()) { |