Cleanup: name macros w/ matching BEGIN/END
This commit is contained in:
parent
bae188bf46
commit
8c85f1316c
|
@ -72,14 +72,14 @@ void bezt_add_to_cfra_elem(ListBase *lb, struct BezTriple *bezt);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* convenience looper over ALL driver targets for a given variable (even the unused ones) */
|
/* convenience looper over ALL driver targets for a given variable (even the unused ones) */
|
||||||
#define DRIVER_TARGETS_LOOPER(dvar) \
|
#define DRIVER_TARGETS_LOOPER_BEGIN(dvar) \
|
||||||
{ \
|
{ \
|
||||||
DriverTarget *dtar = &dvar->targets[0]; \
|
DriverTarget *dtar = &dvar->targets[0]; \
|
||||||
int tarIndex = 0; \
|
int tarIndex = 0; \
|
||||||
for (; tarIndex < MAX_DRIVER_TARGETS; tarIndex++, dtar++)
|
for (; tarIndex < MAX_DRIVER_TARGETS; tarIndex++, dtar++)
|
||||||
|
|
||||||
/* convenience looper over USED driver targets only */
|
/* convenience looper over USED driver targets only */
|
||||||
#define DRIVER_TARGETS_USED_LOOPER(dvar) \
|
#define DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar) \
|
||||||
{ \
|
{ \
|
||||||
DriverTarget *dtar = &dvar->targets[0]; \
|
DriverTarget *dtar = &dvar->targets[0]; \
|
||||||
int tarIndex = 0; \
|
int tarIndex = 0; \
|
||||||
|
@ -87,7 +87,7 @@ void bezt_add_to_cfra_elem(ListBase *lb, struct BezTriple *bezt);
|
||||||
|
|
||||||
/* tidy up for driver targets loopers */
|
/* tidy up for driver targets loopers */
|
||||||
#define DRIVER_TARGETS_LOOPER_END \
|
#define DRIVER_TARGETS_LOOPER_END \
|
||||||
}
|
} ((void)0)
|
||||||
|
|
||||||
/* ---------------------- */
|
/* ---------------------- */
|
||||||
|
|
||||||
|
|
|
@ -389,13 +389,13 @@ void BKE_animdata_merge_copy(
|
||||||
DriverVar *dvar;
|
DriverVar *dvar;
|
||||||
|
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
if (dtar->id == src_id) {
|
if (dtar->id == src_id) {
|
||||||
dtar->id = dst_id;
|
dtar->id = dst_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -766,7 +766,7 @@ static void drivers_path_rename_fix(ID *owner_id, ID *ref_id, const char *prefix
|
||||||
/* driver variables */
|
/* driver variables */
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
/* only change the used targets, since the others will need fixing manually anyway */
|
/* only change the used targets, since the others will need fixing manually anyway */
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
/* rename RNA path */
|
/* rename RNA path */
|
||||||
if (dtar->rna_path && dtar->id)
|
if (dtar->rna_path && dtar->id)
|
||||||
|
@ -781,7 +781,7 @@ static void drivers_path_rename_fix(ID *owner_id, ID *ref_id, const char *prefix
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -343,7 +343,7 @@ static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node
|
||||||
/* loop over variables to get the target relationships */
|
/* loop over variables to get the target relationships */
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
/* only used targets */
|
/* only used targets */
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
if (dtar->id) {
|
if (dtar->id) {
|
||||||
/* FIXME: other data types need to be added here so that they can work! */
|
/* FIXME: other data types need to be added here so that they can work! */
|
||||||
|
@ -369,7 +369,7 @@ static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1317,7 +1317,7 @@ static short driver_check_valid_targets(ChannelDriver *driver, DriverVar *dvar)
|
||||||
{
|
{
|
||||||
short valid_targets = 0;
|
short valid_targets = 0;
|
||||||
|
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
Object *ob = (Object *)dtar_id_ensure_proxy_from(dtar->id);
|
Object *ob = (Object *)dtar_id_ensure_proxy_from(dtar->id);
|
||||||
|
|
||||||
|
@ -1333,7 +1333,7 @@ static short driver_check_valid_targets(ChannelDriver *driver, DriverVar *dvar)
|
||||||
valid_targets++;
|
valid_targets++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
|
|
||||||
return valid_targets;
|
return valid_targets;
|
||||||
}
|
}
|
||||||
|
@ -1420,7 +1420,7 @@ static float dvar_eval_locDiff(ChannelDriver *driver, DriverVar *dvar)
|
||||||
|
|
||||||
/* SECOND PASS: get two location values */
|
/* SECOND PASS: get two location values */
|
||||||
/* NOTE: for now, these are all just worldspace */
|
/* NOTE: for now, these are all just worldspace */
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
/* get pointer to loc values to store in */
|
/* get pointer to loc values to store in */
|
||||||
Object *ob = (Object *)dtar_id_ensure_proxy_from(dtar->id);
|
Object *ob = (Object *)dtar_id_ensure_proxy_from(dtar->id);
|
||||||
|
@ -1491,7 +1491,7 @@ static float dvar_eval_locDiff(ChannelDriver *driver, DriverVar *dvar)
|
||||||
copy_v3_v3(loc1, tmp_loc);
|
copy_v3_v3(loc1, tmp_loc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
|
|
||||||
|
|
||||||
/* if we're still here, there should now be two targets to use,
|
/* if we're still here, there should now be two targets to use,
|
||||||
|
@ -1676,13 +1676,13 @@ void driver_free_variable(ListBase *variables, DriverVar *dvar)
|
||||||
* currently, since there may be some lingering RNA paths from
|
* currently, since there may be some lingering RNA paths from
|
||||||
* previous users needing freeing
|
* previous users needing freeing
|
||||||
*/
|
*/
|
||||||
DRIVER_TARGETS_LOOPER(dvar)
|
DRIVER_TARGETS_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
/* free RNA path if applicable */
|
/* free RNA path if applicable */
|
||||||
if (dtar->rna_path)
|
if (dtar->rna_path)
|
||||||
MEM_freeN(dtar->rna_path);
|
MEM_freeN(dtar->rna_path);
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
|
|
||||||
/* remove the variable from the driver */
|
/* remove the variable from the driver */
|
||||||
BLI_freelinkN(variables, dvar);
|
BLI_freelinkN(variables, dvar);
|
||||||
|
@ -1709,13 +1709,13 @@ void driver_variables_copy(ListBase *dst_vars, const ListBase *src_vars)
|
||||||
|
|
||||||
for (DriverVar *dvar = dst_vars->first; dvar; dvar = dvar->next) {
|
for (DriverVar *dvar = dst_vars->first; dvar; dvar = dvar->next) {
|
||||||
/* need to go over all targets so that we don't leave any dangling paths */
|
/* need to go over all targets so that we don't leave any dangling paths */
|
||||||
DRIVER_TARGETS_LOOPER(dvar)
|
DRIVER_TARGETS_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
/* make a copy of target's rna path if available */
|
/* make a copy of target's rna path if available */
|
||||||
if (dtar->rna_path)
|
if (dtar->rna_path)
|
||||||
dtar->rna_path = MEM_dupallocN(dtar->rna_path);
|
dtar->rna_path = MEM_dupallocN(dtar->rna_path);
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1735,7 +1735,7 @@ void driver_change_variable_type(DriverVar *dvar, int type)
|
||||||
/* make changes to the targets based on the defines for these types
|
/* make changes to the targets based on the defines for these types
|
||||||
* NOTE: only need to make sure the ones we're using here are valid...
|
* NOTE: only need to make sure the ones we're using here are valid...
|
||||||
*/
|
*/
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
short flags = dvti->target_flags[tarIndex];
|
short flags = dvti->target_flags[tarIndex];
|
||||||
|
|
||||||
|
@ -1746,7 +1746,7 @@ void driver_change_variable_type(DriverVar *dvar, int type)
|
||||||
if ((flags & DTAR_FLAG_ID_OB_ONLY) || (dtar->idtype == 0))
|
if ((flags & DTAR_FLAG_ID_OB_ONLY) || (dtar->idtype == 0))
|
||||||
dtar->idtype = ID_OB;
|
dtar->idtype = ID_OB;
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Validate driver name (after being renamed) */
|
/* Validate driver name (after being renamed) */
|
||||||
|
|
|
@ -265,11 +265,11 @@ static void library_foreach_animationData(LibraryForeachIDData *data, AnimData *
|
||||||
|
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
/* only used targets */
|
/* only used targets */
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
FOREACH_CALLBACK_INVOKE_ID(data, dtar->id, IDWALK_CB_NOP);
|
FOREACH_CALLBACK_INVOKE_ID(data, dtar->id, IDWALK_CB_NOP);
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1303,7 +1303,7 @@ void BKE_object_copy_proxy_drivers(Object *ob, Object *target)
|
||||||
|
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
/* all drivers */
|
/* all drivers */
|
||||||
DRIVER_TARGETS_LOOPER(dvar)
|
DRIVER_TARGETS_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
if (dtar->id) {
|
if (dtar->id) {
|
||||||
if ((Object *)dtar->id == target)
|
if ((Object *)dtar->id == target)
|
||||||
|
@ -1317,7 +1317,7 @@ void BKE_object_copy_proxy_drivers(Object *ob, Object *target)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2462,7 +2462,7 @@ static void lib_link_fcurves(FileData *fd, ID *id, ListBase *list)
|
||||||
DriverVar *dvar;
|
DriverVar *dvar;
|
||||||
|
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
DRIVER_TARGETS_LOOPER(dvar)
|
DRIVER_TARGETS_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
/* only relink if still used */
|
/* only relink if still used */
|
||||||
if (tarIndex < dvar->num_targets)
|
if (tarIndex < dvar->num_targets)
|
||||||
|
@ -2470,7 +2470,7 @@ static void lib_link_fcurves(FileData *fd, ID *id, ListBase *list)
|
||||||
else
|
else
|
||||||
dtar->id = NULL;
|
dtar->id = NULL;
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2564,7 +2564,7 @@ static void direct_link_fcurves(FileData *fd, ListBase *list)
|
||||||
/* relink variables, targets and their paths */
|
/* relink variables, targets and their paths */
|
||||||
link_list(fd, &driver->variables);
|
link_list(fd, &driver->variables);
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
DRIVER_TARGETS_LOOPER(dvar)
|
DRIVER_TARGETS_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
/* only relink the targets being used */
|
/* only relink the targets being used */
|
||||||
if (tarIndex < dvar->num_targets)
|
if (tarIndex < dvar->num_targets)
|
||||||
|
@ -2572,7 +2572,7 @@ static void direct_link_fcurves(FileData *fd, ListBase *list)
|
||||||
else
|
else
|
||||||
dtar->rna_path = NULL;
|
dtar->rna_path = NULL;
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9082,12 +9082,12 @@ static void expand_fcurves(FileData *fd, Main *mainvar, ListBase *list)
|
||||||
DriverVar *dvar;
|
DriverVar *dvar;
|
||||||
|
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
DRIVER_TARGETS_LOOPER(dvar)
|
DRIVER_TARGETS_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
// TODO: only expand those that are going to get used?
|
// TODO: only expand those that are going to get used?
|
||||||
expand_doit(fd, mainvar, dtar->id);
|
expand_doit(fd, mainvar, dtar->id);
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -330,7 +330,7 @@ static void do_version_bbone_easing_fcurve_fix(ID *UNUSED(id), FCurve *fcu, void
|
||||||
/* Driver -> Driver Vars (for bbone_in/out) */
|
/* Driver -> Driver Vars (for bbone_in/out) */
|
||||||
if (fcu->driver) {
|
if (fcu->driver) {
|
||||||
for (DriverVar *dvar = fcu->driver->variables.first; dvar; dvar = dvar->next) {
|
for (DriverVar *dvar = fcu->driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
DRIVER_TARGETS_LOOPER(dvar)
|
DRIVER_TARGETS_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
if (dtar->rna_path) {
|
if (dtar->rna_path) {
|
||||||
dtar->rna_path = replace_bbone_easing_rnapath(dtar->rna_path);
|
dtar->rna_path = replace_bbone_easing_rnapath(dtar->rna_path);
|
||||||
|
|
|
@ -818,13 +818,13 @@ static void write_fcurves(WriteData *wd, ListBase *fcurves)
|
||||||
/* variables */
|
/* variables */
|
||||||
writelist(wd, DATA, DriverVar, &driver->variables);
|
writelist(wd, DATA, DriverVar, &driver->variables);
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
if (dtar->rna_path) {
|
if (dtar->rna_path) {
|
||||||
writedata(wd, DATA, strlen(dtar->rna_path) + 1, dtar->rna_path);
|
writedata(wd, DATA, strlen(dtar->rna_path) + 1, dtar->rna_path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -562,12 +562,12 @@ void DepsgraphNodeBuilder::build_driver_variables(ID * id, FCurve *fcurve)
|
||||||
{
|
{
|
||||||
build_driver_id_property(id, fcurve->rna_path);
|
build_driver_id_property(id, fcurve->rna_path);
|
||||||
LISTBASE_FOREACH (DriverVar *, dvar, &fcurve->driver->variables) {
|
LISTBASE_FOREACH (DriverVar *, dvar, &fcurve->driver->variables) {
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
build_id(dtar->id);
|
build_id(dtar->id);
|
||||||
build_driver_id_property(dtar->id, dtar->rna_path);
|
build_driver_id_property(dtar->id, dtar->rna_path);
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1139,7 +1139,7 @@ void DepsgraphRelationBuilder::build_driver_variables(ID *id, FCurve *fcu)
|
||||||
|
|
||||||
LISTBASE_FOREACH (DriverVar *, dvar, &driver->variables) {
|
LISTBASE_FOREACH (DriverVar *, dvar, &driver->variables) {
|
||||||
/* Only used targets. */
|
/* Only used targets. */
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
if (dtar->id == NULL) {
|
if (dtar->id == NULL) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -1206,7 +1206,7 @@ void DepsgraphRelationBuilder::build_driver_variables(ID *id, FCurve *fcu)
|
||||||
add_relation(target_key, driver_key, "RNA Target -> Driver");
|
add_relation(target_key, driver_key, "RNA Target -> Driver");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1145,12 +1145,12 @@ static bool fcurve_has_errors(FCurve *fcu)
|
||||||
/* check variables for other things that need linting... */
|
/* check variables for other things that need linting... */
|
||||||
// TODO: maybe it would be more efficient just to have a quick flag for this?
|
// TODO: maybe it would be more efficient just to have a quick flag for this?
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
if (dtar->flag & DTAR_FLAG_INVALID)
|
if (dtar->flag & DTAR_FLAG_INVALID)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -163,7 +163,7 @@ static void joined_armature_fix_animdata_cb(ID *id, FCurve *fcu, void *user_data
|
||||||
/* Fix driver references to invalid ID's */
|
/* Fix driver references to invalid ID's */
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
/* only change the used targets, since the others will need fixing manually anyway */
|
/* only change the used targets, since the others will need fixing manually anyway */
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
/* change the ID's used... */
|
/* change the ID's used... */
|
||||||
if (dtar->id == src_id) {
|
if (dtar->id == src_id) {
|
||||||
|
@ -196,7 +196,7 @@ static void joined_armature_fix_animdata_cb(ID *id, FCurve *fcu, void *user_data
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -988,7 +988,7 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i
|
||||||
|
|
||||||
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
|
||||||
/* loop over all targets used here */
|
/* loop over all targets used here */
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
if (lastadded != dtar->id) {
|
if (lastadded != dtar->id) {
|
||||||
// XXX this lastadded check is rather lame, and also fails quite badly...
|
// XXX this lastadded check is rather lame, and also fails quite badly...
|
||||||
|
@ -996,7 +996,7 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i
|
||||||
lastadded = dtar->id;
|
lastadded = dtar->id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,14 +137,14 @@ bool BL_ShapeDeformer::LoadShapeDrivers(KX_GameObject* parent)
|
||||||
|
|
||||||
DriverVar *dvar;
|
DriverVar *dvar;
|
||||||
for (dvar = (DriverVar*)fcu->driver->variables.first; dvar; dvar = (DriverVar*)dvar->next) {
|
for (dvar = (DriverVar*)fcu->driver->variables.first; dvar; dvar = (DriverVar*)dvar->next) {
|
||||||
DRIVER_TARGETS_USED_LOOPER(dvar)
|
DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
|
||||||
{
|
{
|
||||||
if (dtar->id) {
|
if (dtar->id) {
|
||||||
if ((Object*)dtar->id == arma->GetOrigArmatureObject())
|
if ((Object*)dtar->id == arma->GetOrigArmatureObject())
|
||||||
dtar->id = (ID*)arma->GetArmatureObject();
|
dtar->id = (ID*)arma->GetArmatureObject();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DRIVER_TARGETS_LOOPER_END
|
DRIVER_TARGETS_LOOPER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue