Refactor: Move action foreach_id to new IDTypeInfo structure.

This commit is contained in:
Bastien Montagne 2020-05-18 18:43:11 +02:00
parent 38a8d3aff1
commit ae97a7ac10
2 changed files with 12 additions and 5 deletions

View File

@ -52,6 +52,7 @@
#include "BKE_idprop.h"
#include "BKE_idtype.h"
#include "BKE_lib_id.h"
#include "BKE_lib_query.h"
#include "BKE_main.h"
#include "BKE_object.h"
@ -154,6 +155,15 @@ static void action_free_data(struct ID *id)
BLI_freelistN(&action->markers);
}
static void action_foreach_id(ID *id, LibraryForeachIDData *data)
{
bAction *act = (bAction *)id;
LISTBASE_FOREACH (TimeMarker *, marker, &act->markers) {
BKE_LIB_FOREACHID_PROCESS(data, marker->camera, IDWALK_CB_NOP);
}
}
IDTypeInfo IDType_ID_AC = {
.id_code = ID_AC,
.id_filter = FILTER_ID_AC,
@ -168,6 +178,7 @@ IDTypeInfo IDType_ID_AC = {
.copy_data = action_copy_data,
.free_data = action_free_data,
.make_local = NULL,
.foreach_id = action_foreach_id,
};
/* ***************** Library data level operations on action ************** */

View File

@ -982,11 +982,7 @@ static void library_foreach_ID_link(Main *bmain,
}
case ID_AC: {
bAction *act = (bAction *)id;
LISTBASE_FOREACH (TimeMarker *, marker, &act->markers) {
CALLBACK_INVOKE(marker->camera, IDWALK_CB_NOP);
}
BLI_assert(0);
break;
}