forked from bartvdbraak/blender
fix for a library linking problem where a proxy object linked into a blend would cause the proxy, driver's ID to be directly linked as well.
eg. character.blend -> anim.blend -> comp.blend ... Would link the character.blend directly into comp.blend because on driver ID's. In this case id_lib_extern doenst need to be called because the object its linked from is a library.
This commit is contained in:
parent
d0328d6702
commit
2cec60e2eb
@ -1469,11 +1469,17 @@ void object_copy_proxy_drivers(Object *ob, Object *target)
|
||||
/* all drivers */
|
||||
DRIVER_TARGETS_LOOPER(dvar)
|
||||
{
|
||||
if(dtar->id) {
|
||||
if ((Object *)dtar->id == target)
|
||||
dtar->id= (ID *)ob;
|
||||
else
|
||||
else {
|
||||
/* only on local objects because this causes indirect links a -> b -> c,blend to point directly to a.blend
|
||||
* when a.blend has a proxy thats linked into c.blend */
|
||||
if(ob->id.lib==NULL)
|
||||
id_lib_extern((ID *)dtar->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
DRIVER_TARGETS_LOOPER_END
|
||||
}
|
||||
}
|
||||
|
@ -205,8 +205,8 @@ typedef struct PreviewImage {
|
||||
#define LIB_EXTERN 1
|
||||
#define LIB_INDIRECT 2
|
||||
#define LIB_TEST 8
|
||||
#define LIB_TESTEXT 9
|
||||
#define LIB_TESTIND 10
|
||||
#define LIB_TESTEXT (LIB_TEST | LIB_EXTERN)
|
||||
#define LIB_TESTIND (LIB_TEST | LIB_INDIRECT)
|
||||
#define LIB_READ 16
|
||||
#define LIB_NEEDLINK 32
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user