Move do-versions functions for 2.70
authorCampbell Barton <ideasman42@gmail.com>
Wed, 5 Mar 2014 17:33:15 +0000 (04:33 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 5 Mar 2014 17:40:49 +0000 (04:40 +1100)
source/blender/blenloader/CMakeLists.txt
source/blender/blenloader/intern/readfile.c
source/blender/blenloader/intern/readfile.h
source/blender/blenloader/intern/versioning_260.c
source/blender/blenloader/intern/versioning_270.c [new file with mode: 0644]

index ba87a437032fb7f6bb930a41ab92d840fae80e2d..7f557d3de22cedd0470198b92c16a148cff3d7e9 100644 (file)
@@ -47,6 +47,7 @@ set(SRC
        intern/undofile.c
        intern/versioning_250.c
        intern/versioning_260.c
+       intern/versioning_270.c
        intern/versioning_defaults.c
        intern/versioning_legacy.c
        intern/writefile.c
index 61df5468057929ce64d853dda49fb7e3211c7e18..6c1aa01211865a242e365fcc0a1dbf3301ce2468 100644 (file)
@@ -7445,6 +7445,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
        blo_do_versions_pre250(fd, lib, main);
        blo_do_versions_250(fd, lib, main);
        blo_do_versions_260(fd, lib, main);
+       blo_do_versions_270(fd, lib, main);
 
        /* WATCH IT!!!: pointers from libdata have not been converted yet here! */
        /* WATCH IT 2!: Userdef struct init see do_versions_userdef() above! */
index fe22499d16fc040aee140a846bcded3cca3157c6..d56f58d1b37ac32a89c4d4e7cd4ba759c5f7520e 100644 (file)
@@ -161,6 +161,7 @@ void blo_do_versions_key_uidgen(struct Key *key);
 void blo_do_versions_pre250(struct FileData *fd, struct Library *lib, struct Main *main);
 void blo_do_versions_250(struct FileData *fd, struct Library *lib, struct Main *main);
 void blo_do_versions_260(struct FileData *fd, struct Library *lib, struct Main *main);
+void blo_do_versions_270(struct FileData *fd, struct Library *lib, struct Main *main);
 
 #endif
 
index a743847614da4b5dd8e972458cd55e90b303b179..43da85c271565a89f7cb3a84eac9a18361d72726 100644 (file)
@@ -2706,59 +2706,4 @@ void blo_do_versions_260(FileData *fd, Library *UNUSED(lib), Main *main)
                        }
                }
        }
