diff options
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r-- | src/game/Player.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 0865e65ddff..529dfbeba36 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -16664,8 +16664,6 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent) void Player::StopCastingCharm() { - ExitVehicle(); - Unit* charm = GetCharm(); if(!charm) return; @@ -16674,6 +16672,8 @@ void Player::StopCastingCharm() { if(((Creature*)charm)->HasSummonMask(SUMMON_MASK_PUPPET)) ((Puppet*)charm)->UnSummon(); + else if(((Creature*)charm)->isVehicle()) + ExitVehicle(); } if(GetCharmGUID()) { @@ -16685,6 +16685,7 @@ void Player::StopCastingCharm() if(GetCharmGUID()) { sLog.outCrash("Player %s is not able to uncharm unit (Entry: %u, Type: %u)", GetName(), charm->GetEntry(), charm->GetTypeId()); + assert(false); } } |