With such jumppads the push event happens only once (unlike conventional jumppads) so sv_gameplayfix_stepdown 2 immediate and unwanted speed change was preserved whereas with conventional jumppads the next push events override that speed change
{
targ.(jumppadsused[targ.jumppadcount % NUM_JUMPPADSUSED]) = this;
targ.jumppadcount = targ.jumppadcount + 1;
+ targ.jumppad_first_push = true;
}
if(IS_REAL_CLIENT(targ))
const int NUM_JUMPPADSUSED = 3;
.float jumppadcount;
.entity jumppadsused[NUM_JUMPPADSUSED];
+.bool jumppad_first_push;
#ifdef SVQC
void SUB_UseTargets(entity this, entity actor, entity trigger);
// up while already jumping (also known as the Quake2 double jump bug)
// LordHavoc: disabled this check so you can walk on monsters/players
//if (PRVM_serveredictfloat(ent, solid) == SOLID_BSP)
- if(GAMEPLAYFIX_STEPDOWN(this) == 2)
+ if(GAMEPLAYFIX_STEPDOWN(this) == 2 && !this.jumppad_first_push)
{
SET_ONGROUND(this);
this.groundentity = trace_ent;
}
.bool move_qcphysics;
-
+.bool jumppad_first_push;
void Player_Physics(entity this)
{
this.movetype = (this.move_qcphysics) ? MOVETYPE_QCPLAYER : this.move_movetype;
Movetype_Physics_NoMatchTicrate(this, CS(this).pm_frametime, true);
CS(this).pm_frametime = 0;
+
+ if (this.jumppad_first_push)
+ this.jumppad_first_push = false;
}
/*