]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/lib/angle.qc
Fix cl_rollkillspeed causing the view to flicker a lot when dead if v_deathtilt is...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / angle.qc
1 .vector origin;
2 .vector angles;
3
4 /*
5 * Return a angle within +/- 360.
6 */
7 float anglemods(float v)
8 {
9         v = v - 360 * floor(v / 360);
10
11         if(v >= 180)
12                 return v - 360;
13         else if(v <= -180)
14                 return v + 360;
15         else
16                 return v;
17 }
18
19 /*
20 * Return the short angle
21 */
22 float shortangle_f(float ang1, float ang2)
23 {
24         if(ang1 > ang2)
25         {
26                 if(ang1 > 180)
27                         return ang1 - 360;
28         }
29         else
30         {
31                 if(ang1 < -180)
32                         return ang1 + 360;
33         }
34
35         return ang1;
36 }
37
38 vector shortangle_v(vector ang1, vector ang2)
39 {
40         vector vtmp;
41
42         vtmp_x = shortangle_f(ang1_x,ang2_x);
43         vtmp_y = shortangle_f(ang1_y,ang2_y);
44         vtmp_z = shortangle_f(ang1_z,ang2_z);
45
46         return vtmp;
47 }
48
49 vector shortangle_vxy(vector ang1, vector ang2)
50 {
51         vector vtmp = '0 0 0';
52
53         vtmp_x = shortangle_f(ang1_x,ang2_x);
54         vtmp_y = shortangle_f(ang1_y,ang2_y);
55
56         return vtmp;
57 }
58
59 /*
60 * Return the angle between two enteties
61 */
62 vector angleofs(entity from, entity to)
63 {
64         vector v_res;
65
66         v_res = normalize(to.origin - from.origin);
67         v_res = vectoangles(v_res);
68         v_res = v_res - from.angles;
69
70         if (v_res_x < 0)        v_res_x += 360;
71         if (v_res_x > 180)      v_res_x -= 360;
72
73         if (v_res_y < 0)        v_res_y += 360;
74         if (v_res_y > 180)      v_res_y -= 360;
75
76         return v_res;
77 }
78
79 vector angleofs3(vector from, vector from_a, entity to)
80 {
81         vector v_res;
82
83         v_res = normalize(to.origin - from);
84         v_res = vectoangles(v_res);
85         v_res = v_res - from_a;
86
87         if (v_res_x < 0)        v_res_x += 360;
88         if (v_res_x > 180)      v_res_x -= 360;
89
90         if (v_res_y < 0)        v_res_y += 360;
91         if (v_res_y > 180)      v_res_y -= 360;
92
93         return v_res;
94 }