From 95daa0ef38d345040ddf1693a16db7e50eaef82a Mon Sep 17 00:00:00 2001 From: Mario Date: Sat, 16 Jun 2018 01:19:51 +1000 Subject: [PATCH] Use the regular method for getting the shot origin for the grappling hook, hook now shoots to the crosshair and is antilagged --- qcsrc/server/g_hook.qc | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/qcsrc/server/g_hook.qc b/qcsrc/server/g_hook.qc index b9e95c623..ef31dd4ec 100644 --- a/qcsrc/server/g_hook.qc +++ b/qcsrc/server/g_hook.qc @@ -363,19 +363,9 @@ void FireGrapplingHook(entity actor, .entity weaponentity) if(forbidWeaponUse(actor)) return; if(actor.vehicle) return; - makevectors(actor.v_angle); - - int s = W_GunAlign(actor.(weaponentity), STAT(GUNALIGN, actor)) - 1; - vector vs = hook_shotorigin[s]; - - // UGLY WORKAROUND: play this on CH_WEAPON_B so it can't cut off fire sounds - sound (actor, CH_WEAPON_B, SND_HOOK_FIRE, VOL_BASE, ATTEN_NORM); - vector org = actor.origin + actor.view_ofs + v_forward * vs.x + v_right * -vs.y + v_up * vs.z; - - tracebox(actor.origin + actor.view_ofs, '-3 -3 -3', '3 3 3', org, MOVE_NORMAL, actor); - org = trace_endpos; - - Send_Effect(EFFECT_HOOK_MUZZLEFLASH, org, '0 0 0', 1); + // TODO: offhand hook shoots from eye + W_SetupShot_ProjectileSize(actor, weaponentity, '-3 -3 -3', '3 3 3', true, 0, SND_HOOK_FIRE, CH_WEAPON_B, 0, WEP_HOOK.m_id); + Send_Effect(EFFECT_HOOK_MUZZLEFLASH, w_shotorg, '0 0 0', 1); entity missile = WarpZone_RefSys_SpawnSameRefSys(actor); missile.owner = missile.realowner = actor; @@ -392,11 +382,11 @@ void FireGrapplingHook(entity actor, .entity weaponentity) //setmodel (missile, MDL_HOOK); // precision set below setsize (missile, '-3 -3 -3', '3 3 3'); - setorigin(missile, org); + setorigin(missile, w_shotorg); missile.state = 0; // not latched onto anything - W_SetupProjVelocity_Explicit(missile, v_forward, v_up, autocvar_g_balance_grapplehook_speed_fly, 0, 0, 0, false); + W_SetupProjVelocity_Explicit(missile, w_shotdir, v_up, autocvar_g_balance_grapplehook_speed_fly, 0, 0, 0, false); missile.angles = vectoangles (missile.velocity); //missile.glow_color = 250; // 244, 250 -- 2.39.2