[Bf-blender-cvs] [5a51b93] fracture_modifier: fix: restore kinematic state for regular triggered rigidbodies always now, they very likely were kinematic before, user must disable triggered checkbox if this is not desired

Martin Felke noreply at git.blender.org
Fri Jan 2 15:15:23 CET 2015


Commit: 5a51b93aa59897bb36ce82d0d571d8ea39358793
Author: Martin Felke
Date:   Fri Jan 2 15:15:01 2015 +0100
Branches: fracture_modifier
https://developer.blender.org/rB5a51b93aa59897bb36ce82d0d571d8ea39358793

fix: restore kinematic state for regular triggered rigidbodies always now, they very likely were kinematic before, user must disable triggered checkbox if this is not desired

===================================================================

M	source/blender/blenkernel/intern/rigidbody.c

===================================================================

diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index 73dc91c..895d784 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -3221,10 +3221,10 @@ static void restoreKinematic(RigidBodyWorld *rbw)
 
 	/*restore kinematic state of shards if object is kinematic*/
 	for (go = rbw->group->gobject.first; go; go = go->next)	{
-		if ((go->ob) && (go->ob->rigidbody_object) && (go->ob->rigidbody_object->flag & RBO_FLAG_KINEMATIC))
+		if ((go->ob) && (go->ob->rigidbody_object) && (go->ob->rigidbody_object->flag & (RBO_FLAG_KINEMATIC | RBO_FLAG_USE_KINEMATIC_DEACTIVATION)))
 		{
 			FractureModifierData *fmd = (FractureModifierData*)modifiers_findByType(go->ob, eModifierType_Fracture);
-			if (fmd)
+			if (fmd && go->ob->rigidbody_object->flag & RBO_FLAG_KINEMATIC)
 			{
 				MeshIsland* mi;
 				for (mi = fmd->meshIslands.first; mi; mi = mi->next)
@@ -3236,8 +3236,9 @@ static void restoreKinematic(RigidBodyWorld *rbw)
 					}
 				}
 			}
-			else
-			{
+			else if (go->ob->rigidbody_object->flag & RBO_FLAG_USE_KINEMATIC_DEACTIVATION)
+			{	/* restore regular triggered objects back to kinematic at all, they very likely were kinematic before...
+				 * user has to disable triggered if behavior is not desired */
 				go->ob->rigidbody_object->flag |= RBO_FLAG_KINEMATIC;
 				go->ob->rigidbody_object->flag |= RBO_FLAG_NEEDS_VALIDATE;
 			}




More information about the Bf-blender-cvs mailing list