]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/lib/prandom.qc
Use temp entities for casings instead of the delayed removal shared entity hack
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / prandom.qc
1 #include "prandom.qh"
2
3 #include "../warpzonelib/mathlib.qh"
4
5 // prandom - PREDICTABLE random number generator (not seeded yet)
6
7 #ifdef USE_PRANDOM
8 float prandom_seed;
9 float prandom()
10 {
11         float c;
12         c = crc16(false, strcat(ftos(prandom_seed), ftos(prandom_seed + M_PI)));
13         prandom_seed = c;
14
15 #ifdef USE_PRANDOM_DEBUG
16         dprint("RANDOM -> ", ftos(c), "\n");
17 #endif
18
19         return c / 65536; // in [0..1[
20 }
21
22 vector prandomvec()
23 {
24         vector v;
25
26         do
27         {
28                 v.x = prandom();
29                 v.y = prandom();
30                 v.z = prandom();
31         }
32         while(v * v > 1);
33
34         return v;
35 }
36
37 void psrandom(float seed)
38 {
39         prandom_seed = seed;
40 #ifdef USE_PRANDOM_DEBUG
41         dprint("SRANDOM ", ftos(seed), "\n");
42 #endif
43 }
44
45 #ifdef USE_PRANDOM_DEBUG
46 void prandom_debug()
47 {
48         dprint("Current random seed = ", ftos(prandom_seed), "\n");
49 }
50 #endif
51 #endif