From 33edf29fd042c2b66d10970d1b0ebc277b9cad68 Mon Sep 17 00:00:00 2001 From: n00b Date: Fri, 20 Dec 2024 13:21:01 -0500 Subject: [PATCH] Clears constraints in ClearScene() --- rcbasic_runtime/main.cpp | 2 +- rcbasic_runtime/rc_scene.h | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/rcbasic_runtime/main.cpp b/rcbasic_runtime/main.cpp index 540d58a..13d9a48 100755 --- a/rcbasic_runtime/main.cpp +++ b/rcbasic_runtime/main.cpp @@ -4453,7 +4453,7 @@ int main(int argc, char * argv[]) } else { - rc_intern_dirChange("/home/n00b/projects/bu/constraint_demo"); + rc_intern_dirChange("/home/n00b/Programs/RCBasic_v400_Linux64/examples/Constraint/"); } #endif //--------------- diff --git a/rcbasic_runtime/rc_scene.h b/rcbasic_runtime/rc_scene.h index 809cea6..54bab5a 100644 --- a/rcbasic_runtime/rc_scene.h +++ b/rcbasic_runtime/rc_scene.h @@ -56,6 +56,16 @@ void rc_clearScene() { if(SceneManager) { + for(int i = 0; i < rc_physics3D.constraints.size(); i++) + { + if(rc_physics3D.constraints[i].constraint) + { + rc_physics3D.world->getPointer()->removeConstraint(rc_physics3D.constraints[i].constraint); + rc_physics3D.constraints[i].constraint = NULL; + rc_physics3D.constraints[i].type = 0; + } + } + for(int i = 0; i < rc_actor.size(); i++) { if(rc_actor[i].mesh_node)