-
-       if (!DNA_struct_elem_find(fd->filesdna, "BevelModifierData", "float", "profile")) {
-               Object *ob;
-
-               for (ob = main->object.first; ob; ob = ob->id.next) {
-                       ModifierData *md;
-                       for (md = ob->modifiers.first; md; md = md->next) {
-                               if (md->type == eModifierType_Bevel) {
-                                       BevelModifierData *bmd = (BevelModifierData *)md;
-                                       bmd->profile = 0.5f;
-                                       bmd->val_flags = MOD_BEVEL_AMT_OFFSET;
-                               }
-                       }
-               }
-       }
-
-       {
-               /* nodes don't use fixed node->id any more, clean up */
-               FOREACH_NODETREE(main, ntree, id) {
-                       if (ntree->type == NTREE_COMPOSIT) {
-                               bNode *node;
-                               for (node = ntree->nodes.first; node; node = node->next) {
-                                       if (ELEM(node->type, CMP_NODE_COMPOSITE, CMP_NODE_OUTPUT_FILE)) {
-                                               node->id = NULL;
-                                       }
-                               }
-                       }
-               } FOREACH_NODETREE_END
-
-               {
-                       bScreen *screen;
-
-                       for (screen = main->screen.first; screen; screen = screen->id.next) {
-                               ScrArea *area;
-                               for (area = screen->areabase.first; area; area = area->next) {
-                                       SpaceLink *space_link;
-                                       for (space_link = area->spacedata.first; space_link; space_link = space_link->next) {
-                                               if (space_link->spacetype == SPACE_CLIP) {
-                                                       SpaceClip *space_clip = (SpaceClip *) space_link;
-                                                       if (space_clip->mode != SC_MODE_MASKEDIT) {
-                                                               space_clip->mode = SC_MODE_TRACKING;
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-               }
-       }
-
-       if (!DNA_struct_elem_find(fd->filesdna, "MovieTrackingSettings", "float", "default_weight")) {
-               MovieClip *clip;
-               for (clip = main->movieclip.first; clip; clip = clip->id.next) {
-                       clip->tracking.settings.default_weight = 1.0f;
-               }
-       }
 }
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c
new file mode 100644 (file)
index 0000000..d11e434
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ *
+ */
+
+/** \file blender/blenloader/intern/versioning_270.c
+ *  \ingroup blenloader
+ */
+
+#include "BLI_utildefines.h"
+#include "BLI_compiler_attrs.h"
+
+/* allow readfile to use deprecated functionality */
+#define DNA_DEPRECATED_ALLOW
+
+#include "DNA_sdna_types.h"
+#include "DNA_space_types.h"
+#include "DNA_screen_types.h"
+#include "DNA_object_types.h"
+#include "DNA_modifier_types.h"
+#include "DNA_sdna_types.h"
+
+#include "DNA_genfile.h"
+
+
+#include "BKE_main.h"
+#include "BKE_node.h"
+
+#include "BLO_readfile.h"
+
+#include "readfile.h"
+
+
+void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
+{
+       if (!MAIN_VERSION_ATLEAST(main, 270, 0)) {
+
+               if (!DNA_struct_elem_find(fd->filesdna, "BevelModifierData", "float", "profile")) {
+                       Object *ob;
+
+                       for (ob = main->object.first; ob; ob = ob->id.next) {
+                               ModifierData *md;
+                               for (md = ob->modifiers.first; md; md = md->next) {
+                                       if (md->type == eModifierType_Bevel) {
+                                               BevelModifierData *bmd = (BevelModifierData *)md;
+                                               bmd->profile = 0.5f;
+                                               bmd->val_flags = MOD_BEVEL_AMT_OFFSET;
+                                       }
+                               }
+                       }
+               }
+
+               /* nodes don't use fixed node->id any more, clean up */
+               FOREACH_NODETREE(main, ntree, id) {
+                       if (ntree->type == NTREE_COMPOSIT) {
+                               bNode *node;
+                               for (node = ntree->nodes.first; node; node = node->next) {
+                                       if (ELEM(node->type, CMP_NODE_COMPOSITE, CMP_NODE_OUTPUT_FILE)) {
+                                               node->id = NULL;
+                                       }
+                               }
+                       }
+               } FOREACH_NODETREE_END
+
+               {
+                       bScreen *screen;
+
+                       for (screen = main->screen.first; screen; screen = screen->id.next) {
+                               ScrArea *area;
+                               for (area = screen->areabase.first; area; area = area->next) {
+                                       SpaceLink *space_link;
+                                       for (space_link = area->spacedata.first; space_link; space_link = space_link->next) {
+                                               if (space_link->spacetype == SPACE_CLIP) {
+                                                       SpaceClip *space_clip = (SpaceClip *) space_link;
+                                                       if (space_clip->mode != SC_MODE_MASKEDIT) {
+                                                               space_clip->mode = SC_MODE_TRACKING;
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               if (!DNA_struct_elem_find(fd->filesdna, "MovieTrackingSettings", "float", "default_weight")) {
+                       MovieClip *clip;
+                       for (clip = main->movieclip.first; clip; clip = clip->id.next) {
+                               clip->tracking.settings.default_weight = 1.0f;
+                       }
+               }
+       }
+}