From 4a25282f518f44fa985ebea308e2c4f63e62ee96 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sat, 16 May 2020 17:33:34 +0200 Subject: [PATCH] Core/Objects: logic fixup for d91fa5023ee3e276c061d7e660d6b87b2b2f208f --- src/server/game/Entities/Object/Object.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 7eef1a0f45e..8ac01c7512d 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -2521,9 +2521,12 @@ void WorldObject::MovePositionToFirstCollision(Position &pos, float dist, float path.CalculatePath(destx, desty, destz, false); // We have a invalid path result. Skip further processing. - if (path.GetPathType() & ~(PATHFIND_NORMAL | PATHFIND_SHORTCUT | PATHFIND_INCOMPLETE | PATHFIND_FARFROMPOLY | PATHFIND_NOT_USING_PATH)) - if (!(path.GetPathType() & PATHFIND_FARFROMPOLY) || ((path.GetPathType() & PATHFIND_FARFROMPOLY) && !(path.GetPathType() & PATHFIND_NOT_USING_PATH))) + if (!(path.GetPathType() & PATHFIND_NOT_USING_PATH)) + { + // Then check if we have any other flag that makes the result invalid + if (path.GetPathType() & ~(PATHFIND_NORMAL | PATHFIND_SHORTCUT | PATHFIND_INCOMPLETE | PATHFIND_FARFROMPOLY_END | PATHFIND_NOT_USING_PATH)) return; + } G3D::Vector3 result = path.GetPath().back(); destx = result.x;