diff options
| author | jackpoz <giacomopoz@gmail.com> | 2019-04-12 23:23:31 +0200 |
|---|---|---|
| committer | jackpoz <giacomopoz@gmail.com> | 2019-04-12 23:23:31 +0200 |
| commit | d182e5f7e73e614185f4470429467befd6e03981 (patch) | |
| tree | 7562d16997d874c8432b00614e2f402efd230c62 /src | |
| parent | 273b1e77121ca4176e3a2b99bb144bbb85f3f511 (diff) | |
Core/MMaps: Fallback to shortcut for flying units if Detour returned an incomplete path.
Fallback to shortcut for flying units if Detour returned an incomplete path. This is needed when a flying unit should fly to the floor below to reach the target, but since Recastnavigation doesn't support "jumping down" the unit would not find a path to the target.
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Movement/PathGenerator.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Movement/PathGenerator.cpp b/src/server/game/Movement/PathGenerator.cpp index 69844b2c15b..19b6528a250 100644 --- a/src/server/game/Movement/PathGenerator.cpp +++ b/src/server/game/Movement/PathGenerator.cpp @@ -469,6 +469,13 @@ void PathGenerator::BuildPolyPath(G3D::Vector3 const& startPos, G3D::Vector3 con else _type = PATHFIND_INCOMPLETE; + if (_type & PATHFIND_INCOMPLETE && _sourceUnit->CanFly()) + { + BuildShortcut(); + _type = PathType(PATHFIND_NORMAL | PATHFIND_NOT_USING_PATH); + return; + } + // generate the point-path out of our up-to-date poly-path BuildPointPath(startPoint, endPoint); } |
