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:
authorCampbell Barton <ideasman42@gmail.com>2008-04-28 00:43:25 +0400
committerCampbell Barton <ideasman42@gmail.com>2008-04-28 00:43:25 +0400
commit9101d5689fb71c97a3366fb3120083efc10fe8e1 (patch)
tree87d57f927d565d8f8b069bcde89071d9a9b422d2 /source/blender/blenkernel/intern/group.c
parent1da7742b8a59679cfd9d61bde94bc4ccfdbe2b7b (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.c25
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;
}