diff options
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenlib/intern/rand.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/source/blender/blenlib/intern/rand.c b/source/blender/blenlib/intern/rand.c index 743d910e418..c5b58e5a61b 100644 --- a/source/blender/blenlib/intern/rand.c +++ b/source/blender/blenlib/intern/rand.c @@ -175,20 +175,10 @@ float BLI_frand(void) float BLI_hash_frand(unsigned int seed) { - r_uint64 X; - - seed = seed + hash[seed & 255]; - X = (((r_uint64) seed) << 16) | LOWSEED; - seed = (int)(((MULTIPLIER * X + ADDEND) & MASK) >> 17); - - seed = seed + hash[seed & 255]; - X = (((r_uint64) seed) << 16) | LOWSEED; - X = (int)(((MULTIPLIER * X + ADDEND) & MASK) >> 17); - - seed = seed + hash[seed & 255]; - X = (((r_uint64) seed) << 16) | LOWSEED; + RNG rng; - return (int)(((MULTIPLIER * X + ADDEND) & MASK) >> 17); + BLI_rng_srandom(&rng, seed); + return BLI_rng_get_float(&rng); } void BLI_array_randomize(void *data, int elemSize, int numElems, unsigned int seed) |