Fix for [#27579] Particles Cache Problem
authorJanne Karhu <jhkarh@gmail.com>
Tue, 5 Jul 2011 02:18:55 +0000 (02:18 +0000)
committerJanne Karhu <jhkarh@gmail.com>
Tue, 5 Jul 2011 02:18:55 +0000 (02:18 +0000)
* Horrors from the ancient world of deprecated code: object animation offset can't really work correctly with particles unless point cache takes full control of particle system timing.
* Disabled the non-working offset control from effecting particles so that for now particles will work consistently and the offset is only applied to the object.

source/blender/blenkernel/intern/pointcache.c

index 64893bb0b5bbdc983bc1ad9ab38b3e4af8e51ecf..6b92c6e954037118694ce7414d3aa9cc7db31641 100644 (file)
@@ -2124,7 +2124,8 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra
 {
        Object *ob;
        PointCache *cache;
-       float offset, time, nexttime;
+       /* float offset; unused for now */
+       float time, nexttime;
 
        /* TODO: this has to be sorter out once bsystem_time gets redone, */
        /*       now caches can handle interpolating etc. too - jahka */
@@ -2152,13 +2153,18 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra
                *startframe= cache->startframe;
                *endframe= cache->endframe;
 
-               // XXX ipoflag is depreceated - old animation system stuff
-               if (/*(ob->ipoflag & OB_OFFS_PARENT) &&*/ (ob->partype & PARSLOW)==0) {
+               /* TODO: time handling with object offsets and simulated vs. cached
+                * particles isn't particularly easy, so for now what you see is what
+                * you get. In the future point cache could handle the whole particle
+                * system timing. */
+#if 0
+               if ((ob->partype & PARSLOW)==0) {
                        offset= give_timeoffset(ob);
 
                        *startframe += (int)(offset+0.5f);
                        *endframe += (int)(offset+0.5f);
                }
+#endif
        }
 
        /* verify cached_frames array is up to date */