diff options
-rw-r--r-- | source/blender/blenkernel/intern/blender.c | 5 | ||||
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 7 | ||||
-rw-r--r-- | source/blender/render/intern/source/rendercore.c | 6 |
3 files changed, 12 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index db8653f0abe..9e8ac8ca8ea 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -325,6 +325,11 @@ static void setup_app_data(BlendFileData *bfd, char *filename) G.curscreen= bfd->curscreen; G.scene= G.curscreen->scene; } + /* this can happen when active scene was lib-linked, and doesnt exist anymore */ + if(G.scene==NULL) { + G.scene= G.main->scene.first; + G.curscreen->scene= G.scene; + } /* special cases, override loaded flags: */ if (G.f & G_DEBUG) bfd->globalf |= G_DEBUG; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 9efdb1f90f3..3a8fdb69d7a 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5534,10 +5534,11 @@ static void read_libraries(FileData *basefd, ListBase *mainlist) fd->libmap= basefd->libmap; fd->flags|= FD_FLAGS_NOT_MY_LIBMAP; + + mainptr->curlib->filedata= fd; + mainptr->versionfile= fd->fileversion; } - - mainptr->curlib->filedata= fd; - mainptr->versionfile= fd->fileversion; + else mainptr->curlib->filedata= NULL; if (!fd) printf("ERROR: can't find lib %s \n", mainptr->curlib->name); diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 4744a9664d9..a8a5136263a 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -1724,18 +1724,18 @@ void shade_input_set_coords(ShadeInput *shi, float u, float v, int i1, int i2, i if(vlr->flag & R_SMOOTH) { float n1[3], n2[3], n3[3]; - if(vlr->puno & p1) { + if(shi->puno & p1) { n1[0]= -v1->n[0]; n1[1]= -v1->n[1]; n1[2]= -v1->n[2]; } else { n1[0]= v1->n[0]; n1[1]= v1->n[1]; n1[2]= v1->n[2]; } - if(vlr->puno & p2) { + if(shi->puno & p2) { n2[0]= -v2->n[0]; n2[1]= -v2->n[1]; n2[2]= -v2->n[2]; } else { n2[0]= v2->n[0]; n2[1]= v2->n[1]; n2[2]= v2->n[2]; } - if(vlr->puno & p3) { + if(shi->puno & p3) { n3[0]= -v3->n[0]; n3[1]= -v3->n[1]; n3[2]= -v3->n[2]; } else { n3[0]= v3->n[0]; n3[1]= v3->n[1]; n3[2]= v3->n[2]; |