anchor.diff:    fEnd := gAIFields.NavMesh.KMPoint2Polygon[ aEnd ];
     if (fStart = High(Word)) OR (fEnd = High(Word)) then  // Non-Existing polygon
       Exit;
  -  fMode := pm_ShortestWay;
     Output := MakeRoute();
     if Output then
     begin
  
positive.code: 
    TNavMeshNode = class
      Idx,Estim: Word; // Index of navMeshNode in navmesh, estimated cost from navMeshNode to end
      CostTo: Longword; // Cost to Idx navMeshNode
      Point: TKMPoint; // Point in navMeshNode of navmesh (each triangle [created by points in navMeshNode] have its point -> multiple poits will create path)
      Parent: TNavMeshNode; // Parent navMeshNode
    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;
  