]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/hook.qc
try predicting beam end
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / hook.qc
index 690d3249b1ff001731f4dcc1e1f12593569d9875..d15e34b44b25d029e1f345044deb0f842266dc05 100644 (file)
@@ -67,7 +67,7 @@ void Draw_GrapplingHook()
                vs = hook_shotorigin[s];
 
                if(self.sv_entnum == player_localentnum - 1)
-                       a = view_origin + view_forward * vs_x + view_right * vs_y + view_up * vs_z;
+                       a = view_origin + view_forward * vs_x + view_right * -vs_y + view_up * vs_z;
                else
                        a = self.HookStart;
                b = self.HookEnd;
@@ -115,18 +115,26 @@ void Draw_GrapplingHook()
                vs = electro_shotorigin[s];
 
                if(self.sv_entnum == player_localentnum - 1)
-                       a = view_origin + view_forward * vs_x + view_right * vs_y + view_up * vs_z;
+               {
+                       a = view_origin + view_forward * vs_x + view_right * -vs_y + view_up * vs_z;
+                       b = a + view_forward * MAX_SHOT_DISTANCE;
+               }
                else
+               {
                        a = self.LGBeamStart;
-               b = self.LGBeamEnd;
+                       b = self.LGBeamEnd;
+               }
 
                tex = "particles/lgbeam";
                rgb = '1 1 1';
 
                Draw_GrapplingHook_trace_callback_tex = tex;
                Draw_GrapplingHook_trace_callback_rnd = random();
-               WarpZone_TraceBox_ThroughZone(a, '0 0 0', '0 0 0', b, MOVE_NOMONSTERS, world, world, Draw_GrapplingHook_trace_callback);
+               WarpZone_TraceBox_ThroughZone(a, '0 0 0', '0 0 0', b, MOVE_NORMAL, world, world, Draw_GrapplingHook_trace_callback);
                Draw_GrapplingHook_trace_callback_tex = string_null;
+
+               // helps the sound
+               setorigin(self, a);
        }
 
        if(time < self.LGBeamKillTime && !self.LGBeamSilent)
@@ -194,3 +202,8 @@ void Net_GrapplingHook()
                        break;
        }
 }
+
+void Hook_Precache()
+{
+       precache_sound("weapons/lgbeam_fly.wav");
+}