[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32317] trunk/blender: Fix for [#24107] Hair/General particle glitch- Presets

Janne Karhu jhkarh at gmail.com
Tue Oct 5 11:32:36 CEST 2010


Revision: 32317
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32317
Author:   jhk
Date:     2010-10-05 11:32:35 +0200 (Tue, 05 Oct 2010)

Log Message:
-----------
Fix for [#24107] Hair/General particle glitch- Presets

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/properties_particle.py
    trunk/blender/source/blender/makesrna/intern/rna_particle.c

Modified: trunk/blender/release/scripts/ui/properties_particle.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_particle.py	2010-10-05 07:22:44 UTC (rev 32316)
+++ trunk/blender/release/scripts/ui/properties_particle.py	2010-10-05 09:32:35 UTC (rev 32317)
@@ -28,12 +28,10 @@
 
 def particle_panel_enabled(context, psys):
     phystype = psys.settings.physics_type
-    if phystype == 'NO' or phystype == 'KEYED':
+    if psys.settings.type in ('EMITTER', 'REACTOR') and phystype in ('NO', 'KEYED'):
         return True
-    if psys.settings.type in ('EMITTER', 'REACTOR') or (psys.settings.type == 'HAIR' and psys.use_hair_dynamics):
-        return (psys.point_cache.is_baked is False) and (not psys.is_edited) and (not context.particle_system_editable)
     else:
-        return True
+        return (psys.point_cache.is_baked is False) and (not psys.is_edited) and (not context.particle_system_editable)
 
 
 def particle_panel_poll(cls, context):

Modified: trunk/blender/source/blender/makesrna/intern/rna_particle.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_particle.c	2010-10-05 07:22:44 UTC (rev 32316)
+++ trunk/blender/source/blender/makesrna/intern/rna_particle.c	2010-10-05 09:32:35 UTC (rev 32317)
@@ -325,15 +325,21 @@
 static void rna_particle_settings_set(PointerRNA *ptr, PointerRNA value)
 {
 	ParticleSystem *psys= (ParticleSystem*)ptr->data;
+	int old_type = 0;
 
-	if(psys->part)
+
+	if(psys->part) {
+		old_type = psys->part->type;
 		psys->part->id.us--;
+	}
 
 	psys->part = (ParticleSettings *)value.data;
 
 	if(psys->part) {
 		psys->part->id.us++;
 		psys_check_boid_data(psys);
+		if(old_type != psys->part->type)
+			psys->recalc |= PSYS_RECALC_TYPE;
 	}
 }
 static void rna_Particle_abspathtime_update(Main *bmain, Scene *scene, PointerRNA *ptr)





More information about the Bf-blender-cvs mailing list