[Bf-blender-cvs] [d8b561d] fracture_modifier: fix: make sure a rigidbody exists on each mesh island after loading when trying to access it

Martin Felke noreply at git.blender.org
Sun Nov 29 20:00:35 CET 2015


Commit: d8b561de76d5d4498c79c68de2aec7a13a4bc2dd
Author: Martin Felke
Date:   Sun Nov 29 19:59:47 2015 +0100
Branches: fracture_modifier
https://developer.blender.org/rBd8b561de76d5d4498c79c68de2aec7a13a4bc2dd

fix: make sure a rigidbody exists on each mesh island after loading when trying to access it

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

M	source/blender/blenloader/intern/readfile.c

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

diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 680bc91..108a905 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5007,10 +5007,15 @@ static void read_meshIsland(FileData *fd, MeshIsland **address)
 	mi->vertno = newdataadr(fd, mi->vertno);
 
 	mi->rigidbody = newdataadr(fd, mi->rigidbody);
-	mi->rigidbody->physics_object = newdataadr(fd, mi->rigidbody->physics_object);
-	mi->rigidbody->physics_shape = newdataadr(fd, mi->rigidbody->physics_shape);
-	mi->rigidbody->flag |= RBO_FLAG_NEEDS_VALIDATE;
-	mi->rigidbody->flag |= RBO_FLAG_NEEDS_RESHAPE;
+	if (mi->rigidbody)
+	{
+		/*should not happen that a mesh island has no rigidbody... */
+		/*maybe the modifier was inactive while saving ?*/
+		mi->rigidbody->physics_object = newdataadr(fd, mi->rigidbody->physics_object);
+		mi->rigidbody->physics_shape = newdataadr(fd, mi->rigidbody->physics_shape);
+		mi->rigidbody->flag |= RBO_FLAG_NEEDS_VALIDATE;
+		mi->rigidbody->flag |= RBO_FLAG_NEEDS_RESHAPE;
+	}
 
 	mi->neighbor_ids = newdataadr(fd, mi->neighbor_ids );
 	mi->bb = newdataadr(fd, mi->bb);




More information about the Bf-blender-cvs mailing list