]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/movetypes/follow.qc
Merge branch 'master' into Mario/vaporizer_damage
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / movetypes / follow.qc
1 void _Movetype_Physics_Follow() // SV_Physics_Follow
2 {
3         entity e = self.move_aiment; // TODO: networking?
4
5         // LordHavoc: implemented rotation on MOVETYPE_FOLLOW objects
6         if(self.move_angles == self.move_punchangle)
7         {
8                 self.move_origin = e.move_origin + self.view_ofs;
9         }
10         else
11         {
12                 vector ang, v;
13                 ang_x = -self.move_punchangle_x;
14                 ang_y = self.move_punchangle_y;
15                 ang_z = self.move_punchangle_z;
16                 makevectors(ang);
17                 v_x = self.view_ofs_x * v_forward_x + self.view_ofs_y * v_right_x + self.view_ofs_z * v_up_x;
18                 v_y = self.view_ofs_x * v_forward_y + self.view_ofs_y * v_right_y + self.view_ofs_z * v_up_y;
19                 v_z = self.view_ofs_x * v_forward_z + self.view_ofs_y * v_right_z + self.view_ofs_z * v_up_z;
20                 ang_x = -e.move_angles_x;
21                 ang_y = e.move_angles_y;
22                 ang_z = e.move_angles_z;
23                 makevectors(ang);
24                 self.move_origin_x = v_x * v_forward_x + v_y * v_forward_y + v_z * v_forward_z + e.move_origin_x;
25                 self.move_origin_x = v_x * v_right_x + v_y * v_right_y + v_z * v_right_z + e.move_origin_y;
26                 self.move_origin_x = v_x * v_up_x + v_y * v_up_y + v_z * v_up_z + e.move_origin_z;
27         }
28
29         self.move_angles = e.move_angles + self.v_angle;
30         _Movetype_LinkEdict(false);
31 }