diff options
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 12 | ||||
-rw-r--r-- | source/blender/blenloader/intern/writefile.c | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 8bfab730313..f443859e62c 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -8675,8 +8675,12 @@ static void direct_link_volume(BlendDataReader *reader, Volume *volume) /** \name Read ID: Simulation * \{ */ -static void lib_link_simulation(BlendLibReader *UNUSED(reader), Simulation *UNUSED(simulation)) +static void lib_link_simulation(BlendLibReader *reader, Simulation *simulation) { + LISTBASE_FOREACH ( + PersistentDataHandleItem *, handle_item, &simulation->persistent_data_handles) { + BLO_read_id_address(reader, simulation->id.lib, &handle_item->id); + } } static void direct_link_simulation(BlendDataReader *reader, Simulation *simulation) @@ -8697,6 +8701,8 @@ static void direct_link_simulation(BlendDataReader *reader, Simulation *simulati }; } } + + BLO_read_list(reader, &simulation->persistent_data_handles); } /** \} */ @@ -11105,6 +11111,10 @@ static void expand_simulation(BlendExpander *expander, Simulation *simulation) if (simulation->adt) { expand_animdata(expander, simulation->adt); } + LISTBASE_FOREACH ( + PersistentDataHandleItem *, handle_item, &simulation->persistent_data_handles) { + BLO_expand(expander, handle_item->id); + } } /** diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 8b9de3eea24..d33d8032ed1 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -3859,6 +3859,8 @@ static void write_simulation(BlendWriter *writer, Simulation *simulation, const } } } + + BLO_write_struct_list(writer, PersistentDataHandleItem, &simulation->persistent_data_handles); } } |