From 5521c44b72c30b76037e89b64195181451e5238d Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Wed, 22 Apr 2020 18:37:28 +0200 Subject: [PATCH] PMove: Added phy_wateraccelerate. Some mods have such a low phy_accelerate that clients can't escape a swimming pool. --- src/shared/pmove.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/shared/pmove.c b/src/shared/pmove.c index 6af11064..e97980ac 100644 --- a/src/shared/pmove.c +++ b/src/shared/pmove.c @@ -37,6 +37,7 @@ PMove_Init(void) { localcmd("serverinfo phy_stopspeed 75\n"); localcmd("serverinfo phy_gravity 800\n"); localcmd("serverinfo phy_airaccelerate 10\n"); + localcmd("serverinfo phy_wateraccelerate 8\n"); #ifdef VALVE localcmd("serverinfo phy_accelerate 8\n"); @@ -96,7 +97,6 @@ PMove_Categorize(void) if (!trace_startsolid) { if ((trace_fraction < 1) && (trace_plane_normal[2] > 0.7)) { self.flags |= FL_ONGROUND; - //self.flags &= ~FL_WATERJUMP; self.groundentity = trace_ent; if (self.groundentity) { @@ -107,6 +107,8 @@ PMove_Categorize(void) } } + self.flags &= ~FL_WATERJUMP; + /*if (self.basevelocity[2] > 0) self.flags &= ~FL_ONGROUND;*/ @@ -247,7 +249,7 @@ PMove_CheckWaterJump(void) traceline(vStart, vEnd, TRUE, self); if (trace_fraction == 1) { - //self.flags |= FL_WATERJUMP; + self.flags |= FL_WATERJUMP; self.velocity[2] = 350; self.flags &= ~FL_JUMPRELEASED; return; @@ -354,7 +356,7 @@ PMove_AccelWater(float move_time, float premove) return; } - flFriction = min(wish_speed - flFriction, serverkeyfloat("phy_accelerate") * wish_speed * move_time); + flFriction = min(wish_speed - flFriction, serverkeyfloat("phy_wateraccelerate") * wish_speed * move_time); self.velocity = self.velocity + normalize(vecWishVel) * flFriction; return; } @@ -450,8 +452,8 @@ PMove_AccelJump(float move_time, float premove) return; } - /*if (self.flags & FL_WATERJUMP) - return;*/ + if (self.flags & FL_WATERJUMP) + return; if (!(self.flags & FL_ONGROUND)) return; if (!(self.flags & FL_JUMPRELEASED))