From 224af21c615569cdb265c381f75fa66fc4b1986c Mon Sep 17 00:00:00 2001 From: div0 Date: Thu, 20 Apr 2006 10:02:29 +0000 Subject: [PATCH] reduced grappling hook minimum length; pull can now be stopped using the crouch key git-svn-id: svn://svn.icculus.org/nexuiz/trunk@1304 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/default.cfg | 4 ++-- data/qcsrc/server/gamec/g_hook.c | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/data/default.cfg b/data/default.cfg index 69e03acbd..fe2ea8b34 100644 --- a/data/default.cfg +++ b/data/default.cfg @@ -187,8 +187,8 @@ set g_balance_grapplehook_speed_fly 1800 set g_balance_grapplehook_speed_pull 2000 set g_balance_grapplehook_force_rubber 2000 set g_balance_grapplehook_force_rubber_overstretch 1000 -set g_balance_grapplehook_length_min 100 -set g_balance_grapplehook_stretch 300 +set g_balance_grapplehook_length_min 50 +set g_balance_grapplehook_stretch 50 set g_balance_grapplehook_airfriction 0.2 set g_balance_grapplehook_health 130 diff --git a/data/qcsrc/server/gamec/g_hook.c b/data/qcsrc/server/gamec/g_hook.c index 12ca27188..a9a136b02 100644 --- a/data/qcsrc/server/gamec/g_hook.c +++ b/data/qcsrc/server/gamec/g_hook.c @@ -109,15 +109,21 @@ void GrapplingHookThink() if(cvar("g_grappling_hook_tarzan")) { + newlength = self.rope_length; + // first pull the rope... - newlength = self.rope_length - pullspeed * 0.1; - newlength = max(newlength, minlength); - if(newlength < dist - ropestretch) // overstretched? + if(!self.owner.button5) // crouch key = don't pull { - newlength = dist - ropestretch; - if(self.owner.velocity * dir < 0) // only if not already moving in hook direction - self.owner.velocity = self.owner.velocity + 0.1 * dir * rubberforce_overstretch; + newlength = max(newlength - pullspeed * 0.1, minlength); + + if(newlength < dist - ropestretch) // overstretched? + { + newlength = dist - ropestretch; + if(self.owner.velocity * dir < 0) // only if not already moving in hook direction + self.owner.velocity = self.owner.velocity + 0.1 * dir * rubberforce_overstretch; + } } + self.rope_length = newlength; // then pull the player -- 2.39.2