summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorPouleyKetchoupp <pouleyketchoup@gmail.com>2021-10-20 18:59:17 -0700
committerPouleyKetchoupp <pouleyketchoup@gmail.com>2021-10-21 08:56:12 -0700
commite6f7235ffb49e94a876756a9295b907ce7fc834a (patch)
treea9440fe98642e894b0f045ba4f42acc1ebc781b8 /modules
parentfad7034e8b8275ce89424185c6ccee4de6aebd7f (diff)
downloadredot-engine-e6f7235ffb49e94a876756a9295b907ce7fc834a.tar.gz
Fix SoftDynamicBody3D crash when setting disable mode
Proper logic for changing physics state when disabled and disabled mode is changed (it was unnecessarily making calls to re-initialize physics). Extra error handling in soft body implementations to avoid crashes with invalid mesh.
Diffstat (limited to 'modules')
-rw-r--r--modules/bullet/soft_body_bullet.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/modules/bullet/soft_body_bullet.cpp b/modules/bullet/soft_body_bullet.cpp
index 81b832fb42..3a2370ff31 100644
--- a/modules/bullet/soft_body_bullet.cpp
+++ b/modules/bullet/soft_body_bullet.cpp
@@ -116,6 +116,7 @@ void SoftBodyBullet::set_soft_mesh(RID p_mesh) {
}
Array arrays = RenderingServer::get_singleton()->mesh_surface_get_arrays(soft_mesh, 0);
+ ERR_FAIL_COND(arrays.is_empty());
bool success = set_trimesh_body_shape(arrays[RS::ARRAY_INDEX], arrays[RS::ARRAY_VERTEX]);
if (!success) {