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)