forked from bartvdbraak/blender
Fix for bug #9867: issues with making particle systems local.
This commit is contained in:
parent
e997e6b1fc
commit
93ba2dd6a1
@ -231,6 +231,7 @@ struct ParticleSystemModifierData *psys_get_modifier(struct Object *ob, struct P
|
||||
struct ParticleSettings *psys_new_settings(char *name, struct Main *main);
|
||||
struct ParticleSettings *psys_copy_settings(struct ParticleSettings *part);
|
||||
void psys_flush_settings(struct ParticleSettings *part, int event, int hair_recalc);
|
||||
void make_local_particlesettings(struct ParticleSettings *part);
|
||||
|
||||
struct LinkNode *psys_using_settings(struct ParticleSettings *part, int flush_update);
|
||||
void psys_changed_type(struct ParticleSystem *psys);
|
||||
|
@ -1215,6 +1215,7 @@ Object *copy_object(Object *ob)
|
||||
void expand_local_object(Object *ob)
|
||||
{
|
||||
bActionStrip *strip;
|
||||
ParticleSystem *psys;
|
||||
int a;
|
||||
|
||||
id_lib_extern((ID *)ob->action);
|
||||
@ -1228,7 +1229,8 @@ void expand_local_object(Object *ob)
|
||||
for (strip=ob->nlastrips.first; strip; strip=strip->next) {
|
||||
id_lib_extern((ID *)strip->act);
|
||||
}
|
||||
|
||||
for(psys=ob->particlesystem.first; psys; psys=psys->next)
|
||||
id_lib_extern((ID *)psys->part);
|
||||
}
|
||||
|
||||
void make_local_object(Object *ob)
|
||||
|
@ -2988,7 +2988,7 @@ ParticleSettings *psys_copy_settings(ParticleSettings *part)
|
||||
return partn;
|
||||
}
|
||||
|
||||
void psys_make_local_settings(ParticleSettings *part)
|
||||
void make_local_particlesettings(ParticleSettings *part)
|
||||
{
|
||||
Object *ob;
|
||||
ParticleSettings *par;
|
||||
|
@ -4783,6 +4783,7 @@ void make_local(int mode)
|
||||
Base *base;
|
||||
Object *ob;
|
||||
bActionStrip *strip;
|
||||
ParticleSystem *psys;
|
||||
Material *ma, ***matarar;
|
||||
Lamp *la;
|
||||
Curve *cu;
|
||||
@ -4869,6 +4870,9 @@ void make_local(int mode)
|
||||
make_local_armature ((bArmature *)id);
|
||||
break;
|
||||
}
|
||||
|
||||
for(psys=ob->particlesystem.first; psys; psys=psys->next)
|
||||
make_local_particlesettings(psys->part);
|
||||
}
|
||||
id= (ID *)ob->ipo;
|
||||
if(id && id->lib) make_local_ipo(ob->ipo);
|
||||
@ -4876,11 +4880,10 @@ void make_local(int mode)
|
||||
id= (ID *)ob->action;
|
||||
if(id && id->lib) make_local_action(ob->action);
|
||||
|
||||
for (strip=ob->nlastrips.first; strip; strip=strip->next) {
|
||||
for(strip=ob->nlastrips.first; strip; strip=strip->next) {
|
||||
if(strip->act && strip->act->id.lib)
|
||||
make_local_action(strip->act);
|
||||
}
|
||||
|
||||
}
|
||||
base= base->next;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user