setsize(this, STAT(PL_MIN, this), STAT(PL_MAX, this));
}
}
-#ifdef CSQC
- if (IS_ONGROUND(this) || this.velocity.z <= 0 || PHYS_WATERJUMP_TIME(this) <= 0)
- PHYS_WATERJUMP_TIME(this) = 0;
-#endif
+ _Movetype_CheckWater(this); // needs to be run on the client, might as well use the latest on the server too!
}
void CPM_PM_Aircontrol(entity this, float dt, vector wishdir, float wishspeed)
this.velocity_z = 225;
this.flags |= FL_WATERJUMP;
SET_JUMP_HELD(this);
- #ifdef SVQC
- PHYS_TELEPORT_TIME(this) = time + 2; // safety net
- #elif defined(CSQC)
- PHYS_WATERJUMP_TIME(this) = 2;
- #endif
}
}
}
{
if (!PHYS_FROZEN(this))
return;
- if (PHYS_DODGING_FROZEN(this)
-#ifdef SVQC
- && IS_REAL_CLIENT(this)
-#endif
- )
+ if (PHYS_DODGING_FROZEN(this) && IS_CLIENT(this))
{
// bind movement to a very slow speed so dodging can use .movement for directional calculations
PHYS_CS(this).movement_x = bound(-2, PHYS_CS(this).movement.x, 2);
}
else
PHYS_CS(this).movement = '0 0 0';
-
- vector midpoint = ((this.absmin + this.absmax) * 0.5);
- if (pointcontents(midpoint) == CONTENT_WATER)
- {
- this.velocity = this.velocity * 0.5;
-
- if (pointcontents(midpoint + '0 0 16') == CONTENT_WATER)
- this.velocity_z = 200;
- }
}
void PM_check_hitground(entity this)