Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2010-02-09 00:23:17 +0300
committerJoshua Leung <aligorith@gmail.com>2010-02-09 00:23:17 +0300
commit60015089364b4498b09054ee07112896fde5eeec (patch)
treeaba0f3eeea0919e1e92cfd31f1dc5eb4d86c7589 /source/blender/blenkernel/intern/ipo.c
parent051c6e999f2c9c4f99cdf716f578d8e09336f8b5 (diff)
2.49 to 2.5 Animation Conversion Bugfixes:
- World Animation was being ignored. Reported on BA - Particle/Sound/World animation handling were all missing break statements for some reason, which was corrupting path names.
Diffstat (limited to 'source/blender/blenkernel/intern/ipo.c')
-rw-r--r--source/blender/blenkernel/intern/ipo.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c
index d216cefe8f8..e5a8a3bd907 100644
--- a/source/blender/blenkernel/intern/ipo.c
+++ b/source/blender/blenkernel/intern/ipo.c
@@ -865,12 +865,15 @@ static char *get_rna_access (int blocktype, int adrcode, char actname[], char co
case ID_SO: /* sound */
propname= sound_adrcodes_to_paths(adrcode, &dummy_index);
+ break;
case ID_WO: /* world */
propname= world_adrcodes_to_paths(adrcode, &dummy_index);
+ break;
case ID_PA: /* particle */
propname= particle_adrcodes_to_paths(adrcode, &dummy_index);
+ break;
/* XXX problematic blocktypes */
case ID_CU: /* curve */
@@ -1800,18 +1803,36 @@ void do_versions_ipos_to_animato(Main *main)
}
}
+ /* worlds */
+ for (id= main->world.first; id; id= id->next) {
+ World *wo= (World *)id;
+
+ if (G.f & G_DEBUG) printf("\tconverting world %s \n", id->name+2);
+
+ /* we're only interested in the IPO */
+ if (wo->ipo) {
+ /* Add AnimData block */
+ adt= BKE_id_add_animdata(id);
+
+ /* Convert World data... */
+ ipo_to_animdata(id, wo->ipo, NULL, NULL);
+ wo->ipo->id.us--;
+ wo->ipo= NULL;
+ }
+ }
+
/* sequence strips */
for(scene = main->scene.first; scene; scene = scene->id.next) {
if(scene->ed && scene->ed->seqbasep) {
Sequence * seq;
-
+
for(seq = scene->ed->seqbasep->first;
seq; seq = seq->next) {
short adrcode = SEQ_FAC1;
-
+
if (G.f & G_DEBUG)
printf("\tconverting sequence strip %s \n", seq->name+2);
-
+
if (!seq->ipo || !seq->ipo->curve.first) {
seq->flag |=
SEQ_USE_EFFECT_DEFAULT_FADE;