diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-01-10 23:23:59 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-01-10 23:23:59 +0300 |
commit | 0185e248619b883aa818d136ee1b8bd4bfa9f8ef (patch) | |
tree | 86e0f20ae1be2f681735b2d21224b582f56610ba /source/blender/blenkernel/intern/anim_sys.c | |
parent | 6a15ac70b6558873dc15aa2172024477362fc33f (diff) |
Make linked animdata working again, copies NLA too, as well as ObData animdata where types match
Diffstat (limited to 'source/blender/blenkernel/intern/anim_sys.c')
-rw-r--r-- | source/blender/blenkernel/intern/anim_sys.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 8b86f6a5d1f..2a5a12cc513 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -203,6 +203,26 @@ AnimData *BKE_copy_animdata (AnimData *adt) return dadt; } +int BKE_copy_animdata_id(struct ID *id_to, struct ID *id_from) +{ + AnimData *adt; + + if((id_to && id_from) && (GS(id_to->name) != GS(id_from->name))) + return 0; + + BKE_free_animdata(id_to); + + adt = BKE_animdata_from_id(id_from); + if (adt) { + IdAdtTemplate *iat = (IdAdtTemplate *)id_to; + iat->adt= BKE_copy_animdata(adt); + } + + return 1; +} + + + /* Make Local -------------------------------------------- */ static void make_local_strips(ListBase *strips) |