this.com_phys_gravity = '0 0 0';
} else if (ITEMS_STAT(this) & IT_USING_JETPACK) {
PM_jetpack(this, maxspeed_mod, dt);
- } else if (IS_ONGROUND(this)) {
+ } else if (IS_ONGROUND(this) && (!IS_ONSLICK(this) || !PHYS_SLICK_APPLYGRAVITY(this))) {
if (!WAS_ONGROUND(this)) {
emit(phys_land, this);
if (this.lastground < time - 0.3) {
// apply edge friction
const float f2 = vlen2(vec2(this.velocity));
if (f2 > 0) {
- trace_dphitq3surfaceflags = 0;
- tracebox(this.origin, this.mins, this.maxs, this.origin - '0 0 1', MOVE_NOMONSTERS, this);
// TODO: apply edge friction
// apply ground friction
- const int realfriction = (trace_dphitq3surfaceflags & Q3SURFACEFLAG_SLICK)
+ const int realfriction = (IS_ONSLICK(this))
? PHYS_FRICTION_SLICK(this)
: PHYS_FRICTION(this);