anchor.diff:  
   
   procedure TKMTerrainPainter.GenerateAddnData;
  -var Accuracy: array [1 .. MAX_MAP_SIZE, 1 .. MAX_MAP_SIZE] of Byte;
  -
  -  procedure SetTerrainKindVertex(X,Y: Integer; T:TTerrainKind; aAccuracy:Byte);
  -  begin
  -    if not fTerrain.TileInMapCoords(X,Y) then Exit;
  -    //Skip if already set more accurately
  -    if aAccuracy < Accuracy[Y,X] then Exit;
  -    Land2[Y,X].TerType := T;
  -    Accuracy[Y,X] := aAccuracy;
  -  end;
  -
  -  procedure SetTerrainKindTile(X,Y: Integer; T:TTerrainKind; aAccuracy:Byte);
  -  begin
  -    SetTerrainKindVertex(X  , Y  , T, aAccuracy);
  -    SetTerrainKindVertex(X+1, Y  , T, aAccuracy);
  -    SetTerrainKindVertex(X  , Y+1, T, aAccuracy);
  -    SetTerrainKindVertex(X+1, Y+1, T, aAccuracy);
  -  end;
  -
   const
     SPECIAL_TILES = [24,25,194,198,199,202,206,207,214,216..219,221..233,246]; //Waterfalls and bridges
     OTHER_WATER_TILES = [193,208,209,240,244]; //Water tiles not used in painting (fast, straight, etc.)
  
positive.code:   ACC_MAX = 5;  //Special tiles
    ACC_HIGH = 4; //Primary tiles
    ACC_MED = 3; //Random tiling
    ACC_LOW = 1; //Edges
    ACC_MIN = 0; //Coal random tiling (edges are better in this case)
  var
    I,K,J,Rot: Integer;
    A: Byte;
  
negative.code:           begin
              //METHOD 1: Terrain type is the primary tile for this terrain
              if fTerrain.Land[I,K].Terrain = Abs(Combo[T,T,1]) then
              begin
                SetTerrainKindTile(K, I, T, ACC_HIGH);
                Break; //Neither of the methods below can beat this one, so save time and don't check more TerrainKinds
              end;
  
              //METHOD 2: Terrain type is in RandomTiling
              for J := 1 to RandomTiling[T,0] do
  