aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Movement/Spline
diff options
context:
space:
mode:
authorkaelima <kaelima@live.se>2012-09-07 04:21:11 +0200
committerkaelima <kaelima@live.se>2012-09-07 04:21:11 +0200
commita2d533752c447a2bf4ef7b784e8abdbe3f6d6904 (patch)
tree1477a3097aa991734c6b1c37763131d2337f4400 /src/server/game/Movement/Spline
parent0522e50c8670a34698b15003ceb5e514db72e427 (diff)
Core/MMaps: Add several safety checks to confirm a valid path generation.
- Address some issues in TargetMovementGenerator. Thanks Chevron
Diffstat (limited to 'src/server/game/Movement/Spline')
-rw-r--r--src/server/game/Movement/Spline/MoveSplineInit.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/server/game/Movement/Spline/MoveSplineInit.cpp b/src/server/game/Movement/Spline/MoveSplineInit.cpp
index 2796e208e34..68201fcf275 100644
--- a/src/server/game/Movement/Spline/MoveSplineInit.cpp
+++ b/src/server/game/Movement/Spline/MoveSplineInit.cpp
@@ -153,16 +153,18 @@ namespace Movement
if (generatePath)
{
PathGenerator path(unit);
- path.CalculatePath(dest.x, dest.y, dest.z, forceDestination);
- MovebyPath(path.GetPath());
- }
- else
- {
- args.path_Idx_offset = 0;
- args.path.resize(2);
- TransportPathTransform transform(unit, args.TransformForTransport);
- args.path[1] = transform(dest);
+ bool result = path.CalculatePath(dest.x, dest.y, dest.z, forceDestination);
+ if (result && path.GetPathType() & ~PATHFIND_NOPATH)
+ {
+ MovebyPath(path.GetPath());
+ return;
+ }
}
+
+ args.path_Idx_offset = 0;
+ args.path.resize(2);
+ TransportPathTransform transform(unit, args.TransformForTransport);
+ args.path[1] = transform(dest);
}
Vector3 TransportPathTransform::operator()(Vector3 input)