diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-12-11 18:03:45 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-12-11 18:03:45 +0300 |
commit | 65758a9a20807b3ee6ae470f76b4fe3d0cb382f6 (patch) | |
tree | 7022ec918c5b62a31fbbe88143525515395272b7 /source/blender/src/editparticle.c | |
parent | d5edeb526cd980b9bccce5d174593c5306dada63 (diff) |
Bugfixes for:
- Disabled particle modifiers in particle mode.
- Particle col option without material.
Diffstat (limited to 'source/blender/src/editparticle.c')
-rw-r--r-- | source/blender/src/editparticle.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/source/blender/src/editparticle.c b/source/blender/src/editparticle.c index bb88e9624bf..3611efed995 100644 --- a/source/blender/src/editparticle.c +++ b/source/blender/src/editparticle.c @@ -155,9 +155,12 @@ void PE_change_act(void *ob_v, void *act_v) if(act>=0){ if((psys=BLI_findlink(&ob->particlesystem,act))) { psys->flag |= PSYS_CURRENT; - if(G.f & G_PARTICLEEDIT && !psys->edit) - PE_create_particle_edit(ob, psys); - PE_recalc_world_cos(ob, psys); + + if(psys->flag & PSYS_ENABLED) { + if(G.f & G_PARTICLEEDIT && !psys->edit) + PE_create_particle_edit(ob, psys); + PE_recalc_world_cos(ob, psys); + } } } } @@ -182,7 +185,7 @@ ParticleSystem *PE_get_current(Object *ob) psys->flag |= PSYS_CURRENT; } - if(psys && ob == OBACT && (G.f & G_PARTICLEEDIT)) + if(psys && (psys->flag & PSYS_ENABLED) && ob == OBACT && (G.f & G_PARTICLEEDIT)) if(psys->part->type == PART_HAIR && psys->flag & PSYS_EDITED) if(psys->edit == NULL) PE_create_particle_edit(ob, psys); @@ -1098,9 +1101,11 @@ void PE_set_particle_edit(void) if((G.f & G_PARTICLEEDIT)==0){ if(psys && psys->part->type == PART_HAIR && psys->flag & PSYS_EDITED) { - if(psys->edit==0) - PE_create_particle_edit(ob, psys); - PE_recalc_world_cos(ob, psys); + if(psys->flag & PSYS_ENABLED) { + if(psys->edit==0) + PE_create_particle_edit(ob, psys); + PE_recalc_world_cos(ob, psys); + } } G.f |= G_PARTICLEEDIT; @@ -2582,6 +2587,7 @@ int PE_brush_particles(void) if(pset->brushtype == PE_BRUSH_ADD && (pset->flag & PE_X_MIRROR)) PE_mirror_x(1); PE_recalc_world_cos(ob,psys); + psys_free_path_cache(psys); DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); } else |