Revision: 16674
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16674
Author: aligorith
Date: 2008-09-22 15:01:51 +0200 (Mon, 22 Sep 2008)
Log Message:
-----------
Bugfix #14428: Constraints lost when object made single user
When there was a setup where an object was linked to more than one scene at
once, and in one of those scenes some of the objects in that scene were related
to it, the objects related to it were not correctly relinked to the new copy.
This was due to the 2nd check for selected objects
if( (base->flag & flag)==flag)
meaning that only selected objects would get corrected.
Modified Paths:
--------------
trunk/blender/source/blender/src/editobject.c
Modified: trunk/blender/source/blender/src/editobject.c
===================================================================
--- trunk/blender/source/blender/src/editobject.c 2008-09-22 12:31:27 UTC
(rev 16673)
+++ trunk/blender/source/blender/src/editobject.c 2008-09-22 13:01:51 UTC
(rev 16674)
@@ -4381,18 +4381,17 @@
clear_sca_new_poins(); /* sensor/contr/act */
- /* duplicate */
+ /* duplicate (must set newid) */
base= FIRSTBASE;
while(base) {
ob= base->object;
- if( (base->flag & flag)==flag) {
-
+ if( (base->flag & flag)==flag ) {
if(ob->id.lib==NULL && ob->id.us>1) {
-
+ /* base gets copy of object */
obn= copy_object(ob);
- ob->id.us--;
base->object= obn;
+ ob->id.us--;
}
}
base= base->next;
@@ -4406,20 +4405,17 @@
while(base) {
ob= base->object;
if(ob->id.lib==NULL) {
- if( (base->flag & flag)==flag) {
-
- relink_constraints(&base->object->constraints);
- if (base->object->pose){
- bPoseChannel *chan;
- for (chan =
base->object->pose->chanbase.first; chan; chan=chan->next){
-
relink_constraints(&chan->constraints);
- }
+ relink_constraints(&base->object->constraints);
+ if (base->object->pose){
+ bPoseChannel *chan;
+ for (chan = base->object->pose->chanbase.first;
chan; chan=chan->next){
+ relink_constraints(&chan->constraints);
}
- modifiers_foreachObjectLink(base->object,
single_object_users__forwardModifierLinks, NULL);
-
- ID_NEW(ob->parent);
- ID_NEW(ob->track);
}
+ modifiers_foreachObjectLink(base->object,
single_object_users__forwardModifierLinks, NULL);
+
+ ID_NEW(ob->parent);
+ ID_NEW(ob->track);
}
base= base->next;
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs