[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32964] trunk/blender/source/blender/ blenkernel/intern/particle_system.c: Fix for [#24580] and [#24600]

Janne Karhu jhkarh at gmail.com
Tue Nov 9 12:17:00 CET 2010


Revision: 32964
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32964
Author:   jhk
Date:     2010-11-09 12:17:00 +0100 (Tue, 09 Nov 2010)

Log Message:
-----------
Fix for [#24580] and [#24600]
* Particles didn't want to stay cached, even if there were no actual chages.
* Particle states weren't set properly for times before actual simulation start.

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-11-09 10:40:03 UTC (rev 32963)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c	2010-11-09 11:17:00 UTC (rev 32964)
@@ -136,9 +136,12 @@
 
 	if(ELEM(mode, PSYS_RESET_ALL, PSYS_RESET_DEPSGRAPH)) {
 		if(mode == PSYS_RESET_ALL || !(psys->flag & PSYS_EDITED)) {
-			psys_free_particles(psys);
+			/* don't free if not absolutely necessary */
+			if(psys->totpart != psys->part->totpart) {
+				psys_free_particles(psys);
+				psys->totpart= 0;
+			}
 
-			psys->totpart= 0;
 			psys->totkeyed= 0;
 			psys->flag &= ~(PSYS_HAIR_DONE|PSYS_KEYED);
 
@@ -3750,14 +3753,14 @@
 
 		/* simulation is only active during a specific period */
 		if(framenr < startframe) {
-			psys_reset(psys, PSYS_RESET_CACHE_MISS);
+			/* set correct particle state and reset particles */
+			cached_step(sim, cfra);
 			return;
 		}
 		else if(framenr > endframe) {
 			framenr= endframe;
 		}
-		
-		if(framenr == startframe) {
+		else if(framenr == startframe) {
 			BKE_ptcache_id_reset(sim->scene, use_cache, PTCACHE_RESET_OUTDATED);
 			BKE_ptcache_validate(cache, framenr);
 			cache->flag &= ~PTCACHE_REDO_NEEDED;





More information about the Bf-blender-cvs mailing list