]> icculus.org git repositories - divverent/nexuiz.git/blob - data/qcsrc/client/prandom.qc
try working around fteqcc -r3178 bug
[divverent/nexuiz.git] / data / qcsrc / client / prandom.qc
1 // prandom - PREDICTABLE random number generator (not seeded yet)
2
3 #ifdef USE_PRANDOM
4 float prandom_seed;
5 float prandom()
6 {
7         float c;
8         string s1, s2;
9         s1 = ftos(prandom_seed);
10         s2 = ftos(prandom_seed + 3.1415926535);
11         c = crc16(FALSE, strcat(s1, s2)); // fteqcc sucks
12         prandom_seed = c;
13
14 #ifdef USE_PRANDOM_DEBUG
15         print("RANDOM -> ", ftos(c), "\n");
16 #endif
17
18         return c / 65536; // in [0..1[
19 }
20
21 vector prandomvec()
22 {
23         vector v;
24
25         do
26         {
27                 v_x = prandom();
28                 v_y = prandom();
29                 v_z = prandom();
30         }
31         while(v * v > 1);
32
33         return v;
34 }
35
36 void psrandom(float seed)
37 {
38         prandom_seed = seed;
39 #ifdef USE_PRANDOM_DEBUG
40         print("SRANDOM ", ftos(seed), "\n");
41 #endif
42 }
43
44 #ifdef USE_PRANDOM_DEBUG
45 void prandom_debug()
46 {
47         print("Current random seed = ", ftos(prandom_seed), "\n");
48 }
49 #endif
50 #endif