diff options
author | Peter Schlaile <peter@schlaile.de> | 2010-05-01 16:39:06 +0400 |
---|---|---|
committer | Peter Schlaile <peter@schlaile.de> | 2010-05-01 16:39:06 +0400 |
commit | 0b8704a50315521fc3c04e15a7c66af35d9e3226 (patch) | |
tree | 3f204aaf345a095613e478974cb7823efbaf1029 | |
parent | bff3ec4ccce520a636b8cf02f9d6af6f45e66eac (diff) |
Fixed version patching for unique sequencer names:
now iteration over all strips (including meta strips) works correctly.
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1edfaa8987c..be19f7bfc18 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6540,6 +6540,21 @@ static void do_version_old_trackto_to_constraints(Object *ob) ob->track = NULL; } +static void do_versions_seq_unique_name_all_strips( + Scene * sce, ListBase *seqbasep) +{ + Sequence * seq = seqbasep->first; + + while(seq) { + seqbase_unique_name_recursive(&sce->ed->seqbase, seq); + if (seq->seqbase.first) { + do_versions_seq_unique_name_all_strips( + sce, &seq->seqbase); + } + seq=seq->next; + } +} + static void do_versions(FileData *fd, Library *lib, Main *main) { /* WATCH IT!!!: pointers from libdata have not been converted */ @@ -10209,22 +10224,16 @@ static void do_versions(FileData *fd, Library *lib, Main *main) { Scene *sce= main->scene.first; while(sce) { - Sequence *seq; - if(sce->r.frame_step==0) sce->r.frame_step= 1; if (sce->r.mblur_samples==0) sce->r.mblur_samples = sce->r.osa; - if(sce->ed && sce->ed->seqbasep) - { - seq=sce->ed->seqbasep->first; - while(seq) { - seqbase_unique_name_recursive(&sce->ed->seqbase, seq); - seq=seq->next; - } + if (sce->ed && sce->ed->seqbase.first) { + do_versions_seq_unique_name_all_strips( + sce, &sce->ed->seqbase); } - + sce= sce->id.next; } } |