[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33764] trunk/blender/source/blender/ blenkernel/intern/particle_system.c: Fix for mistake in own commit

Janne Karhu jhkarh at gmail.com
Sat Dec 18 10:32:28 CET 2010


Revision: 33764
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33764
Author:   jhk
Date:     2010-12-18 10:32:27 +0100 (Sat, 18 Dec 2010)

Log Message:
-----------
Fix for mistake in own commit
* Was a bit too eager to clean up, so all particles got reset when changing a particle value when animation was playing.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/particle_system.c

Modified: trunk/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c	2010-12-18 09:28:20 UTC (rev 33763)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c	2010-12-18 09:32:27 UTC (rev 33764)
@@ -3752,7 +3752,7 @@
 	PTCacheID ptcacheid, *pid = NULL;
 	PARTICLE_P;
 	float disp, cache_cfra = cfra; /*, *vg_vel= 0, *vg_tan= 0, *vg_rot= 0, *vg_size= 0; */
-	int startframe = 0, endframe = 100;
+	int startframe = 0, endframe = 100, oldtotpart = 0;
 
 	/* cache shouldn't be used for hair or "continue physics" */
 	if(part->type != PART_HAIR && BKE_ptcache_get_continue_physics() == 0) {
@@ -3778,10 +3778,12 @@
 	}
 
 /* 1. emit particles and redo particles if needed */
+	oldtotpart = psys->totpart;
 	if(emit_particles(sim, pid, cfra) || psys->recalc & PSYS_RECALC_RESET) {
 		distribute_particles(sim, part->from);
 		initialize_all_particles(sim);
-		reset_all_particles(sim, 0.0, cfra, 0);
+		/* reset only just created particles (on startframe all particles are recreated) */
+		reset_all_particles(sim, 0.0, cfra, oldtotpart);
 
 		/* flag for possible explode modifiers after this system */
 		sim->psmd->flag |= eParticleSystemFlag_Pars;





More information about the Bf-blender-cvs mailing list