]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/g_hook.qc
try fixing hook again
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / g_hook.qc
index 0302051f5af2447e5846216d0dbd41d597bb743c..3ce0b310dc5ada3aab5d2c7e4bffb650de062476 100644 (file)
@@ -140,7 +140,7 @@ void GrapplingHookThink()
        vs = hook_shotorigin[s];
 
        makevectors(self.owner.v_angle);
-       org = self.owner.origin + self.owner.view_ofs + v_forward * vs_x + v_right * vs_y + v_up * vs_z;
+       org = self.owner.origin + self.owner.view_ofs + v_forward * vs_x + v_right * -vs_y + v_up * vs_z;
        myorg = WarpZone_RefSys_TransformOrigin(self.owner, self, org);
 
        if(self.hook_length < 0)
@@ -248,12 +248,12 @@ void GrapplingHookThink()
        WriteByte(MSG_BROADCAST, TE_CSQC_BEAM);
        WriteByte(MSG_BROADCAST, num_for_edict(self.owner));
        WriteByte(MSG_BROADCAST, 0);
-       WriteCoord(MSG_BROADCAST, org_x);
-       WriteCoord(MSG_BROADCAST, org_y);
-       WriteCoord(MSG_BROADCAST, org_z);
        WriteCoord(MSG_BROADCAST, myorg_x);
        WriteCoord(MSG_BROADCAST, myorg_y);
        WriteCoord(MSG_BROADCAST, myorg_z);
+       WriteCoord(MSG_BROADCAST, org_x);
+       WriteCoord(MSG_BROADCAST, org_y);
+       WriteCoord(MSG_BROADCAST, org_z);
 }
 
 void GrapplingHookTouch (void)
@@ -316,7 +316,7 @@ void FireGrapplingHook (void)
 
        // UGLY WORKAROUND: play this on CHAN_WEAPON2 so it can't cut off fire sounds
        sound (self, CHAN_WEAPON2, "weapons/hook_fire.wav", VOL_BASE, ATTN_NORM);
-       org = self.origin + self.view_ofs + v_forward * vs_x + v_right * vs_y + v_up * vs_z;
+       org = self.origin + self.view_ofs + v_forward * vs_x + v_right * -vs_y + v_up * vs_z;
        pointparticles(particleeffectnum("grapple_muzzleflash"), org, '0 0 0', 1);
 
        missile = WarpZone_RefSys_SpawnSameRefSys(self);
@@ -461,18 +461,18 @@ void GrappleHookInit()
 {
        if(g_grappling_hook)
        {
-               hook_shotorigin[0] = '8 -8 -12';
-               hook_shotorigin[1] = '8 -8 -12';
-               hook_shotorigin[2] = '8 -8 -12';
-               hook_shotorigin[3] = '8 -8 -12';
+               hook_shotorigin[0] = '8 8 -12';
+               hook_shotorigin[1] = '8 8 -12';
+               hook_shotorigin[2] = '8 8 -12';
+               hook_shotorigin[3] = '8 8 -12';
        }
        else
        {
                weapon_action(WEP_HOOK, WR_PRECACHE);
-               hook_shotorigin[0] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_HOOK), TRUE, FALSE, 1);
-               hook_shotorigin[1] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_HOOK), TRUE, FALSE, 2);
-               hook_shotorigin[2] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_HOOK), TRUE, FALSE, 3);
-               hook_shotorigin[3] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_HOOK), TRUE, FALSE, 4);
+               hook_shotorigin[0] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_HOOK), FALSE, FALSE, 1);
+               hook_shotorigin[1] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_HOOK), FALSE, FALSE, 2);
+               hook_shotorigin[2] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_HOOK), FALSE, FALSE, 3);
+               hook_shotorigin[3] = shotorg_adjust_values(CL_Weapon_GetShotOrg(WEP_HOOK), FALSE, FALSE, 4);
        }
 }