[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13167] trunk/blender/source/blender/ blenloader/intern/readfile.c: == Multires ==

Nicholas Bishop nicholasbishop at gmail.com
Tue Jan 8 10:25:50 CET 2008


Revision: 13167
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13167
Author:   nicholasbishop
Date:     2008-01-08 10:25:50 +0100 (Tue, 08 Jan 2008)

Log Message:
-----------
== Multires ==

Fixed loading files with multires from 2.45. Fixes bug #8056.

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2008-01-08 09:21:02 UTC (rev 13166)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2008-01-08 09:25:50 UTC (rev 13167)
@@ -6636,29 +6636,9 @@
 		World *wrld;
 		
 		if(main->versionfile != 244 || main->subversionfile < 2) {
-			Mesh *me;
-			
 			for(sce= main->scene.first; sce; sce= sce->id.next)
 				sce->r.mode |= R_SSS;
 
-			/* Copy over old per-level multires vertex data
-			   into a single vertex array in struct Multires */
-			
-			for(me = main->mesh.first; me; me=me->id.next) {
-				if(me->mr) {
-					MultiresLevel *lvl = me->mr->levels.last;
-					if(lvl) {
-						me->mr->verts = lvl->verts;
-						lvl->verts = NULL;
-						/* Don't need the other vert arrays */
-						for(lvl = lvl->prev; lvl; lvl = lvl->prev) {
-							MEM_freeN(lvl->verts);
-							lvl->verts = NULL;
-						}
-					}
-				}
-			}
-	
 			/* correct older action editors - incorrect scrolling */
 			for(sc= main->screen.first; sc; sc= sc->id.next) {
 				ScrArea *sa;
@@ -6712,6 +6692,7 @@
 		Lamp *la;
 		Material *ma;
 		ParticleSettings *part;
+		Mesh *me;
 		
 		/* unless the file was created 2.44.3 but not 2.45, update the constraints */
 		if ( !(main->versionfile==244 && main->subversionfile==3) &&
@@ -6851,6 +6832,23 @@
 				}
 			}
 		}
+
+		/* Copy over old per-level multires vertex data
+		   into a single vertex array in struct Multires */
+		for(me = main->mesh.first; me; me=me->id.next) {
+			if(me->mr && !me->mr->verts) {
+				MultiresLevel *lvl = me->mr->levels.last;
+				if(lvl) {
+					me->mr->verts = lvl->verts;
+					lvl->verts = NULL;
+					/* Don't need the other vert arrays */
+					for(lvl = lvl->prev; lvl; lvl = lvl->prev) {
+						MEM_freeN(lvl->verts);
+						lvl->verts = NULL;
+					}
+				}
+			}
+		}
 		
 		if (main->versionfile != 245 || main->subversionfile < 1) {
 			for(la=main->lamp.first; la; la= la->id.next) {





More information about the Bf-blender-cvs mailing list