anchor.diff:  procedure TKMRandomMapGenerator.CreateResources(aLocs: TKMPointArray; var A: TKMByte2Array);
   const
     RESOURCES: array[0..4] of TBiomeType = (btIron,btGold,btStone,btCoal,btCoal);
  +  BASE_RES_RADIUS: array[0..4] of Single = (1.5,1.5,0.5,2,2);
     VORONOI_STEP = 3;
     RES_PROB: array[0..4] of Single = (0.000001,0.000001,0.1,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
  
positive.code:           begin
              overflow := overflow + 1;
              // Try find unused shape
              if not FindBestResLoc((RESOURCE <> Byte(btCoal)), 8.0, TP_S,TP_E,Locs[Loc], CountArr, ResLoc) then
                break;
              // Check if there is enought points to create mountains with specific size
              SetSizeOfMountain(ResLoc, sizeMountain, newSize, CountArr, PointsArr, PointArr);
  
negative.code:       for Y := Max(  Low(P), aLocs[I].Y - MaxCnt  ) to Min(  High(P), aLocs[I].Y + MaxCnt  ) do
          for X := Max(  Low(P[Y]), aLocs[I].X - MaxCnt  ) to Min(  High(P[Y]), aLocs[I].X + MaxCnt  ) do
          begin
            Probability := Max(0, (KMLengthDiag(X,Y,aLocs[I]) - ProbabilityOffset) * ProbabilityReducer );
            if (P[Y,X] > Probability) then
              P[Y,X] := Probability;
          end;
  