Fix issue with some files having non-unique modifier names
authorSergey Sharybin <sergey.vfx@gmail.com>
Fri, 13 Feb 2015 08:51:10 +0000 (13:51 +0500)
committerSergey Sharybin <sergey.vfx@gmail.com>
Fri, 13 Feb 2015 08:51:10 +0000 (13:51 +0500)
Originally the files are coming from ancient early-2.4x epoch, but in
theory such setups might have been re-saved multiple times already with
more recent blender versions.

So the verisoning code is applied on all the files, including very
recent ones.

Bumped subversion, because this check si not really cheap.

source/blender/blenkernel/BKE_blender.h
source/blender/blenloader/intern/versioning_270.c

index 610a63cb9542d5b2eb281d9049d29da887ab8eb6..34d34e9244755a177a3054fa3469c426b9130e66 100644 (file)
@@ -42,7 +42,7 @@ extern "C" {
  * and keep comment above the defines.
  * Use STRINGIFY() rather than defining with quotes */
 #define BLENDER_VERSION         273
-#define BLENDER_SUBVERSION      7
+#define BLENDER_SUBVERSION      8
 /* 262 was the last editmesh release but it has compatibility code for bmesh data */
 #define BLENDER_MINVERSION      270
 #define BLENDER_MINSUBVERSION   5
index 23bf291b981212ee6117dce013a1e98a1fc40d8e..1afdc348c243844f64ef8a43f0e613fdc1c0adbd 100644 (file)
@@ -51,6 +51,7 @@
 #include "DNA_genfile.h"
 
 #include "BKE_main.h"
+#include "BKE_modifier.h"
 #include "BKE_node.h"
 #include "BKE_screen.h"
 
@@ -602,4 +603,18 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
                        }
                }
        }
+
+       if (!MAIN_VERSION_ATLEAST(main, 273, 8)) {
+               Object *ob;
+               for (ob = main->object.first; ob != NULL; ob = ob->id.next) {
+                       ModifierData *md;
+                       for (md = ob->modifiers.last; md != NULL; md = md->prev) {
+                               if (modifier_unique_name(&ob->modifiers, md)) {
+                                       printf("Warning: Object '%s' had several modifiers with the "
+                                              "same name, renamed one of them to '%s'.\n",
+                                              ob->id.name + 2, md->name);
+                               }
+                       }
+               }
+       }
 }