diff --git a/Source/Game/Movement/Generators/PathGenerator.cs b/Source/Game/Movement/Generators/PathGenerator.cs index 65429ff3e..3408856ad 100644 --- a/Source/Game/Movement/Generators/PathGenerator.cs +++ b/Source/Game/Movement/Generators/PathGenerator.cs @@ -236,19 +236,14 @@ namespace Game.Movement // *** poly path generating logic *** // start and end are on same polygon - // just need to move in straight line + // handle this case as if they were 2 different polygons, building a line path split in some few points if (startPoly == endPoly) { Log.outDebug(LogFilter.Maps, "++ BuildPolyPath . (startPoly == endPoly)\n"); - BuildShortcut(); - _pathPolyRefs[0] = startPoly; - _polyLength = 1; - - pathType = farFromPoly ? PathType.Incomplete : PathType.Normal; - Log.outDebug(LogFilter.Maps, "BuildPolyPath . path type {0}\n", pathType); - return; + _pathPolyRefs[1] = endPoly; + _polyLength = 2; } // look for startPoly/endPoly in current path diff --git a/Source/Game/Spells/Spell.cs b/Source/Game/Spells/Spell.cs index 9ef821c26..8c1fdc61a 100644 --- a/Source/Game/Spells/Spell.cs +++ b/Source/Game/Spells/Spell.cs @@ -4922,7 +4922,7 @@ namespace Game.Spells // first try with raycast, if it fails fall back to normal path bool result = m_preGeneratedPath.CalculatePath(target.GetPositionX(), target.GetPositionY(), target.GetPositionZ(), false, false); if (m_preGeneratedPath.GetPathType().HasAnyFlag(PathType.Short)) - return SpellCastResult.OutOfRange; + return SpellCastResult.NoPath; else if (!result || m_preGeneratedPath.GetPathType().HasAnyFlag(PathType.NoPath | PathType.Incomplete)) return SpellCastResult.NoPath; else if (m_preGeneratedPath.IsInvalidDestinationZ(target)) // Check position z, if not in a straight line