anchor.diff:  // A = array to fill resources / obstacles
   // Result = TBalancedResource1Array = array of shapes which represents resources (each shape have its own count of resources and points which were get from Voronoi diagram)
   //          Cellular automaton can change shapes so it is important to keep more points to secure that every shape will have its resources in GenerateTiles
  -{
   function TKMRandomMapGenerator.CreateResources(aLocs: TKMPointArray; var A: TKMByte2Array): TBalancedResource1Array;
  -
  +const
  +  RESOURCES: array[0..4] of TBiomeType = (btIron,btGold,btStone,btCoal,btCoal);
  +  VORONOI_STEP = 3;
  +  DIST_FROM_BOTTOM = 3; // Iron, Gold and Stone mines will be placed in distance [DIST_FROM_BOTTOM] of Voronoi steps from bottom of the map
  +  RES_PROB: array[0..4] of Single = (0.000001,0.000001,0.15,0.08,0.08); // Probability penalization (only afect final shape: 0 = circle, 1 = multiple separated mountains)
  +  //SPEC_RES_RADIUS: array[0..4] of Byte = (5, 5, 5, 5, 5); // Iron, Gold, Stone, Coal, Coal
  +  RES_AMOUNT: array[0..4] of Integer = (50, 50, 200, 100, 50);
  +  RES_TILES_AMOUNT: array[0..4] of Single = (0.25, 0.25, 0.066, 0.25, 0.25);
  +  RES_MINES_CNT: array[0..4] of Single = (0.005, 0.01, 1.0, 1.0, 1.0);
  +
  +// Generate random points inside circle
   function RNDPointInCircle(aMin,aMax,aCenter: TKMPoint; aMaxRadius: Single): TKMPoint;
   const
     MAX_ANGLE = 3.14*2; // = 360°
  
positive.code: 
  
  
  
  {
  // Old version of random locs generation
  function TKMRandomMapGenerator.RandomPlayerLocs(const LocCount: Integer; const Minimum,Maximum: TKMPoint): TKMPointArray;
    var
  
negative.code:   Result.Y := Min(  aMax.Y, Max( aMin.Y,Round(aCenter.Y + radius * sin(angle)) )  );
  end;
  
  //
  function FindBestResLoc(const aRADIUS: Single; aMin,aMax,aCenter: TKMPoint; var aCountArr: TInteger2Array; var aResLoc: TKMPoint): Boolean;
  const
    RESRAD = 2;
    BREAK_LIMIT = 20;
  