aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Movement
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2012-11-20 16:01:31 +0100
committerSpp <spp@jorge.gr>2012-11-20 16:01:31 +0100
commit1ecc55272e210258e9ccbe64d5bff8d6dfbd78fa (patch)
tree6e977425847eeceb8339cc2fe2e85d0f6d9917b1 /src/server/game/Movement
parent172c5f0b93d8810ed06dde48af529d0e1998a48c (diff)
parent7bef4ce4014cc0ea967d3e80eda740b8c518653c (diff)
Merge branch 'master' into 4.3.4
Conflicts: src/server/game/AI/CoreAI/GameObjectAI.h src/server/game/Achievements/AchievementMgr.cpp src/server/game/Battlegrounds/Battleground.cpp src/server/game/Conditions/ConditionMgr.h src/server/game/Entities/Pet/Pet.h src/server/game/Entities/Player/Player.cpp src/server/game/Entities/Player/Player.h src/server/game/Entities/Unit/Unit.h src/server/game/Globals/ObjectMgr.cpp src/server/game/Guilds/Guild.cpp src/server/game/Handlers/CharacterHandler.cpp src/server/game/Handlers/GroupHandler.cpp src/server/game/Handlers/LootHandler.cpp src/server/game/Miscellaneous/SharedDefines.h src/server/game/Spells/Auras/SpellAuraEffects.cpp src/server/game/Spells/SpellEffects.cpp src/server/scripts/Commands/cs_modify.cpp src/server/scripts/Commands/cs_reload.cpp src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
Diffstat (limited to 'src/server/game/Movement')
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp23
-rw-r--r--src/server/game/Movement/Spline/MoveSplineInit.cpp2
2 files changed, 23 insertions, 2 deletions
diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
index d6c69c2c679..7a669642e7e 100755
--- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
@@ -59,10 +59,29 @@ void TargetedMovementGeneratorMedium<T,D>::_setTargetLocation(T &owner)
}
else
{
- if (i_target->IsWithinDistInMap(&owner, i_offset + 1.0f))
+ float dist;
+ float size;
+
+ // Pets need special handling.
+ // We need to subtract GetObjectSize() because it gets added back further down the chain
+ // and that makes pets too far away. Subtracting it allows pets to properly
+ // be (GetCombatReach() + i_offset) away.
+ if (owner.isPet())
+ {
+ dist = i_target->GetCombatReach();
+ size = i_target->GetCombatReach() - i_target->GetObjectSize();
+ }
+ else
+ {
+ dist = i_offset + 1.0f;
+ size = owner.GetObjectSize();
+ }
+
+ if (i_target->IsWithinDistInMap(&owner, dist))
return;
+
// to at i_offset distance from target and i_angle from target facing
- i_target->GetClosePoint(x, y, z, owner.GetObjectSize(), i_offset, i_angle);
+ i_target->GetClosePoint(x, y, z, size, i_offset, i_angle);
}
/*
diff --git a/src/server/game/Movement/Spline/MoveSplineInit.cpp b/src/server/game/Movement/Spline/MoveSplineInit.cpp
index fd20d041b4b..a5ca4e0cfe9 100644
--- a/src/server/game/Movement/Spline/MoveSplineInit.cpp
+++ b/src/server/game/Movement/Spline/MoveSplineInit.cpp
@@ -22,6 +22,8 @@
#include "Unit.h"
#include "Transport.h"
#include "Vehicle.h"
+#include "WorldPacket.h"
+#include "Opcodes.h"
namespace Movement
{