anchor.diff:  
   var
     DX,DY: Word;
  -  Output: Longword;
  +  Output: Cardinal;
   begin
     Output := 0;
     //Do not add extra cost if the tile is the target, as it can cause a longer route to be chosen
  
positive.code: 
  function TNavMeshPathFinding.ShortestPolygonRoute(aStart, aEnd: Word; out aDistance: Word; out aRoutePolygonArray: TKMWordArray): Boolean;
  begin
    Result := InitPolygonRoute(aStart, aEnd, aDistance, aRoutePolygonArray);
  end;
  
  
  function TNavMeshPathFinding.ShortestRoute(aStart, aEnd: TKMPoint; out aDistance: Word; out aRoutePointArray: TKMPointArray): Boolean;
  begin
    Result := InitRoute(aStart, aEnd, aDistance, aRoutePointArray);
  end;
  
  
negative.code: end;
  
  
  function TNavMeshPathFinding.MovementCost(aFrom, aTo: Word; var aSPoint, aEPoint: TKMPoint): Cardinal;
  
    function AvoidTraffic(): Cardinal;
    const
      COEFICIENT = 2; // 1 tile is max 10 points, max value of ArmyTraffic is 20, this coefficient must increase the price
    begin
      Result := gAIFields.Influences.ArmyTraffic[fOwner, aTo] * COEFICIENT;
    end;
  
    function AvoidSpecEnemy(): Word;
  