diff options
author | Daniel Genrich <daniel.genrich@gmx.net> | 2009-07-31 02:11:28 +0400 |
---|---|---|
committer | Daniel Genrich <daniel.genrich@gmx.net> | 2009-07-31 02:11:28 +0400 |
commit | da4ab9b14b24f8dca873441ba8a842acdbb60098 (patch) | |
tree | 1422bb13bff7371cbfec1f8983e3ba04ab225cee /source/blender/blenloader/intern/readfile.c | |
parent | 9561d34dbb1adf3c1f6ef3d0f3811171e792a071 (diff) |
Smoke:
a) Crash fixed when loading files with smoke
b) changed presets to be more low-cpu friendly
c) smoke looks thicker
Unsolved:
a) 3dview of smoke changes weirdly when looking at front/back. Just move around a cube with smoke and you know what I mean - odd shading. If someone likes to take a look: draw_object.c -> search for "smoke" there
Diffstat (limited to 'source/blender/blenloader/intern/readfile.c')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 8a376a0a170..3b976b7d658 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3645,12 +3645,14 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) else if (md->type==eModifierType_Smoke) { SmokeModifierData *smd = (SmokeModifierData*) md; + smd->point_cache = NULL; + if(smd->type==MOD_SMOKE_TYPE_DOMAIN) { smd->flow = NULL; smd->coll = NULL; - if(smd->domain) - smd->domain = newdataadr(fd, smd->domain); + smd->domain = newdataadr(fd, smd->domain); + smd->domain->smd = smd; smd->domain->fluid = NULL; smd->domain->tvox = NULL; @@ -3666,6 +3668,7 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) smd->domain = NULL; smd->coll = NULL; smd->flow = newdataadr(fd, smd->flow); + smd->flow->smd = smd; smd->flow->psys = newdataadr(fd, smd->flow->psys); } else if(smd->type==MOD_SMOKE_TYPE_COLL) @@ -10185,12 +10188,9 @@ static void expand_modifier(FileData *fd, Main *mainvar, ModifierData *md) if(smd->type==MOD_SMOKE_TYPE_DOMAIN && smd->domain) { - //if(smd->domain->coll_group) - expand_doit(fd, mainvar, smd->domain->coll_group); - //if(smd->domain->fluid_group) - expand_doit(fd, mainvar, smd->domain->fluid_group); - //if(smd->domain->eff_group) - expand_doit(fd, mainvar, smd->domain->eff_group); + expand_doit(fd, mainvar, smd->domain->coll_group); + expand_doit(fd, mainvar, smd->domain->fluid_group); + expand_doit(fd, mainvar, smd->domain->eff_group); } } } |