+ u32 *cell;
+ int i,j,k,count;
+ // float count;
+ cell=(u32 *)(cell_p+x+y*(x_max-1)+z*(x_max-1)*(y_max-1));
+ count=p0;
+ for(i=-range;i<=range;i++)
+ {
+ for(j=-range;j<=range;j++)
+ {
+ for(k=-range;k<=range;k++)
+ {
+ if(!(i==0 && j==0 && k==0))
+ {
+ if(*(u32 *)(cell_p+((x+x_max+i)%x_max)+((y+j+y_max)%y_max)*(x_max-1)+((z+k+z_max)%z_max)*(x_max-1)*(y_max-1))&AMORPH) count+=(3*range*range-i*i-j*j-k*k);
+ }
+ }
+ }
+ }
+ // count+=faktor*1.0/(i*i+j*j+k*k);
+ if(*cell&AMORPH)
+ {
+ /* wrong probability! just test by now ...*/
+ if(rand_get(sum_range_rate)>count) make_cryst(cell);
+ } else
+ {
+ if(rand_get(sum_range_rate)<=count) make_amorph(cell);
+ }