From f912bc172ddf9ef64cba3b25c8d8f9cb75991dd8 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sat, 20 Jun 2026 20:37:05 -0500 Subject: [PATCH] avoid divide by zero when counteracting bouyancy bounce for players reported by sir_skurpsalot: https://discord.com/channels/358091480004558848/783127087820439582/1518054290524995644 --- Engine/source/T3D/player.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Engine/source/T3D/player.cpp b/Engine/source/T3D/player.cpp index ace5a4406..03d651177 100644 --- a/Engine/source/T3D/player.cpp +++ b/Engine/source/T3D/player.cpp @@ -2864,7 +2864,10 @@ void Player::updateMove(const Move* move) speed_bias = speed_bias + (speed_bias_goal - speed_bias)*0.1f; moveSpeed *= speed_bias; // Acceleration due to gravity - VectorF acc(0.0f, 0.0f, mNetGravity/(1.0 - mBuoyancy) * TickSec); + F32 invBuoyancy = (1.0 - mBuoyancy); + if (mFabs(invBuoyancy) < POINT_EPSILON) + invBuoyancy = POINT_EPSILON; + VectorF acc(0.0f, 0.0f, mNetGravity / invBuoyancy * TickSec); if (getParent() !=NULL) acc = VectorF::Zero;