Commit: 732cd96737007b1411a161369f842209a4c26419
Author: Bastien Montagne
Date:   Tue Jun 28 18:21:53 2016 +0200
Branches: asset-engine
https://developer.blender.org/rB732cd96737007b1411a161369f842209a4c26419

Merge branch 'master' into asset-engine

Conflicts:
        source/blender/blenloader/intern/writefile.c

===================================================================



===================================================================

diff --cc source/blender/blenloader/intern/writefile.c
index 1979bd0,2c8bb92..5333d9d
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@@ -600,14 -669,7 +669,14 @@@ static void write_iddata(void *wd, cons
  {
        /* ID_WM's id->properties are considered runtime only, and never 
written in .blend file. */
        if (id->properties && !ELEM(GS(id->name), ID_WM)) {
 -              IDP_WriteProperty(id->properties, wd);
 +              /* We want to write IDProps from 'virtual' libraries too, but 
not from 'real' linked datablocks... */
 +              if (!id->uuid || (id->lib && (id->lib->flag & 
LIBRARY_FLAG_VIRTUAL))) {
 +                      IDP_WriteProperty(id->properties, wd);
 +              }
 +      }
 +      if (id->uuid) {
 +              BLI_assert(id->lib && id->lib->asset_repository);
-               writestruct(wd, DATA, "AssetUUID", 1, id->uuid);
++              writestruct(wd, DATA, AssetUUID, 1, id->uuid);
        }
  }
  
@@@ -3613,71 -3891,27 +3899,72 @@@ static void write_libraries(WriteData *
                /* XXX needs rethink, just like save UI in undo files now - 
would be nice to append things only for the]
                 * quit.blend and temp saves */
                if (found_one) {
-                       writestruct(wd, ID_LI, "Library", 1, main->curlib);
+                       writestruct(wd, ID_LI, Library, 1, main->curlib);
                        write_iddata(wd, &main->curlib->id);
  
 +                      BLI_assert(!(main->curlib->flag & LIBRARY_FLAG_VIRTUAL) 
||
 +                                 (!main->curlib->packedfile && 
main->curlib->asset_repository));
 +
                        if (main->curlib->packedfile) {
                                PackedFile *pf = main->curlib->packedfile;
-                               writestruct(wd, DATA, "PackedFile", 1, pf);
+                               writestruct(wd, DATA, PackedFile, 1, pf);
                                writedata(wd, DATA, pf->size, pf->data);
-                               if (wd->current == NULL)
+                               if (wd->current == NULL) {
                                        printf("write packed .blend: %s\n", 
main->curlib->name);
+                               }
                        }
  
 -                      while (a--) {
 -                              for (id = lbarray[a]->first; id; id = id->next) 
{
 -                                      if (id->us > 0 && (id->tag & 
LIB_TAG_EXTERN)) {
 -                                              if 
(!BKE_idcode_is_linkable(GS(id->name))) {
 -                                                      printf("ERROR: write 
file: datablock '%s' from lib '%s' is not linkable "
 -                                                             "but is flagged 
as directly linked", id->name, main->curlib->filepath);
 -                                                      BLI_assert(0);
 +                      if (main->curlib->asset_repository) {
-                               writestruct(wd, DATA, "AssetRepositoryRef", 1, 
main->curlib->asset_repository);
++                              writestruct(wd, DATA, AssetRepositoryRef, 1, 
main->curlib->asset_repository);
 +                      }
 +
 +                      if (main->curlib->flag & LIBRARY_FLAG_VIRTUAL) {
 +                              /* Those should be the only datatypes found in 
a virtual library! */
 +                              write_images   (wd, &main->image);
 +                              write_vfonts   (wd, &main->vfont);
 +                              write_texts    (wd, &main->text);
 +                              write_sounds   (wd, &main->sound);
 +
 +                              BLI_assert(BLI_listbase_is_empty(&main->wm));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->screen));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->movieclip));
 +                              BLI_assert(BLI_listbase_is_empty(&main->mask));
 +                              BLI_assert(BLI_listbase_is_empty(&main->scene));
 +                              BLI_assert(BLI_listbase_is_empty(&main->curve));
 +                              BLI_assert(BLI_listbase_is_empty(&main->mball));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->camera));
 +                              BLI_assert(BLI_listbase_is_empty(&main->lamp));
 +                              BLI_assert(BLI_listbase_is_empty(&main->latt));
 +                              BLI_assert(BLI_listbase_is_empty(&main->key));
 +                              BLI_assert(BLI_listbase_is_empty(&main->world));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->speaker));
 +                              BLI_assert(BLI_listbase_is_empty(&main->group));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->armature));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->action));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->object));
 +                              BLI_assert(BLI_listbase_is_empty(&main->mat));
 +                              BLI_assert(BLI_listbase_is_empty(&main->tex));
 +                              BLI_assert(BLI_listbase_is_empty(&main->mesh));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->particle));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->nodetree));
 +                              BLI_assert(BLI_listbase_is_empty(&main->brush));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->palettes));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->paintcurves));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->gpencil));
 +                              
BLI_assert(BLI_listbase_is_empty(&main->linestyle));
 +                      }
 +                      else {
 +                              while (a--) {
-                                       for (id= lbarray[a]->first; id; id= 
id->next) {
++                                      for (id = lbarray[a]->first; id; id = 
id->next) {
 +                                              if (id->us > 0 && (id->tag & 
LIB_TAG_EXTERN)) {
 +                                                      if 
(!BKE_idcode_is_linkable(GS(id->name))) {
 +                                                              printf("ERROR: 
write file: datablock '%s' from lib '%s' is not linkable "
 +                                                                         "but 
is flagged as directly linked", id->name, main->curlib->filepath);
 +                                                              BLI_assert(0);
 +                                                      }
-                                                       writestruct(wd, ID_ID, 
"ID", 1, id);
++                                                      writestruct(wd, ID_ID, 
ID, 1, id);
 +                                                      write_iddata(wd, id);
                                                }
 -                                              writestruct(wd, ID_ID, ID, 1, 
id);
                                        }
                                }
                        }

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

Reply via email to