From c7183d2622a0cba5e07653daa4a5aca9ad9ed9cc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 31 Mar 2011 11:21:21 +0000 Subject: library linked modifiers were not having their ID linked expanded properly. was missing array cap ends, wave map object and shrinkwrap objects. use modifiers_foreachIDLink() rather then having to list all modifiers ID's in this function. also add foreachIDLink() for smoke domain. This fixes a bug where a linked object has as a modifier using an indirectly linked object for the missing cases mentioned above. --- source/blender/modifiers/intern/MOD_smoke.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'source/blender/modifiers') diff --git a/source/blender/modifiers/intern/MOD_smoke.c b/source/blender/modifiers/intern/MOD_smoke.c index b13d86a609e..d8e94e92bfa 100644 --- a/source/blender/modifiers/intern/MOD_smoke.c +++ b/source/blender/modifiers/intern/MOD_smoke.c @@ -147,6 +147,17 @@ static void updateDepgraph(ModifierData *md, DagForest *forest, } } +static void foreachIDLink(ModifierData *md, Object *ob, + IDWalkFunc walk, void *userData) +{ + SmokeModifierData *smd = (SmokeModifierData*) md; + + if(smd->type==MOD_SMOKE_TYPE_DOMAIN && smd->domain) { + walk(userData, ob, (ID **)&smd->domain->coll_group); + walk(userData, ob, (ID **)&smd->domain->fluid_group); + walk(userData, ob, (ID **)&smd->domain->eff_group); + } +} ModifierTypeInfo modifierType_Smoke = { /* name */ "Smoke", @@ -172,5 +183,5 @@ ModifierTypeInfo modifierType_Smoke = { /* dependsOnTime */ dependsOnTime, /* dependsOnNormals */ NULL, /* foreachObjectLink */ NULL, - /* foreachIDLink */ NULL, + /* foreachIDLink */ foreachIDLink, }; -- cgit v1.2.3