diff options
Diffstat (limited to 'source/blender/editors/space_script/space_script.c')
-rw-r--r-- | source/blender/editors/space_script/space_script.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/source/blender/editors/space_script/space_script.c b/source/blender/editors/space_script/space_script.c index a623b98f1b1..4495501efe9 100644 --- a/source/blender/editors/space_script/space_script.c +++ b/source/blender/editors/space_script/space_script.c @@ -24,6 +24,8 @@ #include "UI_resources.h" #include "UI_view2d.h" +#include "BLO_read_write.h" + #ifdef WITH_PYTHON #endif @@ -146,13 +148,32 @@ static void script_main_region_listener(const wmRegionListenerParams *UNUSED(par #endif } +static void script_blend_read_lib(BlendLibReader *reader, ID *parent_id, SpaceLink *sl) +{ + SpaceScript *scpt = (SpaceScript *)sl; + /*scpt->script = NULL; - 2.45 set to null, better re-run the script */ + if (scpt->script) { + BLO_read_id_address(reader, parent_id->lib, &scpt->script); + if (scpt->script) { + SCRIPT_SET_NULL(scpt->script); + } + } +} + +static void script_blend_write(BlendWriter *writer, SpaceLink *sl) +{ + SpaceScript *scr = (SpaceScript *)sl; + scr->but_refs = NULL; + BLO_write_struct(writer, SpaceScript, sl); +} + void ED_spacetype_script(void) { SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype script"); ARegionType *art; st->spaceid = SPACE_SCRIPT; - strncpy(st->name, "Script", BKE_ST_MAXNAME); + STRNCPY(st->name, "Script"); st->create = script_create; st->free = script_free; @@ -160,6 +181,8 @@ void ED_spacetype_script(void) st->duplicate = script_duplicate; st->operatortypes = script_operatortypes; st->keymap = script_keymap; + st->blend_read_lib = script_blend_read_lib; + st->blend_write = script_blend_write; /* regions: main window */ art = MEM_callocN(sizeof(ARegionType), "spacetype script region"); |