1 //--// Some support routines //--//
\r
3 float shortangle_f(float ang1,float ang2)
\r
18 vector shortangle_v(vector ang1,vector ang2)
\r
21 vtmp_x = shortangle_f(ang1_x,ang2_x);
\r
22 vtmp_y = shortangle_f(ang1_y,ang2_y);
\r
23 vtmp_z = shortangle_f(ang1_z,ang2_z);
\r
30 vector real_origin(entity ent)
\r
38 // v = v + e.origin;
\r
39 v = v + ((e.absmin + e.absmax) * 0.5);
\r
42 //v = v + ent.origin;
\r
43 v = v + ((ent.absmin + ent.absmax) * 0.5);
\r
48 // Plug this into wherever precashing is done.
\r
49 void g_turrets_common_precash()
\r
51 precache_model ("models/turrets/c512.md3");
\r
55 * Paint a v_color colord circle on target onwho
\r
56 * that fades away over f_time
\r
58 void paint_target(entity onwho, float f_size, vector v_color, float f_time)
\r
63 setmodel(e, "models/turrets/c512.md3"); // precision set above
\r
64 e.scale = (f_size/512);
\r
65 //setsize(e, '0 0 0', '0 0 0');
\r
66 //setattachment(e,onwho,"");
\r
67 setorigin(e,onwho.origin + '0 0 1');
\r
69 e.movetype = MOVETYPE_FLY;
\r
71 e.velocity = (v_color * 32); // + '0 0 1' * 64;
\r
73 e.colormod = v_color;
\r
74 SUB_SetFade(e,time,f_time);
\r
77 void paint_target2(entity onwho, float f_size, vector v_color, float f_time)
\r
82 setmodel(e, "models/turrets/c512.md3"); // precision set above
\r
83 e.scale = (f_size/512);
\r
84 setsize(e, '0 0 0', '0 0 0');
\r
86 setorigin(e,onwho.origin + '0 0 1');
\r
88 e.movetype = MOVETYPE_FLY;
\r
90 e.velocity = (v_color * 32); // + '0 0 1' * 64;
\r
91 e.avelocity_x = -128;
\r
93 e.colormod = v_color;
\r
94 SUB_SetFade(e,time,f_time);
\r
97 void paint_target3(vector where, float f_size, vector v_color, float f_time)
\r
101 setmodel(e, "models/turrets/c512.md3"); // precision set above
\r
102 e.scale = (f_size/512);
\r
103 setsize(e, '0 0 0', '0 0 0');
\r
104 setorigin(e,where+ '0 0 1');
\r
105 e.movetype = MOVETYPE_NONE;
\r
106 e.velocity = '0 0 0';
\r
107 e.colormod = v_color;
\r
108 SUB_SetFade(e,time,f_time);
\r
112 * Return the angle between two enteties
\r
114 vector angleofs(entity from, entity to)
\r
118 // makevectors(from.angles);
\r
119 v_res = normalize(to.origin - from.origin);
\r
120 v_res = vectoangles(v_res);
\r
121 v_res = v_res - from.angles;
\r
123 if (v_res_x < 0) v_res_x += 360;
\r
124 if (v_res_x > 180) v_res_x -= 360;
\r
126 if (v_res_y < 0) v_res_y += 360;
\r
127 if (v_res_y > 180) v_res_y -= 360;
\r
132 vector angleofs2(entity from, vector to)
\r
136 // makevectors(from.angles);
\r
137 v_res = normalize(to - from.origin);
\r
138 v_res = vectoangles(v_res);
\r
139 v_res = v_res - from.angles;
\r
141 if (v_res_x < 0) v_res_x += 360;
\r
142 if (v_res_x > 180) v_res_x -= 360;
\r
144 if (v_res_y < 0) v_res_y += 360;
\r
145 if (v_res_y > 180) v_res_y -= 360;
\r