Revision: 48851
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48851
Author:   nazgul
Date:     2012-07-12 07:30:50 +0000 (Thu, 12 Jul 2012)
Log Message:
-----------
Fix #32082: face textures lost when linking scene from another file

Issue was caused by missing expand for MTexPoly-s tpages.

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   2012-07-12 
07:15:32 UTC (rev 48850)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c   2012-07-12 
07:30:50 UTC (rev 48851)
@@ -8519,7 +8519,6 @@
 static void expand_mesh(FileData *fd, Main *mainvar, Mesh *me)
 {
        CustomDataLayer *layer;
-       MTFace *mtf;
        TFace *tf;
        int a, i;
        
@@ -8541,17 +8540,37 @@
                }
        }
 
-       for (a = 0; a < me->fdata.totlayer; a++) {
-               layer = &me->fdata.layers[a];
-               
-               if (layer->type == CD_MTFACE) {
-                       mtf = (MTFace*)layer->data;
-                       for (i = 0; i < me->totface; i++, mtf++) {
-                               if (mtf->tpage)
-                                       expand_doit(fd, mainvar, mtf->tpage);
+       if (me->mface && !me->mpoly) {
+               MTFace *mtf;
+
+               for (a = 0; a < me->fdata.totlayer; a++) {
+                       layer = &me->fdata.layers[a];
+
+                       if (layer->type == CD_MTFACE) {
+                               mtf = (MTFace *) layer->data;
+                               for (i = 0; i < me->totface; i++, mtf++) {
+                                       if (mtf->tpage)
+                                               expand_doit(fd, mainvar, 
mtf->tpage);
+                               }
                        }
                }
        }
+       else {
+               MTexPoly *mtp;
+
+               for (a = 0; a < me->pdata.totlayer; a++) {
+                       layer = &me->pdata.layers[a];
+
+                       if (layer->type == CD_MTEXPOLY) {
+                               mtp = (MTexPoly *) layer->data;
+
+                               for (i = 0; i < me->totpoly; i++, mtp++) {
+                                       if (mtp->tpage)
+                                               expand_doit(fd, mainvar, 
mtp->tpage);
+                               }
+                       }
+               }
+       }
 }
 
 /* temp struct used to transport needed info to expand_constraint_cb() */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to