diff options
author | Ton Roosendaal <ton@blender.org> | 2007-03-11 15:14:50 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2007-03-11 15:14:50 +0300 |
commit | d0d9899e7615d71e1cb1036d2a9c0a15fdb41f54 (patch) | |
tree | 032f65f732c2be6ec3113b59de34ca7caf68db88 /source/blender/blenkernel | |
parent | 64f7994454e5a097b7b04de770ffc62f44e25e92 (diff) |
Bugfix #6201
Shape key drivers were not copied correctly, when choosing the option
"ADD NEW Scene -> Full copy".
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_ipo.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/ipo.c | 14 |
2 files changed, 15 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_ipo.h b/source/blender/blenkernel/BKE_ipo.h index 7c8c0186397..2a6065eb4f1 100644 --- a/source/blender/blenkernel/BKE_ipo.h +++ b/source/blender/blenkernel/BKE_ipo.h @@ -60,6 +60,7 @@ void free_ipo(struct Ipo *ipo); void ipo_default_v2d_cur(int blocktype, struct rctf *cur); struct Ipo *add_ipo(char *name, int idcode); struct Ipo *copy_ipo(struct Ipo *ipo); +void ipo_idnew(struct Ipo *ipo); void make_local_obipo(struct Ipo *ipo); void make_local_matipo(struct Ipo *ipo); void make_local_keyipo(struct Ipo *ipo); diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index b84410b12e7..1757317b849 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -287,6 +287,20 @@ Ipo *copy_ipo(Ipo *ipo) return ipon; } +/* uses id->newid to match pointers with other copied data */ +void ipo_idnew(Ipo *ipo) +{ + if(ipo) { + IpoCurve *icu; + + for(icu= ipo->curve.first; icu; icu= icu->next) { + if(icu->driver) { + ID_NEW(icu->driver->ob); + } + } + } +} + void make_local_obipo(Ipo *ipo) { Object *ob; |