diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Player.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 91c1672d5aa..00966d24407 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -17150,12 +17150,14 @@ void Player::Uncharm() if(!charm) return; - if(charm->GetTypeId() == TYPEID_UNIT && ((Creature*)charm)->isPet() - && ((Pet*)charm)->getPetType() == POSSESSED_PET) + if(charm->GetTypeId() == TYPEID_UNIT) { - ((Pet*)charm)->Remove(PET_SAVE_AS_DELETED); + if(((Creature*)charm)->isPet() && ((Pet*)charm)->getPetType() == POSSESSED_PET) + ((Pet*)charm)->Remove(PET_SAVE_AS_DELETED); + else if(((Creature*)charm)->isVehicle()) + ExitVehicle((Vehicle*)charm); } - else + if(GetCharmGUID()) { charm->RemoveSpellsCausingAura(SPELL_AURA_MOD_CHARM); charm->RemoveSpellsCausingAura(SPELL_AURA_MOD_POSSESS_PET); |