anchor.diff:    //Floodfill outer polys skipping inner ones, remember best enemy influence
     AreaID := 0;
     for I := 0 to High(Polys) do
  -  with fPolygons[Polys[I]] do
  -    for K := 0 to NearbyCount - 1 do
  -    if (AreaPolys[Nearby[K]] = AP_CLEAR) then
  -    begin
  -      Inc(AreaID);
  -      FloodFillPolys(Polys[I]);
  -    end;
  +    with fPolygons[Polys[I]] do
  +      for K := 0 to NearbyCount - 1 do
  +      if (AreaPolys[Nearby[K]] = AP_CLEAR) then
  +      begin
  +        Inc(AreaID);
  +        FloodFillPolys(Polys[I]);
  +      end;
   
     //if enemy influence < 128 then mark as isolated
     K := Length(Polys);
     SetLength(Polys, fPolyCount);
     for I := 0 to fPolyCount - 1 do
  -  if (AreaPolys[I] <> AP_CLEAR)
  -  and (AreaPolys[I] <> AP_SEED)
  -  and (AreaEnemy[AreaPolys[I]] < 128) then
  -  begin
  -    Polys[K] := I;
  -    Inc(K);
  -  end;
  +    if (AreaPolys[I] <> AP_CLEAR)
  +    and (AreaPolys[I] <> AP_SEED)
  +    and (AreaEnemy[AreaPolys[I]] < 128) then
  +    begin
  +      Polys[K] := I;
  +      Inc(K);
  +    end;
     SetLength(Polys, K);
   
     Edges := ConvertPolysToEdges(Polys);
  
positive.code:       K := GetBestOwner(I);
        if K <> PLAYER_NONE then
        begin
          Col := fPlayers[K].FlagColor or $FF000000;
          Col2 := IfThen(fNodes[I].Owner[K] = 255, $FFFFFFFF);
          Sz := Max(fNodes[I].Owner[K] - 128, 0) / 64;
  
  
negative.code: begin
    Result := High(Word);
    if not gTerrain.TileInMapCoords(aP.X, aP.Y) then
      aP := KMPoint(  Min( Max(1,aP.X), gTerrain.MapX-1), Min( Max(1,aP.Y), gTerrain.MapY-1)  );
  
    Result := Point2PolygonArr[aP.Y,aP.X];
    if (Result <> High(Word)) then
      Exit;
  
    Output := High(Word);
    for I := 0 to MAX_SCAN_DIST do
    begin
      PMin := KMPoint(Max(1,aP.X - I), Max(1,aP.Y - I));
      PMax := KMPoint(Min(gTerrain.MapX-1,aP.X + I), Min(gTerrain.MapY-1,aP.Y + I));
      for X := PMin.X to PMax.X do
        if (Point2PolygonArr[PMin.Y,X] <> High(Word)) then
        begin
  