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:
parent
896eb23701
commit
ee31b5db78
@ -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;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user