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