mmf
Class MMF_DLA

Object
  extended by common:Generic
      extended by common:Coloring
          extended by common:GradientColoring
              extended by mmf:MMF_DLA

class 
GradientColoring:MMF_DLA



Ultra Fractal Source

Toggle UF Source Code Display

 class MMF_DLA(common.ulb:GradientColoring) {
 public:
   import "common.ulb"
   ; @param pparent the parent, generally "this" from the parent, or zero
   func MMF_DLA(Generic pparent)
     GradientColoring.GradientColoring(pparent)
     float nd[16]
     bool ss[16,16]
     complex p = (0,0)
     float d = 0.0
     float rot = (270.0+@angle)*(#pi/180.0)  ; degrees to radians conversion
     float ele = @elevation*(#pi/180.0)
     int i = 0
     int j = 0
     int k = 0
     int l = 0
     int z = 0
     int a = 0
     int b = 0
     int c = @numgenerations
     bool f = true
 ; The lighting Normal
     lx = cos(rot) * cos(ele)
     ly = sin(rot) * cos(ele)
     lz = sin(ele)
     i = #height + 3 + @offset
     repeat
       j = #width + 3 + @offset
       repeat
         s[j,i] = 0
       until (j=j-1)<0
     until (i=i-1)<0
     i = ceil((#height+4+@offset)/64) - 1
     repeat
       j = ceil((#width+4+@offset)/64) - 1
       repeat
         k = 16
         repeat
           t[j,i,k] = 0
         until (k=k-1)<0
       until (j=j-1)<0
     until (i=i-1)<0
     i = 15
     repeat
       g[i] = 0
       tn[i] = 0
       top[i] = 100000000
       btm[i] = -1
       lft[i] = 100000000
       rgt[i] = -1
     until (i=i-1)<0
     mxl = 100000000
     mxr = -1
     mxu = 100000000
     mxd = -1
     r = @seed
     n = 0
     q = (#width+@offset)*(#height+@offset)
     if @use=="Pixel Count"
       q = @pixels
     elseif @use=="Percentage"
       q = round(0.01*@percent*q)
     endif
     a = q
     pn[0] = @palmin1
     pn[1] = @palmin2
     pn[2] = @palmin3
     pn[3] = @palmin4
     pn[4] = @palmin5
     pn[5] = @palmin6
     pn[6] = @palmin7
     pn[7] = @palmin8
     pn[8] = @palmin9
     pn[9] = @palmin10
     pn[10] = @palmin11
     pn[11] = @palmin12
     pn[12] = @palmin13
     pn[13] = @palmin14
     pn[14] = @palmin15
     pn[15] = @palmin16
     px[0] = @palmax1 - @palmin1
     px[1] = @palmax2 - @palmin2
     px[2] = @palmax3 - @palmin3
     px[3] = @palmax4 - @palmin4
     px[4] = @palmax5 - @palmin5
     px[5] = @palmax6 - @palmin6
     px[6] = @palmax7 - @palmin7
     px[7] = @palmax8 - @palmin8
     px[8] = @palmax9 - @palmin9
     px[9] = @palmax10 - @palmin10
     px[10] = @palmax11 - @palmin11
     px[11] = @palmax12 - @palmin12
     px[12] = @palmax13 - @palmin13
     px[13] = @palmax14 - @palmin14
     px[14] = @palmax15 - @palmin15
     px[15] = @palmax16 - @palmin16
     lc[0] = @lightcol1
     lc[1] = @lightcol2
     lc[2] = @lightcol3
     lc[3] = @lightcol4
     lc[4] = @lightcol5
     lc[5] = @lightcol6
     lc[6] = @lightcol7
     lc[7] = @lightcol8
     lc[8] = @lightcol9
     lc[9] = @lightcol10
     lc[10] = @lightcol11
     lc[11] = @lightcol12
     lc[12] = @lightcol13
     lc[13] = @lightcol14
     lc[14] = @lightcol15
     lc[15] = @lightcol16
     m[0] = @method1
     m[1] = @method2
     m[2] = @method3
     m[3] = @method4
     m[4] = @method5
     m[5] = @method6
     m[6] = @method7
     m[7] = @method8
     m[8] = @method9
     m[9] = @method10
     m[10] = @method11
     m[11] = @method12
     m[12] = @method13
     m[13] = @method14
     m[14] = @method15
     m[15] = @method16
     nd[0] = @nodirection1*sqrt(#width*#height/(640*480))
     nd[1] = @nodirection2*sqrt(#width*#height/(640*480))
     nd[2] = @nodirection3*sqrt(#width*#height/(640*480))
     nd[3] = @nodirection4*sqrt(#width*#height/(640*480))
     nd[4] = @nodirection5*sqrt(#width*#height/(640*480))
     nd[5] = @nodirection6*sqrt(#width*#height/(640*480))
     nd[6] = @nodirection7*sqrt(#width*#height/(640*480))
     nd[7] = @nodirection8*sqrt(#width*#height/(640*480))
     nd[8] = @nodirection9*sqrt(#width*#height/(640*480))
     nd[9] = @nodirection10*sqrt(#width*#height/(640*480))
     nd[10] = @nodirection11*sqrt(#width*#height/(640*480))
     nd[11] = @nodirection12*sqrt(#width*#height/(640*480))
     nd[12] = @nodirection13*sqrt(#width*#height/(640*480))
     nd[13] = @nodirection14*sqrt(#width*#height/(640*480))
     nd[14] = @nodirection15*sqrt(#width*#height/(640*480))
     nd[15] = @nodirection16*sqrt(#width*#height/(640*480))
     sz[0] = ceil(0.01*@size1*(#width+4+@offset)*(#height+4+@offset))
     sz[1] = ceil(0.01*@size2*(#width+4+@offset)*(#height+4+@offset))
     sz[2] = ceil(0.01*@size3*(#width+4+@offset)*(#height+4+@offset))
     sz[3] = ceil(0.01*@size4*(#width+4+@offset)*(#height+4+@offset))
     sz[4] = ceil(0.01*@size5*(#width+4+@offset)*(#height+4+@offset))
     sz[5] = ceil(0.01*@size6*(#width+4+@offset)*(#height+4+@offset))
     sz[6] = ceil(0.01*@size7*(#width+4+@offset)*(#height+4+@offset))
     sz[7] = ceil(0.01*@size8*(#width+4+@offset)*(#height+4+@offset))
     sz[8] = ceil(0.01*@size9*(#width+4+@offset)*(#height+4+@offset))
     sz[9] = ceil(0.01*@size10*(#width+4+@offset)*(#height+4+@offset))
     sz[10] = ceil(0.01*@size11*(#width+4+@offset)*(#height+4+@offset))
     sz[11] = ceil(0.01*@size12*(#width+4+@offset)*(#height+4+@offset))
     sz[12] = ceil(0.01*@size13*(#width+4+@offset)*(#height+4+@offset))
     sz[13] = ceil(0.01*@size14*(#width+4+@offset)*(#height+4+@offset))
     sz[14] = ceil(0.01*@size15*(#width+4+@offset)*(#height+4+@offset))
     sz[15] = ceil(0.01*@size16*(#width+4+@offset)*(#height+4+@offset))
     dtct[0] = (@detect1 - 1.0)/#randomrange
     dtct[1] = (@detect2 - 1.0)/#randomrange
     dtct[2] = (@detect3 - 1.0)/#randomrange
     dtct[3] = (@detect4 - 1.0)/#randomrange
     dtct[4] = (@detect5 - 1.0)/#randomrange
     dtct[5] = (@detect6 - 1.0)/#randomrange
     dtct[6] = (@detect7 - 1.0)/#randomrange
     dtct[7] = (@detect8 - 1.0)/#randomrange
     dtct[8] = (@detect9 - 1.0)/#randomrange
     dtct[9] = (@detect10 - 1.0)/#randomrange
     dtct[10] = (@detect11 - 1.0)/#randomrange
     dtct[11] = (@detect12 - 1.0)/#randomrange
     dtct[12] = (@detect13 - 1.0)/#randomrange
     dtct[13] = (@detect14 - 1.0)/#randomrange
     dtct[14] = (@detect15 - 1.0)/#randomrange
     dtct[15] = (@detect16 - 1.0)/#randomrange
     mov[0] = @move1
     mov[1] = @move2
     mov[2] = @move3
     mov[3] = @move4
     mov[4] = @move5
     mov[5] = @move6
     mov[6] = @move7
     mov[7] = @move8
     mov[8] = @move9
     mov[9] = @move10
     mov[10] = @move11
     mov[11] = @move12
     mov[12] = @move13
     mov[13] = @move14
     mov[14] = @move15
     mov[15] = @move16
     ss[0,0] = @seed1stimulus1
     ss[0,1] = @seed1stimulus2
     ss[0,2] = @seed1stimulus3
     ss[0,3] = @seed1stimulus4
     ss[0,4] = @seed1stimulus5
     ss[0,5] = @seed1stimulus6
     ss[0,6] = @seed1stimulus7
     ss[0,7] = @seed1stimulus8
     ss[0,8] = @seed1stimulus9
     ss[0,9] = @seed1stimulus10
     ss[0,10] = @seed1stimulus11
     ss[0,11] = @seed1stimulus12
     ss[0,12] = @seed1stimulus13
     ss[0,13] = @seed1stimulus14
     ss[0,14] = @seed1stimulus15
     ss[0,15] = @seed1stimulus16
     ss[1,0] = @seed2stimulus1
     ss[1,1] = @seed2stimulus2
     ss[1,2] = @seed2stimulus3
     ss[1,3] = @seed2stimulus4
     ss[1,4] = @seed2stimulus5
     ss[1,5] = @seed2stimulus6
     ss[1,6] = @seed2stimulus7
     ss[1,7] = @seed2stimulus8
     ss[1,8] = @seed2stimulus9
     ss[1,9] = @seed2stimulus10
     ss[1,10] = @seed2stimulus11
     ss[1,11] = @seed2stimulus12
     ss[1,12] = @seed2stimulus13
     ss[1,13] = @seed2stimulus14
     ss[1,14] = @seed2stimulus15
     ss[1,15] = @seed2stimulus16
     ss[2,0] = @seed3stimulus1
     ss[2,1] = @seed3stimulus2
     ss[2,2] = @seed3stimulus3
     ss[2,3] = @seed3stimulus4
     ss[2,4] = @seed3stimulus5
     ss[2,5] = @seed3stimulus6
     ss[2,6] = @seed3stimulus7
     ss[2,7] = @seed3stimulus8
     ss[2,8] = @seed3stimulus9
     ss[2,9] = @seed3stimulus10
     ss[2,10] = @seed3stimulus11
     ss[2,11] = @seed3stimulus12
     ss[2,12] = @seed3stimulus13
     ss[2,13] = @seed3stimulus14
     ss[2,14] = @seed3stimulus15
     ss[2,15] = @seed3stimulus16
     ss[3,0] = @seed4stimulus1
     ss[3,1] = @seed4stimulus2
     ss[3,2] = @seed4stimulus3
     ss[3,3] = @seed4stimulus4
     ss[3,4] = @seed4stimulus5
     ss[3,5] = @seed4stimulus6
     ss[3,6] = @seed4stimulus7
     ss[3,7] = @seed4stimulus8
     ss[3,8] = @seed4stimulus9
     ss[3,9] = @seed4stimulus10
     ss[3,10] = @seed4stimulus11
     ss[3,11] = @seed4stimulus12
     ss[3,12] = @seed4stimulus13
     ss[3,13] = @seed4stimulus14
     ss[3,14] = @seed4stimulus15
     ss[3,15] = @seed4stimulus16
     ss[4,0] = @seed5stimulus1
     ss[4,1] = @seed5stimulus2
     ss[4,2] = @seed5stimulus3
     ss[4,3] = @seed5stimulus4
     ss[4,4] = @seed5stimulus5
     ss[4,5] = @seed5stimulus6
     ss[4,6] = @seed5stimulus7
     ss[4,7] = @seed5stimulus8
     ss[4,8] = @seed5stimulus9
     ss[4,9] = @seed5stimulus10
     ss[4,10] = @seed5stimulus11
     ss[4,11] = @seed5stimulus12
     ss[4,12] = @seed5stimulus13
     ss[4,13] = @seed5stimulus14
     ss[4,14] = @seed5stimulus15
     ss[4,15] = @seed5stimulus16
     ss[5,0] = @seed6stimulus1
     ss[5,1] = @seed6stimulus2
     ss[5,2] = @seed6stimulus3
     ss[5,3] = @seed6stimulus4
     ss[5,4] = @seed6stimulus5
     ss[5,5] = @seed6stimulus6
     ss[5,6] = @seed6stimulus7
     ss[5,7] = @seed6stimulus8
     ss[5,8] = @seed6stimulus9
     ss[5,9] = @seed6stimulus10
     ss[5,10] = @seed6stimulus11
     ss[5,11] = @seed6stimulus12
     ss[5,12] = @seed6stimulus13
     ss[5,13] = @seed6stimulus14
     ss[5,14] = @seed6stimulus15
     ss[5,15] = @seed6stimulus16
     ss[6,0] = @seed7stimulus1
     ss[6,1] = @seed7stimulus2
     ss[6,2] = @seed7stimulus3
     ss[6,3] = @seed7stimulus4
     ss[6,4] = @seed7stimulus5
     ss[6,5] = @seed7stimulus6
     ss[6,6] = @seed7stimulus7
     ss[6,7] = @seed7stimulus8
     ss[6,8] = @seed7stimulus9
     ss[6,9] = @seed7stimulus10
     ss[6,10] = @seed7stimulus11
     ss[6,11] = @seed7stimulus12
     ss[6,12] = @seed7stimulus13
     ss[6,13] = @seed7stimulus14
     ss[6,14] = @seed7stimulus15
     ss[6,15] = @seed7stimulus16
     ss[7,0] = @seed8stimulus1
     ss[7,1] = @seed8stimulus2
     ss[7,2] = @seed8stimulus3
     ss[7,3] = @seed8stimulus4
     ss[7,4] = @seed8stimulus5
     ss[7,5] = @seed8stimulus6
     ss[7,6] = @seed8stimulus7
     ss[7,7] = @seed8stimulus8
     ss[7,8] = @seed8stimulus9
     ss[7,9] = @seed8stimulus10
     ss[7,10] = @seed8stimulus11
     ss[7,11] = @seed8stimulus12
     ss[7,12] = @seed8stimulus13
     ss[7,13] = @seed8stimulus14
     ss[7,14] = @seed8stimulus15
     ss[7,15] = @seed8stimulus16
     ss[8,0] = @seed9stimulus1
     ss[8,1] = @seed9stimulus2
     ss[8,2] = @seed9stimulus3
     ss[8,3] = @seed9stimulus4
     ss[8,4] = @seed9stimulus5
     ss[8,5] = @seed9stimulus6
     ss[8,6] = @seed9stimulus7
     ss[8,7] = @seed9stimulus8
     ss[8,8] = @seed9stimulus9
     ss[8,9] = @seed9stimulus10
     ss[8,10] = @seed9stimulus11
     ss[8,11] = @seed9stimulus12
     ss[8,12] = @seed9stimulus13
     ss[8,13] = @seed9stimulus14
     ss[8,14] = @seed9stimulus15
     ss[8,15] = @seed9stimulus16
     ss[9,0] = @seed10stimulus1
     ss[9,1] = @seed10stimulus2
     ss[9,2] = @seed10stimulus3
     ss[9,3] = @seed10stimulus4
     ss[9,4] = @seed10stimulus5
     ss[9,5] = @seed10stimulus6
     ss[9,6] = @seed10stimulus7
     ss[9,7] = @seed10stimulus8
     ss[9,8] = @seed10stimulus9
     ss[9,9] = @seed10stimulus10
     ss[9,10] = @seed10stimulus11
     ss[9,11] = @seed10stimulus12
     ss[9,12] = @seed10stimulus13
     ss[9,13] = @seed10stimulus14
     ss[9,14] = @seed10stimulus15
     ss[9,15] = @seed10stimulus16
     ss[10,0] = @seed11stimulus1
     ss[10,1] = @seed11stimulus2
     ss[10,2] = @seed11stimulus3
     ss[10,3] = @seed11stimulus4
     ss[10,4] = @seed11stimulus5
     ss[10,5] = @seed11stimulus6
     ss[10,6] = @seed11stimulus7
     ss[10,7] = @seed11stimulus8
     ss[10,8] = @seed11stimulus9
     ss[10,9] = @seed11stimulus10
     ss[10,10] = @seed11stimulus11
     ss[10,11] = @seed11stimulus12
     ss[10,12] = @seed11stimulus13
     ss[10,13] = @seed11stimulus14
     ss[10,14] = @seed11stimulus15
     ss[10,15] = @seed11stimulus16
     ss[11,0] = @seed12stimulus1
     ss[11,1] = @seed12stimulus2
     ss[11,2] = @seed12stimulus3
     ss[11,3] = @seed12stimulus4
     ss[11,4] = @seed12stimulus5
     ss[11,5] = @seed12stimulus6
     ss[11,6] = @seed12stimulus7
     ss[11,7] = @seed12stimulus8
     ss[11,8] = @seed12stimulus9
     ss[11,9] = @seed12stimulus10
     ss[11,10] = @seed12stimulus11
     ss[11,11] = @seed12stimulus12
     ss[11,12] = @seed12stimulus13
     ss[11,13] = @seed12stimulus14
     ss[11,14] = @seed12stimulus15
     ss[11,15] = @seed12stimulus16
     ss[12,0] = @seed13stimulus1
     ss[12,1] = @seed13stimulus2
     ss[12,2] = @seed13stimulus3
     ss[12,3] = @seed13stimulus4
     ss[12,4] = @seed13stimulus5
     ss[12,5] = @seed13stimulus6
     ss[12,6] = @seed13stimulus7
     ss[12,7] = @seed13stimulus8
     ss[12,8] = @seed13stimulus9
     ss[12,9] = @seed13stimulus10
     ss[12,10] = @seed13stimulus11
     ss[12,11] = @seed13stimulus12
     ss[12,12] = @seed13stimulus13
     ss[12,13] = @seed13stimulus14
     ss[12,14] = @seed13stimulus15
     ss[12,15] = @seed13stimulus16
     ss[13,0] = @seed14stimulus1
     ss[13,1] = @seed14stimulus2
     ss[13,2] = @seed14stimulus3
     ss[13,3] = @seed14stimulus4
     ss[13,4] = @seed14stimulus5
     ss[13,5] = @seed14stimulus6
     ss[13,6] = @seed14stimulus7
     ss[13,7] = @seed14stimulus8
     ss[13,8] = @seed14stimulus9
     ss[13,9] = @seed14stimulus10
     ss[13,10] = @seed14stimulus11
     ss[13,11] = @seed14stimulus12
     ss[13,12] = @seed14stimulus13
     ss[13,13] = @seed14stimulus14
     ss[13,14] = @seed14stimulus15
     ss[13,15] = @seed14stimulus16
     ss[14,0] = @seed15stimulus1
     ss[14,1] = @seed15stimulus2
     ss[14,2] = @seed15stimulus3
     ss[14,3] = @seed15stimulus4
     ss[14,4] = @seed15stimulus5
     ss[14,5] = @seed15stimulus6
     ss[14,6] = @seed15stimulus7
     ss[14,7] = @seed15stimulus8
     ss[14,8] = @seed15stimulus9
     ss[14,9] = @seed15stimulus10
     ss[14,10] = @seed15stimulus11
     ss[14,11] = @seed15stimulus12
     ss[14,12] = @seed15stimulus13
     ss[14,13] = @seed15stimulus14
     ss[14,14] = @seed15stimulus15
     ss[14,15] = @seed15stimulus16
     ss[15,0] = @seed16stimulus1
     ss[15,1] = @seed16stimulus2
     ss[15,2] = @seed16stimulus3
     ss[15,3] = @seed16stimulus4
     ss[15,4] = @seed16stimulus5
     ss[15,5] = @seed16stimulus6
     ss[15,6] = @seed16stimulus7
     ss[15,7] = @seed16stimulus8
     ss[15,8] = @seed16stimulus9
     ss[15,9] = @seed16stimulus10
     ss[15,10] = @seed16stimulus11
     ss[15,11] = @seed16stimulus12
     ss[15,12] = @seed16stimulus13
     ss[15,13] = @seed16stimulus14
     ss[15,14] = @seed16stimulus15
     ss[15,15] = @seed16stimulus16
     merge = new @merge(this)
     DLAStimulus[0] = new @DLAStimulus1(this)
     if @numstimuli>0
       DLAStimulus[1] = new @DLAStimulus2(this)
       if @numstimuli>1
         DLAStimulus[2] = new @DLAStimulus3(this)
         if @numstimuli>2
           DLAStimulus[3] = new @DLAStimulus4(this)
           if @numstimuli>3
             DLAStimulus[4] = new @DLAStimulus5(this)
             if @numstimuli>4
               DLAStimulus[5] = new @DLAStimulus6(this)
               if @numstimuli>5
                 DLAStimulus[6] = new @DLAStimulus7(this)
                 if @numstimuli>6
                   DLAStimulus[7] = new @DLAStimulus8(this)
                   if @numstimuli>7
                     DLAStimulus[8] = new @DLAStimulus9(this)
                     if @numstimuli>8
                       DLAStimulus[9] = new @DLAStimulus10(this)
                       if @numstimuli>9
                         DLAStimulus[10] = new @DLAStimulus11(this)
                         if @numstimuli>10
                           DLAStimulus[11] = new @DLAStimulus12(this)
                           if @numstimuli>11
                             DLAStimulus[12] = new @DLAStimulus13(this)
                             if @numstimuli>12
                               DLAStimulus[13] = new @DLAStimulus14(this)
                               if @numstimuli>13
                                 DLAStimulus[14] = new @DLAStimulus15(this)
                                 if @numstimuli>14
                                   DLAStimulus[15] = new @DLAStimulus16(this)
                                 endif
                               endif
                             endif
                           endif
                         endif
                       endif
                     endif
                   endif
                 endif
               endif
             endif
           endif
         endif
       endif
     endif
     DLADead = new @DLADead(this) ; "dead" point seeding
     o = 0
     DLASeed[0] = new @DLASeed1(this)
     if @numplants>0
       o = 1
       DLASeed[1] = new @DLASeed2(this)
       if @numplants>1
         o = 2
         DLASeed[2] = new @DLASeed3(this)
         if @numplants>2
           o = 3
           DLASeed[3] = new @DLASeed4(this)
           if @numplants>3
             o = 4
             DLASeed[4] = new @DLASeed5(this)
             if @numplants>4
               o = 5
               DLASeed[5] = new @DLASeed6(this)
               if @numplants>5
                 o = 6
                 DLASeed[6] = new @DLASeed7(this)
                 if @numplants>6
                   o = 7
                   DLASeed[7] = new @DLASeed8(this)
                   if @numplants>7
                     o = 8
                     DLASeed[8] = new @DLASeed9(this)
                     if @numplants>8
                       o = 9
                       DLASeed[9] = new @DLASeed10(this)
                       if @numplants>9
                         o = 10
                         DLASeed[10] = new @DLASeed11(this)
                         if @numplants>10
                           o = 11
                           DLASeed[11] = new @DLASeed12(this)
                           if @numplants>11
                             o = 12
                             DLASeed[12] = new @DLASeed13(this)
                             if @numplants>12
                               o = 13
                               DLASeed[13] = new @DLASeed14(this)
                               if @numplants>13
                                 o = 14
                                 DLASeed[14] = new @DLASeed15(this)
                                 if @numplants>14
                                   o = 15
                                   DLASeed[15] = new @DLASeed16(this)
                                 endif
                               endif
                             endif
                           endif
                         endif
                       endif
                     endif
                   endif
                 endif
               endif
             endif
           endif
         endif
       endif
     endif
     if n==0
       $define DEBUG
       print("Major Problem !")
       print("No organism seeds planted.")
       print("You need to rethink your seeding.")
       $undef DEBUG
     else
       i = @numplants
       repeat
         if tn[i]==0
           $define DEBUG
           print("Warning: No seeds planted for organism ",i+1)
           print("You may want to rethink your seeding.")
           $undef DEBUG
         endif
       until (i=i-1)<0
       z = 100000
       b = q
       repeat
         o = 0
         repeat
           if (d=nd[o])>0.0 && tn[o]>0 && sz[o]>0
             if tn[o]<d
               d = tn[o]
             endif
             while d>=1.0
               RandomGrowth(abs(r=random(r))%tn[o])
               d = d - 1.0
             endwhile
             if abs(r=random(r))/#randomrange<d
               RandomGrowth(abs(r=random(r))%tn[o])
             endif
           endif
         until (o=o+1)>@numplants
         i = @numstimuli
         l = @pixelgrowth - 1
         repeat
           maxleft = 100000000
           maxright = -1
           maxup = 100000000
           maxdown = -1
           o = @numplants
           repeat
             if ss[o,i] && tn[o]>0 && sz[o]>0
               if lft[o]<maxleft
                 maxleft = lft[o]
               endif
               if rgt[o]>maxright
                 maxright = rgt[o]
               endif
               if top[o]<maxup
                 maxup = top[o]
               endif
               if btm[o]>maxdown
                 maxdown = btm[o]
               endif
             endif
           until (o=o-1)<0
           if maxright>=0
           if l<@pixelgrowth - 1
             if @notinside
               f = true
             endif
             pgx = real(p)
             pgy = imag(p)
             if pgx<0.0
               pgx = 0.0
             elseif pgx>#width+3+@offset
               pgx = #width+3+@offset
             endif
             if pgy<0.0
               pgy = 0.0
             elseif pgy>#height+3+@offset
               pgy = #height+3+@offset
             endif
             bx = floor(pgx/64)
             by = floor(pgy/64)
           elseif @notinside
             f = true
             j = @numtries
             repeat
               p = DLAStimulus[i].GetPoint(maxleft,maxright,maxup,maxdown)
               pgx = real(p)
               pgy = imag(p)
               if pgx<0.0
                 pgx = 0.0
               elseif pgx>#width+3+@offset
                 pgx = #width+3+@offset
               endif
               if pgy<0.0
                 pgy = 0.0
               elseif pgy>#height+3+@offset
                 pgy = #height+3+@offset
               endif
               bx = floor(pgx/64)
               by = floor(pgy/64)
               if s[floor(pgx),floor(pgy)]>0
                 f = false
               endif
             until f || (j=j-1)<=0
           else
             p = DLAStimulus[i].GetPoint(maxleft,maxright,maxup,maxdown)
             pgx = real(p)
             pgy = imag(p)
             if pgx<0.0
               pgx = 0.0
             elseif pgx>#width+3+@offset
               pgx = #width+3+@offset
             endif
             if pgy<0.0
               pgy = 0.0
             elseif pgy>#height+3+@offset
               pgy = #height+3+@offset
             endif
             bx = floor(pgx/64)
             by = floor(pgy/64)
           endif
           fo = -1
           if !@notinside || f
             maxleft = floor(maxleft/64)
             maxright = floor(maxright/64)
             maxup = floor(maxup/64)
             maxdown = floor(maxdown/64)
             v = DLAStimulus[i].GetRange() \
                 *(0.0001*(sqr(#width+5)+sqr(#height+5)))
             if (d = DLADead.DeadDistance(pgx,pgy))<v
               v = d
             endif
             d = sqrt(v)
             if (j=floor((pgx-d)/64))>maxleft
               maxleft = j
             endif
             if (j=ceil((pgx+d)/64) - 1)<maxright
               maxright = j
             endif
             if (j=floor((pgy-d)/64))>maxup
               maxup = j
             endif
             if (j=ceil((pgy+d)/64) - 1)<maxdown
               maxdown = j
             endif
             dir = DLAStimulus[i].Direction(pgx,pgy)
             fk = -1
             o = @numplants
             repeat
               if ss[o,i] && tn[o]>0 && sz[o]>0
                 PointGrowth()
               endif
             until (o=o-1)<0
             if fk>=0
               o = fo
               NewGrowth(fk,sx[fx,fy,fk],sy[fx,fy,fk],fx,fy)
               if @seeds=="Diamond"
                 MoreGrowth(sx[fx,fy,fk],sy[fx,fy,fk]-1)
                 MoreGrowth(sx[fx,fy,fk]-1,sy[fx,fy,fk])
                 MoreGrowth(sx[fx,fy,fk]+1,sy[fx,fy,fk])
                 MoreGrowth(sx[fx,fy,fk],sy[fx,fy,fk]+1)
               endif
             endif
           endif
           o = 0
           repeat
             if o!=fo && (d=-nd[o])>0.0 && tn[o]>0 && sz[o]>0
               if tn[o]<d
                 d = tn[o]
               endif
               while d>=1.0
                 RandomGrowth(abs(r=random(r))%tn[o])
                 d = d - 1.0
               endwhile
               if abs(r=random(r))/#randomrange<d
                 RandomGrowth(abs(r=random(r))%tn[o])
               endif
             endif
           until (o=o+1)>@numplants
           else
             l = 0
           endif
           if (l = l - 1)<0
             l = 1
             i = i - 1
           endif
         until i<0
         c = c - 1
         if (z=z-1)<=0
           z = 100000
           if b-q<=@fail*100000
             n = -n
           endif
           b = q
           if @showprogress
             $define DEBUG
             if @use=="Pixel Count"
               print(" ",@pixels-q," pixels remaining.")
             elseif @use=="Percentage"
               print(" ",floor(10000*((a-q)/a))/100,"% completed")
             else
               print(" ",c," generations to go.")
             endif
             $undef DEBUG
           endif
         endif
       until n<=0 || q<=0 || (@use=="Generations" && c<=0)
     endif
     if @showprogress
       $define DEBUG
       print("Completed.")
       print("Number of Generations ",@numgenerations-c)
       print("Sceeen Pixels Remaining ",(#width+@offset)*(#height+@offset) \
                                        - a + q)
       print("Screen %age converted ",round(10000*((a-q) \
                                      /((#width+@offset)*(#height+@offset)))) \
                                      /100 )
       print("Seed points remaining ",abs(n))
       $undef DEBUG
     endif
   endfunc
 
   ; @param k the number of the seed to grow
   func RandomGrowth(int k)
     int i = ceil((#height+4+@offset)/64) - 1
     repeat
       int j = ceil((#width+4+@offset)/64) - 1
       repeat
         if t[j,i,o+1]-t[j,i,o]>k
           k = k + t[j,i,o]
           int x = sx[j,i,k]
           int y = sy[j,i,k]
           NewGrowth(k,x,y,j,i)
           return
         else
           k = k + t[j,i,o] - t[j,i,o+1]
         endif
       until (j=j-1)<0
     until (i=i-1)<0
   endfunc
 
   func PointGrowth()
     float w
     float d
     float dx
     float dy
     float det = dtct[o]
     float mv = mov[o]
     int xs
     int ys
     int xe
     int ye
     int ix
     int iy
     int e
     int off = 10000
     if bx<maxleft
       off = maxleft - bx
     elseif bx>maxright
       off = bx - maxright
     endif
     if by<maxup
       if maxup-by<off
         off = maxup - by
       endif
     elseif by>maxdown
       if by-maxdown<off
         off = by - maxdown
       endif
     endif
     if off==10000
       off = 0
     endif
     off=0
     repeat
       e = 0
       if (xs=bx-off)<maxleft
         e = 1
         xs = maxleft
       endif
       if (ys=by-off)<maxup
         e = e + 1
         ys = maxup
       endif
       if (xe=bx+off)>maxright
         e = e + 1
         xe = maxright
       endif
       if (ye=by+off)>maxdown
         e = e + 1
         ye = maxdown
       endif
       if e<4
         iy = ys
         ix = xs
         repeat
           if t[ix,iy,o+1]>t[ix,iy,o]
             int i = t[ix,iy,o+1] - 1
             repeat
               w = sqr(dx=pgx-sx[ix,iy,i]) + sqr(dy=pgy-sy[ix,iy,i])
               if @addrandom && det>0.0
                 w = w*sqr(1.0 + abs(r=random(r))*det)
               endif
               if @addmovement && dir!=0.0 && mv>0.0
                 d = sqrt(w)
                 w = sqr(d + mv*(d - dx*real(dir) - dy*imag(dir)))
               endif
               if w<v
                 v = w
                 w = sqrt(w)
                 if (fx=floor((pgx-w)/64))>maxleft
                   maxleft = fx
                 endif
                 if (fx=ceil((pgx+w)/64) - 1)<maxright
                   maxright = fx
                 endif
                 if (fy=floor((pgy-w)/64))>maxup
                   maxup = fy
                 endif
                 if (fy=ceil((pgy+w)/64) - 1)<maxdown
                   maxdown = fy
                 endif
                 fo = o
                 fk = i
                 fx = ix
                 fy = iy
               endif
             until (i=i-1)<t[ix,iy,o]
           endif
         until (ix=ix+1)>xe
         if ye>ys
           iy = ye
           ix = xs
           repeat
             if t[ix,iy,o+1]>t[ix,iy,o]
               int i = t[ix,iy,o+1] - 1
               repeat
                 w = sqr(dx=pgx-sx[ix,iy,i]) + sqr(dy=pgy-sy[ix,iy,i])
                 if @addrandom && det>0.0
                   w = w*sqr(1.0 + abs(r=random(r))*det)
                 endif
                 if @addmovement && dir!=0.0 && mv>0.0
                   d = sqrt(w)
                   w = sqr(d + mv*(d - dx*real(dir) - dy*imag(dir)))
                 endif
                 if w<v
                   v = w
                   w = sqrt(w)
                   if (fx=floor((pgx-w)/64))>maxleft
                     maxleft = fx
                   endif
                   if (fx=ceil((pgx+w)/64) - 1)<maxright
                     maxright = fx
                   endif
                   if (fy=floor((pgy-w)/64))>maxup
                     maxup = fy
                   endif
                   if (fy=ceil((pgy+w)/64) - 1)<maxdown
                     maxdown = fy
                   endif
                   fo = o
                   fk = i
                   fx = ix
                   fy = iy
                 endif
               until (i=i-1)<t[ix,iy,o]
             endif
           until (ix=ix+1)>xe
           if (iy=ys+1)<ye
           ix = xs
           repeat
             if t[ix,iy,o+1]>t[ix,iy,o]
               int i = t[ix,iy,o+1] - 1
               repeat
                 w = sqr(dx=pgx-sx[ix,iy,i]) + sqr(dy=pgy-sy[ix,iy,i])
                 if @addrandom && det>0.0
                   w = w*sqr(1.0 + abs(r=random(r))*det)
                 endif
                 if @addmovement && dir!=0.0 && mv>0.0
                   d = sqrt(w)
                   w = sqr(d + mv*(d - dx*real(dir) - dy*imag(dir)))
                 endif
                 if w<v
                   v = w
                   w = sqrt(w)
                   if (fx=floor((pgx-w)/64))>maxleft
                     maxleft = fx
                   endif
                   if (fx=ceil((pgx+w)/64) - 1)<maxright
                     maxright = fx
                   endif
                   if (fy=floor((pgy-w)/64))>maxup
                     maxup = fy
                   endif
                   if (fy=ceil((pgy+w)/64) - 1)<maxdown
                     maxdown = fy
                   endif
                   fo = o
                   fk = i
                   fx = ix
                   fy = iy
                 endif
               until (i=i-1)<t[ix,iy,o]
             endif
           until (iy=iy+1)>=ye
           if xe>xs
           ix = xe
           iy = ys + 1
           repeat
             if t[ix,iy,o+1]>t[ix,iy,o]
               int i = t[ix,iy,o+1] - 1
               repeat
                 w = sqr(dx=pgx-sx[ix,iy,i]) + sqr(dy=pgy-sy[ix,iy,i])
                 if @addrandom && det>0.0
                   w = w*sqr(1.0 + abs(r=random(r))*det)
                 endif
                 if @addmovement && dir!=0.0 && mv>0.0
                   d = sqrt(w)
                   w = sqr(d + mv*(d - dx*real(dir) - dy*imag(dir)))
                 endif
                 if w<v
                   v = w
                   w = sqrt(w)
                   if (fx=floor((pgx-w)/64))>maxleft
                     maxleft = fx
                   endif
                   if (fx=ceil((pgx+w)/64) - 1)<maxright
                     maxright = fx
                   endif
                   if (fy=floor((pgy-w)/64))>maxup
                     maxup = fy
                   endif
                   if (fy=ceil((pgy+w)/64) - 1)<maxdown
                     maxdown = fy
                   endif
                   fo = o
                   fk = i
                   fx = ix
                   fy = iy
                 endif
               until (i=i-1)<t[ix,iy,o]
             endif
           until (iy=iy+1)>=ye
           endif
           endif
         endif
         off = off + 1
       endif
     until e>=4
   endfunc
 
   float func DeadDist()
     float w
     int xs
     int ys
     int xe
     int ye
     int ix
     int iy
     int e
     int maxleft = mxl
     int maxright = mxr
     int maxup = mxu
     int maxdown = mxd
     int off = 10000
     if bx<mxl
       off = mxl - bx
     elseif bx>mxr
       off = bx - mxr
     endif
     if by<mxu
       if mxu-by<off
         off = mxu - by
       endif
     elseif by>mxd
       if by-mxd<off
         off = by - mxd
       endif
     endif
     if off==10000
       off = 0
     endif
     repeat
       e = 0
       if (xs=bx-off)<maxleft
         e = 1
         xs = maxleft
       endif
       if (ys=by-off)<maxup
         e = e + 1
         ys = maxup
       endif
       if (xe=bx+off)>maxright
         e = e + 1
         xe = maxright
       endif
       if (ye=by+off)>maxdown
         e = e + 1
         ye = maxdown
       endif
       if e<4
         iy = ys
         ix = xs
         repeat
           if t[ix,iy,0]>0
             int i = t[ix,iy,0] - 1
             repeat
               if (w=sqr(pgx-sx[ix,iy,i])+sqr(pgy-sy[ix,iy,i]))<v
                 v = w
                 w = sqrt(w)
                 if (fx=floor((pgx-w)/64))>maxleft
                   maxleft = fx
                 endif
                 if (fx=ceil((pgx+w)/64) - 1)<maxright
                   maxright = fx
                 endif
                 if (fy=floor((pgy-w)/64))>maxup
                   maxup = fy
                 endif
                 if (fy=ceil((pgy+w)/64) - 1)<maxdown
                   maxdown = fy
                 endif
               endif
             until (i=i-1)<0
           endif
         until (ix=ix+1)>xe
         if ye>ys
           iy = ye
           ix = xs
           repeat
             if t[ix,iy,0]>0
               int i = t[ix,iy,0] - 1
               repeat
                 if (w=sqr(pgx-sx[ix,iy,i])+sqr(pgy-sy[ix,iy,i]))<v
                   v = w
                   w = sqrt(w)
                   if (fx=floor((pgx-w)/64))>maxleft
                     maxleft = fx
                   endif
                   if (fx=ceil((pgx+w)/64) - 1)<maxright
                     maxright = fx
                   endif
                   if (fy=floor((pgy-w)/64))>maxup
                     maxup = fy
                   endif
                   if (fy=ceil((pgy+w)/64) - 1)<maxdown
                     maxdown = fy
                   endif
                 endif
               until (i=i-1)<0
             endif
           until (ix=ix+1)>xe
           if (iy=ys+1)<ye
           ix = xs
           repeat
             if t[ix,iy,0]>0
               int i = t[ix,iy,0] - 1
               repeat
                 if (w=sqr(pgx-sx[ix,iy,i])+sqr(pgy-sy[ix,iy,i]))<v
                   v = w
                   w = sqrt(w)
                   if (fx=floor((pgx-w)/64))>maxleft
                     maxleft = fx
                   endif
                   if (fx=ceil((pgx+w)/64) - 1)<maxright
                     maxright = fx
                   endif
                   if (fy=floor((pgy-w)/64))>maxup
                     maxup = fy
                   endif
                   if (fy=ceil((pgy+w)/64) - 1)<maxdown
                     maxdown = fy
                   endif
                 endif
               until (i=i-1)<0
             endif
           until (iy=iy+1)>=ye
           if xe>xs
           ix = xe
           iy = ys + 1
           repeat
             if t[ix,iy,0]>0
               int i = t[ix,iy,0] - 1
               repeat
                 if (w=sqr(pgx-sx[ix,iy,i])+sqr(pgy-sy[ix,iy,i]))<v
                   v = w
                   w = sqrt(w)
                   if (fx=floor((pgx-w)/64))>maxleft
                     maxleft = fx
                   endif
                   if (fx=ceil((pgx+w)/64) - 1)<maxright
                     maxright = fx
                   endif
                   if (fy=floor((pgy-w)/64))>maxup
                     maxup = fy
                   endif
                   if (fy=ceil((pgy+w)/64) - 1)<maxdown
                     maxdown = fy
                   endif
                 endif
               until (i=i-1)<0
             endif
           until (iy=iy+1)>=ye
           endif
           endif
         endif
         off = off + 1
       endif
     until e>=4
     return v
   endfunc
 
   ; @param k the index for the point number
   ; @param x pixel x coordinate
   ; @param y pixel y coordinate
   ; @param ix 64*64 box x index
   ; @param iy 64*64 box y index
   func NewGrowth(int k, int x, int y, int ix, int iy)
     int i = o + 1
     int j
     if s[x,y]==-1
       s[x,y] = (g[o]=g[o]+1)*16 + o
       if x>=2 && x<=#width+1+@offset && y>=2 && y<=#height+1+@offset
         q = q - 1
       endif
       n = n - 1
       tn[o] = tn[o] - 1
       sz[o] = sz[o] - 1
       repeat
         t[ix,iy,i] = t[ix,iy,i] - 1
         sx[ix,iy,k] = sx[ix,iy,t[ix,iy,i]]
         sy[ix,iy,k] = sy[ix,iy,t[ix,iy,i]]
         k = t[ix,iy,i]
       until (i=i+1)>@numplants+1
       x = x - 1
       y = y - 1
       if (i=y+2)<=#height+3+@offset
         if @seeds=="Square"
           j = x + 2
           repeat
             if j>=0 && j<=#width+3+@offset && s[j,i]==0
               NewSeed(j,i)
             endif
           until (j=j-1)<x
         else
           if s[x+1,i]==0
             NewSeed(x+1,i)
           endif
         endif
       endif
       i = y + 1
       if (j=x+2)<=#width+3+@offset
         if s[j,i]==0
           NewSeed(j,i)
         endif
       endif
       if x>=0
         if s[x,i]==0
           NewSeed(x,i)
         endif
       endif
       if y>=0
         if @seeds=="Square"
           j = x + 2
           repeat
             if j>=0 && j<=#width+3+@offset && s[j,y]==0
               NewSeed(j,y)
             endif
           until (j=j-1)<x
         else
           if s[x+1,y]==0
             NewSeed(x+1,y)
           endif
         endif
       endif
     endif
   endfunc
 
   func MoreGrowth(int x,int y)
     if x>=0 && x<=#width+3+@offset && y>=0 && y<=#height+3+@offset
       int ix = floor(x/64)
       int iy = floor(y/64)
       int i = t[ix,iy,o+1]
       while (i=i-1)>=t[ix,iy,o]
         if sx[ix,iy,i]==x && sy[ix,iy,i]==y
           NewGrowth(i,x,y,ix,iy)
           i = -1
         endif
       endwhile
     endif
   endfunc
 
   ; @param x the x pixel coordinate
   ; @param y the y pixel coordinate
   func NewSeed(int x,int y)
     int i = @numplants + 1
     int ix = floor(x/64)
     int iy = floor(y/64)
     repeat
       sx[ix,iy,t[ix,iy,i]] = sx[ix,iy,t[ix,iy,i-1]]
       sy[ix,iy,t[ix,iy,i]] = sy[ix,iy,t[ix,iy,i-1]]
       t[ix,iy,i] = t[ix,iy,i] + 1
     until (i=i-1)<=o
     sx[ix,iy,t[ix,iy,o]] = x
     sy[ix,iy,t[ix,iy,o]] = y
     if x<lft[o]
       lft[o] = x
     endif
     if x>rgt[o]
       rgt[o] = x
     endif
     if y<top[o]
       top[o] = y
     endif
     if y>btm[o]
       btm[o] = y
     endif
     tn[o] = tn[o] + 1
     if x>0 && x<#width+3+@offset && y>0 && y<#height+3+@offset
       n = n + 1
       s[x,y] = -1
     else
       s[x,y] = -2
     endif
   endfunc
 
   ; @param x the x pixel coordinate
   ; @param y the y pixel coordinate
   ; @param c the dead point colour
   ; @param i the dead point palette index
   func SetDeadPoint(int x,int y,color c,float i)
     if s[x,y]==0
       s[x,y] = -3 - (round(red(c)*127)*128 + round(green(c)*127))*128 \
                - round(blue(c)*127) - floor(i)*128*128*128
       int ix = floor(x/64)
       int iy = floor(y/64)
       sx[ix,iy,t[ix,iy,0]] = x
       sy[ix,iy,t[ix,iy,0]] = y
       if ix<mxl
         mxl = ix
       endif
       if ix>mxr
         mxr = ix
       endif
       if iy<mxu
         mxu = iy
       endif
       if iy>mxd
         mxd = iy
       endif
       t[ix,iy,0] = t[ix,iy,0] + 1
       int j = 0
       while (j=j+1)<=@numplants+1
         t[ix,iy,j] = t[ix,iy,0]
       endwhile
       q = q - 1
     endif
   endfunc
 
   ; @param x the x pixel coordinate
   ; @param y the y pixel coordinate
   func SetStartPoint(int x,int y)
     if s[x,y]==0
       s[x,y] = -1
       int ix = floor(x/64)
       int iy = floor(y/64)
       sx[ix,iy,t[ix,iy,o+1]] = x
       sy[ix,iy,t[ix,iy,o+1]] = y
       if x<lft[o]
         lft[o] = x
       endif
       if x>rgt[o]
         rgt[o] = x
       endif
       if y<top[o]
         top[o] = y
       endif
       if y>btm[o]
         btm[o] = y
       endif
       t[ix,iy,o+1] = t[ix,iy,o+1] + 1
       int i = o+1
       while (i=i+1)<=@numplants+1
         t[ix,iy,i] = t[ix,iy,o+1]
       endwhile
       tn[o] = tn[o] + 1
       n = n + 1
     endif
   endfunc
 
   func Iterate(complex pz)
   endfunc
 
   color func Result(complex pz)
     float c = 0.0025*@backcol
     color clr = gradient(c)
     int v = s[2+floor(real(#screenpixel)),2+floor(imag(#screenpixel))]
     if v<-2
       v = (-(v + 3))%(128*128*128)
       return RGBA(floor(v/(128*128))/128,floor((v%(128*128))/128)/128, \
                   floor(v%128)/128,1)
     elseif v<=0
       if @backmethod==0
         m_Solid = true
       endif
     else
       o = v%16
       c = 0.0025*(pn[o] + px[o]*v/(16*g[o]))
       clr = gradient(c)
       if m[o]>0
         float c1 = 0.5*(1.0 + @ambient)
         if @sample && @offset>1
           float c2
           int v1
           int n1 = 0
           int n2 = 0
           int n3 = 0
           float t1 = 0.0
           float t2 = 0.0
           float t3 = 0.0
           int i = 0
           if @altsample && @offset%2==0
             repeat
               int j = 0
               repeat
                 v1 = s[j + 2 + floor(real(#screenpixel)), \
                        i + 2 + floor(imag(#screenpixel))]
                 if v1>0
                   if o==v1%16
                     n1 = n1 + 1
                     t1 = t1 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                   endif
                 endif
               until (j=j+1)>=@offset/2
             until (i=i+1)>=@offset/2
             i = 0
             repeat
               int j = floor(@offset/2)
               repeat
                 v1 = s[j + 2 + floor(real(#screenpixel)), \
                        i + 2 + floor(imag(#screenpixel))]
                 if v1>0
                   if o==v1%16
                     n2 = n2 + 1
                     t2 = t2 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                   endif
                 endif
               until (j=j+1)>=@offset
             until (i=i+1)>=@offset/2
             i = floor(@offset/2)
             repeat
               int j = 0
               repeat
                 v1 = s[j + 2 + floor(real(#screenpixel)), \
                        i + 2 + floor(imag(#screenpixel))]
                 if v1>0
                   if o==v1%16
                     n3 = n3 + 1
                     t3 = t3 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                   endif
                 endif
               until (j=j+1)>=@offset/2
             until (i=i+1)>=@offset
           else
             repeat
               int j = 0
               repeat
                 v1 = s[j + 2 + floor(real(#screenpixel)), \
                        i + 2 + floor(imag(#screenpixel))]
                 if v1>0
                   if o==v1%16
                     if i<@offset && j<@offset
                       n1 = n1 + 1
                       t1 = t1 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                     endif
                     if j>0 && i<@offset
                       n2 = n2 + 1
                       t2 = t2 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                     endif
                     if i>0 && j<@offset
                       n3 = n3 + 1
                       t3 = t3 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                     endif
                   endif
                 endif
               until (j=j+1)>@offset
             until (i=i+1)>@offset
           endif
           if n1>0 && n2>0 && n3>0
             t1 = t1/n1
             t2 = t2/n2 - t1
             t3 = t3/n3 - t1
             c1 = @ambient + 0.5*(1.0 - @ambient) \
                             *(1.0 + (lx*t2 + ly*t3 + lz*(@offset*@lscale)) \
                                 /sqrt(sqr(t2)+sqr(t3)+sqr(@offset*@lscale)))
           endif
         elseif @offset+2+floor(real(#screenpixel))<#width+4+@offset \
            && @offset+2+floor(imag(#screenpixel))<#height+4+@offset
           int v1 = s[@offset + 2 + floor(real(#screenpixel)), \
                      2 + floor(imag(#screenpixel))]
           int v2 = s[2 + floor(real(#screenpixel)), \
                      @offset + 2 + floor(imag(#screenpixel))]
           if v1>0 && v2>0
             if o==v1%16 && o==v2%16
               c1 = 0.0025*(pn[o] + px[o]*v1/(16*g[o])) - c
               float c2 = 0.0025*(pn[o] + px[o]*v2/(16*g[o])) - c
               c1 = @ambient + 0.5*(1.0 - @ambient) \
                               *(1.0 + (lx*c1 + ly*c2 + lz*(0.1*@offset*@lscale)) \
                                   /sqrt(sqr(c1)+sqr(c2)+sqr(0.1*@offset*@lscale)))
             endif
           endif
         endif
         if m[0]==1
           clr = gradient(c1)
         else
           color lt = lc[o]*c1
           lt = rgba(red(lt), green(lt), blue(lt), 1.0)
           if @reverse
             clr = merge.FullMerge(lt,clr,@opacity)
           else
             clr = merge.FullMerge(clr,lt,@opacity)
           endif
         endif
       endif
     endif
     return clr
   endfunc
 
   float func ResultIndex(complex pz)
     float c = 0.0025*@backcol
     int v = s[2+floor(real(#screenpixel)),2+floor(imag(#screenpixel))]
     if v<-2
       c = 0.0025*floor(-(v + 3)/(128*128*128))
     elseif v<=0
       if @backmethod==0
         m_Solid = true
       endif
     else
       o = v%16
       c = 0.0025*(pn[o] + px[o]*v/(16*g[o]))
       if m[o]==1
         float c1 = 0.5*(1.0 + @ambient)
         if @sample && @offset>1
           float c2
           int v1
           int n1 = 0
           int n2 = 0
           int n3 = 0
           float t1 = 0.0
           float t2 = 0.0
           float t3 = 0.0
           int i = 0
           if @altsample && @offset%2==0
             repeat
               int j = 0
               repeat
                 v1 = s[j + 2 + floor(real(#screenpixel)), \
                        i + 2 + floor(imag(#screenpixel))]
                 if v1>0
                   if o==v1%16
                     n1 = n1 + 1
                     t1 = t1 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                   endif
                 endif
               until (j=j+1)>=@offset/2
             until (i=i+1)>=@offset/2
             i = 0
             repeat
               int j = floor(@offset/2)
               repeat
                 v1 = s[j + 2 + floor(real(#screenpixel)), \
                        i + 2 + floor(imag(#screenpixel))]
                 if v1>0
                   if o==v1%16
                     n2 = n2 + 1
                     t2 = t2 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                   endif
                 endif
               until (j=j+1)>=@offset
             until (i=i+1)>=@offset/2
             i = floor(@offset/2)
             repeat
               int j = 0
               repeat
                 v1 = s[j + 2 + floor(real(#screenpixel)), \
                        i + 2 + floor(imag(#screenpixel))]
                 if v1>0
                   if o==v1%16
                     n3 = n3 + 1
                     t3 = t3 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                   endif
                 endif
               until (j=j+1)>=@offset/2
             until (i=i+1)>=@offset
           else
             repeat
               int j = 0
               repeat
                 v1 = s[j + 2 + floor(real(#screenpixel)), \
                        i + 2 + floor(imag(#screenpixel))]
                 if v1>0
                   if o==v1%16
                     if i<@offset && j<@offset
                       n1 = n1 + 1
                       t1 = t1 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                     endif
                     if j>0 && i<@offset
                       n2 = n2 + 1
                       t2 = t2 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                     endif
                     if i>0 && j<@offset
                       n3 = n3 + 1
                       t3 = t3 + 0.0025*(pn[o] + px[o]*v1/(16*g[o]))
                     endif
                   endif
                 endif
               until (j=j+1)>@offset
             until (i=i+1)>@offset
           endif
           if n1>0 && n2>0 && n3>0
             t1 = t1/n1
             t2 = t2/n2 - t1
             t3 = t3/n3 - t1
             c1 = @ambient + 0.5*(1.0 - @ambient) \
                             *(1.0 + (lx*t2 + ly*t3 + lz*(@offset*@lscale)) \
                                 /sqrt(sqr(t2)+sqr(t3)+sqr(@offset*@lscale)))
           endif
         elseif @offset+2+floor(real(#screenpixel))<#width+4+@offset \
            && @offset+2+floor(imag(#screenpixel))<#height+4+@offset
           int v1 = s[@offset + 2 + floor(real(#screenpixel)), \
                      2 + floor(imag(#screenpixel))]
           int v2 = s[2 + floor(real(#screenpixel)), \
                      @offset + 2 + floor(imag(#screenpixel))]
           if v1>0 && v2>0
             if o==v1%16 && o==v2%16
               c1 = 0.0025*(pn[o] + px[o]*v1/(16*g[o])) - c
               float c2 = 0.0025*(pn[o] + px[o]*v2/(16*g[o])) - c
               c1 = @ambient + 0.5*(1.0 - @ambient) \
                               *(1.0 + (lx*c1 + ly*c2 + lz*(0.1*@offset*@lscale)) \
                                   /sqrt(sqr(c1)+sqr(c2)+sqr(0.1*@offset*@lscale)))
             endif
           endif
         endif
         c = c1
       endif
     endif
     return c
   endfunc
 
   bool func IsSolid()
     return m_Solid
   endfunc
 
 protected:
   int s[#width+4+@offset,#height+4+@offset]
   int sx[ceil((#width+4+@offset)/64),ceil((#height+4+@offset)/64),4096]
   int sy[ceil((#width+4+@offset)/64),ceil((#height+4+@offset)/64),4096]
   int t[ceil((#width+4+@offset)/64),ceil((#height+4+@offset)/64),17]
   MMF_StimulusDLA DLAStimulus[16]
   MMF_SeedDLA DLASeed[16]
   MMF_DeadDLA DLADead
   DefaultColorMerge merge
   float pn[16]
   float px[16]
   float dtct[16]
   float mov[16]
   color lc[16]
   int m[16]
   int g[16]
   int tn[16]
   int top[16]
   int btm[16]
   int lft[16]
   int rgt[16]
   int sz[16]
   complex dir
   float lx
   float ly
   float lz
   float v
   float pgx
   float pgy
   int r
   int n
   int o
   int q
   int bx
   int by
   int fk
   int fx
   int fy
   int fo
   int maxleft
   int maxright
   int maxup
   int maxdown
   int mxl
   int mxr
   int mxu
   int mxd
 
 default:
   title = "MMF DLA Inspired"
   heading
     text = "IMPORTANT: This colouring is intended for use with a 'Pixel' \
             formula such as mt.ufm-Pixel. \
             Note that you should plug this object into either \
             'Generic Coloring (Gradient) Render=false' or 'Generic Coloring \
             (Direct) Render=false' from mmf5.ucl. \
             The formula is inspired by Diffusion Limited Aggregation. \
             Unlike DLA it does not use random particle motion to generate \
             the fractal, rather random stimuli locations are generated and \
             the fractal grows from the closest seed point to the stimulus \
             adding to the available seed points at the same time. \
             You can create up to 16 different organisms \
             each of which may have multiple initial seed points. \
             You choose the number of organisms and how each is seeded in the \
             screen area and individuals are then grown from the seeds. \
             In each generation the organisms grow by one or more \
             points, the points of growth either being simply random or \
             based on a location where a stimulus is generated. \
             You should note that the combined lighting and colouring \
             options only work if you plug this formula into the '(Direct)' \
             colouring. The formula is designed to be used with the main UF \
             gradient parameters set at the default values i.e. 'Color \
             Density' set to 1, 'Transfer Function' Linear and 'Gradient \
             Offset' zero. The DLA algorithm itself is pixel-based so you \
             can't zoom in or out or change location, however the fractal \
             plug-ins for seeding and for dead points will respond to \
             changes in magnification and location enabling you to use any \
             part of another fractal as the seeds and/or the dead points."
   endheading
   bool param showprogress
     caption = "Show Progress"
     default = false
     hint = "When enabled progress is shown by means of compiler messages. \
             If enabled and no compiler messages are produced then try hitting \
             the 'Reload Formula' button for the colouring."
   endparam
   int param seed
     caption = "Random Seed"
     default = 12345678
     hint = "This is the overall random control seed. Changing this will \
             modify all directionless growth patterns."
   endparam
   int param use
     caption = "Completion target"
     enum = "Pixel Count" "Percentage" "Generations"
     default = 1
     hint = "Growth is continued until your completion target is met or \
             until the maximum possible area is covered. 'Pixel Count' stops \
             growth when the specified number of pixels have been converted, \
             'Percentage' when the specified percentage of the screen area is \
             converted and 'Generations' when the specified number of \
             generations of growth is completed."
   endparam
   int param pixels
     caption = "Number of Pixels"
     default = 20000
     min = 1
     hint = "Growth is stopped when this many pixels have 'grown' or when \
             growth has ceased."
     visible = @use==0
   endparam
   float param percent
     caption = "Percentage of Screen"
     default = 100.0
     min = 0.1
     max = 100.0
     hint = "Growth is stopped when this %age of the screen has 'grown' or \
             when growth has ceased."
     visible = @use==1
   endparam
   int param numgenerations
     caption = "No. of Generations"
     default = 10000
     min = 1
     hint = "The more generations the greater the area of growth but the \
             longer the render time. Growth will always stop when all \
             possible growth points are converted even if the target number \
             of generations is not reached."
     visible = @use==2
   endparam
   float param fail
     caption = "Failure Rate"
     default = 0.01
     min = 0.0
     max = 1.0
     hint = "Assumes growth has stopped when this many or fewer pixels are \
             produced per generation. Set to zero if you wish maximum \
             possible growth."
   endparam
   int param seeds
     caption = "Seeding Method"
     enum = "Star" "Square" "Diamond"
     default = 0
     hint = "Using 'Star' seeds are only planted on horizontally and/or \
             vertically adjacent pixels to growth points. Using 'Square' \
             seeds are planted on the diagonally adjacent pixels as well. \
             Using 'Diamond' points are grown in the star shape and the \
             surrounding diamond is seeded."
   endparam
   int param pixelgrowth
     caption = "Points per Stimulus"
     default = 1
     min = 1
     hint = "The number of points to grow per organism per stimulus location."
   endparam
   bool param notinside
     caption = "Restrict Stimulus Locations"
     default = false
     hint = "When enabled the locations of the stimuli are restricted to \
             points not already part of the fractal. You should note that \
             when enabled and not using any 'Directionless Growth' then you \
             should not expect all pixels to 'grow', in other words if using \
             'Pixel Count' or 'Percentage' as the 'Completeion Target' then \
             if your values are too high completion may be slow."
   endparam
   int param numtries
     caption = "Number of Tries"
     default = 10
     min = 1
     hint = "This is the maximum number of times to try growth of the \
             organisms per generation i.e. generate a stimulus either until \
             growth is allowed or until this many stimulus locations have \
             been tried."
     visible = @notinside
   endparam
   int param backmethod
     caption = "'Background' Method"
     enum = "Solid Colour" "Palette colour"
     default = 0
     hint = "Here you can choose to have pixels that are neither 'dead' \
             points nor growth points coloured either using the 'Solid Color' \
             or by specifying the palette index of the colour to use."
   endparam
   float param backcol
     caption = "Background Colour"
     default = 399.0
     min = 0.0
     hint = "Here you can specify the palette index of the background colour."
     visible = @backmethod==1
   endparam
   int param offset
     caption = "Lighting Pixel Offset"
     default = 1
     min = 1
     max = 50
     hint = "Specifies the pixel spread for calculating the lighting normals. \
             You may want to increase the value for larger renders, e.g. 1 for \
             640*480, say 2 for 1280*960 etc. The maximum is 50."
   endparam
   bool param sample
     caption = "Multi-Sample"
     default = false
     hint = "When disabled the lighting is simply calculated from the main \
             point and two points offset horizontally and vertically by the \
             'Lighting Pixel Offset'. When enabled all pixels in a square of \
             side 'Lighting Pixel Offset' with the main pixel as the top-left \
             are used in the lighting calculation (for each pixel in the \
             square that pixel and the pixel to the right and below are used \
             to calculate the light value for that point and the result from \
             all the points in the square is averaged)."
     visible = @offset>1
   endparam
   bool param altsample
     caption = "Alternative Sampling"
     default = false
     hint = "When enabled the 'Multi-Sample' method is changed slightly, \
             instead of averaging over the whole area, the area is split \
             into 2*2 squares (each of side 'Lighting Pixel Offset/2) and \
             the top-left, top-right and bottom-left of these are sampled \
             for the lighting."
     visible = @offset%2==0 && @sample
   endparam
   float param lscale
     caption = "Light Pre-scale"
     default = 1.0
     min = 1e-200
     hint = "The pre-scale for the lighting. Values closer to zero will \
             accentuate the lighting (i.e. >0 and <1). Values >1 will reduce \
             the lighting effect."
   endparam
   float param angle
     caption = "Light Rotation"
     default = 90.0
     hint = "Gives the rotation of any light source, in degrees. With 0 \
             degrees, the light comes from above. Positive values give \
             clockwise rotation."
   endparam
   float param elevation
     caption = "Light Elevation"
     default = 30.0
     hint = "Gives the elevation of any light source, in degrees."
   endparam
   float param ambient
     caption = "Ambient Light"
     default = 0.0
     hint = "Specifies the level of ambient light, usual range is from \
             -1 to +1. Use -1 for no ambient."
   endparam
   DefaultColorMerge param merge
     caption = "Lighting Merge method"
     default = MMF_ExtendedColorMerge
     hint = "This plug-in is ignored if 'MMF DLA Inspired' is plugged \
             into a gradient colouring rather than a direct colouring."
   endparam
   bool param reverse
     caption = "Reverse the Merging"
     default = false
     hint = "When enabled the order of merging the colouring and lighting \
             is reversed from the norm. \
             This parameter is ignored if 'MMF DLA Inspired' is plugged \
             into a gradient colouring rather than a direct colouring."
   endparam
   float param opacity
     caption = "Merge Opacity"
     default = 1.0
     hint = "The merge opacity for combined colouring organisms. \
             This parameter is ignored if 'MMF DLA Inspired' is plugged \
             into a gradient colouring rather than a direct colouring."
   endparam
   heading
     caption = "Advanced Options"
   endheading
   bool param addrandom
     caption = "Added Detection Accuracy"
     default = false
     hint = "When enabled you will have extra parameters on your organisms \
             to set a detection accuracy. Changing the detection accuracy \
             will change their fractal nature."
   endparam
   bool param addmovement
     caption = "Added Stimulus Movement"
     default = false
     hint = "When enabled the stimuli 'Direction of Movement' parameters \
             come into play as do the organism parameters to control how \
             well the organisms detect stimulus movement."
   endparam
   heading
     caption = "The Stimuli"
     text = "You can select up to 16 different types of stimuli each of \
             which may be produced in multiple ways. In the organism \
             parameters you can control whether each organism is affected by \
             any/all of the stimuli."
   endheading
   int param numstimuli
     caption = "Number of Stimuli"
     enum = "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" \
            "15" "16"
     default = 0
   endparam
   MMF_StimulusDLA param DLAStimulus1
     caption = "Stimulus 1"
     default = MMF_RectStimulusDLA
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus2
     caption = "Stimulus 2"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>0
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus3
     caption = "Stimulus 3"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>1
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus4
     caption = "Stimulus 4"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>2
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus5
     caption = "Stimulus 5"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>3
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus6
     caption = "Stimulus 6"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>4
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus7
     caption = "Stimulus 7"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>5
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus8
     caption = "Stimulus 8"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>6
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus9
     caption = "Stimulus 9"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>7
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus10
     caption = "Stimulus 10"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>8
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus11
     caption = "Stimulus 11"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>9
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus12
     caption = "Stimulus 12"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>10
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus13
     caption = "Stimulus 13"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>11
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus14
     caption = "Stimulus 14"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>12
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus15
     caption = "Stimulus 15"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>13
     hint = "Choose your stimulus !"
   endparam
   MMF_StimulusDLA param DLAStimulus16
     caption = "Stimulus 16"
     default = MMF_RectStimulusDLA
     visible = @numstimuli>14
     hint = "Choose your stimulus !"
   endparam
   heading
     caption = "Dead Points"
     text = "These are points on the screen that do not normally support \
             growth and also block detection of stimuli by the organisms."
   endheading
   MMF_DeadDLA param DLADead
     caption = "Dead Point Seeding"
     default = MMF_NoDeadDLA
     hint = "Points selected by this object are 'dead' points, they will not \
             normally turn into part of an organism and if positioned in \
             between an organism and a stimulus then the organism will be \
             unaffected by the stimulus."
   endparam
   heading
     caption = "The Organisms"
   endheading
   heading
     enabled = false
   endheading
   heading
     text = "You can select up to 16 different organisms each of which may \
             have multiple seed points resulting in as many individuals \
             as you like. Each organism may be coloured differently as well \
             as having different growth characteristics."
   endheading
   int param numplants
     caption = "Number of Organisms"
     enum = "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" \
            "15" "16"
     default = 0
   endparam
   heading
     caption = "First Organism"
   endheading
   float param size1
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
   endparam
   int param method1
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
   endparam
   float param palmin1
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
   endparam
   float param palmax1
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
   endparam
   color param lightcol1
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method1==2
   endparam
   float param nodirection1
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
   endparam
   MMF_SeedDLA param DLASeed1
     caption = "Organism 1 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
   endparam
   bool param Seed1Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
   endparam
   bool param Seed1Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numstimuli>0
   endparam
   bool param Seed1Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numstimuli>1
   endparam
   bool param Seed1Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numstimuli>2
   endparam
   bool param Seed1Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numstimuli>3
   endparam
   bool param Seed1Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numstimuli>4
   endparam
   bool param Seed1Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numstimuli>5
   endparam
   bool param Seed1Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numstimuli>6
   endparam
   bool param Seed1Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numstimuli>7
   endparam
   bool param Seed1Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numstimuli>8
   endparam
   bool param Seed1Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numstimuli>9
   endparam
   bool param Seed1Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numstimuli>10
   endparam
   bool param Seed1Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numstimuli>11
   endparam
   bool param Seed1Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numstimuli>12
   endparam
   bool param Seed1Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numstimuli>13
   endparam
   bool param Seed1Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numstimuli>14
   endparam
   float param detect1
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @addrandom
   endparam
   float param move1
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @addmovement
   endparam
   heading
     caption = "Second Organism"
     visible = @numplants>0
   endheading
   float param size2
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>0
   endparam
   int param method2
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>0
   endparam
   float param palmin2
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>0
   endparam
   float param palmax2
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>0
   endparam
   color param lightcol2
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method2==2 && @numplants>0
   endparam
   float param nodirection2
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>0
   endparam
   MMF_SeedDLA param DLASeed2
     caption = "Organism 2 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>0
   endparam
   bool param Seed2Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>0
   endparam
   bool param Seed2Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>0
   endparam
   bool param Seed2Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>1
   endparam
   bool param Seed2Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>2
   endparam
   bool param Seed2Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>3
   endparam
   bool param Seed2Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>4
   endparam
   bool param Seed2Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>5
   endparam
   bool param Seed2Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>6
   endparam
   bool param Seed2Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>7
   endparam
   bool param Seed2Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>8
   endparam
   bool param Seed2Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>9
   endparam
   bool param Seed2Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>10
   endparam
   bool param Seed2Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>11
   endparam
   bool param Seed2Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>12
   endparam
   bool param Seed2Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>13
   endparam
   bool param Seed2Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>0 && @numstimuli>14
   endparam
   float param detect2
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>0 && @addrandom
   endparam
   float param move2
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>0 && @addmovement
   endparam
   heading
     caption = "Third Organism"
     visible = @numplants>1
   endheading
   float param size3
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>1
   endparam
   int param method3
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>1
   endparam
   float param palmin3
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>1
   endparam
   float param palmax3
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>1
   endparam
   color param lightcol3
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method3==2 && @numplants>1
   endparam
   float param nodirection3
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>1
   endparam
   MMF_SeedDLA param DLASeed3
     caption = "Organism 3 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>1
   endparam
   bool param Seed3Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>1
   endparam
   bool param Seed3Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>0
   endparam
   bool param Seed3Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>1
   endparam
   bool param Seed3Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>2
   endparam
   bool param Seed3Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>3
   endparam
   bool param Seed3Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>4
   endparam
   bool param Seed3Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>5
   endparam
   bool param Seed3Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>6
   endparam
   bool param Seed3Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>7
   endparam
   bool param Seed3Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>8
   endparam
   bool param Seed3Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>9
   endparam
   bool param Seed3Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>10
   endparam
   bool param Seed3Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>11
   endparam
   bool param Seed3Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>12
   endparam
   bool param Seed3Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>13
   endparam
   bool param Seed3Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>1 && @numstimuli>14
   endparam
   float param detect3
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>1 && @addrandom
   endparam
   float param move3
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>1 && @addmovement
   endparam
   heading
     caption = "Fourth Organism"
     visible = @numplants>2
   endheading
   float param size4
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>2
   endparam
   int param method4
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>2
   endparam
   float param palmin4
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>2
   endparam
   float param palmax4
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>2
   endparam
   color param lightcol4
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method4==2 && @numplants>2
   endparam
   float param nodirection4
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>2
   endparam
   MMF_SeedDLA param DLASeed4
     caption = "Organism 4 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>2
   endparam
   bool param Seed4Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>2
   endparam
   bool param Seed4Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>0
   endparam
   bool param Seed4Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>1
   endparam
   bool param Seed4Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>2
   endparam
   bool param Seed4Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>3
   endparam
   bool param Seed4Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>4
   endparam
   bool param Seed4Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>5
   endparam
   bool param Seed4Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>6
   endparam
   bool param Seed4Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>7
   endparam
   bool param Seed4Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>8
   endparam
   bool param Seed4Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>9
   endparam
   bool param Seed4Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>10
   endparam
   bool param Seed4Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>11
   endparam
   bool param Seed4Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>12
   endparam
   bool param Seed4Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>13
   endparam
   bool param Seed4Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>2 && @numstimuli>14
   endparam
   float param detect4
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>2 && @addrandom
   endparam
   float param move4
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>2 && @addmovement
   endparam
   heading
     caption = "Fifth Organism"
     visible = @numplants>3
   endheading
   float param size5
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>3
   endparam
   int param method5
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>3
   endparam
   float param palmin5
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>3
   endparam
   float param palmax5
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>3
   endparam
   color param lightcol5
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method5==2 && @numplants>3
   endparam
   float param nodirection5
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>3
   endparam
   MMF_SeedDLA param DLASeed5
     caption = "Organism 5 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>3
   endparam
   bool param Seed5Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>3
   endparam
   bool param Seed5Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>0
   endparam
   bool param Seed5Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>1
   endparam
   bool param Seed5Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>2
   endparam
   bool param Seed5Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>3
   endparam
   bool param Seed5Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>4
   endparam
   bool param Seed5Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>5
   endparam
   bool param Seed5Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>6
   endparam
   bool param Seed5Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>7
   endparam
   bool param Seed5Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>8
   endparam
   bool param Seed5Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>9
   endparam
   bool param Seed5Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>10
   endparam
   bool param Seed5Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>11
   endparam
   bool param Seed5Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>12
   endparam
   bool param Seed5Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>13
   endparam
   bool param Seed5Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>3 && @numstimuli>14
   endparam
   float param detect5
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>3 && @addrandom
   endparam
   float param move5
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>3 && @addmovement
   endparam
   heading
     caption = "Sixth Organism"
     visible = @numplants>4
   endheading
   float param size6
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>4
   endparam
   int param method6
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>4
   endparam
   float param palmin6
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>4
   endparam
   float param palmax6
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>4
   endparam
   color param lightcol6
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method6==2 && @numplants>4
   endparam
   float param nodirection6
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>4
   endparam
   MMF_SeedDLA param DLASeed6
     caption = "Organism 6 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>4
   endparam
   bool param Seed6Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>4
   endparam
   bool param Seed6Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>0
   endparam
   bool param Seed6Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>1
   endparam
   bool param Seed6Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>2
   endparam
   bool param Seed6Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>3
   endparam
   bool param Seed6Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>4
   endparam
   bool param Seed6Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>5
   endparam
   bool param Seed6Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>6
   endparam
   bool param Seed6Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>7
   endparam
   bool param Seed6Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>8
   endparam
   bool param Seed6Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>9
   endparam
   bool param Seed6Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>10
   endparam
   bool param Seed6Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>11
   endparam
   bool param Seed6Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>12
   endparam
   bool param Seed6Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>13
   endparam
   bool param Seed6Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>4 && @numstimuli>14
   endparam
   float param detect6
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>4 && @addrandom
   endparam
   float param move6
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>4 && @addmovement
   endparam
   heading
     caption = "Seventh Organism"
     visible = @numplants>5
   endheading
   float param size7
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>5
   endparam
   int param method7
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>5
   endparam
   float param palmin7
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>5
   endparam
   float param palmax7
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>5
   endparam
   color param lightcol7
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method7==2 && @numplants>5
   endparam
   float param nodirection7
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>5
   endparam
   MMF_SeedDLA param DLASeed7
     caption = "Organism 7 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>5
   endparam
   bool param Seed7Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>5
   endparam
   bool param Seed7Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>0
   endparam
   bool param Seed7Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>1
   endparam
   bool param Seed7Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>2
   endparam
   bool param Seed7Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>3
   endparam
   bool param Seed7Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>4
   endparam
   bool param Seed7Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>5
   endparam
   bool param Seed7Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>6
   endparam
   bool param Seed7Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>7
   endparam
   bool param Seed7Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>8
   endparam
   bool param Seed7Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>9
   endparam
   bool param Seed7Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>10
   endparam
   bool param Seed7Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>11
   endparam
   bool param Seed7Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>12
   endparam
   bool param Seed7Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>13
   endparam
   bool param Seed7Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>5 && @numstimuli>14
   endparam
   float param detect7
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>5 && @addrandom
   endparam
   float param move7
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>5 && @addmovement
   endparam
   heading
     caption = "Eighth Organism"
     visible = @numplants>6
   endheading
   float param size8
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>6
   endparam
   int param method8
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>6
   endparam
   float param palmin8
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>6
   endparam
   float param palmax8
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>6
   endparam
   color param lightcol8
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method8==2 && @numplants>6
   endparam
   float param nodirection8
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>6
   endparam
   MMF_SeedDLA param DLASeed8
     caption = "Organism 8 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>6
   endparam
   bool param Seed8Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>6
   endparam
   bool param Seed8Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>0
   endparam
   bool param Seed8Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>1
   endparam
   bool param Seed8Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>2
   endparam
   bool param Seed8Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>3
   endparam
   bool param Seed8Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>4
   endparam
   bool param Seed8Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>5
   endparam
   bool param Seed8Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>6
   endparam
   bool param Seed8Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>7
   endparam
   bool param Seed8Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>8
   endparam
   bool param Seed8Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>9
   endparam
   bool param Seed8Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>10
   endparam
   bool param Seed8Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>11
   endparam
   bool param Seed8Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>12
   endparam
   bool param Seed8Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>13
   endparam
   bool param Seed8Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>6 && @numstimuli>14
   endparam
   float param detect8
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>6 && @addrandom
   endparam
   float param move8
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>6 && @addmovement
   endparam
   heading
     caption = "Ninth Organism"
     visible = @numplants>7
   endheading
   float param size9
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>7
   endparam
   int param method9
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>7
   endparam
   float param palmin9
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>7
   endparam
   float param palmax9
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>7
   endparam
   color param lightcol9
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method9==2 && @numplants>7
   endparam
   float param nodirection9
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>7
   endparam
   MMF_SeedDLA param DLASeed9
     caption = "Organism 9 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>7
   endparam
   bool param Seed9Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>7
   endparam
   bool param Seed9Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>0
   endparam
   bool param Seed9Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>1
   endparam
   bool param Seed9Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>2
   endparam
   bool param Seed9Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>3
   endparam
   bool param Seed9Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>4
   endparam
   bool param Seed9Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>5
   endparam
   bool param Seed9Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>6
   endparam
   bool param Seed9Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>7
   endparam
   bool param Seed9Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>8
   endparam
   bool param Seed9Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>9
   endparam
   bool param Seed9Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>10
   endparam
   bool param Seed9Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>11
   endparam
   bool param Seed9Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>12
   endparam
   bool param Seed9Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>13
   endparam
   bool param Seed9Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>7 && @numstimuli>14
   endparam
   float param detect9
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>7 && @addrandom
   endparam
   float param move9
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>7 && @addmovement
   endparam
   heading
     caption = "Tenth Organism"
     visible = @numplants>8
   endheading
   float param size10
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>8
   endparam
   int param method10
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>8
   endparam
   float param palmin10
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>8
   endparam
   float param palmax10
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>8
   endparam
   color param lightcol10
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method10==2 && @numplants>8
   endparam
   float param nodirection10
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>8
   endparam
   MMF_SeedDLA param DLASeed10
     caption = "Organism 10 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>8
   endparam
   bool param Seed10Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>8
   endparam
   bool param Seed10Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>0
   endparam
   bool param Seed10Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>1
   endparam
   bool param Seed10Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>2
   endparam
   bool param Seed10Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>3
   endparam
   bool param Seed10Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>4
   endparam
   bool param Seed10Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>5
   endparam
   bool param Seed10Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>6
   endparam
   bool param Seed10Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>7
   endparam
   bool param Seed10Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>8
   endparam
   bool param Seed10Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>9
   endparam
   bool param Seed10Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>10
   endparam
   bool param Seed10Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>11
   endparam
   bool param Seed10Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>12
   endparam
   bool param Seed10Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>13
   endparam
   bool param Seed10Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>8 && @numstimuli>14
   endparam
   float param detect10
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>8 && @addrandom
   endparam
   float param move10
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>8 && @addmovement
   endparam
   heading
     caption = "Eleventh Organism"
     visible = @numplants>9
   endheading
   float param size11
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>9
   endparam
   int param method11
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>9
   endparam
   float param palmin11
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>9
   endparam
   float param palmax11
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>9
   endparam
   color param lightcol11
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method11==2 && @numplants>9
   endparam
   float param nodirection11
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>9
   endparam
   MMF_SeedDLA param DLASeed11
     caption = "Organism 11 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>9
   endparam
   bool param Seed11Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>9
   endparam
   bool param Seed11Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>0
   endparam
   bool param Seed11Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>1
   endparam
   bool param Seed11Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>2
   endparam
   bool param Seed11Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>3
   endparam
   bool param Seed11Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>4
   endparam
   bool param Seed11Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>5
   endparam
   bool param Seed11Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>6
   endparam
   bool param Seed11Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>7
   endparam
   bool param Seed11Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>8
   endparam
   bool param Seed11Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>9
   endparam
   bool param Seed11Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>10
   endparam
   bool param Seed11Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>11
   endparam
   bool param Seed11Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>12
   endparam
   bool param Seed11Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>13
   endparam
   bool param Seed11Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>9 && @numstimuli>14
   endparam
   float param detect11
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>9 && @addrandom
   endparam
   float param move11
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>9 && @addmovement
   endparam
   heading
     caption = "Twelfth Organism"
     visible = @numplants>10
   endheading
   float param size12
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>10
   endparam
   int param method12
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>10
   endparam
   float param palmin12
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>10
   endparam
   float param palmax12
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>10
   endparam
   color param lightcol12
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method12==2 && @numplants>10
   endparam
   float param nodirection12
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>10
   endparam
   MMF_SeedDLA param DLASeed12
     caption = "Organism 12 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>10
   endparam
   bool param Seed12Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>10
   endparam
   bool param Seed12Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>0
   endparam
   bool param Seed12Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>1
   endparam
   bool param Seed12Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>2
   endparam
   bool param Seed12Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>3
   endparam
   bool param Seed12Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>4
   endparam
   bool param Seed12Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>5
   endparam
   bool param Seed12Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>6
   endparam
   bool param Seed12Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>7
   endparam
   bool param Seed12Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>8
   endparam
   bool param Seed12Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>9
   endparam
   bool param Seed12Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>10
   endparam
   bool param Seed12Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>11
   endparam
   bool param Seed12Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>12
   endparam
   bool param Seed12Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>13
   endparam
   bool param Seed12Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>10 && @numstimuli>14
   endparam
   float param detect12
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>10 && @addrandom
   endparam
   float param move12
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>10 && @addmovement
   endparam
   heading
     caption = "Thirteenth Organism"
     visible = @numplants>11
   endheading
   float param size13
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>11
   endparam
   int param method13
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>11
   endparam
   float param palmin13
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>11
   endparam
   float param palmax13
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>11
   endparam
   color param lightcol13
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method13==2 && @numplants>11
   endparam
   float param nodirection13
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>11
   endparam
   MMF_SeedDLA param DLASeed13
     caption = "Organism 13 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>11
   endparam
   bool param Seed13Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>11
   endparam
   bool param Seed13Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>0
   endparam
   bool param Seed13Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>1
   endparam
   bool param Seed13Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>2
   endparam
   bool param Seed13Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>3
   endparam
   bool param Seed13Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>4
   endparam
   bool param Seed13Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>5
   endparam
   bool param Seed13Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>6
   endparam
   bool param Seed13Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>7
   endparam
   bool param Seed13Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>8
   endparam
   bool param Seed13Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>9
   endparam
   bool param Seed13Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>10
   endparam
   bool param Seed13Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>11
   endparam
   bool param Seed13Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>12
   endparam
   bool param Seed13Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>13
   endparam
   bool param Seed13Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>11 && @numstimuli>14
   endparam
   float param detect13
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>11 && @addrandom
   endparam
   float param move13
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>11 && @addmovement
   endparam
   heading
     caption = "Fourteenth Organism"
     visible = @numplants>12
   endheading
   float param size14
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>12
   endparam
   int param method14
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>12
   endparam
   float param palmin14
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>12
   endparam
   float param palmax14
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>12
   endparam
   color param lightcol14
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method14==2 && @numplants>12
   endparam
   float param nodirection14
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>12
   endparam
   MMF_SeedDLA param DLASeed14
     caption = "Organism 14 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>12
   endparam
   bool param Seed14Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>12
   endparam
   bool param Seed14Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>0
   endparam
   bool param Seed14Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>1
   endparam
   bool param Seed14Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>2
   endparam
   bool param Seed14Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>3
   endparam
   bool param Seed14Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>4
   endparam
   bool param Seed14Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>5
   endparam
   bool param Seed14Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>6
   endparam
   bool param Seed14Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>7
   endparam
   bool param Seed14Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>8
   endparam
   bool param Seed14Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>9
   endparam
   bool param Seed14Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>10
   endparam
   bool param Seed14Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>11
   endparam
   bool param Seed14Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>12
   endparam
   bool param Seed14Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>13
   endparam
   bool param Seed14Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>12 && @numstimuli>14
   endparam
   float param detect14
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>12 && @addrandom
   endparam
   float param move14
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>12 && @addmovement
   endparam
   heading
     caption = "Fifteenth Organism"
     visible = @numplants>13
   endheading
   float param size15
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>13
   endparam
   int param method15
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>13
   endparam
   float param palmin15
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>13
   endparam
   float param palmax15
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>13
   endparam
   color param lightcol15
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method15==2 && @numplants>13
   endparam
   float param nodirection15
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>13
   endparam
   MMF_SeedDLA param DLASeed15
     caption = "Organism 15 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>13
   endparam
   bool param Seed15Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>13
   endparam
   bool param Seed15Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>0
   endparam
   bool param Seed15Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>1
   endparam
   bool param Seed15Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>2
   endparam
   bool param Seed15Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>3
   endparam
   bool param Seed15Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>4
   endparam
   bool param Seed15Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>5
   endparam
   bool param Seed15Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>6
   endparam
   bool param Seed15Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>7
   endparam
   bool param Seed15Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>8
   endparam
   bool param Seed15Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>9
   endparam
   bool param Seed15Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>10
   endparam
   bool param Seed15Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>11
   endparam
   bool param Seed15Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>12
   endparam
   bool param Seed15Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>13
   endparam
   bool param Seed15Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>13 && @numstimuli>14
   endparam
   float param detect15
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>13 && @addrandom
   endparam
   float param move15
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>13 && @addmovement
   endparam
   heading
     caption = "Sixteenth Organism"
     visible = @numplants>14
   endheading
   float param size16
     caption = "Maximum Size"
     default = 100.0
     min = 0.0
     max = 100.0
     hint = "The maximum size of this organism is this %age of the screen \
             pixels. When the number of growth pixels based on this %age \
             has occurred then growth of this organism stops."
     visible = @numplants>14
   endparam
   int param method16
     caption = "Colouring Method"
     enum = "Colour" "Slope" "Combined"
     default = 0
     hint = "You can choose to colour the fractal with just the default \
             colouring or using a 'slope' colouring or a combination of \
             the two if and only if 'DLA Inspired' is plugged in a direct \
             colouring. If plugged into a gradient colouring then the \
             'Combined' option is ignored and 'Colour' used instead."
     visible = @numplants>14
   endparam
   float param palmin16
     caption = "Min. Palette Index"
     default = 0.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the lower end of the palette \
             portion for the organism."
     visible = @numplants>14
   endparam
   float param palmax16
     caption = "Max. Palette Index"
     default = 399.0
     min = 0.0
     max = 399.0
     hint = "Specifies the gradient index of the upper end of the palette \
             portion for the organism."
     visible = @numplants>14
   endparam
   color param lightcol16
     caption = "Lighting Colour"
     default = RGB(1.0,1.0,1.0)
     hint = "The colour for the lighting in 'Combined' mode, ignored if using \
             gradient colouring."
     visible = @method16==2 && @numplants>14
   endparam
   float param nodirection16
     caption = "Directionless Growth"
     default = 0.0
     hint = "Here you can specify the number of points of directionless \
             growth of the organism per generation. Directionless growth \
             occurs randomly from any edge point on the organism and is \
             not affected by any stimulus. Note that you can use fractional \
             values, 0.5 means a 50% chance of one pixel of directionless \
             growth per generation, 1.25 means one pixel of directionless \
             growth and a 25% chance of a second. Normally you should use \
             zero or a positive number but if you use a negative value then \
             there will be so many pixels of directionless growth \
             of the organism only when there is no directed growth due to \
             an active stimulus."
     visible = @numplants>14
   endparam
   MMF_SeedDLA param DLASeed16
     caption = "Organism 16 Seeding"
     default = MMF_OnePointSeedDLA
     hint = "Sets the seeding method for the organism."
     visible = @numplants>14
   endparam
   bool param Seed16Stimulus1
     caption = "Reacts to Stimulus 1"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 1' i.e. it treats them as food or light."
     visible = @numplants>14
   endparam
   bool param Seed16Stimulus2
     caption = "Reacts to Stimulus 2"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 2' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>0
   endparam
   bool param Seed16Stimulus3
     caption = "Reacts to Stimulus 3"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 3' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>1
   endparam
   bool param Seed16Stimulus4
     caption = "Reacts to Stimulus 4"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 4' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>2
   endparam
   bool param Seed16Stimulus5
     caption = "Reacts to Stimulus 5"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 5' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>3
   endparam
   bool param Seed16Stimulus6
     caption = "Reacts to Stimulus 6"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 6' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>4
   endparam
   bool param Seed16Stimulus7
     caption = "Reacts to Stimulus 7"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 7' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>5
   endparam
   bool param Seed16Stimulus8
     caption = "Reacts to Stimulus 8"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 8' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>6
   endparam
   bool param Seed16Stimulus9
     caption = "Reacts to Stimulus 9"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 9' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>7
   endparam
   bool param Seed16Stimulus10
     caption = "Reacts to Stimulus 10"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 10' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>8
   endparam
   bool param Seed16Stimulus11
     caption = "Reacts to Stimulus 11"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 11' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>9
   endparam
   bool param Seed16Stimulus12
     caption = "Reacts to Stimulus 12"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 12' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>10
   endparam
   bool param Seed16Stimulus13
     caption = "Reacts to Stimulus 13"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 13' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>11
   endparam
   bool param Seed16Stimulus14
     caption = "Reacts to Stimulus 14"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 14' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>12
   endparam
   bool param Seed16Stimulus15
     caption = "Reacts to Stimulus 15"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 15' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>13
   endparam
   bool param Seed16Stimulus16
     caption = "Reacts to Stimulus 16"
     default = true
     hint = "When enabled the organism is attracted to points generated by \
             'Stimulus 16' i.e. it treats them as food or light."
     visible = @numplants>14 && @numstimuli>14
   endparam
   float param detect16
     caption = "Detection accuracy"
     default = 1.0
     min = 1.0
     hint = "This is the accuracy with which the organism detects stimuli. \
             An accuracy of 1 means it always detects the stimulus accurately, \
             if you use 2 then it estimates the distance to the stimulus at \
             somewhere between the correct value and twice the correct value. \
             A setting of 10 means the organism could estimate the distance at \
             being up to 10* further than it is."
     visible = @numplants>14 && @addrandom
   endparam
   float param move16
     caption = "Movement Detection"
     default = 1.0
     min = 0.0
     hint = "Use zero for no movement detection, otherwise the larger the \
             value specified the greater the effect of a moving stimulus. \
             Typically use values from say 1 to 10."
     visible = @numplants>14 && @addmovement
   endparam
 }
 


Constructor Summary
MMF_DLA()
           
MMF_DLA(Generic pparent)
           
 
Method Summary
 float DeadDist()
           
 boolean IsSolid()
          Test whether the sequence produced a solid-color value rather than an index.
 void Iterate(complex pz)
          Process the next value in the sequence
 void MoreGrowth(int x, int y)
           
 void NewGrowth(int k, int x, int y, int ix, int iy)
           
 void NewSeed(int x, int y)
           
 void PointGrowth()
           
 void RandomGrowth(int k)
           
 color Result(complex pz)
          Produce a resulting color index after a sequence is finished
 float ResultIndex(complex pz)
          Produce a resulting color index after a sequence is finished
 void SetDeadPoint(int x, int y, color c, float i)
           
 void SetStartPoint(int x, int y)
           
 
Methods inherited from class common:GradientColoring
Init, IsGradient
 
Methods inherited from class common:Coloring
GetPixel
 
Methods inherited from class common:Generic
GetParent
 
Methods inherited from class Object
 

Constructor Detail

MMF_DLA

public MMF_DLA(Generic pparent)
Parameters:
pparent - the parent, generally "this" from the parent, or zero

MMF_DLA

public MMF_DLA()
Method Detail

RandomGrowth

public void RandomGrowth(int k)
Parameters:
k - the number of the seed to grow

PointGrowth

public void PointGrowth()

DeadDist

public float DeadDist()

NewGrowth

public void NewGrowth(int k,
                      int x,
                      int y,
                      int ix,
                      int iy)
Parameters:
k - the index for the point number
x - pixel x coordinate
y - pixel y coordinate
ix - 64*64 box x index
iy - 64*64 box y index

MoreGrowth

public void MoreGrowth(int x,
                       int y)

NewSeed

public void NewSeed(int x,
                    int y)
Parameters:
x - the x pixel coordinate
y - the y pixel coordinate

SetDeadPoint

public void SetDeadPoint(int x,
                         int y,
                         color c,
                         float i)
Parameters:
x - the x pixel coordinate
y - the y pixel coordinate
c - the dead point colour
i - the dead point palette index

SetStartPoint

public void SetStartPoint(int x,
                          int y)
Parameters:
x - the x pixel coordinate
y - the y pixel coordinate

Iterate

public void Iterate(complex pz)
Description copied from class: GradientColoring
Process the next value in the sequence

As long as the sequence has not bailed out, this function will be continually called to produce sequence values. Note that such processing generally will not know in advance precisely how long the sequence is, and should be prepared to deal with sequences of arbitrary length.

Your coloring may determine at some point that a solid color should be used rather than an index value.

Overrides:
Iterate in class GradientColoring
Parameters:
pz - next value in the sequence; corresponds to #z in a coloring formula

Result

public color Result(complex pz)
Description copied from class: GradientColoring
Produce a resulting color index after a sequence is finished

This corresponds to the final: section in a coloring formula. Once it is called, no further calls to Iterate() should be made without calling Init() first.

Overrides:
Result in class GradientColoring
Returns:
the color (corresponding to #color in a coloring formula)

ResultIndex

public float ResultIndex(complex pz)
Description copied from class: GradientColoring
Produce a resulting color index after a sequence is finished

This corresponds to the final: section in a coloring formula. Once it is called, no further calls to Iterate() should be made without calling Init() first.

Overrides:
ResultIndex in class GradientColoring
Returns:
the gradient index (corresponding to #index in a coloring formula)

IsSolid

public boolean IsSolid()
Description copied from class: GradientColoring
Test whether the sequence produced a solid-color value rather than an index.

This test is usually fairly complex and should be done as part of Iterate() or Result(), with the result saved in m_Solid. This function can then be left as the base class implementation, which just returns the value of that flag.

Overrides:
IsSolid in class GradientColoring
Returns:
whether the sequence produced a solid-color value