anchor.diff:    c_closed = 65535; // High(Word)
   var
     N: TNavMeshNode;
  -  I, Idx, NewCost: Word;
  +  I, Idx: Word;
  +  NewCost: Cardinal;
     POMPoint: TKMPoint;
     PolyArr: TPolygonArray;
   begin
  
positive.code:     procedure Flush(aDestroy: Boolean = False);
    protected
      function GetNodeAt(aIdx: Word): TNavMeshNode;
      function MovementCost(aFrom, aTo: Word; var aSPoint, aEPoint: TKMPoint): Longword;
      function EstimateToFinish(aIdx: Word): Word;
  
      function InitPolygonRoute(aStart, aEnd: Word; out aDistance: Word; out aRoutePolygonArray: TKMWordArray): Boolean;
  
negative.code: 
  function TNavMeshPathFinding.ShortestPolygonRoute(aStart, aEnd: Word; out aDistance: Word; out aRoutePolygonArray: TKMWordArray): Boolean;
  begin
    fMode := pm_ShortestWay;
    Result := InitPolygonRoute(aStart, aEnd, aDistance, aRoutePolygonArray);
  end;
  
  
  function TNavMeshPathFinding.ShortestRoute(aStart, aEnd: TKMPoint; out aDistance: Word; out aRoutePointArray: TKMPointArray): Boolean;
  begin
    fMode := pm_ShortestWay;
    Result := InitRoute(aStart, aEnd, aDistance, aRoutePointArray);
  end;
  
  