1 //--// Some support routines //--//
\r
4 vector real_origin(entity ent)
\r
12 // v = v + e.origin;
\r
13 v = v + ((e.absmin + e.absmax) * 0.5);
\r
16 //v = v + ent.origin;
\r
17 v = v + ((ent.absmin + ent.absmax) * 0.5);
\r
22 // Plug this into wherever precashing is done.
\r
23 void g_turrets_common_precash()
\r
25 precache_model ("models/turrets/c512.md3");
\r
29 * Paint a v_color colord circle on target onwho
\r
30 * that fades away over f_time
\r
32 void paint_target(entity onwho, float f_size, vector v_color, float f_time)
\r
37 setmodel(e, "models/turrets/c512.md3"); // precision set above
\r
38 e.scale = (f_size/512);
\r
39 setsize(e, '0 0 0', '0 0 0');
\r
40 ///setattachment(e,onwho,"");
\r
41 setorigin(e,onwho.origin + '0 0 1');
\r
43 e.movetype = MOVETYPE_FLY;
\r
45 e.velocity = (v_color * 32); // + '0 0 1' * 64;
\r
47 e.colormod = v_color;
\r
48 SUB_SetFade(e,time,f_time);
\r
51 void paint_target2(entity onwho, float f_size, vector v_color, float f_time)
\r
56 setmodel(e, "models/turrets/c512.md3"); // precision set above
\r
57 e.scale = (f_size/512);
\r
58 setsize(e, '0 0 0', '0 0 0');
\r
60 setorigin(e,onwho.origin + '0 0 1');
\r
62 e.movetype = MOVETYPE_FLY;
\r
64 e.velocity = (v_color * 32); // + '0 0 1' * 64;
\r
65 e.avelocity_x = -128;
\r
67 e.colormod = v_color;
\r
68 SUB_SetFade(e,time,f_time);
\r
71 void paint_target3(vector where, float f_size, vector v_color, float f_time)
\r
75 setmodel(e, "models/turrets/c512.md3"); // precision set above
\r
76 e.scale = (f_size/512);
\r
77 setsize(e, '0 0 0', '0 0 0');
\r
78 setorigin(e,where+ '0 0 1');
\r
79 e.movetype = MOVETYPE_NONE;
\r
80 e.velocity = '0 0 0';
\r
81 e.colormod = v_color;
\r
82 SUB_SetFade(e,time,f_time);
\r
86 * Return the angle between two enteties
\r
88 vector angleofs(entity from, entity to)
\r
92 // makevectors(from.angles);
\r
93 v_res = normalize(to.origin - from.origin);
\r
94 v_res = vectoangles(v_res);
\r
95 v_res = v_res - from.angles;
\r
97 if (v_res_x < 0) v_res_x += 360;
\r
98 if (v_res_x > 180) v_res_x -= 360;
\r
100 if (v_res_y < 0) v_res_y += 360;
\r
101 if (v_res_y > 180) v_res_y -= 360;
\r
106 vector angleofs2(entity from, vector to)
\r
110 // makevectors(from.angles);
\r
111 v_res = normalize(to - from.origin);
\r
112 v_res = vectoangles(v_res);
\r
113 v_res = v_res - from.angles;
\r
115 if (v_res_x < 0) v_res_x += 360;
\r
116 if (v_res_x > 180) v_res_x -= 360;
\r
118 if (v_res_y < 0) v_res_y += 360;
\r
119 if (v_res_y > 180) v_res_y -= 360;
\r