[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26722] trunk/blender/source/blender/ blenkernel/intern/ipo.c: 2.49 to 2.5 Animation Conversion Bugfixes:

Joshua Leung aligorith at gmail.com
Mon Feb 8 22:23:17 CET 2010


Revision: 26722
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26722
Author:   aligorith
Date:     2010-02-08 22:23:17 +0100 (Mon, 08 Feb 2010)

Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/ipo.c

Modified: trunk/blender/source/blender/blenkernel/intern/ipo.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/ipo.c	2010-02-08 21:19:15 UTC (rev 26721)
+++ trunk/blender/source/blender/blenkernel/intern/ipo.c	2010-02-08 21:23:17 UTC (rev 26722)
@@ -865,12 +865,15 @@
 		
 		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 @@
 		}
 	}
 	
+	/* 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;





More information about the Bf-blender-cvs mailing list