[Bf-blender-cvs] [271a5772ebc] simulation-tree: write node storage to file and read back

Jacques Lucke noreply at git.blender.org
Tue Feb 25 18:35:35 CET 2020


Commit: 271a5772ebcb01e80a44d69e1988f0be9d09f2bf
Author: Jacques Lucke
Date:   Tue Feb 25 18:35:28 2020 +0100
Branches: simulation-tree
https://developer.blender.org/rB271a5772ebcb01e80a44d69e1988f0be9d09f2bf

write node storage to file and read back

Have to find a better way to do this. An issue is that `node->typeinfo`
when the node is just read.

===================================================================

M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/writefile.c

===================================================================

diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 7267b8adb00..dc575c1f805 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -3516,6 +3516,11 @@ static void direct_link_nodetree(FileData *fd, bNodeTree *ntree)
     }
 
     if (node->storage) {
+      if (STREQ(node->idname, "FloatAddNode")) {
+        FloatAddNodeStorage *storage = (FloatAddNodeStorage *)node->storage;
+        link_list(fd, &storage->inputs_info);
+      }
+
       /* could be handlerized at some point */
       switch (node->type) {
         case SH_NODE_CURVE_VEC:
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index edc7eba933f..e891227e68f 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -1073,6 +1073,13 @@ static void write_nodetree_nolib(WriteData *wd, bNodeTree *ntree)
         }
         writestruct_id(wd, DATA, node->typeinfo->storagename, 1, node->storage);
       }
+      else if (STREQ(node->idname, "FloatAddNode")) {
+        FloatAddNodeStorage *storage = (FloatAddNodeStorage *)node->storage;
+        LISTBASE_FOREACH (VariadicNodeSocketIdentifier *, value, &storage->inputs_info) {
+          writestruct_id(wd, DATA, "VariadicNodeSocketIdentifier", 1, value);
+        }
+        writestruct_id(wd, DATA, "FloatAddNodeStorage", 1, node->storage);
+      }
       else {
         writestruct_id(wd, DATA, node->typeinfo->storagename, 1, node->storage);
       }



More information about the Bf-blender-cvs mailing list