anchor.diff:  begin
     // Get owner influence and distance from influence
     fDefInfo[aIdx].Influence := gAIFields.Influences.OwnPoly[fOwner, aIdx];
  -  Distance := aDistance; // Min(fDefInfo[aIdx].Influence shr 2, Distance);
  -  if (fDefInfo[aIdx].Influence > OWNER_INFLUENCE_LIMIT) then
  +  fDefInfo[aIdx].AllyInfluence := gAIFields.Influences.GetBestAllianceOwnership(fOwner, aIdx, at_Ally);
  +  Distance := aDistance;
  +  if (fDefInfo[aIdx].Influence > OWNER_INFLUENCE_LIMIT) OR (fDefInfo[aIdx].AllyInfluence > OWNER_INFLUENCE_LIMIT) then
       Distance := 0;
     inherited MarkAsVisited(aIdx, Distance, aPoint);
  -  // For special polygons calculate also alliance influence
  +  // For special polygons calculate also ene influence
     if (gAIFields.NavMesh.Polygons[aIdx].NearbyCount = 3) then
  -  begin
       fDefInfo[aIdx].EnemyInfluence := gAIFields.Influences.GetBestAllianceOwnership(fOwner, aIdx, at_Enemy);
  -    if (Distance < MAXIMAL_DEFENCE_DISTANCE) then // We dont need to know about ally influence far behind maximal defence distance so save some time and do nothing
  -      fDefInfo[aIdx].AllyInfluence := gAIFields.Influences.GetBestAllianceOwnership(fOwner, aIdx, at_Ally);
  -  end;
   end;
   
   
  
positive.code: end;
  //}
  
  
  end.
  
negative.code: // Prepare new Queue
  procedure TForwardFF.MakeNewQueue();
  begin
    fVisitedIdx := fVisitedIdx + 3; // There is 1 FF forward, 1 FF backward and 1 FF for positioning in 1 cycle; filter have its own array
    // Check length
    if (Length(fQueueArray) < Length(gAIFields.NavMesh.Polygons)) then
    begin
  