1 vector collision_force;
2 vector collision_angle;
9 vector vtmp, vmin, vmax, vrot, vforce;
13 // Extract the 8 bbox corners from mins/maxs for self
17 vtmp = vmax; vtmp_x = vmin_x; bb1[1] = vtmp;
18 vtmp = vmax; vtmp_y = vmin_y; bb1[2] = vtmp;
19 vtmp = vmin; vtmp_z = vmax_z; bb1[3] = vtmp;
21 vtmp = vmin; vtmp_x = vmax_x; bb1[5] = vtmp;
22 vtmp = vmin; vtmp_y = vmax_y; bb1[6] = vtmp;
23 vtmp = vmax; vtmp_z = vmin_z; bb1[7] = vtmp;
25 makevectors(self.angles + '-2 0 0' * self.angles_x);
27 // Pass1: Transform by rotation, ajust points by impact/s
28 for(i = 8; i >= 0; --i)
31 vtmp = self.origin + vtmp_x * v_forward - vtmp_y * v_right + vtmp_z * v_up;
32 traceline(self.origin, vtmp, MOVE_WORLDONLY, self);
33 te_lightning1(world,self.origin,vtmp);
34 if(trace_fraction != 1.0)
36 //bb2[i] = trace_endpos;
37 vforce += (trace_endpos - vtmp);
46 //self.angles += vectoangles(vrot) * frametime;
47 //self.angles -= (self.velocity - vectoangles(normalize(vforce))) * frametime;
49 vtmp = self.origin + self.velocity * frametime;
50 vrot = self.origin + vforce * frametime;
51 //self.angles += vectoangles(normalize(vtmp - vrot)) * frametime;
52 self.velocity += vforce * frametime;
57 // Extract the 8 bbox corners from mins/maxs for self
60 vtmp = self.absmax; vtmp_x = self.absmin_x; bb1[1] = vtmp;
61 vtmp = self.absmax; vtmp_y = self.absmin_y; bb1[2] = vtmp;
62 vtmp = self.absmin; vtmp_z = self.absmax_z; bb1[3] = vtmp;
64 vtmp = self.absmin; vtmp_x = self.absmax_x; bb1[5] = vtmp;
65 vtmp = self.absmin; vtmp_y = self.absmax_y; bb1[6] = vtmp;
66 vtmp = self.absmax; vtmp_z = self.absmin_z; bb1[7] = vtmp;
69 // Extract the 8 bbox corners from mins/maxs for other
70 bb1[0] = other.absmax;
71 vtmp = other.absmax; vtmp_x = other.absmin_x; bb2[1] = vtmp;
72 vtmp = other.absmax; vtmp_y = other.absmin_y; bb2[2] = vtmp;
73 vtmp = other.absmin; vtmp_z = other.absmax_z; bb2[3] = vtmp;
74 bb2[4] = other.absmin;
75 vtmp = other.absmin; vtmp_x = other.absmax_x; bb2[5] = vtmp;
76 vtmp = other.absmin; vtmp_y = other.absmax_y; bb2[6] = vtmp;
77 vtmp = other.absmax; vtmp_z = other.absmin_z; bb2[7] = vtmp;