[Bf-blender-cvs] [f68da08a054] fracture_modifier: fix for initial kinematic state after triggering and jumping back to startframe
Martin Felke
noreply at git.blender.org
Sun Aug 13 01:01:07 CEST 2017
Commit: f68da08a054bb5b115337f6b88fc9938bfb869d4
Author: Martin Felke
Date: Sun Aug 13 01:00:45 2017 +0200
Branches: fracture_modifier
https://developer.blender.org/rBf68da08a054bb5b115337f6b88fc9938bfb869d4
fix for initial kinematic state after triggering and jumping back to startframe
===================================================================
M source/blender/blenkernel/intern/rigidbody.c
===================================================================
diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index 72d544fafbd..b139b84d5be 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -5204,11 +5204,14 @@ static bool 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) ||
- (go->ob->rigidbody_object->flag & RBO_FLAG_USE_KINEMATIC_DEACTIVATION)))))
- {
+ bool kinematic = false, triggered = false;
+
+ if ((go->ob) && (go->ob->rigidbody_object)) {
+ kinematic = go->ob->rigidbody_object->flag & RBO_FLAG_KINEMATIC;
+ triggered = go->ob->rigidbody_object->flag & RBO_FLAG_USE_KINEMATIC_DEACTIVATION;
+
FractureModifierData *fmd = (FractureModifierData*)modifiers_findByType(go->ob, eModifierType_Fracture);
- if (fmd)
+ if (fmd && kinematic && triggered)
{
MeshIsland* mi;
for (mi = fmd->meshIslands.first; mi; mi = mi->next)
@@ -5222,7 +5225,7 @@ static bool restoreKinematic(RigidBodyWorld *rbw)
}
}
}
- else if (!fmd)
+ else if (!fmd && triggered)
{ /* 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_REBUILD;
More information about the Bf-blender-cvs
mailing list