aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkaelima <kaelima@live.se>2013-01-20 20:06:30 +0100
committerkaelima <kaelima@live.se>2013-01-20 20:06:30 +0100
commit4372d24a7cc9dab325a9352bedf053a7580ac7b4 (patch)
tree5129d2fca2b5659a1abc3209ba7854f3517f5256 /src
parent1eab850cab9c71c0e8086af538aded557c526914 (diff)
Core/Movement: Prevent calling _updateSpeed for pets during a maptransfer
Closes #8998
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp11
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<>