summaryrefslogtreecommitdiff
path: root/src/post/goom/goom_tools.c
blob: 6753da5448f2a2e634d17e11b556be9b1890725f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "goom_tools.h"
#include <stdlib.h>

GoomRandom *goom_random_init(int i) {
	GoomRandom *grandom = (GoomRandom*)malloc(sizeof(GoomRandom));
	grandom->pos = 1;
	goom_random_update_array(grandom, GOOM_NB_RAND);
	return grandom;
}

void goom_random_free(GoomRandom *grandom) {
	free(grandom);
}

void goom_random_update_array(GoomRandom *grandom, int numberOfValuesToChange) {
	while (numberOfValuesToChange > 0) {
#if RAND_MAX < 0x10000
		grandom->array[grandom->pos++] = ((rand()<<16)+rand()) / 127;
#else
		grandom->array[grandom->pos++] = rand() / 127;
#endif
		numberOfValuesToChange--;
	}
}