diff options
Diffstat (limited to 'source/blender/editors/space_action/space_action.c')
-rw-r--r-- | source/blender/editors/space_action/space_action.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index 98782ca15a8..2f22121f7de 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -42,6 +42,8 @@ #include "ED_space_api.h" #include "ED_time_scrub_ui.h" +#include "BLO_read_write.h" + #include "action_intern.h" /* own include */ /* ******************** default callbacks for action space ***************** */ @@ -834,6 +836,30 @@ static void action_space_subtype_item_extend(bContext *UNUSED(C), RNA_enum_items_add(item, totitem, rna_enum_space_action_mode_items); } +static void action_blend_read_data(BlendDataReader *UNUSED(reader), SpaceLink *sl) +{ + SpaceAction *saction = (SpaceAction *)sl; + memset(&saction->runtime, 0x0, sizeof(saction->runtime)); +} + +static void action_blend_read_lib(BlendLibReader *reader, ID *parent_id, SpaceLink *sl) +{ + SpaceAction *saction = (SpaceAction *)sl; + bDopeSheet *ads = &saction->ads; + + if (ads) { + BLO_read_id_address(reader, parent_id->lib, &ads->source); + BLO_read_id_address(reader, parent_id->lib, &ads->filter_grp); + } + + BLO_read_id_address(reader, parent_id->lib, &saction->action); +} + +static void action_blend_write(BlendWriter *writer, SpaceLink *sl) +{ + BLO_write_struct(writer, SpaceAction, sl); +} + void ED_spacetype_action(void) { SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype action"); @@ -854,6 +880,9 @@ void ED_spacetype_action(void) st->space_subtype_item_extend = action_space_subtype_item_extend; st->space_subtype_get = action_space_subtype_get; st->space_subtype_set = action_space_subtype_set; + st->blend_read_data = action_blend_read_data; + st->blend_read_lib = action_blend_read_lib; + st->blend_write = action_blend_write; /* regions: main window */ art = MEM_callocN(sizeof(ARegionType), "spacetype action region"); @@ -905,5 +934,8 @@ void ED_spacetype_action(void) action_buttons_register(art); + art = ED_area_type_hud(st->spaceid); + BLI_addhead(&st->regiontypes, art); + BKE_spacetype_register(st); } |