]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/ecs/systems/physics.qc
Apply air movement physics on slick surfaces when sv_slick_applygravity is enabled
[xonotic/xonotic-data.pk3dir.git] / qcsrc / ecs / systems / physics.qc
index f73ade3d12ea58ea6f5652554909505c0a335f79..b9eca8ca8e971859d2385633cad132de62ee1fd7 100644 (file)
@@ -126,7 +126,7 @@ void sys_phys_update(entity this, float dt)
                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) {
@@ -360,11 +360,9 @@ void sys_phys_simulate(entity this, float dt)
                        // 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);