diff options
author | kaelima <kaelima@live.se> | 2013-01-20 20:06:30 +0100 |
---|---|---|
committer | kaelima <kaelima@live.se> | 2013-01-20 20:06:30 +0100 |
commit | 4372d24a7cc9dab325a9352bedf053a7580ac7b4 (patch) | |
tree | 5129d2fca2b5659a1abc3209ba7854f3517f5256 | |
parent | 1eab850cab9c71c0e8086af538aded557c526914 (diff) |
Core/Movement: Prevent calling _updateSpeed for pets during a maptransfer
Closes #8998
-rwxr-xr-x | src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
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<Player>::_updateSpeed(Player &/*u*/) } template<> -void FollowMovementGenerator<Creature>::_updateSpeed(Creature &u) +void FollowMovementGenerator<Creature>::_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<> |