Deleting Effectors (deflectors or Fields) now update particle systems and

softbody. (report #3385)
This commit is contained in:
Ton Roosendaal 2005-11-11 10:46:26 +00:00
parent 6d42aebc78
commit d7ed26e3c6
3 changed files with 10 additions and 3 deletions

@ -468,8 +468,6 @@ void free_libblock(ListBase *lb, void *idv)
BLI_remlink(lb, id);
MEM_freeN(id);
/* should not be here!! this is an interface-thing */
allspace(OOPS_TEST, 0);
}
void free_libblock_us(ListBase *lb, void *idv) /* test users */

@ -246,7 +246,7 @@ void unlink_object(Object *ob)
unlink_controllers(&ob->controllers);
unlink_actuators(&ob->actuators);
/* check all objects: parents en bevels */
/* check all objects: parents en bevels and fields */
obt= G.main->object.first;
while(obt) {
if(obt->id.lib==NULL) {
@ -298,6 +298,13 @@ void unlink_object(Object *ob)
obt->recalc |= OB_RECALC_OB;
}
}
/* object is deflector or field */
if(ob->pd) {
if(give_parteff(obt))
obt->recalc |= OB_RECALC_DATA;
else if(obt->soft)
obt->recalc |= OB_RECALC_DATA;
}
}
obt= obt->id.next;
}

@ -269,6 +269,7 @@ void delete_obj(int ok)
allqueue (REDRAWACTION, 0);
allqueue(REDRAWIPO, 0);
allqueue(REDRAWDATASELECT, 0);
allspace(OOPS_TEST, 0);
allqueue(REDRAWOOPS, 0);
allqueue(REDRAWACTION, 0);
allqueue(REDRAWNLA, 0);
@ -2356,6 +2357,7 @@ void convertmenu(void)
countall();
allqueue(REDRAWVIEW3D, 0);
allqueue(REDRAWOOPS, 0);
allspace(OOPS_TEST, 0);
allqueue(REDRAWBUTSEDIT, 0);
BIF_undo_push("Convert Object");