diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-12-20 05:33:14 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-12-20 05:33:14 +0400 |
commit | efb4eff35312afb372e2a46aa598d12a74ff4a52 (patch) | |
tree | b039276297f2deea8bff39e606c9bf89b0dbc590 /source/blender/blenloader | |
parent | 2457d4f5abd65095ae48be937ed43d026d47124a (diff) | |
parent | 71ce197bbb09af00980f6efc4891dc2a7ffda36b (diff) |
svn merge ^/trunk/blender -r42722:42742
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 14decca5202..99c3ec0c134 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -7520,6 +7520,30 @@ void do_versions_image_settings_2_60(Scene *sce) } +/* socket use flags were only temporary before */ +static void do_versions_nodetree_socket_use_flags_2_62(bNodeTree *ntree) +{ + bNode *node; + bNodeSocket *sock; + bNodeLink *link; + + for (node=ntree->nodes.first; node; node=node->next) { + for (sock=node->inputs.first; sock; sock=sock->next) + sock->flag &= ~SOCK_IN_USE; + for (sock=node->outputs.first; sock; sock=sock->next) + sock->flag &= ~SOCK_IN_USE; + } + for (sock=ntree->inputs.first; sock; sock=sock->next) + sock->flag &= ~SOCK_IN_USE; + for (sock=ntree->outputs.first; sock; sock=sock->next) + sock->flag &= ~SOCK_IN_USE; + + for (link=ntree->links.first; link; link=link->next) { + link->fromsock->flag |= SOCK_IN_USE; + link->tosock->flag |= SOCK_IN_USE; + } +} + static void do_versions(FileData *fd, Library *lib, Main *main) { /* WATCH IT!!!: pointers from libdata have not been converted */ @@ -12749,7 +12773,38 @@ static void do_versions(FileData *fd, Library *lib, Main *main) /* put compatibility code here until next subversion bump */ { - /* nothing! */ + { + /* update use flags for node sockets (was only temporary before) */ + Scene *sce; + Material *mat; + Tex *tex; + Lamp *lamp; + World *world; + bNodeTree *ntree; + + for (sce=main->scene.first; sce; sce=sce->id.next) + if (sce->nodetree) + do_versions_nodetree_socket_use_flags_2_62(sce->nodetree); + + for (mat=main->mat.first; mat; mat=mat->id.next) + if (mat->nodetree) + do_versions_nodetree_socket_use_flags_2_62(mat->nodetree); + + for (tex=main->tex.first; tex; tex=tex->id.next) + if (tex->nodetree) + do_versions_nodetree_socket_use_flags_2_62(tex->nodetree); + + for (lamp=main->lamp.first; lamp; lamp=lamp->id.next) + if (lamp->nodetree) + do_versions_nodetree_socket_use_flags_2_62(lamp->nodetree); + + for (world=main->world.first; world; world=world->id.next) + if (world->nodetree) + do_versions_nodetree_socket_use_flags_2_62(world->nodetree); + + for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next) + do_versions_nodetree_socket_use_flags_2_62(ntree); + } } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ |