From 4372d24a7cc9dab325a9352bedf053a7580ac7b4 Mon Sep 17 00:00:00 2001 From: kaelima Date: Sun, 20 Jan 2013 20:06:30 +0100 Subject: Core/Movement: Prevent calling _updateSpeed for pets during a maptransfer Closes #8998 --- .../Movement/MovementGenerators/TargetedMovementGenerator.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp index 1958774380e..20c9c6cb608 100755 --- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp @@ -273,15 +273,16 @@ void FollowMovementGenerator::_updateSpeed(Player &/*u*/) } template<> -void FollowMovementGenerator::_updateSpeed(Creature &u) +void FollowMovementGenerator::_updateSpeed(Creature& owner) { // pet only sync speed with owner - if (!((Creature&)u).isPet() || !i_target.isValid() || i_target->GetGUID() != u.GetOwnerGUID()) + /// Make sure we are not in the process of a map change + if (!owner.isPet() || !owner.IsInWorld() || !i_target.isValid() || i_target->GetGUID() != owner.GetOwnerGUID()) return; - u.UpdateSpeed(MOVE_RUN, true); - u.UpdateSpeed(MOVE_WALK, true); - u.UpdateSpeed(MOVE_SWIM, true); + owner.UpdateSpeed(MOVE_RUN, true); + owner.UpdateSpeed(MOVE_WALK, true); + owner.UpdateSpeed(MOVE_SWIM, true); } template<> -- cgit v1.2.3