[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26441] trunk/blender/source/blender/ blenkernel/intern/ipo.c: bugfix [#20894] Blender don't import the "eye" icon value from 2.49 files in the DopeSheet Editor

Campbell Barton ideasman42 at gmail.com
Sat Jan 30 18:49:32 CET 2010


Revision: 26441
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26441
Author:   campbellbarton
Date:     2010-01-30 18:49:32 +0100 (Sat, 30 Jan 2010)

Log Message:
-----------
bugfix [#20894] Blender don't import the "eye" icon value from 2.49 files in the DopeSheet Editor

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-01-30 17:44:57 UTC (rev 26440)
+++ trunk/blender/source/blender/blenkernel/intern/ipo.c	2010-01-30 17:49:32 UTC (rev 26441)
@@ -1069,7 +1069,7 @@
 /* Add F-Curve to the correct list 
  *	- grpname is needed to be used as group name where relevant, and is usually derived from actname
  */
-static void fcurve_add_to_list (ListBase *groups, ListBase *list, FCurve *fcu, char *grpname)
+static void fcurve_add_to_list (ListBase *groups, ListBase *list, FCurve *fcu, char *grpname, int muteipo)
 {
 	/* If we're adding to an action, we will have groups to write to... */
 	if (groups && grpname) {
@@ -1096,6 +1096,8 @@
 				agrp= MEM_callocN(sizeof(bActionGroup), "bActionGroup");
 				
 				agrp->flag = AGRP_SELECTED;
+				if(muteipo) agrp->flag |= AGRP_MUTED;
+
 				BLI_snprintf(agrp->name, 64, grpname);
 				
 				BLI_addtail(&tmp_act.groups, agrp);
@@ -1107,6 +1109,9 @@
 		/* WARNING: this func should only need to look at the stuff we initialised, if not, things may crash */
 		action_groups_add_channel(&tmp_act, agrp, fcu);
 		
+		if(agrp->flag & AGRP_MUTED) /* flush down */
+			fcu->flag |= FCURVE_MUTED;
+
 		/* set the output lists based on the ones in the temp action */
 		groups->first= tmp_act.groups.first;
 		groups->last= tmp_act.groups.last;
@@ -1124,7 +1129,7 @@
  *	actname: name of Action-Channel (if applicable) that IPO-Curve's IPO-block belonged to
  *	constname: name of Constraint-Channel (if applicable) that IPO-Curve's IPO-block belonged to
  */
-static void icu_to_fcurves (ListBase *groups, ListBase *list, IpoCurve *icu, char *actname, char *constname)
+static void icu_to_fcurves (ListBase *groups, ListBase *list, IpoCurve *icu, char *actname, char *constname, int muteipo)
 {
 	AdrBit2Path *abp;
 	FCurve *fcu;
@@ -1240,7 +1245,7 @@
 			}
 			
 			/* add new F-Curve to list */
-			fcurve_add_to_list(groups, list, fcurve, actname);
+			fcurve_add_to_list(groups, list, fcurve, actname, muteipo);
 		}
 	}
 	else {
@@ -1314,7 +1319,7 @@
 		}
 		
 		/* add new F-Curve to list */
-		fcurve_add_to_list(groups, list, fcu, actname);
+		fcurve_add_to_list(groups, list, fcu, actname, muteipo);
 	}
 }
 
@@ -1355,7 +1360,7 @@
 		if (icu->driver) {
 			/* Blender 2.4x allowed empty drivers, but we don't now, since they cause more trouble than they're worth */
 			if ((icu->driver->ob) || (icu->driver->type == IPO_DRIVER_TYPE_PYTHON)) {
-				icu_to_fcurves(NULL, drivers, icu, actname, constname);
+				icu_to_fcurves(NULL, drivers, icu, actname, constname, ipo->muteipo);
 			}
 			else {
 				MEM_freeN(icu->driver);
@@ -1363,7 +1368,7 @@
 			}
 		}
 		else
-			icu_to_fcurves(animgroups, anim, icu, actname, constname);
+			icu_to_fcurves(animgroups, anim, icu, actname, constname, ipo->muteipo);
 	}
 	
 	/* if this IPO block doesn't have any users after this one, free... */





More information about the Bf-blender-cvs mailing list