aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrisjdc <trisjdc@gmail.com>2014-05-07 11:58:08 +0100
committerTrisjdc <trisjdc@gmail.com>2014-05-07 11:58:08 +0100
commitcb7668ab5af4bcec48dee407a53424b87f12c081 (patch)
tree5e852004c128145925e2419424abdeec159cb1b7
parent3751d547c0610681e2ae239b98ab72a61d577993 (diff)
Core/Spells: Replace MovePosition by MovePositionToFirstCollision in spell dest target handling.
- Solves issues such as being able to summon creatures inside terrain/gameobjects, being able to fall through terrain by using Shadowstep/Feral Charge (Cat), and much more
-rw-r--r--src/server/game/Spells/Spell.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 7c6f2552b44..22e14f1cc5e 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -1288,10 +1288,7 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici
dist = objSize + (dist - objSize) * float(rand_norm());
Position pos = dest._position;
- if (targetType.GetTarget() == TARGET_DEST_CASTER_FRONT_LEAP)
- m_caster->MovePositionToFirstCollision(pos, dist, angle);
- else
- m_caster->MovePosition(pos, dist, angle);
+ m_caster->MovePositionToFirstCollision(pos, dist, angle);
dest.Relocate(pos);
break;
@@ -1324,7 +1321,7 @@ void Spell::SelectImplicitTargetDestTargets(SpellEffIndex effIndex, SpellImplici
dist = objSize + (dist - objSize) * float(rand_norm());
Position pos = dest._position;
- target->MovePosition(pos, dist, angle);
+ target->MovePositionToFirstCollision(pos, dist, angle);
dest.Relocate(pos);
break;
@@ -1363,7 +1360,7 @@ void Spell::SelectImplicitDestDestTargets(SpellEffIndex effIndex, SpellImplicitT
dist *= float(rand_norm());
Position pos = dest._position;
- m_caster->MovePosition(pos, dist, angle);
+ m_caster->MovePositionToFirstCollision(pos, dist, angle);
dest.Relocate(pos);
break;