From 567ee32f14304a462e59bde2de92b10861ad7c86 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Nov 2009 11:11:16 +0000 Subject: - fcurve modifiers.new()/remove()/active - renamed .add() to .new() for rna collection functions since they dont add an existing item. - remove 'name' as an argument from the new driver target function, better to keep the api minimal and let scripters use the data api for editing values after. - added some api functions to keep rna api from becoming a mess. --- source/blender/blenkernel/intern/fmodifier.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'source/blender/blenkernel/intern/fmodifier.c') diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index f70de4983e3..e9e12e29606 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -992,13 +992,13 @@ void copy_fmodifiers (ListBase *dst, ListBase *src) } /* Remove and free the given F-Modifier from the given stack */ -void remove_fmodifier (ListBase *modifiers, FModifier *fcm) +int remove_fmodifier (ListBase *modifiers, FModifier *fcm) { FModifierTypeInfo *fmi= fmodifier_get_typeinfo(fcm); /* sanity check */ if (fcm == NULL) - return; + return 0; /* free modifier's special data (stored inside fcm->data) */ if (fcm->data) { @@ -1010,12 +1010,24 @@ void remove_fmodifier (ListBase *modifiers, FModifier *fcm) } /* remove modifier from stack */ - if (modifiers) + if (modifiers) { BLI_freelinkN(modifiers, fcm); - else { + return 1; + } else { // XXX this case can probably be removed some day, as it shouldn't happen... printf("remove_fmodifier() - no modifier stack given \n"); MEM_freeN(fcm); + return 0; + } +} +int remove_fmodifier_index (ListBase *modifiers, int index) +{ + FModifier *fcm= BLI_findlink(modifiers, index); + if(fcm) { + return remove_fmodifier(modifiers, fcm); + } + else { + return 0; } } -- cgit v1.2.3