add foreachIDLink function for cloth, remove cloth specific newlibadr calls in readfile.
authorCampbell Barton <ideasman42@gmail.com>
Thu, 9 Jun 2011 02:47:22 +0000 (02:47 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 9 Jun 2011 02:47:22 +0000 (02:47 +0000)
source/blender/blenloader/intern/readfile.c
source/blender/modifiers/intern/MOD_cloth.c

index 3987b08..4957943 100644 (file)
@@ -3847,16 +3847,6 @@ static void lib_link_object(FileData *fd, Main *main)
                                }
                        }
 
-                       {
-                               ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
-                               
-                               if(clmd) 
-                               {
-                                       clmd->sim_parms->effector_weights->group = newlibadr(fd, ob->id.lib, clmd->sim_parms->effector_weights->group);
-                                       clmd->coll_parms->group= newlibadr(fd, ob->id.lib, clmd->coll_parms->group);
-                               }
-                       }
-                       
                        /* texture field */
                        if(ob->pd)
                                lib_link_partdeflect(fd, &ob->id, ob->pd);
index 30ddb3f..1d2a6b2 100644 (file)
@@ -190,6 +190,19 @@ static void freeData(ModifierData *md)
        }
 }
 
+static void foreachIDLink(ModifierData *md, Object *ob,
+                                          IDWalkFunc walk, void *userData)
+{
+       ClothModifierData *clmd = (ClothModifierData*) md;
+
+       if(clmd->coll_parms) {
+               walk(userData, ob, (ID **)&clmd->coll_parms->group);
+       }
+
+       if(clmd->sim_parms && clmd->sim_parms->effector_weights) {
+               walk(userData, ob, (ID **)&clmd->sim_parms->effector_weights->group);
+       }
+}
 
 ModifierTypeInfo modifierType_Cloth = {
        /* name */              "Cloth",
@@ -215,5 +228,5 @@ ModifierTypeInfo modifierType_Cloth = {
        /* dependsOnTime */     dependsOnTime,
        /* dependsOnNormals */  NULL,
        /* foreachObjectLink */ NULL,
-       /* foreachIDLink */     NULL,
+       /* foreachIDLink */     foreachIDLink,
 };