Index: source/blender/blenkernel/BKE_scene.h =================================================================== --- source/blender/blenkernel/BKE_scene.h (revision 44217) +++ source/blender/blenkernel/BKE_scene.h (working copy) @@ -86,8 +86,8 @@ /* checks for cycle, returns 1 if it's all OK */ int scene_check_setscene(struct Main *bmain, struct Scene *sce); -float BKE_curframe(struct Scene *scene); -float BKE_frame_to_ctime(struct Scene *scene, const float frame); +double BKE_curframe(struct Scene *scene); +double BKE_frame_to_ctime(struct Scene *scene, const double frame); void scene_update_tagged(struct Main *bmain, struct Scene *sce); Index: source/blender/blenkernel/intern/particle.c =================================================================== --- source/blender/blenkernel/intern/particle.c (revision 44217) +++ source/blender/blenkernel/intern/particle.c (working copy) @@ -3461,7 +3461,7 @@ psys->totpart=0; psys->flag = PSYS_ENABLED|PSYS_CURRENT; - psys->cfra = BKE_frame_to_ctime(scene, CFRA + 1); + psys->cfra = (float)BKE_frame_to_ctime(scene, CFRA + 1); DAG_scene_sort(G.main, scene); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); Index: source/blender/blenkernel/intern/pointcache.c =================================================================== --- source/blender/blenkernel/intern/pointcache.c (revision 44217) +++ source/blender/blenkernel/intern/pointcache.c (working copy) @@ -2283,7 +2283,7 @@ /* Object *ob; */ /* UNUSED */ PointCache *cache; /* float offset; unused for now */ - float time, nexttime; + double time, nexttime; /* TODO: this has to be sorted out once bsystem_time gets redone, */ /* now caches can handle interpolating etc. too - jahka */ @@ -2303,8 +2303,7 @@ if(timescale) { time= BKE_curframe(scene); nexttime= BKE_frame_to_ctime(scene, CFRA+1); - - *timescale= MAX2(nexttime - time, 0.0f); + *timescale= (float)MAX2(nexttime - time, 0.0); } if(startframe && endframe) { Index: source/blender/blenkernel/intern/scene.c =================================================================== --- source/blender/blenkernel/intern/scene.c (revision 44217) +++ source/blender/blenkernel/intern/scene.c (working copy) @@ -915,15 +915,15 @@ /* This function is needed to cope with fractional frames - including two Blender rendering features * mblur (motion blur that renders 'subframes' and blurs them together), and fields rendering. */ -float BKE_curframe(Scene *scene) +double BKE_curframe(Scene *scene) { return BKE_frame_to_ctime(scene, scene->r.cfra); } /* This function is used to obtain arbitrary fractional frames */ -float BKE_frame_to_ctime(Scene *scene, const float frame) +double BKE_frame_to_ctime(Scene *scene, const double frame) { - float ctime = frame; + double ctime = frame; ctime += scene->r.subframe; ctime *= scene->r.framelen;