diff options
author | Campbell Barton <ideasman42@gmail.com> | 2008-04-28 00:43:25 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2008-04-28 00:43:25 +0400 |
commit | 9101d5689fb71c97a3366fb3120083efc10fe8e1 (patch) | |
tree | 87d57f927d565d8f8b069bcde89071d9a9b422d2 /source/blender/blenkernel/intern/group.c | |
parent | 1da7742b8a59679cfd9d61bde94bc4ccfdbe2b7b (diff) |
* Group unlinking wasnt removing groups from particle systems, or render layers light overrid.
* BPath sequencer strip looper was only operating on the active scene, now look through all scenes.
* The active sequence strip wasnt being reset when scenes switched, so you could see the previous scenes strip when switching to a new scene.
Diffstat (limited to 'source/blender/blenkernel/intern/group.c')
-rw-r--r-- | source/blender/blenkernel/intern/group.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/group.c b/source/blender/blenkernel/intern/group.c index 4a1468f82c5..2ffe8590b59 100644 --- a/source/blender/blenkernel/intern/group.c +++ b/source/blender/blenkernel/intern/group.c @@ -41,6 +41,7 @@ #include "DNA_object_types.h" #include "DNA_nla_types.h" #include "DNA_scene_types.h" +#include "DNA_particle_types.h" #include "BLI_blenlib.h" @@ -77,11 +78,25 @@ void unlink_group(Group *group) { Material *ma; Object *ob; + Scene *sce; + SceneRenderLayer *srl; + ParticleSystem *psys; for(ma= G.main->mat.first; ma; ma= ma->id.next) { if(ma->group==group) ma->group= NULL; } + for(ma= G.main->mat.first; ma; ma= ma->id.next) { + if(ma->group==group) + ma->group= NULL; + } + for (sce= G.main->scene.first; sce; sce= sce->id.next) { + for(srl= sce->r.layers.first; srl; srl= srl->next) { + if (srl->light_override==group) + srl->light_override= NULL; + } + } + for(ob= G.main->object.first; ob; ob= ob->id.next) { bActionStrip *strip; @@ -94,9 +109,13 @@ void unlink_group(Group *group) strip->object= NULL; } } - /* TODO - psys groups */ - /* TODO - lamp groups */ - /* TODO - render groups */ + + for(psys=ob->particlesystem.first; psys; psys=psys->next){ + if(psys->part->dup_group==group) + psys->part->dup_group= NULL; + if(psys->part->eff_group==group) + psys->part->eff_group= NULL; + } } group->id.us= 0; } |