fixed the d value to fix collision glitches using 0.3f

* Either way is fine, even if this turns out to make things better
  it can't solve all issues. Ultimately the d has to go and the current
  solution is beyond repair imo.
* backported comits are in:
    * https://github.com/minetest/minetest/pull/9365
    * https://github.com/minetest/minetest/pull/9327
* fixes:
    * https://github.com/minetest/minetest/issues/6886
      Unexpected collision when beginning a jump that pushes the player
    * https://github.com/minetest/minetest/issues/9143
      Huge increase in collision since 5.X
This commit is contained in:
Герхард PICCORO Lenz McKAY 2021-11-23 17:22:18 -04:00
parent 896eb23701
commit ee31b5db78

View File

@ -410,12 +410,13 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
Collision uncertainty radius Collision uncertainty radius
Make it a bit larger than the maximum distance of movement Make it a bit larger than the maximum distance of movement
*/ */
f32 d = pos_max_d * 1.1; //f32 d = pos_max_d * 1.1;
// A fairly large value in here makes moving smoother // A fairly large value in here makes moving smoother but more rare too
//f32 d = 0.15*BS; //f32 d = 0.15*BS;
f32 d = 0.3f; // Temporary fix, any nonzero d causes collision glitches, the more the greater it is.
// This should always apply, otherwise there are glitches // This should always apply, otherwise there are glitches
assert(d > pos_max_d); // invariant //assert(d > pos_max_d); // invariant
int loopcount = 0; int loopcount = 0;