diff options
| author | Spp <spp@jorge.gr> | 2012-11-20 16:01:31 +0100 |
|---|---|---|
| committer | Spp <spp@jorge.gr> | 2012-11-20 16:01:31 +0100 |
| commit | 1ecc55272e210258e9ccbe64d5bff8d6dfbd78fa (patch) | |
| tree | 6e977425847eeceb8339cc2fe2e85d0f6d9917b1 /src/server/game/Movement | |
| parent | 172c5f0b93d8810ed06dde48af529d0e1998a48c (diff) | |
| parent | 7bef4ce4014cc0ea967d3e80eda740b8c518653c (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-x | src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp | 23 | ||||
| -rw-r--r-- | src/server/game/Movement/Spline/MoveSplineInit.cpp | 2 |
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 { |
