LibOverride: fix bad ID relationships handling during resync.
Purely local IDs would not always be used as proper barriers when generating override hierarchy data, leading to imporperly trying to resync override IDs from other hierarchies, which would break/cause issues in case they would be duplicate overrides of the same linked data. Reported by Pablo from Sprite team, thanks.
This commit is contained in:
parent
2281db72b0
commit
de1eeaa3d2
Notes:
blender-bot
2023-02-14 11:24:03 +01:00
Referenced by issue #87239, Proportional editing of disconnected objects using Python API doesn't work
|
@ -437,6 +437,10 @@ static bool lib_override_hierarchy_dependencies_recursive_tag(LibOverrideGroupTa
|
|||
}
|
||||
/* We only consider IDs from the same library. */
|
||||
ID *to_id = *to_id_entry->id_pointer.to;
|
||||
if (!ID_IS_LINKED(to_id) && !ID_IS_OVERRIDE_LIBRARY(to_id)) {
|
||||
/* Pure local data is a barrier of dependency in override cases. */
|
||||
continue;
|
||||
}
|
||||
if (to_id != NULL && to_id->lib == id->lib) {
|
||||
LibOverrideGroupTagData sub_data = *data;
|
||||
sub_data.id_root = to_id;
|
||||
|
|
Loading…
Reference in New Issue