X-Git-Url: https://hackdaworld.org/gitweb/?p=physik%2Fmorpheus.git;a=blobdiff_plain;f=random.c;fp=random.c;h=51f6774b70503b853642dac80b979698461e49ad;hp=51b310b0fa1ff175bbca64095fb8c8d9b88297e6;hb=4dc55f36080bc8cc78c07efe25bf3f222c3d0a9a;hpb=016196a3e69f62989ba22ae8b30365d754bd9212 diff --git a/random.c b/random.c index 51b310b..51f6774 100644 --- a/random.c +++ b/random.c @@ -10,7 +10,7 @@ #include "defines.h" /* global and extern variables */ -extern u32 sum_z_cells; +extern u32 gr; extern int random_fd; /* return random integer between 0 - max-1 */ @@ -27,11 +27,12 @@ u32 rand_get(u32 max) } /* get z value (linear growth of probability with depths) */ -u32 rand_get_lgp(int slope_nel,int start_nel) +u32 rand_get_lgp(int slope_nel,int start_nel,u32 z_max) { int z; - u32 i; - z=rand_get(sum_z_cells)+1; /* +1 as rand_get returns values 0...max-1 */ + u32 i,weighted_sum_z; + weighted_sum_z=z_max*start_nel+slope_nel*gr; + z=rand_get(weighted_sum_z)+1; /* +1 as rand_get returns values 0...max-1 */ for(i=1;;i++) { z-=(start_nel+i*slope_nel); if(z<=0) break;