From 4aeeee88198b97ede58b09188f588746b0dfe8f1 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Tue, 23 Nov 2010 14:04:05 +0000 Subject: Cached smoke wasn't being drawn on file load before going to simulation start frame. --- source/blender/blenkernel/intern/smoke.c | 4 +++- source/blender/blenloader/intern/readfile.c | 2 ++ source/blender/makesdna/DNA_smoke_types.h | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c index c1090326fd9..e649c442a2d 100644 --- a/source/blender/blenkernel/intern/smoke.c +++ b/source/blender/blenkernel/intern/smoke.c @@ -1353,9 +1353,11 @@ void smokeModifier_do(SmokeModifierData *smd, Scene *scene, Object *ob, DerivedM } } - if(!smd->domain->fluid && (framenr != startframe) && (cache->flag & PTCACHE_BAKED)==0) + if(!smd->domain->fluid && (framenr != startframe) && (smd->domain->flags & MOD_SMOKE_FILE_LOAD)==0 && (cache->flag & PTCACHE_BAKED)==0) return; + smd->domain->flags &= ~MOD_SMOKE_FILE_LOAD; + if(framenr < startframe) framenr = startframe; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 6c407b8a1ed..1ca848c48c6 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3644,6 +3644,8 @@ static void lib_link_object(FileData *fd, Main *main) smd->domain->fluid_group = newlibadr_us(fd, ob->id.lib, smd->domain->fluid_group); smd->domain->effector_weights->group = newlibadr(fd, ob->id.lib, smd->domain->effector_weights->group); + + smd->domain->flags |= MOD_SMOKE_FILE_LOAD; /* flag for refreshing the simulation after loading */ } } diff --git a/source/blender/makesdna/DNA_smoke_types.h b/source/blender/makesdna/DNA_smoke_types.h index b8be51b378f..95b6505529b 100644 --- a/source/blender/makesdna/DNA_smoke_types.h +++ b/source/blender/makesdna/DNA_smoke_types.h @@ -35,6 +35,7 @@ #define MOD_SMOKE_DISSOLVE_LOG (1<<3) /* using 1/x for dissolve */ #define MOD_SMOKE_HIGH_SMOOTH (1<<5) /* smoothens high res emission*/ +#define MOD_SMOKE_FILE_LOAD (1<<6) /* flag for file load */ /* noise */ #define MOD_SMOKE_NOISEWAVE (1<<0) -- cgit v1.2.3