anchor.diff:  // TileTempl = array of biome-decomposition
   procedure TKMRandomMapGenerator.GenerateHeight(aLocs: TKMPointArray; var TilesPartsArr: TTileParts; var A: TKMByte2Array; var TileTempl: TKMByte2Array);
   const
  -  HeightMix: array [0..23] of Byte = (
  -    //20,18,15,15,15,21,19,22,23,24,25,20,20,19,18,17,18,21,20,20,20,20,20,20
  -    10,10,5,5,3,5,10,1,10,10,20,20,0,5,10,10,15,20,10,20,20,20,20,0
  -  );
  +  //HeightMix: array [0..23] of Byte = (
  +  //  //20,18,15,15,15,21,19,22,23,24,25,20,20,19,18,17,18,21,20,20,20,20,20,20
  +  //  10,10,5,5,3,5,10,1,10,10,20,20,0,5,10,10,15,20,10,20,20,20,20,0
  +  //);
     //TBiomeType = (
     //10,15,0,0,0,10,5,0,15,15,20,20,10,5,btGrassSand1,btGrassSand2,btGrassSand3,btSand,btStone,btGold,btEgold,btIron,btEIron,btDark);
   
  
positive.code: // aTiles = empty TKMTerrainTileBriefArray
  procedure TKMRandomMapGenerator.GenerateMap(var aTiles: TKMTerrainTileBriefArray);
  var
    aX,aY,Y, X, K, X0,X1,X2,Y0,Y1,Y2,i: Integer;
    Pmin,Pmax: TKMPoint;
    S1,S2,S3,S4: TInteger2Array;
    A,TileTemplateArr: TKMByte2Array;
    S: TInteger2Array;
    TDAP: TKMPoint2Array;
    P: TKMPointArray;
    Points: TKMPoint2Array;
    Resources: TBalancedResource1Array;
    TilesPartsArr: TTileParts;
  
    //Queue: TKMQuickFlood;
    FillBiome: TKMFillBiome;
  
    LocMin, LocMax: TKMPoint;
    Locs: TKMPointArray;
  
  
  
negative.code: // aPoints = array of TKMPoints belonging to its shapes (1 point = 1 shape)
  function TKMRandomMapGenerator.VoronoiMod(const aStep: Integer; var aPoints: TKMPoint2Array): TInteger2Array;
  var
    //X0,X2,Y0,Y2,move,
    X,aX,X1,Y,aY,Y1,i,idxX,idxY,price: Integer;
    Output, History: TInteger2Array;
  begin
    SetLength(Output, gTerrain.MapY+1, gTerrain.MapX+1);
  