]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
If sv_gameplayfix_unstickplayers is set to 2 (new default), only perform the unsticki...
authorMario <mario.mario@y7mail.com>
Sat, 11 Jul 2020 03:50:41 +0000 (13:50 +1000)
committerMario <mario.mario@y7mail.com>
Sat, 11 Jul 2020 03:50:41 +0000 (13:50 +1000)
qcsrc/common/physics/movetypes/movetypes.qc
qcsrc/common/physics/movetypes/walk.qc
qcsrc/common/stats.qh
xonotic-server.cfg

index 7894d14fd856bb1a8e09a4401fd88259ee940320..4d10c6f0bb200c50e8f684eda523ad848f6e0018 100644 (file)
@@ -644,17 +644,23 @@ void _Movetype_Physics_ClientFrame(entity this, float movedt)
                        this.angles = this.angles + movedt * this.avelocity;
                        break;
                case MOVETYPE_STEP:
+                       if (GAMEPLAYFIX_UNSTICKPLAYERS(this) == 2)
+                               _Movetype_CheckStuck(this);
                        _Movetype_Physics_Step(this, movedt);
                        break;
                case MOVETYPE_WALK:
                case MOVETYPE_FLY:
                case MOVETYPE_FLY_WORLDONLY:
+                       if (movedt > 0 && GAMEPLAYFIX_UNSTICKPLAYERS(this) == 2)
+                               _Movetype_CheckStuck(this);
                        _Movetype_Physics_Walk(this, movedt);
                        break;
                case MOVETYPE_TOSS:
                case MOVETYPE_BOUNCE:
                case MOVETYPE_BOUNCEMISSILE:
                case MOVETYPE_FLYMISSILE:
+                       if (GAMEPLAYFIX_UNSTICKPLAYERS(this) == 2)
+                               _Movetype_CheckStuck(this);
                        _Movetype_Physics_Toss(this, movedt);
                        break;
                case MOVETYPE_PHYSICS:
index e0d05d7c557c9ab112bb2e5c0d704a619d5a082c..cd33ebc826fc347efd83037ece2fcd20f2c94bd5 100644 (file)
@@ -5,7 +5,7 @@ void _Movetype_Physics_Walk(entity this, float dt)  // SV_WalkMove
        if (dt <= 0)
                return;
 
-       if (GAMEPLAYFIX_UNSTICKPLAYERS(this))
+       if (GAMEPLAYFIX_UNSTICKPLAYERS(this) == 1)
                _Movetype_CheckStuck(this);
 
        bool applygravity = (!_Movetype_CheckWater(this) && this.move_movetype == MOVETYPE_WALK && !(this.flags & FL_WATERJUMP));
index c77ca16be2a432043f0d8808fa1506b25b0d3a7d..9ecac9f7c0bdd0bf2ee59dad460c6beea9905fc0 100644 (file)
@@ -193,7 +193,7 @@ int autocvar_sv_gameplayfix_easierwaterjump = 1;
 int autocvar_sv_gameplayfix_stepdown = 2;
 float autocvar_sv_gameplayfix_stepdown_maxspeed = 0;
 int autocvar_sv_gameplayfix_stepmultipletimes = 1;
-int autocvar_sv_gameplayfix_unstickplayers = 1;
+int autocvar_sv_gameplayfix_unstickplayers = 2;
 int autocvar_sv_gameplayfix_fixedcheckwatertransition = 1;
 int autocvar_sv_gameplayfix_slidemoveprojectiles = 1;
 int autocvar_sv_gameplayfix_grenadebouncedownslopes = 1;
index 094f17b0068ff98552cd64226931b121e0ed01f3..ef011cffbc8784866086a3c37dcfef140fba4219 100644 (file)
@@ -399,6 +399,7 @@ sv_gameplayfix_delayprojectiles 0
 sv_gameplayfix_q2airaccelerate 1
 sv_gameplayfix_stepmultipletimes 1
 sv_gameplayfix_stepdown 2
+sv_gameplayfix_unstickplayers 2
 // only available in qc physics
 set sv_gameplayfix_stepdown_maxspeed 0 "maximum speed walking entities can be moving for stepping down to apply - requires sv_qcphysics 1"