Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoel Spruit <roel@spruitje.nl>2004-06-23 22:22:51 +0400
committerRoel Spruit <roel@spruitje.nl>2004-06-23 22:22:51 +0400
commit629e526b25741a2d8faa422ff27adce7ffe3a8be (patch)
treefbd7d1260e0d8ba7f392f385673edd3c44de0bc5
parent3bf5e671d0dc04e1b04ee8106ade3f4fa0d4f3f8 (diff)
- Added correct Writing/Reading of the new Sweep sequence effect (Thanks Ton, where would I be without you)
- Sweep effect updates after you change the type of sweep now.
-rw-r--r--projectfiles/blender/yafray/BRE_yafray.dsp2
-rw-r--r--source/blender/blenloader/intern/readfile.c978
-rw-r--r--source/blender/blenloader/intern/writefile.c427
-rw-r--r--source/blender/makesdna/DNA_sequence_types.h4
-rw-r--r--source/blender/src/drawseq.c11
-rw-r--r--source/blender/src/editseq.c2
-rw-r--r--source/blender/src/sequence.c30
7 files changed, 733 insertions, 721 deletions
diff --git a/projectfiles/blender/yafray/BRE_yafray.dsp b/projectfiles/blender/yafray/BRE_yafray.dsp
index 62c36a22a41..cf6d6ddc308 100644
--- a/projectfiles/blender/yafray/BRE_yafray.dsp
+++ b/projectfiles/blender/yafray/BRE_yafray.dsp
@@ -66,7 +66,7 @@ LIB32=link.exe -lib
# PROP Target_Dir ""
LINK32=link.exe -lib
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\imbuf" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fp"..\..\..\obj\windows\blender\render\debug/BRE_yafray.pch" /YX /Fo"..\..\..\obj\windows\blender\render\debug/" /Fd"..\..\..\obj\windows\blender\render\debug/" /J /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\render\intern\include" /I "..\..\..\source\blender\imbuf" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fp"..\..\..\obj\windows\blender\render\debug/BRE_yafray.pch" /YX /Fo"..\..\..\obj\windows\blender\render\debug/" /Fd"..\..\..\obj\windows\blender\render\debug/" /J /FD /GZ /c
# ADD BASE RSC /l 0x413 /d "_DEBUG"
# ADD RSC /l 0x413 /d "_DEBUG"
BSC32=bscmake.exe
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index c5ac1a7bce8..5eb4ab89e2e 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -32,7 +32,7 @@
* Contributor(s): none yet.
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
- *
+ *
*/
#ifdef HAVE_CONFIG_H
@@ -50,7 +50,7 @@
#include <string.h> // for strcasecmp strrchr strncmp strstr
#include <math.h> // for fabs
-#ifndef WIN32
+#ifndef WIN32
#include <unistd.h> // for read close
#include <sys/param.h> // for MAXPATHLEN
#else
@@ -110,9 +110,9 @@
#include "BKE_main.h" // for Main
#include "BKE_global.h" // for G
#include "BKE_property.h" // for get_property
-#include "BKE_library.h" // for wich_libbase
+#include "BKE_library.h" // for wich_libbase
#include "BKE_texture.h" // for open_plugin_tex
-#include "BKE_effect.h" // for give_parteff
+#include "BKE_effect.h" // for give_parteff
#include "BKE_sca.h" // for init_actuator
#include "BKE_mesh.h" // for ME_ defines (patching)
#include "BKE_armature.h" // for precalc_bonelist_irestmats
@@ -134,7 +134,7 @@
multiple files at the same time
(added remark: oh, i thought that was solved? will look at that... (ton)
-
+
READ
- Existing Library (Main) push or free
- allocate new Main
@@ -145,7 +145,7 @@ READ
- if a Library
- make a new Main
- attach ID's to it
- - else
+ - else
- read associated 'direct data'
- link direct data (internal and to LibBlock)
- read FileGlobal
@@ -156,7 +156,7 @@ READ
- read SDNA
- find LibBlocks and attach IDs to Main
- if external LibBlock
- - search all Main's
+ - search all Main's
- or it's already read,
- or not read yet
- or make new Main
@@ -217,7 +217,7 @@ typedef struct OldNew {
typedef struct OldNewMap {
OldNew *entries;
int nentries, entriessize;
-
+
int lasthit;
} OldNewMap;
@@ -227,24 +227,24 @@ static OldNewMap *oldnewmap_new(void) {
onm->nentries= 0;
onm->entriessize= 1024;
onm->entries= MEM_mallocN(sizeof(*onm->entries)*onm->entriessize, "OldNewMap.entries");
-
+
return onm;
}
static void oldnewmap_insert(OldNewMap *onm, void *oldaddr, void *newaddr, int nr) {
OldNew *entry;
-
+
if (onm->nentries==onm->entriessize) {
int osize= onm->entriessize;
OldNew *oentries= onm->entries;
-
+
onm->entriessize*= 2;
onm->entries= MEM_mallocN(sizeof(*onm->entries)*onm->entriessize, "OldNewMap.entries");
-
+
memcpy(onm->entries, oentries, sizeof(*oentries)*osize);
MEM_freeN(oentries);
}
-
+
entry= &onm->entries[onm->nentries++];
entry->old= oldaddr;
entry->newp= newaddr;
@@ -253,22 +253,22 @@ static void oldnewmap_insert(OldNewMap *onm, void *oldaddr, void *newaddr, int n
static void *oldnewmap_lookup_and_inc(OldNewMap *onm, void *addr) {
int i;
-
+
if (onm->lasthit<onm->nentries-1) {
OldNew *entry= &onm->entries[++onm->lasthit];
-
+
if (entry->old==addr) {
entry->nr++;
return entry->newp;
}
}
-
+
for (i=0; i<onm->nentries; i++) {
OldNew *entry= &onm->entries[i];
-
+
if (entry->old==addr) {
onm->lasthit= i;
-
+
entry->nr++;
return entry->newp;
}
@@ -279,30 +279,30 @@ static void *oldnewmap_lookup_and_inc(OldNewMap *onm, void *addr) {
static void *oldnewmap_liblookup_and_inc(OldNewMap *onm, void *addr, void *lib) {
int i;
-
+
if (onm->lasthit<onm->nentries-1) {
OldNew *entry= &onm->entries[++onm->lasthit];
-
+
if (entry->old==addr) {
ID *id= entry->newp;
-
+
if (id && (!lib || id->lib)) {
entry->nr++;
-
+
return entry->newp;
}
}
}
-
+
for (i=0; i<onm->nentries; i++) {
OldNew *entry= &onm->entries[i];
-
+
if (entry->old==addr) {
ID *id= entry->newp;
-
+
if (id && (!lib || id->lib)) {
entry->nr++;
-
+
return entry->newp;
}
}
@@ -313,30 +313,30 @@ static void *oldnewmap_liblookup_and_inc(OldNewMap *onm, void *addr, void *lib)
static void *oldnewmap_typelookup_and_inc(OldNewMap *onm, void *addr, short type) {
int i;
-
+
if (onm->lasthit<onm->nentries-1) {
OldNew *entry= &onm->entries[++onm->lasthit];
-
+
if (entry->old==addr) {
ID *id= entry->newp;
-
+
if (id && (GS(id->name) == type)) {
entry->nr++;
-
+
return entry->newp;
}
}
}
-
+
for (i=0; i<onm->nentries; i++) {
OldNew *entry= &onm->entries[i];
-
+
if (entry->old==addr) {
ID *id= entry->newp;
-
+
if (id && (GS(id->name) == type)) {
entry->nr++;
-
+
return entry->newp;
}
}
@@ -347,7 +347,7 @@ static void *oldnewmap_typelookup_and_inc(OldNewMap *onm, void *addr, short type
static void oldnewmap_free_unused(OldNewMap *onm) {
int i;
-
+
for (i=0; i<onm->nentries; i++) {
OldNew *entry= &onm->entries[i];
if (entry->nr==0) {
@@ -377,7 +377,7 @@ static void add_main_to_main(Main *mainvar, Main *from)
{
ListBase *lbarray[100], *fromarray[100]; // define in library.c too
int a;
-
+
a= set_listbasepointers(mainvar, lbarray);
a= set_listbasepointers(from, fromarray);
while(a--) {
@@ -393,7 +393,7 @@ void blo_join_main(ListBase *mainlist)
add_main_to_main(mainl, tojoin);
BLI_remlink(mainlist, tojoin);
MEM_freeN(tojoin);
- }
+ }
}
static void split_libdata(ListBase *lb, Main *first)
@@ -401,7 +401,7 @@ static void split_libdata(ListBase *lb, Main *first)
ListBase *lbn;
ID *id, *idnext;
Main *mainvar;
-
+
id= lb->first;
while(id) {
idnext= id->next;
@@ -428,14 +428,14 @@ void blo_split_main(ListBase *mainlist)
ListBase *lbarray[30];
Library *lib;
int i;
-
+
for (lib= mainl->library.first; lib; lib= lib->id.next) {
Main *libmain= MEM_callocN(sizeof(*libmain), "libmain");
libmain->curlib= lib;
BLI_addtail(mainlist, libmain);
}
-
+
i= set_listbasepointers(mainl, lbarray);
while(i--)
split_libdata(lbarray[i], mainl->next);
@@ -445,7 +445,7 @@ static Main *blo_find_main(ListBase *mainlist, char *name)
{
Main *m;
Library *lib;
-
+
for (m= mainlist->first; m; m= m->next) {
char *libname= (m->curlib)?m->curlib->name:m->name;
@@ -455,11 +455,11 @@ static Main *blo_find_main(ListBase *mainlist, char *name)
m= MEM_callocN(sizeof(*m), "find_main");
BLI_addtail(mainlist, m);
-
+
lib= alloc_libblock(&m->library, ID_LI, "lib");
strcpy(lib->name, name);
m->curlib= lib;
-
+
return m;
}
@@ -503,18 +503,18 @@ static void bh4_from_bh8(BHead *bhead, BHead8 *bhead8, int do_endian_swap)
bhead4->len= bhead8->len;
if (bhead4->code != ENDB) {
-
+
// why is this here ??
if (do_endian_swap) {
SWITCH_LONGINT(bhead8->old);
}
-
+
/* this patch is to avoid a long long being read from not-eight aligned positions
is necessary on SGI with -n32 compiling (no, is necessary on
any modern 64bit architecture) */
memcpy(&old, &bhead8->old, 8);
bhead4->old = (int) (old >> 3);
-
+
bhead4->SDNAnr= bhead8->SDNAnr;
bhead4->nr= bhead8->nr;
}
@@ -527,7 +527,7 @@ static void bh8_from_bh4(BHead *bhead, BHead4 *bhead4)
bhead8->code= bhead4->code;
bhead8->len= bhead4->len;
- if (bhead8->code != ENDB) {
+ if (bhead8->code != ENDB) {
bhead8->old= bhead4->old;
bhead8->SDNAnr= bhead4->SDNAnr;
bhead8->nr= bhead4->nr;
@@ -551,16 +551,16 @@ static BHeadN *get_bhead(FileData *fd)
// As usual 'ENDB' (the last *partial* bhead of the file)
// needs some special handling. We don't want to EOF just yet.
-
+
if (fd->flags & FD_FLAGS_FILE_POINTSIZE_IS_4) {
bhead4.code = DATA;
readsize = fd->read(fd, &bhead4, sizeof(bhead4));
-
- if (readsize == sizeof(bhead4) || bhead4.code == ENDB) {
+
+ if (readsize == sizeof(bhead4) || bhead4.code == ENDB) {
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
switch_endian_bh4(&bhead4);
}
-
+
if (fd->flags & FD_FLAGS_POINTSIZE_DIFFERS) {
bh8_from_bh4(&bhead, &bhead4);
} else {
@@ -572,12 +572,12 @@ static BHeadN *get_bhead(FileData *fd)
} else {
bhead8.code = DATA;
readsize = fd->read(fd, &bhead8, sizeof(bhead8));
-
+
if (readsize == sizeof(bhead8) || bhead8.code == ENDB) {
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
switch_endian_bh8(&bhead8);
}
-
+
if (fd->flags & FD_FLAGS_POINTSIZE_DIFFERS) {
bh4_from_bh8(&bhead, &bhead8, (fd->flags & FD_FLAGS_SWITCH_ENDIAN));
} else {
@@ -587,7 +587,7 @@ static BHeadN *get_bhead(FileData *fd)
fd->eof = 1;
}
}
-
+
// bhead now contains the (converted) bhead structure. Now read
// the associated data and put everything in a BHeadN (creative naming !)
@@ -596,9 +596,9 @@ static BHeadN *get_bhead(FileData *fd)
if (new_bhead) {
new_bhead->next = new_bhead->prev = 0;
new_bhead->bhead = bhead;
-
+
readsize = fd->read(fd, new_bhead + 1, bhead.len);
-
+
if (readsize != bhead.len) {
fd->eof = 1;
MEM_freeN(new_bhead);
@@ -609,14 +609,14 @@ static BHeadN *get_bhead(FileData *fd)
}
}
}
-
- // We've read a new block. Now add it to the list
+
+ // We've read a new block. Now add it to the list
// of blocks.
if (new_bhead) {
BLI_addtail(&fd->listbase, new_bhead);
}
-
+
return(new_bhead);
}
@@ -624,19 +624,19 @@ BHead *blo_firstbhead(FileData *fd)
{
BHeadN *new_bhead;
BHead *bhead = 0;
-
+
// Rewind the file
// Read in a new block if necessary
-
+
new_bhead = fd->listbase.first;
if (new_bhead == 0) {
new_bhead = get_bhead(fd);
}
-
+
if (new_bhead) {
bhead = &new_bhead->bhead;
}
-
+
return(bhead);
}
@@ -644,7 +644,7 @@ BHead *blo_prevbhead(FileData *fd, BHead *thisblock)
{
BHeadN *bheadn= (BHeadN *) (((char *) thisblock) - (int) (&((BHeadN*)0)->bhead));
BHeadN *prev= bheadn->prev;
-
+
return prev?&prev->bhead:NULL;
}
@@ -678,16 +678,16 @@ static void decode_blender_header(FileData *fd)
{
char header[SIZEOFBLENDERHEADER], num[4];
int readsize;
-
+
// read in the header data
readsize = fd->read(fd, header, sizeof(header));
if (readsize == sizeof(header)) {
if(strncmp(header, "BLENDER", 7) == 0) {
int remove_this_endian_test= 1;
-
+
fd->flags |= FD_FLAGS_FILE_OK;
-
+
// what size are pointers in the file ?
if(header[7]=='_') {
fd->flags |= FD_FLAGS_FILE_POINTSIZE_IS_4;
@@ -699,13 +699,13 @@ static void decode_blender_header(FileData *fd)
fd->flags |= FD_FLAGS_POINTSIZE_DIFFERS;
}
}
-
+
// is the file saved in a different endian
// than we need ?
if (((((char*)&remove_this_endian_test)[0]==1)?L_ENDIAN:B_ENDIAN) != ((header[8]=='v')?L_ENDIAN:B_ENDIAN)) {
fd->flags |= FD_FLAGS_SWITCH_ENDIAN;
}
-
+
// get the version number
memcpy(num, header+9, 3);
@@ -718,33 +718,33 @@ static void decode_blender_header(FileData *fd)
static int read_file_dna(FileData *fd)
{
BHead *bhead;
-
+
for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead)) {
if (bhead->code==DNA1) {
int do_endian_swap= (fd->flags&FD_FLAGS_SWITCH_ENDIAN)?1:0;
-
+
fd->filesdna= dna_sdna_from_data(&bhead[1], bhead->len, do_endian_swap);
if (fd->filesdna)
fd->compflags= dna_get_structDNA_compareflags(fd->filesdna, fd->memsdna);
-
+
return 1;
} else if (bhead->code==ENDB)
break;
}
-
+
return 0;
}
static int fd_read_from_file(FileData *filedata, void *buffer, int size)
{
int readsize = read(filedata->filedes, buffer, size);
-
+
if (readsize < 0) {
readsize = EOF;
} else {
filedata->seek += readsize;
}
- return (readsize);
+ return (readsize);
}
static int fd_read_from_memory(FileData *filedata, void *buffer, int size)
@@ -763,15 +763,15 @@ static FileData *filedata_new(void)
extern char DNAstr[]; /* DNA.c */
extern int DNAlen;
FileData *fd = MEM_callocN(sizeof(*fd), "FileData");
-
- fd->filedes = -1;
-
+
+ fd->filedes = -1;
+
/* XXX, this doesn't need to be done all the time,
* but it keeps us reentrant, remove once we have
* a lib that provides a nice lock. - zr
*/
fd->memsdna = dna_sdna_from_data(DNAstr, DNAlen, 0);
-
+
fd->datamap = oldnewmap_new();
fd->globmap = oldnewmap_new();
fd->libmap = oldnewmap_new();
@@ -782,7 +782,7 @@ static FileData *filedata_new(void)
FileData *blo_openblenderfile(char *name)
{
int file= open(name, O_BINARY|O_RDONLY);
-
+
if (file == -1) {
return NULL;
} else {
@@ -790,9 +790,9 @@ FileData *blo_openblenderfile(char *name)
fd->filedes = file;
fd->buffersize = BLI_filesize(file);
fd->read = fd_read_from_file;
-
+
decode_blender_header(fd);
-
+
if (fd->flags & FD_FLAGS_FILE_OK) {
if (!read_file_dna(fd)) {
blo_freefiledata(fd);
@@ -817,9 +817,9 @@ FileData *blo_openblendermemory(void *mem, int memsize)
fd->buffersize= memsize;
fd->read= fd_read_from_memory;
fd->flags|= FD_FLAGS_NOT_MY_BUFFER;
-
+
decode_blender_header(fd);
-
+
if (fd->flags & FD_FLAGS_FILE_OK) {
if (!read_file_dna(fd)) {
blo_freefiledata(fd);
@@ -829,7 +829,7 @@ FileData *blo_openblendermemory(void *mem, int memsize)
blo_freefiledata(fd);
fd= NULL;
}
-
+
return fd;
}
}
@@ -845,7 +845,7 @@ void blo_freefiledata(FileData *fd)
MEM_freeN(fd->buffer);
fd->buffer = 0;
}
-
+
// Free all BHeadN data blocks
BLI_freelistN(&fd->listbase);
@@ -862,7 +862,7 @@ void blo_freefiledata(FileData *fd)
oldnewmap_free(fd->globmap);
if (fd->libmap && !(fd->flags & FD_FLAGS_NOT_MY_LIBMAP))
oldnewmap_free(fd->libmap);
-
+
MEM_freeN(fd);
}
}
@@ -894,11 +894,11 @@ static void *newlibadr(FileData *fd, void *lib, void *adr) /* only lib data */
static void *newlibadr_us_type(FileData *fd, short type, void *adr) /* only Lib data */
{
ID *id= oldnewmap_typelookup_and_inc(fd->libmap, adr, type);
-
+
if (id) {
id->us++;
}
-
+
return id;
}
@@ -909,16 +909,16 @@ static void *newlibadr_us(FileData *fd, void *lib, void *adr) /* increases user
if(id) {
id->us++;
}
-
+
return id;
}
static void change_libadr(FileData *fd, void *old, void *new)
{
int i;
-
+
/* changed one thing here, the old change_libadr
- * only remapped addresses that had an id->lib,
+ * only remapped addresses that had an id->lib,
* but that doesn't make sense to me... its an
* old pointer, period, it needs to be remapped. - zr
*/
@@ -926,31 +926,31 @@ static void change_libadr(FileData *fd, void *old, void *new)
/*
* Ton seemed to think it was necessary to look
* through all entries, and not return after finding
- * a match, leaving this cryptic comment,
+ * a match, leaving this cryptic comment,
* // no return, maybe there can be more?
- *
+ *
* That doesn't make sense to me either but I am
* too scared to remove it... it only would make
* sense if two distinct old address map to the
* same new address - obviously that shouldn't happen
* because memory addresses are unique.
- *
+ *
* The only case it might happen is when two distinct
* libraries are mapped using the same table... this
- * won't work to start with... At some point this
- * all needs to be made sense of and made understandable,
+ * won't work to start with... At some point this
+ * all needs to be made sense of and made understandable,
* but I'm afraid I don't have time now. -zr
- *
+ *
*/
/* the code is nasty, and needs a lot of energy to get into full understanding
again... i now translate dutch comments, maybe that gives me more insight!
But i guess it has to do with the assumption that 2 addresses can be allocated
in different sessions, and therefore be the same... like the remark in the top
of this c file (ton) */
-
+
for (i=0; i<fd->libmap->nentries; i++) {
OldNew *entry= &fd->libmap->entries[i];
-
+
if (old==entry->newp) {
entry->newp= new;
break;
@@ -966,14 +966,14 @@ static void switch_endian_structs(struct SDNA *filesdna, BHead *bhead)
{
int blocksize, nblocks;
char *data;
-
+
data= (char *)(bhead+1); /* BHEAD+DATA dependancy */
blocksize= filesdna->typelens[ filesdna->structs[bhead->SDNAnr][0] ];
nblocks= bhead->nr;
while(nblocks--) {
dna_switch_endian_struct(filesdna, bhead->SDNAnr, data);
-
+
data+= blocksize;
}
}
@@ -981,11 +981,11 @@ static void switch_endian_structs(struct SDNA *filesdna, BHead *bhead)
static void *read_struct(FileData *fd, BHead *bh, char *blockname)
{
void *temp= NULL;
-
+
if (bh->len) {
if (bh->SDNAnr && (fd->flags & FD_FLAGS_SWITCH_ENDIAN))
switch_endian_structs(fd->filesdna, bh);
-
+
if (fd->compflags[bh->SDNAnr]) { /* flag==0: doesn't exist anymore */
if(fd->compflags[bh->SDNAnr]==2) {
temp= dna_reconstruct(fd->memsdna, fd->filesdna, fd->compflags, bh->SDNAnr, bh->nr, (bh+1));
@@ -995,14 +995,14 @@ static void *read_struct(FileData *fd, BHead *bh, char *blockname)
}
}
}
-
- return temp;
+
+ return temp;
}
static void link_list(FileData *fd, ListBase *lb) /* only direct data */
{
Link *ln, *prev;
-
+
if(lb->first==0) return;
lb->first= newdataadr(fd, lb->first);
@@ -1021,15 +1021,15 @@ static void link_glob_list(FileData *fd, ListBase *lb) /* for glob data */
{
Link *ln, *prev;
void *poin;
-
+
if(lb->first==0) return;
-
+
poin= newdataadr(fd, lb->first);
if(lb->first) {
oldnewmap_insert(fd->globmap, lb->first, poin, 0);
}
lb->first= poin;
-
+
ln= lb->first;
prev= 0;
while(ln) {
@@ -1060,13 +1060,13 @@ static void test_pointer_array(FileData *fd, void **mat)
*/
if(*mat) {
len= MEM_allocN_len(*mat)/fd->filesdna->pointerlen;
-
+
if(fd->filesdna->pointerlen==8 && fd->memsdna->pointerlen==4) {
ipoin=imat= MEM_mallocN( len*4, "newmatar");
lpoin= *mat;
while(len-- > 0) {
- if((fd->flags & FD_FLAGS_SWITCH_ENDIAN))
+ if((fd->flags & FD_FLAGS_SWITCH_ENDIAN))
SWITCH_LONGINT(*lpoin);
*ipoin= (int) ((*lpoin) >> 3);
ipoin++;
@@ -1075,7 +1075,7 @@ static void test_pointer_array(FileData *fd, void **mat)
MEM_freeN(*mat);
*mat= imat;
}
-
+
if(fd->filesdna->pointerlen==4 && fd->memsdna->pointerlen==8) {
lpoin=lmat= MEM_mallocN( len*8, "newmatar");
ipoin= *mat;
@@ -1096,11 +1096,11 @@ static void test_pointer_array(FileData *fd, void **mat)
static PackedFile *direct_link_packedfile(FileData *fd, PackedFile *oldpf)
{
PackedFile *pf= newdataadr(fd, oldpf);
-
+
if (pf) {
pf->data= newdataadr(fd, pf->data);
}
-
+
return pf;
}
@@ -1113,16 +1113,16 @@ static void lib_link_scriptlink(FileData *fd, ID *id, ScriptLink *slink)
for(i=0; i<slink->totscript; i++) {
slink->scripts[i]= newlibadr(fd, id->lib, slink->scripts[i]);
}
-}
+}
static void direct_link_scriptlink(FileData *fd, ScriptLink *slink)
{
- slink->scripts= newdataadr(fd, slink->scripts);
- slink->flag= newdataadr(fd, slink->flag);
+ slink->scripts= newdataadr(fd, slink->scripts);
+ slink->flag= newdataadr(fd, slink->flag);
if(fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
int a;
-
+
for(a=0; a<slink->totscript; a++) {
SWITCH_SHORT(slink->flag[a]);
}
@@ -1136,13 +1136,13 @@ static void lib_link_ika(FileData *fd, Main *main)
Ika *ika;
int a;
Deform *def;
-
+
ika= main->ika.first;
while(ika) {
if(ika->id.flag & LIB_NEEDLINK) {
-
+
ika->parent= newlibadr(fd, ika->id.lib, ika->parent);
-
+
a= ika->totdef;
def= ika->def;
while(a--) {
@@ -1195,7 +1195,7 @@ static void lib_link_constraints(FileData *fd, ID *id, ListBase *conlist)
if(con->data==NULL) {
con->type= CONSTRAINT_TYPE_NULL;
}
-
+
switch (con->type) {
case CONSTRAINT_TYPE_ACTION:
{
@@ -1314,7 +1314,7 @@ static void lib_link_armature(FileData *fd, Main *main)
for (bone=arm->bonebase.first; bone; bone=bone->next) {
lib_link_bone(fd, &arm->id, bone);
}
-
+
arm= arm->id.next;
}
}
@@ -1323,17 +1323,17 @@ static void lib_link_action(FileData *fd, Main *main)
{
bAction *act;
bActionChannel *chan;
-
+
act= main->action.first;
while(act) {
if(act->id.flag & LIB_NEEDLINK) {
act->id.flag -= LIB_NEEDLINK;
-
+
for (chan=act->chanbase.first; chan; chan=chan->next) {
chan->ipo= newlibadr_us(fd, act->id.lib, chan->ipo);
lib_link_constraint_channels(fd, &act->id, &chan->constraintChannels);
}
-
+
}
act= act->id.next;
}
@@ -1358,7 +1358,7 @@ static void direct_link_action(FileData *fd, bAction *act)
bActionChannel *achan;
link_list(fd, &act->chanbase);
-
+
for (achan = act->chanbase.first; achan; achan=achan->next)
link_list(fd, &achan->constraintChannels);
@@ -1366,7 +1366,7 @@ static void direct_link_action(FileData *fd, bAction *act)
static void direct_link_armature(FileData *fd, bArmature *arm)
{
- Bone *bone;
+ Bone *bone;
link_list(fd, &arm->bonebase);
@@ -1382,15 +1382,15 @@ static void direct_link_armature(FileData *fd, bArmature *arm)
static void lib_link_camera(FileData *fd, Main *main)
{
Camera *ca;
-
+
ca= main->camera.first;
while(ca) {
if(ca->id.flag & LIB_NEEDLINK) {
-
+
ca->ipo= newlibadr_us(fd, ca->id.lib, ca->ipo);
lib_link_scriptlink(fd, &ca->id, &ca->scriptlink);
-
+
ca->id.flag -= LIB_NEEDLINK;
}
ca= ca->id.next;
@@ -1402,20 +1402,20 @@ static void direct_link_camera(FileData *fd, Camera *ca)
direct_link_scriptlink(fd, &ca->scriptlink);
}
-
+
/* ************ READ LATTICE ***************** */
static void lib_link_latt(FileData *fd, Main *main)
{
Lattice *lt;
-
+
lt= main->latt.first;
while(lt) {
if(lt->id.flag & LIB_NEEDLINK) {
-
+
lt->ipo= newlibadr_us(fd, lt->id.lib, lt->ipo);
lt->key= newlibadr_us(fd, lt->id.lib, lt->key);
-
+
lt->id.flag -= LIB_NEEDLINK;
}
lt= lt->id.next;
@@ -1434,7 +1434,7 @@ static void lib_link_lamp(FileData *fd, Main *main)
Lamp *la;
MTex *mtex;
int a;
-
+
la= main->lamp.first;
while(la) {
if(la->id.flag & LIB_NEEDLINK) {
@@ -1446,11 +1446,11 @@ static void lib_link_lamp(FileData *fd, Main *main)
mtex->object= newlibadr(fd, la->id.lib, mtex->object);
}
}
-
+
la->ipo= newlibadr_us(fd, la->id.lib, la->ipo);
-
+
lib_link_scriptlink(fd, &la->id, &la->scriptlink);
-
+
la->id.flag -= LIB_NEEDLINK;
}
la= la->id.next;
@@ -1462,7 +1462,7 @@ static void direct_link_lamp(FileData *fd, Lamp *la)
int a;
direct_link_scriptlink(fd, &la->scriptlink);
-
+
for(a=0; a<8; a++) {
la->mtex[a]= newdataadr(fd, la->mtex[a]);
}
@@ -1473,14 +1473,14 @@ static void direct_link_lamp(FileData *fd, Lamp *la)
static void lib_link_key(FileData *fd, Main *main)
{
Key *key;
-
+
key= main->key.first;
while(key) {
if(key->id.flag & LIB_NEEDLINK) {
-
+
key->ipo= newlibadr_us(fd, key->id.lib, key->ipo);
key->from= newlibadr(fd, key->id.lib, key->from);
-
+
key->id.flag -= LIB_NEEDLINK;
}
key= key->id.next;
@@ -1491,17 +1491,17 @@ static void switch_endian_keyblock(Key *key, KeyBlock *kb)
{
int elemsize, a, b;
char *data, *poin, *cp;
-
+
elemsize= key->elemsize;
data= kb->data;
for(a=0; a<kb->totelem; a++) {
-
- cp= key->elemstr;
+
+ cp= key->elemstr;
poin= data;
-
+
while( cp[0] ) { /* cp[0]==amount */
-
+
switch(cp[1]) { /* cp[1]= type */
case IPO_FLOAT:
case IPO_BPOINT:
@@ -1515,7 +1515,7 @@ static void switch_endian_keyblock(Key *key, KeyBlock *kb)
}
cp+= 2;
-
+
}
data+= elemsize;
}
@@ -1524,19 +1524,19 @@ static void switch_endian_keyblock(Key *key, KeyBlock *kb)
static void direct_link_key(FileData *fd, Key *key)
{
KeyBlock *kb;
-
+
link_list(fd, &(key->block));
-
+
key->refkey= newdataadr(fd, key->refkey);
-
+
kb= key->block.first;
while(kb) {
-
+
kb->data= newdataadr(fd, kb->data);
-
+
if(fd->flags & FD_FLAGS_SWITCH_ENDIAN)
switch_endian_keyblock(key, kb);
-
+
kb= kb->next;
}
}
@@ -1547,11 +1547,11 @@ static void lib_link_mball(FileData *fd, Main *main)
{
MetaBall *mb;
int a;
-
+
mb= main->mball.first;
while(mb) {
if(mb->id.flag & LIB_NEEDLINK) {
-
+
for(a=0; a<mb->totcol; a++) mb->mat[a]= newlibadr_us(fd, mb->id.lib, mb->mat[a]);
mb->ipo= newlibadr_us(fd, mb->id.lib, mb->ipo);
@@ -1568,9 +1568,9 @@ static void direct_link_mball(FileData *fd, MetaBall *mb)
test_pointer_array(fd, (void **)&mb->mat);
link_list(fd, &(mb->elems));
-
+
mb->disp.first= mb->disp.last= 0;
-
+
mb->bb= 0;
}
@@ -1581,13 +1581,13 @@ static void lib_link_world(FileData *fd, Main *main)
World *wrld;
MTex *mtex;
int a;
-
+
wrld= main->world.first;
while(wrld) {
if(wrld->id.flag & LIB_NEEDLINK) {
-
+
wrld->ipo= newlibadr_us(fd, wrld->id.lib, wrld->ipo);
-
+
for(a=0; a<8; a++) {
mtex= wrld->mtex[a];
if(mtex) {
@@ -1597,7 +1597,7 @@ static void lib_link_world(FileData *fd, Main *main)
}
lib_link_scriptlink(fd, &wrld->id, &wrld->scriptlink);
-
+
wrld->id.flag -= LIB_NEEDLINK;
}
wrld= wrld->id.next;
@@ -1609,7 +1609,7 @@ static void direct_link_world(FileData *fd, World *wrld)
int a;
direct_link_scriptlink(fd, &wrld->scriptlink);
-
+
for(a=0; a<8; a++) {
wrld->mtex[a]= newdataadr(fd, wrld->mtex[a]);
}
@@ -1621,11 +1621,11 @@ static void direct_link_world(FileData *fd, World *wrld)
static void lib_link_ipo(FileData *fd, Main *main)
{
Ipo *ipo;
-
+
ipo= main->ipo.first;
while(ipo) {
if(ipo->id.flag & LIB_NEEDLINK) {
-
+
ipo->id.flag -= LIB_NEEDLINK;
}
ipo= ipo->id.next;
@@ -1635,7 +1635,7 @@ static void lib_link_ipo(FileData *fd, Main *main)
static void direct_link_ipo(FileData *fd, Ipo *ipo)
{
IpoCurve *icu;
-
+
link_list(fd, &(ipo->curve));
icu= ipo->curve.first;
while(icu) {
@@ -1650,14 +1650,14 @@ static void direct_link_ipo(FileData *fd, Ipo *ipo)
static void lib_link_vfont(FileData *fd, Main *main)
{
VFont *vf;
-
+
vf= main->vfont.first;
while(vf) {
if(vf->id.flag & LIB_NEEDLINK) {
vf->id.flag -= LIB_NEEDLINK;
}
vf= vf->id.next;
- }
+ }
}
static void direct_link_vfont(FileData *fd, VFont *vf)
@@ -1671,28 +1671,28 @@ static void direct_link_vfont(FileData *fd, VFont *vf)
static void lib_link_text(FileData *fd, Main *main)
{
Text *text;
-
+
text= main->text.first;
while(text) {
if(text->id.flag & LIB_NEEDLINK) {
text->id.flag -= LIB_NEEDLINK;
}
text= text->id.next;
- }
+ }
}
static void direct_link_text(FileData *fd, Text *text)
{
TextLine *ln;
-
+
text->name= newdataadr(fd, text->name);
-
+
text->undo_pos= -1;
text->undo_len= TXT_INIT_UNDO;
text->undo_buf= MEM_mallocN(text->undo_len, "undo buf");
-
+
text->compiled= NULL;
-
+
/*
if(text->flags & TXT_ISEXT) {
reopen_text(text);
@@ -1726,11 +1726,11 @@ static void direct_link_text(FileData *fd, Text *text)
static void lib_link_image(FileData *fd, Main *main)
{
Image *ima;
-
+
ima= main->image.first;
while (ima) {
if(ima->id.flag & LIB_NEEDLINK) {
-
+
ima->id.flag -= LIB_NEEDLINK;
}
ima= ima->id.next;
@@ -1744,7 +1744,7 @@ static void direct_link_image(FileData *fd, Image *ima)
memset(ima->mipmap, 0, sizeof(ima->mipmap));
ima->repbind= 0;
ima->bindcode= 0;
-
+
ima->packedfile = direct_link_packedfile(fd, ima->packedfile);
ima->ok= 1;
@@ -1757,11 +1757,11 @@ static void lib_link_curve(FileData *fd, Main *main)
{
Curve *cu;
int a;
-
+
cu= main->curve.first;
while(cu) {
if(cu->id.flag & LIB_NEEDLINK) {
-
+
for(a=0; a<cu->totcol; a++) cu->mat[a]= newlibadr_us(fd, cu->id.lib, cu->mat[a]);
cu->bevobj= newlibadr(fd, cu->id.lib, cu->bevobj);
@@ -1770,7 +1770,7 @@ static void lib_link_curve(FileData *fd, Main *main)
cu->ipo= newlibadr_us(fd, cu->id.lib, cu->ipo);
cu->key= newlibadr_us(fd, cu->id.lib, cu->key);
-
+
cu->id.flag -= LIB_NEEDLINK;
}
cu= cu->id.next;
@@ -1781,7 +1781,7 @@ static void lib_link_curve(FileData *fd, Main *main)
static void switch_endian_knots(Nurb *nu)
{
int len;
-
+
if(nu->knotsu) {
len= KNOTSU(nu);
while(len--) {
@@ -1799,7 +1799,7 @@ static void switch_endian_knots(Nurb *nu)
static void direct_link_curve(FileData *fd, Curve *cu)
{
Nurb *nu;
-
+
cu->mat= newdataadr(fd, cu->mat);
test_pointer_array(fd, (void **)&cu->mat);
cu->str= newdataadr(fd, cu->str);
@@ -1808,11 +1808,11 @@ static void direct_link_curve(FileData *fd, Curve *cu)
else {
cu->nurb.first=cu->nurb.last= 0;
}
-
+
cu->bev.first=cu->bev.last= 0;
cu->disp.first=cu->disp.last= 0;
cu->path= 0;
-
+
nu= cu->nurb.first;
while(nu) {
nu->bezt= newdataadr(fd, nu->bezt);
@@ -1823,7 +1823,7 @@ static void direct_link_curve(FileData *fd, Curve *cu)
if(fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
switch_endian_knots(nu);
}
-
+
nu= nu->next;
}
cu->bb= 0;
@@ -1834,15 +1834,15 @@ static void direct_link_curve(FileData *fd, Curve *cu)
static void lib_link_texture(FileData *fd, Main *main)
{
Tex *tex;
-
+
tex= main->tex.first;
while(tex) {
if(tex->id.flag & LIB_NEEDLINK) {
-
+
tex->ima= newlibadr_us(fd, tex->id.lib, tex->ima);
tex->ipo= newlibadr_us(fd, tex->id.lib, tex->ipo);
if(tex->env) tex->env->object= newlibadr(fd, tex->id.lib, tex->env->object);
-
+
tex->id.flag -= LIB_NEEDLINK;
}
tex= tex->id.next;
@@ -1874,13 +1874,13 @@ static void lib_link_material(FileData *fd, Main *main)
Material *ma;
MTex *mtex;
int a;
-
+
ma= main->mat.first;
while(ma) {
if(ma->id.flag & LIB_NEEDLINK) {
-
+
ma->ipo= newlibadr_us(fd, ma->id.lib, ma->ipo);
-
+
for(a=0; a<8; a++) {
mtex= ma->mtex[a];
if(mtex) {
@@ -1898,9 +1898,9 @@ static void lib_link_material(FileData *fd, Main *main)
static void direct_link_material(FileData *fd, Material *ma)
{
int a;
-
+
direct_link_scriptlink(fd, &ma->scriptlink);
-
+
for(a=0; a<8; a++) {
ma->mtex[a]= newdataadr(fd, ma->mtex[a]);
}
@@ -1912,7 +1912,7 @@ static void direct_link_material(FileData *fd, Material *ma)
static void lib_link_mesh(FileData *fd, Main *main)
{
Mesh *me;
-
+
me= main->mesh.first;
while(me) {
if(me->id.flag & LIB_NEEDLINK) {
@@ -1924,14 +1924,14 @@ static void lib_link_mesh(FileData *fd, Main *main)
me->mat[i]= newlibadr_us(fd, me->id.lib, me->mat[i]);
}
else me->totcol= 0;
-
+
me->ipo= newlibadr_us(fd, me->id.lib, me->ipo);
me->key= newlibadr_us(fd, me->id.lib, me->key);
me->texcomesh= newlibadr_us(fd, me->id.lib, me->texcomesh);
-
+
if(me->tface) {
TFace *tfaces= me->tface;
-
+
for (i=0; i<me->totface; i++) {
TFace *tf= &tfaces[i];
@@ -1980,17 +1980,17 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
mesh->tface= newdataadr(fd, mesh->tface);
mesh->mcol= newdataadr(fd, mesh->mcol);
mesh->msticky= newdataadr(fd, mesh->msticky);
-
+
mesh->disp.first= mesh->disp.last= 0;
mesh->bb= 0;
mesh->oc= 0;
mesh->dface= 0;
mesh->orco= 0;
-
+
if (mesh->tface) {
TFace *tfaces= mesh->tface;
int i;
-
+
for (i=0; i<mesh->totface; i++) {
TFace *tf= &tfaces[i];
@@ -2015,11 +2015,11 @@ static void lib_link_object(FileData *fd, Main *main)
void *poin;
int warn=0, a;
-
+
ob= main->object.first;
while(ob) {
if(ob->id.flag & LIB_NEEDLINK) {
-
+
ob->parent= newlibadr(fd, ob->id.lib, ob->parent);
ob->track= newlibadr(fd, ob->id.lib, ob->track);
ob->ipo= newlibadr_us(fd, ob->id.lib, ob->ipo);
@@ -2027,9 +2027,9 @@ static void lib_link_object(FileData *fd, Main *main)
// ob->activecon = newglobadr(fd, ob->activecon);
- poin= ob->data;
+ poin= ob->data;
ob->data= newlibadr_us(fd, ob->id.lib, ob->data);
-
+
if(ob->data==NULL && poin!=NULL) {
ob->type= OB_EMPTY;
warn= 1;
@@ -2037,16 +2037,16 @@ static void lib_link_object(FileData *fd, Main *main)
else printf("Object %s lost data. Lib:%x\n", ob->id.name+2, (unsigned int) ob->id.lib);
}
for(a=0; a<ob->totcol; a++) ob->mat[a]= newlibadr_us(fd, ob->id.lib, ob->mat[a]);
-
+
ob->id.flag -= LIB_NEEDLINK;
/* if id.us==0 a new base will be created later on */
-
+
/* WARNING! Also check expand_object(), should reflect the stuff below. */
lib_link_pose(fd, &ob->id, ob->pose);
lib_link_constraints(fd, &ob->id, &ob->constraints);
lib_link_nlastrips(fd, &ob->id, &ob->nlastrips);
lib_link_constraint_channels(fd, &ob->id, &ob->constraintChannels);
-
+
sens= ob->sensors.first;
while(sens) {
@@ -2064,7 +2064,7 @@ static void lib_link_object(FileData *fd, Main *main)
}
sens= sens->next;
}
-
+
cont= ob->controllers.first;
while(cont) {
for(a=0; a<cont->totlinks; a++) {
@@ -2076,10 +2076,10 @@ static void lib_link_object(FileData *fd, Main *main)
}
cont->slinks= NULL;
cont->totslinks= 0;
-
+
cont= cont->next;
}
-
+
act= ob->actuators.first;
while(act) {
if(act->type==ACT_SOUND) {
@@ -2128,12 +2128,12 @@ static void lib_link_object(FileData *fd, Main *main)
}
act= act->next;
}
-
+
lib_link_scriptlink(fd, &ob->id, &ob->scriptlink);
}
ob= ob->id.next;
}
-
+
if(warn) error("WARNING IN CONSOLE");
}
@@ -2165,7 +2165,7 @@ static void direct_link_object(FileData *fd, Object *ob)
ob->pose= newdataadr(fd, ob->pose);
direct_link_pose(fd, ob->pose);
-
+
link_list(fd, &ob->defbase);
link_list(fd, &ob->nlastrips);
link_list(fd, &ob->constraintChannels);
@@ -2183,13 +2183,13 @@ static void direct_link_object(FileData *fd, Object *ob)
paf->keys= 0;
}
if(paf->type==EFF_WAVE) {
-
+
}
paf= paf->next;
}
link_list(fd, &ob->network);
-
+
link_list(fd, &ob->prop);
prop= ob->prop.first;
while(prop) {
@@ -2201,7 +2201,7 @@ static void direct_link_object(FileData *fd, Object *ob)
link_list(fd, &ob->sensors);
sens= ob->sensors.first;
while(sens) {
- sens->data= newdataadr(fd, sens->data);
+ sens->data= newdataadr(fd, sens->data);
sens->links= newdataadr(fd, sens->links);
test_pointer_array(fd, (void **)&sens->links);
sens= sens->next;
@@ -2236,7 +2236,7 @@ static void lib_link_scene(FileData *fd, Main *main)
Base *base, *next;
Editing *ed;
Sequence *seq;
-
+
sce= main->scene.first;
while(sce) {
if(sce->id.flag & LIB_NEEDLINK) {
@@ -2250,11 +2250,11 @@ static void lib_link_scene(FileData *fd, Main *main)
base= sce->base.first;
while(base) {
next= base->next;
-
+
/* base->object= newlibadr_us(fd, sce->id.lib, base->object); */
base->object= newlibadr_us_type(fd, ID_OB, base->object);
-
+
if(base->object==0) {
printf("LIB ERROR: base removed\n");
BLI_remlink(&sce->base, base);
@@ -2263,7 +2263,7 @@ static void lib_link_scene(FileData *fd, Main *main)
}
base= next;
}
-
+
ed= sce->ed;
if(ed) {
WHILE_SEQ(ed->seqbasep) {
@@ -2282,9 +2282,9 @@ static void lib_link_scene(FileData *fd, Main *main)
}
sce->id.flag -= LIB_NEEDLINK;
}
-
+
lib_link_scriptlink(fd, &sce->id, &sce->scriptlink);
-
+
sce= sce->id.next;
}
}
@@ -2307,7 +2307,7 @@ static void direct_link_scene(FileData *fd, Scene *sce)
Sequence *seq;
StripElem *se;
int a;
-
+
link_list(fd, &(sce->base));
sce->basact= newdataadr(fd, sce->basact);
@@ -2328,32 +2328,34 @@ static void direct_link_scene(FileData *fd, Scene *sce)
if(sce->ed) {
ed= sce->ed= newdataadr(fd, sce->ed);
-
+
ed->metastack.first= ed->metastack.last= 0;
-
+
/* recursive link sequences, lb will be correctly initialized */
link_recurs_seq(fd, &ed->seqbase);
-
+
ed->seqbasep= &ed->seqbase;
-
+
WHILE_SEQ(ed->seqbasep) {
seq->seq1= newdataadr(fd, seq->seq1);
seq->seq2= newdataadr(fd, seq->seq2);
seq->seq3= newdataadr(fd, seq->seq3);
/* a patch: after introduction of effects with 3 input strips */
if(seq->seq3==0) seq->seq3= seq->seq2;
-
+
seq->curelem= 0;
-
+
seq->plugin= newdataadr(fd, seq->plugin);
if(seq->plugin) open_plugin_seq(seq->plugin, seq->name+2);
-
+
+ seq->effectdata= newdataadr(fd, seq->effectdata);
+
seq->strip= newdataadr(fd, seq->strip);
if(seq->strip && seq->strip->done==0) {
seq->strip->done= 1;
-
+
/* standard: strips from effects/metas are not written, but are mallocced */
-
+
if(seq->type==SEQ_IMAGE) {
seq->strip->stripdata= newdataadr(fd, seq->strip->stripdata);
se= seq->strip->stripdata;
@@ -2367,14 +2369,14 @@ static void direct_link_scene(FileData *fd, Scene *sce)
else if(seq->type==SEQ_MOVIE) {
/* only first stripelem is in file */
se= newdataadr(fd, seq->strip->stripdata);
-
+
if(se) {
seq->strip->stripdata= MEM_callocN(seq->len*sizeof(StripElem), "stripelem");
*seq->strip->stripdata= *se;
MEM_freeN(se);
-
+
se= seq->strip->stripdata;
-
+
for(a=0; a<seq->strip->len; a++, se++) {
se->ok= 1;
se->ibuf= 0;
@@ -2385,22 +2387,22 @@ static void direct_link_scene(FileData *fd, Scene *sce)
else if(seq->type==SEQ_SOUND) {
/* only first stripelem is in file */
se= newdataadr(fd, seq->strip->stripdata);
-
+
if(se) {
seq->strip->stripdata= MEM_callocN(seq->len*sizeof(StripElem), "stripelem");
*seq->strip->stripdata= *se;
MEM_freeN(se);
-
+
se= seq->strip->stripdata;
-
+
for(a=0; a<seq->strip->len; a++, se++) {
se->ok= 2; /* why? */
se->ibuf= 0;
se->nr= a + 1;
}
}
- }
- else if(seq->len>0)
+ }
+ else if(seq->len>0)
seq->strip->stripdata= MEM_callocN(seq->len*sizeof(StripElem), "stripelem");
}
@@ -2417,25 +2419,25 @@ static void lib_link_screen(FileData *fd, Main *main)
{
bScreen *sc;
ScrArea *sa;
-
+
sc= main->screen.first;
while(sc) {
if(sc->id.flag & LIB_NEEDLINK) {
sc->id.us= 1;
sc->scene= newlibadr(fd, sc->id.lib, sc->scene);
-
+
sa= sc->areabase.first;
while(sa) {
SpaceLink *sl;
-
+
sa->full= newlibadr(fd, sc->id.lib, sa->full);
-
+
for (sl= sa->spacedata.first; sl; sl= sl->next) {
if(sl->spacetype==SPACE_VIEW3D) {
View3D *v3d= (View3D*) sl;
-
+
v3d->camera= newlibadr(fd, sc->id.lib, v3d->camera);
-
+
if(v3d->bgpic) {
v3d->bgpic->ima= newlibadr_us(fd, sc->id.lib, v3d->bgpic->ima);
v3d->bgpic->tex= newlibadr_us(fd, sc->id.lib, v3d->bgpic->tex);
@@ -2460,7 +2462,7 @@ static void lib_link_screen(FileData *fd, Main *main)
}
else if(sl->spacetype==SPACE_FILE) {
SpaceFile *sfile= (SpaceFile *)sl;
-
+
sfile->filelist= 0;
sfile->libfiledata= 0;
sfile->returnfunc= 0;
@@ -2474,7 +2476,7 @@ static void lib_link_screen(FileData *fd, Main *main)
}
else if(sl->spacetype==SPACE_IMAGE) {
SpaceImage *sima= (SpaceImage *)sl;
-
+
sima->image= newlibadr_us(fd, sc->id.lib, sima->image);
}
else if(sl->spacetype==SPACE_NLA){
@@ -2482,7 +2484,7 @@ static void lib_link_screen(FileData *fd, Main *main)
}
else if(sl->spacetype==SPACE_TEXT) {
SpaceText *st= (SpaceText *)sl;
-
+
st->text= newlibadr(fd, sc->id.lib, st->text);
}
@@ -2494,7 +2496,7 @@ static void lib_link_screen(FileData *fd, Main *main)
else if(sl->spacetype==SPACE_OOPS) {
SpaceOops *so= (SpaceOops *)sl;
Oops *oops;
-
+
oops= so->oops.first;
while(oops) {
oops->id= newlibadr(fd, 0, oops->id);
@@ -2504,7 +2506,7 @@ static void lib_link_screen(FileData *fd, Main *main)
}
else if(sl->spacetype==SPACE_SOUND) {
SpaceSound *ssound= (SpaceSound *)sl;
-
+
ssound->sound= newlibadr_us(fd, sc->id.lib, ssound->sound);
}
}
@@ -2538,7 +2540,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
se->v1= se->v2;
se->v2= sv;
}
-
+
if(se->v1==NULL) {
printf("error reading screen... file corrupt\n");
se->v1= se->v2;
@@ -2551,10 +2553,10 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
while(sa) {
Panel *pa;
SpaceLink *sl;
-
+
link_list(fd, &(sa->spacedata));
link_list(fd, &(sa->panels));
-
+
for(pa= sa->panels.first; pa; pa=pa->next) {
pa->paneltab= newdataadr(fd, pa->paneltab);
pa->active= 0;
@@ -2576,19 +2578,19 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
}
}
}
-
+
sa->v1= newdataadr(fd, sa->v1);
sa->v2= newdataadr(fd, sa->v2);
sa->v3= newdataadr(fd, sa->v3);
sa->v4= newdataadr(fd, sa->v4);
-
+
sa->win= sa->headwin= 0;
sa->uiblocks.first= sa->uiblocks.last= NULL;
-
+
sa= sa->next;
}
-}
+}
/* ********** READ LIBRARY *************** */
@@ -2596,7 +2598,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
static void direct_link_library(FileData *fd, Library *lib)
{
Main *newmain;
-
+
/* new main */
newmain= MEM_callocN(sizeof(Main), "directlink");
BLI_addtail(&fd->mainlist, newmain);
@@ -2606,7 +2608,7 @@ static void direct_link_library(FileData *fd, Library *lib)
static void lib_link_library(FileData *fd, Main *main)
{
Library *lib;
-
+
lib= main->library.first;
while(lib) {
lib->id.us= 1;
@@ -2628,7 +2630,7 @@ static void direct_link_sound(FileData *fd, bSound *sound)
static void lib_link_sound(FileData *fd, Main *main)
{
bSound *sound;
-
+
sound= main->sound.first;
while(sound) {
if(sound->id.flag & LIB_NEEDLINK) {
@@ -2645,11 +2647,11 @@ static void direct_link_group(FileData *fd, Group *group)
{
GroupObject *go;
ObjectKey *ok;
-
+
link_list(fd, &group->gobject);
link_list(fd, &group->gkey);
group->active= newdataadr(fd, group->active);
-
+
go= group->gobject.first;
while(go) {
link_list(fd, &go->okey);
@@ -2667,19 +2669,19 @@ static void lib_link_group(FileData *fd, Main *main)
Group *group= main->group.first;
GroupObject *go;
ObjectKey *ok;
-
+
while(group) {
if(group->id.flag & LIB_NEEDLINK) {
group->id.flag -= LIB_NEEDLINK;
-
+
go= group->gobject.first;
while(go) {
go->ob= newlibadr(fd, group->id.lib, go->ob);
ok= go->okey.first;
while(ok) {
ok->parent= newlibadr(fd, group->id.lib, ok->parent);
- ok->track= newlibadr(fd, group->id.lib, ok->track);
- ok->ipo= newlibadr_us(fd, group->id.lib, ok->ipo);
+ ok->track= newlibadr(fd, group->id.lib, ok->track);
+ ok->ipo= newlibadr_us(fd, group->id.lib, ok->ipo);
ok= ok->next;
}
go= go->next;
@@ -2696,43 +2698,43 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID
/* this routine reads a libblock and its direct data. Use link functions
* to connect it all
*/
-
+
ID *id;
ListBase *lb;
char *str = NULL;
-
+
if(bhead->code==ID_ID) {
ID *linkedid= (ID *)(bhead + 1); /* BHEAD+DATA dependancy */
-
+
lb= wich_libbase(main, GS(linkedid->name));
}
else {
lb= wich_libbase(main, bhead->code);
}
-
+
/* read libblock */
id = read_struct(fd, bhead, "lib block");
if (id_r)
*id_r= id;
if (!id)
return blo_nextbhead(fd, bhead);
-
+
oldnewmap_insert(fd->libmap, bhead->old, id, 1);
BLI_addtail(lb, id);
-
+
/* clear first 8 bits */
id->flag= (id->flag & 0xFF00) | flag | LIB_NEEDLINK;
id->lib= main->curlib;
if(id->flag & LIB_FAKEUSER) id->us= 1;
else id->us= 0;
-
+
/* this case cannot be direct_linked: it's just the ID part */
if(bhead->code==ID_ID) {
return blo_nextbhead(fd, bhead);
}
-
+
bhead = blo_nextbhead(fd, bhead);
-
+
switch( GS(id->name) ) {
case ID_OB: str= "ID_OB"; break;
case ID_SCE: str= "ID_SCE"; break;
@@ -2768,14 +2770,14 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID
/* read all data */
while(bhead && bhead->code==DATA) {
void *data= read_struct(fd, bhead, str);
-
+
if (data) {
oldnewmap_insert(fd->datamap, bhead->old, data, 0);
}
-
+
bhead = blo_nextbhead(fd, bhead);
}
-
+
/* init pointers direct data */
switch( GS(id->name) ) {
case ID_SCR:
@@ -2848,16 +2850,16 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID
direct_link_action(fd, (bAction*)id);
break;
}
-
+
oldnewmap_free_unused(fd->datamap);
oldnewmap_clear(fd->datamap);
-
+
return (bhead);
}
static void link_global(FileData *fd, BlendFileData *bfd, FileGlobal *fg)
{
- // this is nonsense... will get rid of it once (ton)
+ // this is nonsense... will get rid of it once (ton)
bfd->winpos= fg->winpos;
bfd->fileflags= fg->fileflags;
bfd->displaymode= fg->displaymode;
@@ -2870,9 +2872,9 @@ static void vcol_to_fcol(Mesh *me)
MFace *mface;
unsigned int *mcol, *mcoln, *mcolmain;
int a;
-
+
if(me->totface==0 || me->mcol==0) return;
-
+
mcoln= mcolmain= MEM_mallocN(4*sizeof(int)*me->totface, "mcoln");
mcol = (unsigned int *)me->mcol;
mface= me->mface;
@@ -2883,7 +2885,7 @@ static void vcol_to_fcol(Mesh *me)
mcoln[3]= mcol[mface->v4];
mcoln+= 4;
}
-
+
MEM_freeN(me->mcol);
me->mcol= (MCol *)mcolmain;
}
@@ -2910,13 +2912,13 @@ static int map_223_keybd_code_to_224_keybd_code(int code)
static void do_versions(Main *main)
{
/* watch it: pointers from libdata have not been converted */
-
+
if(main->versionfile == 100) {
/* tex->extend and tex->imageflag have changed: */
Tex *tex = main->tex.first;
while(tex) {
if(tex->id.flag & LIB_NEEDLINK) {
-
+
if(tex->extend==0) {
if(tex->xrepeat || tex->yrepeat) tex->extend= TEX_REPEAT;
else {
@@ -2924,7 +2926,7 @@ static void do_versions(Main *main)
tex->xrepeat= tex->yrepeat= 1;
}
}
-
+
if(tex->imaflag & TEX_ANIM5) {
tex->imaflag |= TEX_MORKPATCH;
tex->imaflag |= TEX_ANTIALI;
@@ -2991,7 +2993,7 @@ static void do_versions(Main *main)
if(me->mcol) vcol_to_fcol(me);
me= me->id.next;
}
-
+
}
if(main->versionfile <= 107) {
Object *ob;
@@ -2999,14 +3001,14 @@ static void do_versions(Main *main)
while(sce) {
sce->r.mode |= R_GAMMA;
sce= sce->id.next;
- }
+ }
ob= main->object.first;
while(ob) {
ob->ipoflag |= OB_OFFS_PARENT;
if(ob->dt==0) ob->dt= 3;
ob= ob->id.next;
}
-
+
}
if(main->versionfile <= 109) {
/* new variable: gridlines */
@@ -3048,7 +3050,7 @@ static void do_versions(Main *main)
Mesh *me= main->mesh.first;
MFace *mface;
int a_int;
-
+
/* edge drawflags changed */
while(me) {
a_int= me->totface;
@@ -3063,8 +3065,8 @@ static void do_versions(Main *main)
me= me->id.next;
}
}
-
-
+
+
if(main->versionfile <= 134) {
Tex *tex = main->tex.first;
while (tex) {
@@ -3122,10 +3124,10 @@ static void do_versions(Main *main)
Deform *def;
int nr;
char *cp;
-
+
while(ika) {
ika->xyconstraint= .5;
-
+
def= ika->def;
nr= ika->totdef;
while(nr--) {
@@ -3134,7 +3136,7 @@ static void do_versions(Main *main)
}
ika= ika->id.next;
}
-
+
while(me) {
if(me->tface) {
nr= me->totface;
@@ -3156,14 +3158,14 @@ static void do_versions(Main *main)
if(cp[1]>126) cp[1]= 255; else cp[1]*=2;
if(cp[2]>126) cp[2]= 255; else cp[2]*=2;
if(cp[3]>126) cp[3]= 255; else cp[3]*=2;
-
+
tface++;
}
}
me= me->id.next;
}
}
-
+
if(main->versionfile <= 169) {
Mesh *me= main->mesh.first;
while(me) {
@@ -3171,7 +3173,7 @@ static void do_versions(Main *main)
me= me->id.next;
}
}
-
+
if(main->versionfile <= 169) {
bScreen *sc= main->screen.first;
while(sc) {
@@ -3190,7 +3192,7 @@ static void do_versions(Main *main)
sc= sc->id.next;
}
}
-
+
if(main->versionfile <= 170) {
Object *ob = main->object.first;
PartEff *paf;
@@ -3204,7 +3206,7 @@ static void do_versions(Main *main)
ob = ob->id.next;
}
}
-
+
if(main->versionfile <= 171) {
bScreen *sc= main->screen.first;
while(sc) {
@@ -3226,7 +3228,7 @@ static void do_versions(Main *main)
sc= sc->id.next;
}
}
-
+
if(main->versionfile <= 173) {
int a, b;
Mesh *me= main->mesh.first;
@@ -3243,25 +3245,25 @@ static void do_versions(Main *main)
me= me->id.next;
}
}
-
+
if(main->versionfile <= 191) {
bScreen *sc= main->screen.first;
Object *ob= main->object.first;
Material *ma = main->mat.first;
-
+
/* let faces have default add factor of 0.0 */
while(ma) {
if (!(ma->mode & MA_HALO)) ma->add = 0.0;
ma = ma->id.next;
}
-
+
while(ob) {
ob->mass= 1.0f;
ob->damping= 0.1f;
- ob->quat[1]= 1.0f;
+ ob->quat[1]= 1.0f;
ob= ob->id.next;
}
-
+
while(sc) {
ScrArea *sa= sc->areabase.first;
while(sa) {
@@ -3278,7 +3280,7 @@ static void do_versions(Main *main)
sc= sc->id.next;
}
}
-
+
if(main->versionfile <= 193) {
Object *ob= main->object.first;
while(ob) {
@@ -3287,7 +3289,7 @@ static void do_versions(Main *main)
ob= ob->id.next;
}
}
-
+
if(main->versionfile <= 196) {
Mesh *me= main->mesh.first;
int a, b;
@@ -3304,7 +3306,7 @@ static void do_versions(Main *main)
me= me->id.next;
}
}
-
+
if(main->versionfile <= 200) {
Object *ob= main->object.first;
while(ob) {
@@ -3314,7 +3316,7 @@ static void do_versions(Main *main)
ob = ob->id.next;
}
}
-
+
if(main->versionfile <= 201) {
/* add-object + end-object are joined to edit-object actuator */
Object *ob = main->object.first;
@@ -3354,7 +3356,7 @@ static void do_versions(Main *main)
ob = ob->id.next;
}
}
-
+
if(main->versionfile <= 202) {
/* add-object and end-object are joined to edit-object
* actuator */
@@ -3373,7 +3375,7 @@ static void do_versions(Main *main)
ob= ob->id.next;
}
}
-
+
if(main->versionfile <= 204) {
/* patches for new physics */
Object *ob= main->object.first;
@@ -3381,7 +3383,7 @@ static void do_versions(Main *main)
bObjectActuator *oa;
bSound *sound;
while(ob) {
-
+
/* please check this for demo20 files like
* original Egypt levels etc. converted
* rotation factor of 50 is not workable */
@@ -3389,11 +3391,11 @@ static void do_versions(Main *main)
while(act) {
if(act->type==ACT_OBJECT) {
oa= act->data;
-
+
oa->forceloc[0]*= 25.0;
oa->forceloc[1]*= 25.0;
oa->forceloc[2]*= 25.0;
-
+
oa->forcerot[0]*= 10.0;
oa->forcerot[1]*= 10.0;
oa->forcerot[2]*= 10.0;
@@ -3411,7 +3413,7 @@ static void do_versions(Main *main)
sound = sound->id.next;
}
}
-
+
if(main->versionfile <= 205) {
/* patches for new physics */
Object *ob= main->object.first;
@@ -3427,7 +3429,7 @@ static void do_versions(Main *main)
ob->anisotropicFriction[0] = 1.0;
ob->anisotropicFriction[1] = 1.0;
ob->anisotropicFriction[2] = 1.0;
-
+
act= ob->actuators.first;
while(act) {
if(act->type==ACT_EDIT_OBJECT) {
@@ -3441,7 +3443,7 @@ static void do_versions(Main *main)
}
act= act->next;
}
-
+
sens= ob->sensors.first;
while (sens) {
/* Extra fields for radar sensors. */
@@ -3449,7 +3451,7 @@ static void do_versions(Main *main)
bRadarSensor *s = sens->data;
s->range = 10000.0;
}
-
+
/* Pulsing: defaults for new sensors. */
if(sens->type != SENS_ALWAYS) {
sens->pulse = 0;
@@ -3457,10 +3459,10 @@ static void do_versions(Main *main)
} else {
sens->pulse = 1;
}
-
+
/* Invert: off. */
sens->invert = 0;
-
+
/* Collision and ray: default = trigger
* on property. The material field can
* remain empty. */
@@ -3478,17 +3480,17 @@ static void do_versions(Main *main)
}
/* have to check the exact multiplier */
}
-
+
if(main->versionfile <= 210) {
Scene *sce= main->scene.first;
-
+
while(sce) {
if(sce->r.postmul== 0.0) sce->r.postmul= 1.0;
if(sce->r.postgamma== 0.0) sce->r.postgamma= 1.0;
sce= sce->id.next;
}
}
-
+
if(main->versionfile <= 211) {
/* Render setting: per scene, the applicable gamma value
* can be set. Default is 1.0, which means no
@@ -3501,14 +3503,14 @@ static void do_versions(Main *main)
sce->r.gamma = 2.0;
sce= sce->id.next;
}
-
+
/* added alpha in obcolor */
ob= main->object.first;
while(ob) {
ob->col[3]= 1.0;
ob= ob->id.next;
- }
-
+ }
+
/* added alpha in obcolor */
ob= main->object.first;
while(ob) {
@@ -3533,33 +3535,33 @@ static void do_versions(Main *main)
act= act->next;
}
ob= ob->id.next;
- }
+ }
}
-
+
if(main->versionfile <= 212) {
-
+
bSound* sound;
bProperty *prop;
Object *ob;
Mesh *me;
-
+
sound = main->sound.first;
while (sound)
{
sound->max_gain = 1.0;
sound->min_gain = 0.0;
sound->distance = 1.0;
-
+
if (sound->attenuation > 0.0)
sound->flags |= SOUND_FLAGS_3D;
else
sound->flags &= ~SOUND_FLAGS_3D;
-
+
sound = sound->id.next;
}
-
+
ob = main->object.first;
-
+
while (ob) {
prop= ob->prop.first;
while(prop) {
@@ -3567,13 +3569,13 @@ static void do_versions(Main *main)
// convert old PROP_TIME values from int to float
*((float *)&prop->data) = (float) prop->data;
}
-
+
prop= prop->next;
}
ob = ob->id.next;
}
-
- /* me->subdiv changed to reflect the actual reparametization
+
+ /* me->subdiv changed to reflect the actual reparametization
* better, and smeshes were removed - if it was a smesh make
* it a subsurf, and reset the subdiv level because subsurf
* takes a lot more work to calculate.
@@ -3582,7 +3584,7 @@ static void do_versions(Main *main)
if (me->flag&ME_SMESH) {
me->flag&= ~ME_SMESH;
me->flag|= ME_SUBSURF;
-
+
me->subdiv= 1;
} else {
if (me->subdiv<2)
@@ -3592,17 +3594,17 @@ static void do_versions(Main *main)
}
}
}
-
+
if(main->versionfile <= 220) {
Object *ob;
Mesh *me;
bArmature *arm;
-
+
ob = main->object.first;
-
+
/* adapt form factor in order to get the 'old' physics
* behaviour back...*/
-
+
while (ob) {
/* in future, distinguish between different
* object bounding shapes */
@@ -3611,24 +3613,24 @@ static void do_versions(Main *main)
* of a rotation symmetrical obj */
if (ob->inertia != 1.0) {
ob->formfactor /= ob->inertia * ob->inertia;
- }
+ }
ob = ob->id.next;
}
-
+
/* Precalculate rest position matrices for old armatures. -rvo
*/
for (arm= main->armature.first; arm; arm= arm->id.next) {
precalc_bonelist_irestmats (&arm->bonebase);
}
-
+
/* Began using alpha component of vertex colors, but
* old file vertex colors are undefined, reset them
- * to be fully opaque. -zr
+ * to be fully opaque. -zr
*/
for (me= main->mesh.first; me; me= me->id.next) {
if (me->mcol) {
int i;
-
+
for (i=0; i<me->totface*4; i++) {
MCol *mcol= &me->mcol[i];
mcol->a= 255;
@@ -3636,13 +3638,13 @@ static void do_versions(Main *main)
}
if (me->tface) {
int i, j;
-
+
for (i=0; i<me->totface; i++) {
TFace *tf= &((TFace*) me->tface)[i];
-
+
for (j=0; j<4; j++) {
char *col= (char*) &tf->col[j];
-
+
col[0]= 255;
}
}
@@ -3651,24 +3653,24 @@ static void do_versions(Main *main)
}
if(main->versionfile <= 221) {
Scene *sce= main->scene.first;
-
+
// new variables for std-alone player and runtime
while(sce) {
-
+
sce->r.xplay= 640;
sce->r.yplay= 480;
sce->r.freqplay= 60;
-
+
sce= sce->id.next;
}
-
+
}
if(main->versionfile <= 222) {
Scene *sce= main->scene.first;
-
+
// new variables for std-alone player and runtime
while(sce) {
-
+
sce->r.depth= 32;
sce= sce->id.next;
@@ -3759,8 +3761,8 @@ static void do_versions(Main *main)
}
}
}
-
- }
+
+ }
if(main->versionfile <= 225) {
World *wo;
/* Use Sumo for old games */
@@ -3780,11 +3782,11 @@ static void do_versions(Main *main)
to the new full constraint Track is painless for everyone. - theeth
*/
ob = main->object.first;
-
+
while (ob) {
ListBase *list;
list = &ob->constraints;
-
+
/* check for already existing TrackTo constraint
set their track and up flag correctly */
@@ -3803,9 +3805,9 @@ static void do_versions(Main *main)
if (ob->pose){
bConstraint *curcon;
bPoseChannel *pchan;
- for (pchan = ob->pose->chanbase.first;
+ for (pchan = ob->pose->chanbase.first;
pchan; pchan=pchan->next){
- for (curcon = pchan->constraints.first;
+ for (curcon = pchan->constraints.first;
curcon; curcon=curcon->next){
if (curcon->type == CONSTRAINT_TYPE_TRACKTO){
bTrackToConstraint *data = curcon->data;
@@ -3818,7 +3820,7 @@ static void do_versions(Main *main)
}
/* Change Ob->Track in real TrackTo constraint */
-
+
if (ob->track){
bConstraint *con;
bTrackToConstraint *data;
@@ -3832,7 +3834,7 @@ static void do_versions(Main *main)
con->flag |= CONSTRAINT_EXPAND;
con->enforce=1.0F;
con->type = CONSTRAINT_TYPE_TRACKTO;
- data = (bTrackToConstraint *)
+ data = (bTrackToConstraint *)
new_constraint_data(CONSTRAINT_TYPE_TRACKTO);
data->tar = ob->track;
@@ -3891,11 +3893,11 @@ static void do_versions(Main *main)
/* As of now, this insures that the transition from the old Track system
to the new full constraint Track is painless for everyone.*/
ob = main->object.first;
-
+
while (ob) {
ListBase *list;
list = &ob->constraints;
-
+
/* check for already existing TrackTo constraint
set their track and up flag correctly */
@@ -3914,9 +3916,9 @@ static void do_versions(Main *main)
if (ob->pose){
bConstraint *curcon;
bPoseChannel *pchan;
- for (pchan = ob->pose->chanbase.first;
+ for (pchan = ob->pose->chanbase.first;
pchan; pchan=pchan->next){
- for (curcon = pchan->constraints.first;
+ for (curcon = pchan->constraints.first;
curcon; curcon=curcon->next){
if (curcon->type == CONSTRAINT_TYPE_TRACKTO){
bTrackToConstraint *data = curcon->data;
@@ -3931,7 +3933,7 @@ static void do_versions(Main *main)
/* Change Ob->Track in real TrackTo constraint
NOT SURE IF PEOPLE WANT THIS SO I DISABLED IT
-
+
if (ob->track){
bConstraint *con;
bTrackToConstraint *data;
@@ -3945,7 +3947,7 @@ static void do_versions(Main *main)
con->flag |= CONSTRAINT_EXPAND;
con->enforce=1.0F;
con->type = CONSTRAINT_TYPE_TRACKTO;
- data = (bTrackToConstraint *)
+ data = (bTrackToConstraint *)
new_constraint_data(CONSTRAINT_TYPE_TRACKTO);
data->tar = ob->track;
@@ -3963,7 +3965,7 @@ static void do_versions(Main *main)
for (sce= main->scene.first; sce; sce= sce->id.next) {
sce->r.mode |= R_ENVMAP;
}
-
+
// convert old mainb values for new button panels
for (sc= main->screen.first; sc; sc= sc->id.next) {
ScrArea *sa;
@@ -3974,9 +3976,9 @@ static void do_versions(Main *main)
for (sl= sa->spacedata.first; sl; sl= sl->next) {
if (sl->spacetype==SPACE_BUTS) {
SpaceButs *sbuts= (SpaceButs *) sl;
-
+
sbuts->v2d.maxzoom= 1.2;
-
+
if(sbuts->mainb==BUTS_LAMP) {
sbuts->mainb= CONTEXT_SHADING;
sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_LAMP;
@@ -4025,12 +4027,12 @@ static void do_versions(Main *main)
}
}
}
- /* ton: made this 230 instead of 229,
+ /* ton: made this 230 instead of 229,
to be sure (tuho files) and this is a reliable check anyway
- nevertheless, we might need to think over a fitness (initialize)
+ nevertheless, we might need to think over a fitness (initialize)
check apart from the do_versions() */
-
- if(main->versionfile <= 230) {
+
+ if(main->versionfile <= 230) {
bScreen *sc;
// new variable blockscale, for panels in any area
@@ -4075,14 +4077,14 @@ static void do_versions(Main *main)
}
sc= sc->id.next;
}
- }
- if(main->versionfile <= 231) {
+ }
+ if(main->versionfile <= 231) {
Material *ma= main->mat.first;
bScreen *sc = main->screen.first;
Scene *sce;
Lamp *la;
World *wrld;
-
+
while(ma) {
if(ma->fresnel_tra_i==0.0) ma->fresnel_tra_i= 1.25;
if(ma->fresnel_mir_i==0.0) ma->fresnel_mir_i= 1.25;
@@ -4123,9 +4125,9 @@ static void do_versions(Main *main)
}
wrld= wrld->id.next;
}
-
+
/* new bit flags for showing/hiding grid floor and axes */
-
+
while(sc) {
ScrArea *sa= sc->areabase.first;
while(sa) {
@@ -4148,13 +4150,13 @@ static void do_versions(Main *main)
sc= sc->id.next;
}
}
- if(main->versionfile <= 232) {
+ if(main->versionfile <= 232) {
Tex *tex= main->tex.first;
World *wrld= main->world.first;
bScreen *sc;
Scene *sce;
- while(tex) {
+ while(tex) {
if((tex->flag & (TEX_CHECKER_ODD+TEX_CHECKER_EVEN))==0) {
tex->flag |= TEX_CHECKER_ODD;
}
@@ -4175,7 +4177,7 @@ static void do_versions(Main *main)
}
tex= tex->id.next;
}
-
+
while(wrld) {
if(wrld->aodist==0.0) {
wrld->aodist= 10.0;
@@ -4209,10 +4211,10 @@ static void do_versions(Main *main)
if(sce->r.ocres==0) sce->r.ocres= 64;
sce= sce->id.next;
}
-
- }
-
-
+
+ }
+
+
/* don't forget to set version number in blender.c! */
}
@@ -4239,28 +4241,28 @@ static void lib_link_all(FileData *fd, Main *main)
lib_link_armature(fd, main);
lib_link_action(fd, main);
lib_link_vfont(fd, main);
-
+
lib_link_mesh(fd, main); /* as last: tpage images with users at zero */
-
+
lib_link_library(fd, main); /* only init users */
}
static BHead *read_userdef(BlendFileData *bfd, FileData *fd, BHead *bhead)
{
Link *link;
-
+
bfd->user= read_struct(fd, bhead, "user def");
bfd->user->themes.first= bfd->user->themes.last= NULL;
-
+
bhead = blo_nextbhead(fd, bhead);
-
+
/* read all attached data */
while(bhead && bhead->code==DATA) {
link= read_struct(fd, bhead, "user def data");
BLI_addtail(&bfd->user->themes, link);
bhead = blo_nextbhead(fd, bhead);
}
-
+
return bhead;
}
@@ -4273,9 +4275,9 @@ BlendFileData *blo_read_file_internal(FileData *fd, BlendReadError *error_r)
bfd= MEM_callocN(sizeof(*bfd), "blendfiledata");
bfd->main= MEM_callocN(sizeof(*bfd->main), "main");
BLI_addtail(&fd->mainlist, bfd->main);
-
+
bfd->main->versionfile= fd->fileversion;
-
+
while(bhead) {
switch(bhead->code) {
case GLOB:
@@ -4294,7 +4296,7 @@ BlendFileData *blo_read_file_internal(FileData *fd, BlendReadError *error_r)
case ENDB:
bhead = NULL;
break;
-
+
case ID_LI:
bhead = read_libblock(fd, bfd->main, bhead, LIB_LOCAL, NULL);
break;
@@ -4305,7 +4307,7 @@ BlendFileData *blo_read_file_internal(FileData *fd, BlendReadError *error_r)
*/
bhead = read_libblock(fd, fd->mainlist.last, bhead, LIB_READ+LIB_EXTERN, NULL);
break;
-
+
default:
bhead = read_libblock(fd, bfd->main, bhead, LIB_LOCAL, NULL);
}
@@ -4315,7 +4317,7 @@ BlendFileData *blo_read_file_internal(FileData *fd, BlendReadError *error_r)
do_versions(bfd->main);
read_libraries(fd, &fd->mainlist);
blo_join_main(&fd->mainlist);
-
+
lib_link_all(fd, bfd->main);
link_global(fd, bfd, fg); /* as last */
@@ -4329,7 +4331,7 @@ BlendFileData *blo_read_file_internal(FileData *fd, BlendReadError *error_r)
bfd->curscreen->scene= bfd->curscene;
}
}
-
+
MEM_freeN(fg);
/* require all files to have an active scene
@@ -4338,11 +4340,11 @@ BlendFileData *blo_read_file_internal(FileData *fd, BlendReadError *error_r)
*/
if (!bfd->curscreen || !bfd->curscene) {
*error_r= (!bfd->curscreen)?BRE_NO_SCREEN:BRE_NO_SCENE;
-
+
BLO_blendfiledata_free(bfd);
return NULL;
}
-
+
return bfd;
}
@@ -4353,21 +4355,21 @@ static BHead *find_previous_lib(FileData *fd, BHead *bhead)
for (; bhead; bhead= blo_prevbhead(fd, bhead))
if (bhead->code==ID_LI)
break;
-
+
return bhead;
}
static BHead *find_bhead(FileData *fd, void *old)
{
BHead *bhead;
-
+
if (!old)
return NULL;
-
+
for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead))
if (bhead->old==old)
return bhead;
-
+
return NULL;
}
@@ -4375,7 +4377,7 @@ static ID *is_yet_read(Main *mainvar, BHead *bhead)
{
ListBase *lb;
ID *idtest, *id;
-
+
// BHEAD+DATA dependancy
idtest= (ID *)(bhead +1);
lb= wich_libbase(mainvar, GS(idtest->name));
@@ -4393,26 +4395,26 @@ static void expand_doit(FileData *fd, Main *mainvar, void *old)
{
BHead *bhead;
ID *id;
-
+
bhead= find_bhead(fd, old);
if(bhead) {
/* from another library? */
if(bhead->code==ID_ID) {
BHead *bheadlib= find_previous_lib(fd, bhead);
-
+
if(bheadlib) {
// BHEAD+DATA dependancy
Library *lib= (Library *)(bheadlib+1);
mainvar= blo_find_main(&fd->mainlist, lib->name);
-
+
id= is_yet_read(mainvar, bhead);
-
+
if(id==0) {
read_libblock(fd, mainvar, bhead, LIB_READ+LIB_INDIRECT, NULL);
printf("expand: other lib %s\n", lib->name);
}
else {
- oldnewmap_insert(fd->libmap, bhead->old, id, 1);
+ oldnewmap_insert(fd->libmap, bhead->old, id, 1);
printf("expand: already linked: %s lib: %s\n", id->name, lib->name);
}
}
@@ -4425,7 +4427,7 @@ static void expand_doit(FileData *fd, Main *mainvar, void *old)
read_libblock(fd, mainvar, bhead, LIB_TESTIND, NULL);
}
else {
- oldnewmap_insert(fd->libmap, bhead->old, id, 1);
+ oldnewmap_insert(fd->libmap, bhead->old, id, 1);
/* printf("expand: already read %s\n", id->name); */
}
}
@@ -4446,7 +4448,7 @@ static void expand_texture(FileData *fd, Main *mainvar, Tex *tex)
static void expand_material(FileData *fd, Main *mainvar, Material *ma)
{
int a;
-
+
for(a=0; a<8; a++) {
if(ma->mtex[a]) {
expand_doit(fd, mainvar, ma->mtex[a]->tex);
@@ -4459,7 +4461,7 @@ static void expand_material(FileData *fd, Main *mainvar, Material *ma)
static void expand_lamp(FileData *fd, Main *mainvar, Lamp *la)
{
int a;
-
+
for(a=0; a<8; a++) {
if(la->mtex[a]) {
expand_doit(fd, mainvar, la->mtex[a]->tex);
@@ -4479,7 +4481,7 @@ static void expand_lattice(FileData *fd, Main *mainvar, Lattice *lt)
static void expand_world(FileData *fd, Main *mainvar, World *wrld)
{
int a;
-
+
for(a=0; a<8; a++) {
if(wrld->mtex[a]) {
expand_doit(fd, mainvar, wrld->mtex[a]->tex);
@@ -4493,7 +4495,7 @@ static void expand_world(FileData *fd, Main *mainvar, World *wrld)
static void expand_mball(FileData *fd, Main *mainvar, MetaBall *mb)
{
int a;
-
+
for(a=0; a<mb->totcol; a++) {
expand_doit(fd, mainvar, mb->mat[a]);
}
@@ -4502,7 +4504,7 @@ static void expand_mball(FileData *fd, Main *mainvar, MetaBall *mb)
static void expand_curve(FileData *fd, Main *mainvar, Curve *cu)
{
int a;
-
+
for(a=0; a<cu->totcol; a++) {
expand_doit(fd, mainvar, cu->mat[a]);
}
@@ -4517,14 +4519,14 @@ static void expand_mesh(FileData *fd, Main *mainvar, Mesh *me)
{
int a;
TFace *tface;
-
+
for(a=0; a<me->totcol; a++) {
expand_doit(fd, mainvar, me->mat[a]);
}
-
+
expand_doit(fd, mainvar, me->key);
expand_doit(fd, mainvar, me->texcomesh);
-
+
if(me->tface) {
tface= me->tface;
a= me->totface;
@@ -4538,7 +4540,7 @@ static void expand_mesh(FileData *fd, Main *mainvar, Mesh *me)
static void expand_constraints(FileData *fd, Main *mainvar, ListBase *lb)
{
bConstraint *curcon;
-
+
for (curcon=lb->first; curcon; curcon=curcon->next) {
switch (curcon->type) {
case CONSTRAINT_TYPE_ACTION:
@@ -4601,22 +4603,22 @@ static void expand_constraints(FileData *fd, Main *mainvar, ListBase *lb)
static void expand_bones(FileData *fd, Main *mainvar, Bone *bone)
{
Bone *curBone;
-
+
// expand_constraints(fd, main, &bone->constraints);
-
+
for (curBone = bone->childbase.first; curBone; curBone=curBone->next) {
expand_bones(fd, mainvar, curBone);
}
-
+
}
static void expand_pose(FileData *fd, Main *mainvar, bPose *pose)
{
bPoseChannel *chan;
-
+
if (!pose)
return;
-
+
for (chan = pose->chanbase.first; chan; chan=chan->next) {
expand_constraints(fd, mainvar, &chan->constraints);
}
@@ -4625,7 +4627,7 @@ static void expand_pose(FileData *fd, Main *mainvar, bPose *pose)
static void expand_armature(FileData *fd, Main *mainvar, bArmature *arm)
{
Bone *curBone;
-
+
for (curBone = arm->bonebase.first; curBone; curBone=curBone->next) {
expand_bones(fd, mainvar, curBone);
}
@@ -4655,16 +4657,16 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
bActuator *act;
bActionStrip *strip;
int a;
-
-
+
+
expand_doit(fd, mainvar, ob->data);
expand_doit(fd, mainvar, ob->ipo);
expand_doit(fd, mainvar, ob->action);
-
- expand_pose(fd, mainvar, ob->pose);
+
+ expand_pose(fd, mainvar, ob->pose);
expand_constraints(fd, mainvar, &ob->constraints);
expand_constraint_channels(fd, mainvar, &ob->constraintChannels);
-
+
for (strip=ob->nlastrips.first; strip; strip=strip->next){
expand_doit(fd, mainvar, strip->act);
expand_doit(fd, mainvar, strip->ipo);
@@ -4685,7 +4687,7 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
}
sens= sens->next;
}
-
+
cont= ob->controllers.first;
while(cont) {
if(cont->type==CONT_PYTHON) {
@@ -4694,7 +4696,7 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
}
cont= cont->next;
}
-
+
act= ob->actuators.first;
while(act) {
if(act->type==ACT_SOUND) {
@@ -4736,7 +4738,7 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
static void expand_scene(FileData *fd, Main *mainvar, Scene *sce)
{
Base *base;
-
+
base= sce->base.first;
while(base) {
expand_doit(fd, mainvar, base->object);
@@ -4762,21 +4764,21 @@ static void expand_main(FileData *fd, Main *mainvar)
ListBase *lbarray[30];
ID *id;
int a, doit= 1;
-
+
if(fd==0) return;
-
+
while(doit) {
doit= 0;
-
+
a= set_listbasepointers(mainvar, lbarray);
while(a--) {
id= lbarray[a]->first;
while(id) {
if(id->flag & LIB_TEST) {
-
+
switch(GS(id->name)) {
-
+
case ID_OB:
expand_object(fd, mainvar, (Object *)id);
break;
@@ -4826,7 +4828,7 @@ static void expand_main(FileData *fd, Main *mainvar)
doit= 1;
id->flag -= LIB_TEST;
-
+
}
id= id->next;
}
@@ -4839,7 +4841,7 @@ static void give_base_to_objects(Scene *sce, ListBase *lb)
{
Object *ob;
Base *base;
-
+
/* give all objects which are LIB_EXTERN and LIB_NEEDLINK a base */
ob= lb->first;
while(ob) {
@@ -4847,17 +4849,17 @@ static void give_base_to_objects(Scene *sce, ListBase *lb)
if(ob->id.us==0) {
if(ob->id.flag & LIB_NEEDLINK) {
-
+
ob->id.flag -= LIB_NEEDLINK;
-
+
if( ob->id.flag & LIB_INDIRECT ) {
-
+
base= MEM_callocN( sizeof(Base), "add_ext_base");
BLI_addtail(&(sce->base), base);
base->lay= ob->lay;
base->object= ob;
ob->id.us= 1;
-
+
ob->id.flag -= LIB_INDIRECT;
ob->id.flag |= LIB_EXTERN;
@@ -4879,33 +4881,33 @@ static void append_named_part(FileData *fd, Main *mainvar, Scene *scene, char *n
bhead = blo_firstbhead(fd);
while(bhead && afbreek==0) {
-
+
if(bhead->code==ENDB) afbreek= 1;
else if(bhead->code==idcode) {
// BHEAD+DATA dependancy
id= (ID *)(bhead+1);
if(strcmp(id->name+2, name)==0) {
-
+
id= is_yet_read(mainvar, bhead);
if(id==0) {
read_libblock(fd, mainvar, bhead, LIB_TESTEXT, NULL);
}
else {
printf("append: already linked\n");
- oldnewmap_insert(fd->libmap, bhead->old, id, 1);
+ oldnewmap_insert(fd->libmap, bhead->old, id, 1);
if(id->flag & LIB_INDIRECT) {
id->flag -= LIB_INDIRECT;
id->flag |= LIB_EXTERN;
}
}
-
+
if(idcode==ID_OB) { /* loose object: give a base */
base= MEM_callocN( sizeof(Base), "app_nam_part");
BLI_addtail(&scene->base, base);
-
+
if(id==0) ob= mainvar->object.last;
else ob= (Object *)id;
-
+
base->lay= ob->lay;
base->object= ob;
ob->id.us++;
@@ -4921,7 +4923,7 @@ static void append_named_part(FileData *fd, Main *mainvar, Scene *scene, char *n
static void append_id_part(FileData *fd, Main *mainvar, ID *id, ID **id_r)
{
BHead *bhead;
-
+
for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead)) {
if (bhead->code == GS(id->name)) {
ID *idread= (ID *)(bhead+1); /* BHEAD+DATA dependancy */
@@ -4929,9 +4931,9 @@ static void append_id_part(FileData *fd, Main *mainvar, ID *id, ID **id_r)
if (BLI_streq(id->name, idread->name)) {
id->flag -= LIB_READ;
id->flag |= LIB_TEST;
-
+
read_libblock(fd, mainvar, bhead, id->flag, id_r);
-
+
break;
}
} else if (bhead->code==ENDB)
@@ -4979,14 +4981,14 @@ void BLO_library_append(SpaceFile *sfile, char *dir, int idcode)
ListBase mainlist;
Main *mainl;
int a, totsel=0;
-
+
/* are there files selected? */
for(a=0; a<sfile->totfile; a++) {
if(sfile->filelist[a].flags & ACTIVE) {
totsel++;
}
}
-
+
if(totsel==0) {
/* is the indicated file in the filelist? */
if(sfile->file[0]) {
@@ -5004,13 +5006,13 @@ void BLO_library_append(SpaceFile *sfile, char *dir, int idcode)
}
}
/* now we have or selected, or an indicated file */
-
+
mainlist.first= mainlist.last= G.main;
G.main->next= NULL;
-
+
/* make mains */
blo_split_main(&mainlist);
-
+
/* which one do we need? */
mainl = blo_find_main(&mainlist, dir);
@@ -5024,10 +5026,10 @@ void BLO_library_append(SpaceFile *sfile, char *dir, int idcode)
}
}
}
-
+
/* make main consistant */
expand_main(fd, mainl);
-
+
/* do this when expand found other libs */
read_libraries(fd, &mainlist);
@@ -5057,7 +5059,7 @@ static int mainvar_count_libread_blocks(Main *mainvar)
a= set_listbasepointers(mainvar, lbarray);
while(a--) {
ID *id= lbarray[a]->first;
-
+
for (id= lbarray[a]->first; id; id= id->next)
if (id->flag & LIB_READ)
tot++;
@@ -5071,32 +5073,32 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
Main *mainptr;
ListBase *lbarray[30];
int a, doit= 1;
-
+
while(doit) {
doit= 0;
-
+
/* test 1: read libdata */
mainptr= mainl->next;
-
+
while(mainptr) {
int tot= mainvar_count_libread_blocks(mainptr);
-
+
if(tot) {
FileData *fd= mainptr->curlib->filedata;
-
+
if(fd==0) {
printf("read lib %s\n", mainptr->curlib->name);
fd= blo_openblenderfile(mainptr->curlib->name);
if (fd) {
if (fd->libmap)
oldnewmap_free(fd->libmap);
-
+
fd->libmap= basefd->libmap;
fd->flags|= FD_FLAGS_NOT_MY_LIBMAP;
}
-
+
mainptr->curlib->filedata= fd;
-
+
if (!fd)
printf("ERROR: can't find lib %s \n", mainptr->curlib->name);
}
@@ -5105,18 +5107,18 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
a= set_listbasepointers(mainptr, lbarray);
while(a--) {
ID *id= lbarray[a]->first;
-
+
while(id) {
ID *idn= id->next;
if(id->flag & LIB_READ) {
ID *realid= NULL;
BLI_remlink(lbarray[a], id);
-
+
append_id_part(fd, mainptr, id, &realid);
if (!realid)
printf("LIB ERROR: can't find %s\n", id->name);
change_libadr(fd, id, realid);
-
+
MEM_freeN(id);
}
id= idn;
@@ -5126,7 +5128,7 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
expand_main(fd, mainptr);
}
}
-
+
mainptr= mainptr->next;
}
}
@@ -5140,16 +5142,16 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
ID *idn= id->next;
if(id->flag & LIB_READ) {
BLI_remlink(lbarray[a], id);
-
+
printf("LIB ERROR: can't find %s\n", id->name);
change_libadr(basefd, id, 0);
-
+
MEM_freeN(id);
}
id= idn;
}
}
-
+
/* some mains still have to be read, then
* versionfile is still zero! */
if(mainptr->versionfile) do_versions(mainptr);
@@ -5171,7 +5173,7 @@ BlendFileData *blo_read_blendafterruntime(int file, int actualsize, BlendReadErr
fd->read = fd_read_from_file;
decode_blender_header(fd);
-
+
if (fd->flags & FD_FLAGS_FILE_OK) {
if (!read_file_dna(fd)) {
blo_freefiledata(fd);
@@ -5183,9 +5185,9 @@ BlendFileData *blo_read_blendafterruntime(int file, int actualsize, BlendReadErr
fd= NULL;
return NULL;
}
-
+
bfd= blo_read_file_internal(fd, error_r);
blo_freefiledata(fd);
-
+
return bfd;
}
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 2aa4b869cfd..953f76f3317 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -35,7 +35,7 @@
/*
FILEFORMAT: IFF-style structure (but not IFF compatible!)
-
+
start file:
BLENDER_V100 12 bytes (versie 1.00)
V = big endian, v = little endian
@@ -47,7 +47,7 @@ datablocks: also see struct BHead
<bh.old> void, old pointer
<bh.SDNAnr> int
<bh.nr> int, in case of array: amount of structs
- data
+ data
...
...
@@ -83,7 +83,7 @@ Important to know is that 'streaming' has been added to files, for Blender Publi
#include <config.h>
#endif
-#ifndef WIN32
+#ifndef WIN32
#include <unistd.h>
#else
#include "winsock2.h"
@@ -139,7 +139,7 @@ Important to know is that 'streaming' has been added to files, for Blender Publi
#include "DNA_action_types.h"
#include "DNA_nla_types.h"
-#include "MEM_guardedalloc.h" // MEM_freeN
+#include "MEM_guardedalloc.h" // MEM_freeN
#include "BLI_blenlib.h"
#include "BLI_linklist.h"
@@ -167,7 +167,7 @@ typedef struct {
int file;
unsigned char *buf;
-
+
int tot, count, error;
} WriteData;
@@ -175,18 +175,18 @@ static WriteData *writedata_new(int file)
{
extern char DNAstr[]; /* DNA.c */
extern int DNAlen;
-
+
WriteData *wd= MEM_callocN(sizeof(*wd), "writedata");
/* XXX, see note about this in readfile.c, remove
* once we have an xp lock - zr
*/
wd->sdna= dna_sdna_from_data(DNAstr, DNAlen, 0);
-
+
wd->file= file;
wd->buf= MEM_mallocN(100000, "wd->buf");
-
+
return wd;
}
@@ -197,7 +197,7 @@ static void writedata_do_write(WriteData *wd, void *mem, int memlen)
wd->error= 1;
}
-static void writedata_free(WriteData *wd)
+static void writedata_free(WriteData *wd)
{
dna_freestructDNA(wd->sdna);
@@ -217,7 +217,7 @@ int mywfile;
*/
static void
mywrite(
- WriteData *wd,
+ WriteData *wd,
void *adr,
int len)
{
@@ -235,7 +235,7 @@ mywrite(
}
if(len+wd->count>99999) {
writedata_do_write(wd, wd->buf, wd->count);
- wd->count= 0;
+ wd->count= 0;
}
memcpy(&wd->buf[wd->count], adr, len);
wd->count+= len;
@@ -249,11 +249,11 @@ mywrite(
*/
static WriteData *
bgnwrite(
- int file,
+ int file,
int write_flags)
{
WriteData *wd= writedata_new(file);
-
+
return wd;
}
@@ -268,15 +268,15 @@ endwrite(
WriteData *wd)
{
int err;
-
+
if (wd->count) {
writedata_do_write(wd, wd->buf, wd->count);
- wd->count= 0;
+ wd->count= 0;
}
-
+
err= wd->error;
writedata_free(wd);
-
+
return err;
}
@@ -286,25 +286,25 @@ static void writestruct(WriteData *wd, int filecode, char *structname, int nr, v
{
BHead bh;
short *sp;
-
+
if(adr==0 || nr==0) return;
-
+
/* init BHead */
bh.code= filecode;
bh.old= adr;
bh.nr= nr;
-
+
bh.SDNAnr= dna_findstruct_nr(wd->sdna, structname);
if(bh.SDNAnr== -1) {
printf("error: can't find SDNA code %s\n", structname);
return;
}
sp= wd->sdna->structs[bh.SDNAnr];
-
+
bh.len= nr*wd->sdna->typelens[sp[0]];
-
+
if(bh.len==0) return;
-
+
mywrite(wd, &bh, sizeof(BHead));
mywrite(wd, adr, bh.len);
}
@@ -312,43 +312,43 @@ static void writestruct(WriteData *wd, int filecode, char *structname, int nr, v
static void writedata(WriteData *wd, int filecode, int len, void *adr) /* do not use for structs */
{
BHead bh;
-
+
if(adr==0) return;
if(len==0) return;
-
+
len+= 3;
len-= ( len % 4);
-
+
/* init BHead */
bh.code= filecode;
bh.old= adr;
bh.nr= 1;
- bh.SDNAnr= 0;
+ bh.SDNAnr= 0;
bh.len= len;
-
+
mywrite(wd, &bh, sizeof(BHead));
if(len) mywrite(wd, adr, len);
}
static void write_scriptlink(WriteData *wd, ScriptLink *slink)
{
- writedata(wd, DATA, sizeof(void *)*slink->totscript, slink->scripts);
- writedata(wd, DATA, sizeof(short)*slink->totscript, slink->flag);
+ writedata(wd, DATA, sizeof(void *)*slink->totscript, slink->scripts);
+ writedata(wd, DATA, sizeof(short)*slink->totscript, slink->flag);
}
static void write_renderinfo(WriteData *wd) /* for renderdaemon */
{
Scene *sce;
int data[8];
-
+
sce= G.main->scene.first;
while(sce) {
if(sce->id.lib==0 && ( sce==G.scene || (sce->r.scemode & R_BG_RENDER)) ) {
data[0]= sce->r.sfra;
data[1]= sce->r.efra;
-
+
strncpy((char *)(data+2), sce->id.name+2, 23);
-
+
writedata(wd, REND, 32, data);
}
sce= sce->id.next;
@@ -358,9 +358,9 @@ static void write_renderinfo(WriteData *wd) /* for renderdaemon */
static void write_userdef(WriteData *wd)
{
bTheme *btheme;
-
+
writestruct(wd, USER, "UserDef", 1, &U);
-
+
btheme= U.themes.first;
while(btheme) {
writestruct(wd, DATA, "bTheme", 1, btheme);
@@ -371,24 +371,24 @@ static void write_userdef(WriteData *wd)
static void write_effects(WriteData *wd, ListBase *lb)
{
Effect *eff;
-
+
eff= lb->first;
while(eff) {
-
+
switch(eff->type) {
case EFF_BUILD:
writestruct(wd, DATA, "BuildEff", 1, eff);
- break;
+ break;
case EFF_PARTICLE:
writestruct(wd, DATA, "PartEff", 1, eff);
- break;
+ break;
case EFF_WAVE:
writestruct(wd, DATA, "WaveEff", 1, eff);
- break;
+ break;
default:
writedata(wd, DATA, MEM_allocN_len(eff), eff);
}
-
+
eff= eff->next;
}
}
@@ -396,14 +396,14 @@ static void write_effects(WriteData *wd, ListBase *lb)
static void write_properties(WriteData *wd, ListBase *lb)
{
bProperty *prop;
-
+
prop= lb->first;
while(prop) {
writestruct(wd, DATA, "bProperty", 1, prop);
-
- if(prop->poin && prop->poin != &prop->data)
+
+ if(prop->poin && prop->poin != &prop->data)
writedata(wd, DATA, MEM_allocN_len(prop->poin), prop->poin);
-
+
prop= prop->next;
}
}
@@ -411,13 +411,13 @@ static void write_properties(WriteData *wd, ListBase *lb)
static void write_sensors(WriteData *wd, ListBase *lb)
{
bSensor *sens;
-
+
sens= lb->first;
while(sens) {
writestruct(wd, DATA, "bSensor", 1, sens);
-
+
writedata(wd, DATA, sizeof(void *)*sens->totlinks, sens->links);
-
+
switch(sens->type) {
case SENS_NEAR:
writestruct(wd, DATA, "bNearSensor", 1, sens->data);
@@ -452,7 +452,7 @@ static void write_sensors(WriteData *wd, ListBase *lb)
default:
; /* error: don't know how to write this file */
}
-
+
sens= sens->next;
}
}
@@ -460,13 +460,13 @@ static void write_sensors(WriteData *wd, ListBase *lb)
static void write_controllers(WriteData *wd, ListBase *lb)
{
bController *cont;
-
+
cont= lb->first;
while(cont) {
writestruct(wd, DATA, "bController", 1, cont);
-
+
writedata(wd, DATA, sizeof(void *)*cont->totlinks, cont->links);
-
+
switch(cont->type) {
case CONT_EXPRESSION:
writestruct(wd, DATA, "bExpressionCont", 1, cont->data);
@@ -477,7 +477,7 @@ static void write_controllers(WriteData *wd, ListBase *lb)
default:
; /* error: don't know how to write this file */
}
-
+
cont= cont->next;
}
}
@@ -485,11 +485,11 @@ static void write_controllers(WriteData *wd, ListBase *lb)
static void write_actuators(WriteData *wd, ListBase *lb)
{
bActuator *act;
-
+
act= lb->first;
while(act) {
writestruct(wd, DATA, "bActuator", 1, act);
-
+
switch(act->type) {
case ACT_ACTION:
writestruct(wd, DATA, "bActionActuator", 1, act->data);
@@ -539,7 +539,7 @@ static void write_actuators(WriteData *wd, ListBase *lb)
default:
; /* error: don't know how to write this file */
}
-
+
act= act->next;
}
}
@@ -555,7 +555,7 @@ static void write_nlastrips(WriteData *wd, ListBase *nlabase)
static void write_constraints(WriteData *wd, ListBase *conlist)
{
bConstraint *con;
-
+
for (con=conlist->first; con; con=con->next) {
/* Write the specific data */
switch (con->type) {
@@ -593,26 +593,26 @@ static void write_constraints(WriteData *wd, ListBase *conlist)
static void write_pose(WriteData *wd, bPose *pose)
{
bPoseChannel *chan;
-
+
/* Write each channel */
-
+
if (!pose)
return;
-
+
// Write channels
for (chan=pose->chanbase.first; chan; chan=chan->next) {
write_constraints(wd, &chan->constraints);
writestruct(wd, DATA, "bPoseChannel", 1, chan);
}
-
- // Write this pose
+
+ // Write this pose
writestruct(wd, DATA, "bPose", 1, pose);
}
static void write_defgroups(WriteData *wd, ListBase *defbase)
{
bDeformGroup *defgroup;
-
+
for (defgroup=defbase->first; defgroup; defgroup=defgroup->next)
writestruct(wd, DATA, "bDeformGroup", 1, defgroup);
}
@@ -623,19 +623,19 @@ static void write_constraint_channels(WriteData *wd, ListBase *chanbase)
for (chan = chanbase->first; chan; chan=chan->next)
writestruct(wd, DATA, "bConstraintChannel", 1, chan);
-
+
}
static void write_objects(WriteData *wd, ListBase *idbase)
{
Object *ob;
-
+
ob= idbase->first;
while(ob) {
if(ob->id.us>0) {
/* write LibData */
writestruct(wd, ID_OB, "Object", 1, ob);
-
+
/* direct data */
writedata(wd, DATA, sizeof(void *)*ob->totcol, ob->mat);
write_effects(wd, &ob->effect);
@@ -659,22 +659,22 @@ static void write_vfonts(WriteData *wd, ListBase *idbase)
{
VFont *vf;
PackedFile * pf;
-
+
vf= idbase->first;
while(vf) {
if(vf->id.us>0) {
/* write LibData */
writestruct(wd, ID_VF, "VFont", 1, vf);
-
+
/* direct data */
-
+
if (vf->packedfile) {
pf = vf->packedfile;
writestruct(wd, DATA, "PackedFile", 1, pf);
writedata(wd, DATA, pf->size, pf->data);
}
}
-
+
vf= vf->id.next;
}
}
@@ -683,20 +683,20 @@ static void write_ipos(WriteData *wd, ListBase *idbase)
{
Ipo *ipo;
IpoCurve *icu;
-
+
ipo= idbase->first;
while(ipo) {
if(ipo->id.us>0) {
/* write LibData */
writestruct(wd, ID_IP, "Ipo", 1, ipo);
-
+
/* direct data */
icu= ipo->curve.first;
while(icu) {
writestruct(wd, DATA, "IpoCurve", 1, icu);
icu= icu->next;
}
-
+
icu= ipo->curve.first;
while(icu) {
if(icu->bezt) writestruct(wd, DATA, "BezTriple", icu->totvert, icu->bezt);
@@ -704,7 +704,7 @@ static void write_ipos(WriteData *wd, ListBase *idbase)
icu= icu->next;
}
}
-
+
ipo= ipo->id.next;
}
}
@@ -713,13 +713,13 @@ static void write_keys(WriteData *wd, ListBase *idbase)
{
Key *key;
KeyBlock *kb;
-
+
key= idbase->first;
while(key) {
if(key->id.us>0) {
/* write LibData */
writestruct(wd, ID_KE, "Key", 1, key);
-
+
/* direct data */
kb= key->block.first;
while(kb) {
@@ -728,7 +728,7 @@ static void write_keys(WriteData *wd, ListBase *idbase)
kb= kb->next;
}
}
-
+
key= key->id.next;
}
}
@@ -736,17 +736,17 @@ static void write_keys(WriteData *wd, ListBase *idbase)
static void write_cameras(WriteData *wd, ListBase *idbase)
{
Camera *cam;
-
+
cam= idbase->first;
while(cam) {
if(cam->id.us>0) {
/* write LibData */
writestruct(wd, ID_CA, "Camera", 1, cam);
-
+
/* direct data */
write_scriptlink(wd, &cam->scriptlink);
}
-
+
cam= cam->id.next;
}
}
@@ -755,16 +755,16 @@ static void write_mballs(WriteData *wd, ListBase *idbase)
{
MetaBall *mb;
MetaElem *ml;
-
+
mb= idbase->first;
while(mb) {
if(mb->id.us>0) {
/* write LibData */
writestruct(wd, ID_MB, "MetaBall", 1, mb);
-
+
/* direct data */
writedata(wd, DATA, sizeof(void *)*mb->totcol, mb->mat);
-
+
ml= mb->elems.first;
while(ml) {
writestruct(wd, DATA, "MetaElem", 1, ml);
@@ -779,16 +779,16 @@ static void write_curves(WriteData *wd, ListBase *idbase)
{
Curve *cu;
Nurb *nu;
-
+
cu= idbase->first;
while(cu) {
if(cu->id.us>0) {
/* write LibData */
writestruct(wd, ID_CU, "Curve", 1, cu);
-
+
/* direct data */
writedata(wd, DATA, sizeof(void *)*cu->totcol, cu->mat);
-
+
if(cu->vfont) {
writedata(wd, DATA, cu->len+1, cu->str);
}
@@ -801,7 +801,7 @@ static void write_curves(WriteData *wd, ListBase *idbase)
}
nu= cu->nurb.first;
while(nu) {
- if( (nu->type & 7)==CU_BEZIER)
+ if( (nu->type & 7)==CU_BEZIER)
writestruct(wd, DATA, "BezTriple", nu->pntsu, nu->bezt);
else {
writestruct(wd, DATA, "BPoint", nu->pntsu*nu->pntsv, nu->bp);
@@ -819,15 +819,15 @@ static void write_curves(WriteData *wd, ListBase *idbase)
static void write_dverts(WriteData *wd, int count, MDeformVert *dvlist)
{
int i;
-
+
/* Write the dvert list */
writestruct(wd, DATA, "MDeformVert", count, dvlist);
-
+
/* Write deformation data for each dvert */
if (dvlist) {
for (i=0; i<count; i++) {
if (dvlist[i].dw)
- writestruct(wd, DATA, "MDeformWeight", dvlist[i].totweight, dvlist[i].dw);
+ writestruct(wd, DATA, "MDeformWeight", dvlist[i].totweight, dvlist[i].dw);
}
}
}
@@ -835,13 +835,13 @@ static void write_dverts(WriteData *wd, int count, MDeformVert *dvlist)
static void write_meshs(WriteData *wd, ListBase *idbase)
{
Mesh *mesh;
-
+
mesh= idbase->first;
while(mesh) {
if(mesh->id.us>0) {
/* write LibData */
writestruct(wd, ID_ME, "Mesh", 1, mesh);
-
+
/* direct data */
writedata(wd, DATA, sizeof(void *)*mesh->totcol, mesh->mat);
writestruct(wd, DATA, "MVert", mesh->totvert, mesh->mvert);
@@ -850,7 +850,7 @@ static void write_meshs(WriteData *wd, ListBase *idbase)
writestruct(wd, DATA, "TFace", mesh->totface, mesh->tface);
writestruct(wd, DATA, "MCol", 4*mesh->totface, mesh->mcol);
writestruct(wd, DATA, "MSticky", mesh->totvert, mesh->msticky);
-
+
}
mesh= mesh->id.next;
}
@@ -860,13 +860,13 @@ static void write_images(WriteData *wd, ListBase *idbase)
{
Image *ima;
PackedFile * pf;
-
+
ima= idbase->first;
while(ima) {
if(ima->id.us>0) {
/* write LibData */
writestruct(wd, ID_IM, "Image", 1, ima);
-
+
if (ima->packedfile) {
pf = ima->packedfile;
writestruct(wd, DATA, "PackedFile", 1, pf);
@@ -880,13 +880,13 @@ static void write_images(WriteData *wd, ListBase *idbase)
static void write_textures(WriteData *wd, ListBase *idbase)
{
Tex *tex;
-
+
tex= idbase->first;
while(tex) {
if(tex->id.us>0) {
/* write LibData */
writestruct(wd, ID_TE, "Tex", 1, tex);
-
+
/* direct data */
if(tex->plugin) writestruct(wd, DATA, "PluginTex", 1, tex->plugin);
if(tex->coba) writestruct(wd, DATA, "ColorBand", 1, tex->coba);
@@ -900,17 +900,17 @@ static void write_materials(WriteData *wd, ListBase *idbase)
{
Material *ma;
int a;
-
+
ma= idbase->first;
while(ma) {
if(ma->id.us>0) {
/* write LibData */
writestruct(wd, ID_MA, "Material", 1, ma);
-
+
for(a=0; a<8; a++) {
if(ma->mtex[a]) writestruct(wd, DATA, "MTex", 1, ma->mtex[a]);
}
-
+
write_scriptlink(wd, &ma->scriptlink);
}
ma= ma->id.next;
@@ -921,17 +921,17 @@ static void write_worlds(WriteData *wd, ListBase *idbase)
{
World *wrld;
int a;
-
+
wrld= idbase->first;
while(wrld) {
if(wrld->id.us>0) {
/* write LibData */
writestruct(wd, ID_WO, "World", 1, wrld);
-
+
for(a=0; a<8; a++) {
if(wrld->mtex[a]) writestruct(wd, DATA, "MTex", 1, wrld->mtex[a]);
}
-
+
write_scriptlink(wd, &wrld->scriptlink);
}
wrld= wrld->id.next;
@@ -942,18 +942,18 @@ static void write_lamps(WriteData *wd, ListBase *idbase)
{
Lamp *la;
int a;
-
+
la= idbase->first;
while(la) {
if(la->id.us>0) {
/* write LibData */
writestruct(wd, ID_LA, "Lamp", 1, la);
-
+
/* direct data */
for(a=0; a<8; a++) {
if(la->mtex[a]) writestruct(wd, DATA, "MTex", 1, la->mtex[a]);
}
-
+
write_scriptlink(wd, &la->scriptlink);
}
la= la->id.next;
@@ -963,13 +963,13 @@ static void write_lamps(WriteData *wd, ListBase *idbase)
static void write_lattices(WriteData *wd, ListBase *idbase)
{
Lattice *lt;
-
+
lt= idbase->first;
while(lt) {
if(lt->id.us>0) {
/* write LibData */
writestruct(wd, ID_LT, "Lattice", 1, lt);
-
+
/* direct data */
writestruct(wd, DATA, "BPoint", lt->pntsu*lt->pntsv*lt->pntsw, lt->def);
}
@@ -981,20 +981,20 @@ static void write_ikas(WriteData *wd, ListBase *idbase)
{
Ika *ika;
Limb *li;
-
+
ika= idbase->first;
while(ika) {
if(ika->id.us>0) {
/* write LibData */
writestruct(wd, ID_IK, "Ika", 1, ika);
-
+
/* direct data */
li= ika->limbbase.first;
while(li) {
writestruct(wd, DATA, "Limb", 1, li);
li= li->next;
}
-
+
writestruct(wd, DATA, "Deform", ika->totdef, ika->def);
}
ika= ika->id.next;
@@ -1008,53 +1008,60 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
Editing *ed;
Sequence *seq;
Strip *strip;
-
+
sce= scebase->first;
while(sce) {
/* write LibData */
writestruct(wd, ID_SCE, "Scene", 1, sce);
-
+
/* direct data */
base= sce->base.first;
while(base) {
writestruct(wd, DATA, "Base", 1, base);
base= base->next;
}
-
+
writestruct(wd, DATA, "Radio", 1, sce->radio);
writestruct(wd, DATA, "FreeCamera", 1, sce->fcam);
-
+
ed= sce->ed;
if(ed) {
writestruct(wd, DATA, "Editing", 1, ed);
-
+
/* reset write flags too */
WHILE_SEQ(&ed->seqbase) {
if(seq->strip) seq->strip->done= 0;
writestruct(wd, DATA, "Sequence", 1, seq);
}
END_SEQ
-
+
WHILE_SEQ(&ed->seqbase) {
if(seq->strip && seq->strip->done==0) {
/* write strip with 'done' at 0 because readfile */
-
+
if(seq->plugin) writestruct(wd, DATA, "PluginSeq", 1, seq->plugin);
-
+ if(seq->effectdata) {
+ switch(seq->type){
+ case SEQ_SWEEP:
+ writestruct(wd, DATA, "SweepVars", 1, seq->effectdata);
+ break;
+ }
+ }
+
strip= seq->strip;
writestruct(wd, DATA, "Strip", 1, strip);
-
- if(seq->type==SEQ_IMAGE)
+
+ if(seq->type==SEQ_IMAGE)
writestruct(wd, DATA, "StripElem", strip->len, strip->stripdata);
else if(seq->type==SEQ_MOVIE || seq->type==SEQ_SOUND)
writestruct(wd, DATA, "StripElem", 1, strip->stripdata);
-
+
strip->done= 1;
}
}
END_SEQ
}
-
+
write_scriptlink(wd, &sce->scriptlink);
if (sce->r.avicodecdata) {
@@ -1062,7 +1069,7 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
if (sce->r.avicodecdata->lpFormat) writedata(wd, DATA, sce->r.avicodecdata->cbFormat, sce->r.avicodecdata->lpFormat);
if (sce->r.avicodecdata->lpParms) writedata(wd, DATA, sce->r.avicodecdata->cbParms, sce->r.avicodecdata->lpParms);
}
-
+
if (sce->r.qtcodecdata) {
writestruct(wd, DATA, "QuicktimeCodecData", 1, sce->r.qtcodecdata);
if (sce->r.qtcodecdata->cdParms) writedata(wd, DATA, sce->r.qtcodecdata->cdSize, sce->r.qtcodecdata->cdParms);
@@ -1078,38 +1085,38 @@ static void write_screens(WriteData *wd, ListBase *scrbase)
ScrArea *sa;
ScrVert *sv;
ScrEdge *se;
-
+
sc= scrbase->first;
while(sc) {
/* write LibData */
writestruct(wd, ID_SCR, "Screen", 1, sc);
-
+
/* direct data */
sv= sc->vertbase.first;
while(sv) {
writestruct(wd, DATA, "ScrVert", 1, sv);
sv= sv->next;
}
-
+
se= sc->edgebase.first;
while(se) {
writestruct(wd, DATA, "ScrEdge", 1, se);
se= se->next;
}
-
+
sa= sc->areabase.first;
while(sa) {
SpaceLink *sl;
Panel *pa;
writestruct(wd, DATA, "ScrArea", 1, sa);
-
+
pa= sa->panels.first;
while(pa) {
writestruct(wd, DATA, "Panel", 1, pa);
pa= pa->next;
}
-
+
sl= sa->spacedata.first;
while(sl) {
if(sl->spacetype==SPACE_VIEW3D) {
@@ -1133,7 +1140,7 @@ static void write_screens(WriteData *wd, ListBase *scrbase)
else if(sl->spacetype==SPACE_OOPS) {
SpaceOops *so= (SpaceOops *)sl;
Oops *oops;
-
+
/* cleanup */
oops= so->oops.first;
while(oops) {
@@ -1144,10 +1151,10 @@ static void write_screens(WriteData *wd, ListBase *scrbase)
}
oops= oopsn;
}
-
+
/* ater cleanup, because of listbase! */
writestruct(wd, DATA, "SpaceOops", 1, so);
-
+
oops= so->oops.first;
while(oops) {
writestruct(wd, DATA, "Oops", 1, oops);
@@ -1177,10 +1184,10 @@ static void write_screens(WriteData *wd, ListBase *scrbase)
}
sl= sl->next;
}
-
+
sa= sa->next;
}
-
+
sc= sc->id.next;
}
}
@@ -1190,11 +1197,11 @@ static void write_libraries(WriteData *wd, Main *main)
ListBase *lbarray[30];
ID *id;
int a, tot, foundone;
-
+
while(main) {
-
+
a=tot= set_listbasepointers(main, lbarray);
-
+
/* test: is lib being used */
foundone= 0;
while(tot--) {
@@ -1208,22 +1215,22 @@ static void write_libraries(WriteData *wd, Main *main)
}
if(foundone) break;
}
-
- if(foundone) {
+
+ if(foundone) {
writestruct(wd, ID_LI, "Library", 1, main->curlib);
-
+
while(a--) {
id= lbarray[a]->first;
while(id) {
if(id->us>0 && (id->flag & LIB_EXTERN)) {
-
+
writestruct(wd, ID_ID, "ID", 1, id);
}
id= id->next;
}
}
}
-
+
main= main->next;
}
}
@@ -1231,13 +1238,13 @@ static void write_libraries(WriteData *wd, Main *main)
static void write_bone(WriteData *wd, Bone* bone)
{
Bone* cbone;
-
-// write_constraints(wd, &bone->constraints);
-
- // Write this bone
+
+// write_constraints(wd, &bone->constraints);
+
+ // Write this bone
writestruct(wd, DATA, "Bone", 1, bone);
-
- // Write Children
+
+ // Write Children
cbone= bone->childbase.first;
while(cbone) {
write_bone(wd, cbone);
@@ -1249,12 +1256,12 @@ static void write_armatures(WriteData *wd, ListBase *idbase)
{
bArmature *arm;
Bone *bone;
-
+
arm=idbase->first;
while (arm) {
if (arm->id.us>0) {
writestruct(wd, ID_AR, "bArmature", 1, arm);
-
+
/* Direct data */
bone= arm->bonebase.first;
while(bone) {
@@ -1274,7 +1281,7 @@ static void write_actions(WriteData *wd, ListBase *idbase)
while (act) {
if (act->id.us>0) {
writestruct(wd, ID_AC, "bAction", 1, act);
-
+
for (chan=act->chanbase.first; chan; chan=chan->next) {
writestruct(wd, DATA, "bActionChannel", 1, chan);
write_constraint_channels(wd, &chan->constraintChannels);
@@ -1288,23 +1295,23 @@ static void write_texts(WriteData *wd, ListBase *idbase)
{
Text *text;
TextLine *tmp;
-
+
text= idbase->first;
while(text) {
if ( (text->flags & TXT_ISMEM) && (text->flags & TXT_ISEXT)) text->flags &= ~TXT_ISEXT;
-
+
/* write LibData */
writestruct(wd, ID_TXT, "Text", 1, text);
if(text->name) writedata(wd, DATA, strlen(text->name)+1, text->name);
-
- if(!(text->flags & TXT_ISEXT)) {
+
+ if(!(text->flags & TXT_ISEXT)) {
/* now write the text data, in two steps for optimization in the readfunction */
tmp= text->lines.first;
while (tmp) {
writestruct(wd, DATA, "TextLine", 1, tmp);
tmp= tmp->next;
}
-
+
tmp= text->lines.first;
while (tmp) {
writedata(wd, DATA, tmp->len+1, tmp->line);
@@ -1319,17 +1326,17 @@ static void write_sounds(WriteData *wd, ListBase *idbase)
{
bSound *sound;
bSample *sample;
-
+
PackedFile * pf;
-
+
// set all samples to unsaved status
-
+
sample = samples->first;
while (sample) {
sample->flags |= SAMPLE_NEEDS_SAVE;
sample = sample->id.next;
}
-
+
sound= idbase->first;
while(sound) {
if(sound->id.us>0) {
@@ -1343,16 +1350,16 @@ static void write_sounds(WriteData *wd, ListBase *idbase)
sound->newpackedfile = NULL;
}
}
-
+
/* write LibData */
writestruct(wd, ID_SO, "bSound", 1, sound);
-
+
if (sound->newpackedfile) {
pf = sound->newpackedfile;
writestruct(wd, DATA, "PackedFile", 1, pf);
writedata(wd, DATA, pf->size, pf->data);
}
-
+
if (sample) {
sound->newpackedfile = sample->packedfile;
}
@@ -1367,19 +1374,19 @@ static void write_groups(WriteData *wd, ListBase *idbase)
GroupKey *gk;
GroupObject *go;
ObjectKey *ok;
-
+
group= idbase->first;
while(group) {
if(group->id.us>0) {
/* write LibData */
writestruct(wd, ID_GR, "Group", 1, group);
-
+
gk= group->gkey.first;
while(gk) {
writestruct(wd, DATA, "GroupKey", 1, gk);
gk= gk->next;
}
-
+
go= group->gobject.first;
while(go) {
writestruct(wd, DATA, "GroupObject", 1, go);
@@ -1394,7 +1401,7 @@ static void write_groups(WriteData *wd, ListBase *idbase)
}
go= go->next;
}
-
+
}
group= group->id.next;
}
@@ -1403,35 +1410,35 @@ static void write_groups(WriteData *wd, ListBase *idbase)
static void write_global(WriteData *wd)
{
FileGlobal fg;
-
+
fg.curscreen= G.curscreen;
fg.displaymode= R.displaymode;
fg.winpos= R.winpos;
fg.fileflags= G.fileflags;
fg.globalf= G.f;
-
+
writestruct(wd, GLOB, "FileGlobal", 1, &fg);
}
-static int write_file_handle(int handle, int write_user_block, int write_flags)
+static int write_file_handle(int handle, int write_user_block, int write_flags)
{
ListBase mainlist;
char buf[13];
WriteData *wd;
int data;
-
+
mainlist.first= mainlist.last= G.main;
G.main->next= NULL;
-
+
blo_split_main(&mainlist);
-
+
wd= bgnwrite(handle, write_flags);
sprintf(buf, "BLENDER%c%c%.3d", (sizeof(void*)==8)?'-':'_', (G.order==B_ENDIAN)?'V':'v', G.version);
mywrite(wd, buf, 12);
-
+
write_renderinfo(wd);
-
+
write_screens (wd, &G.main->screen);
write_scenes (wd, &G.main->scene);
write_objects (wd, &G.main->object);
@@ -1460,19 +1467,19 @@ static int write_file_handle(int handle, int write_user_block, int write_flags)
if (write_user_block) {
write_userdef(wd);
}
-
+
/* dna as last, because (to be implemented) test for which structs are written */
writedata(wd, DNA1, wd->sdna->datalen, wd->sdna->data);
-
+
data= ENDB;
mywrite(wd, &data, 4);
-
+
data= 0;
mywrite(wd, &data, 4);
-
+
blo_join_main(&mainlist);
G.main= mainlist.first;
-
+
return endwrite(wd);
}
@@ -1484,7 +1491,7 @@ int BLO_write_file(char *dir, int write_flags, char **error_r)
#ifdef WIN32
char tmpdir[FILE_MAXDIR+FILE_MAXFILE];
#endif
-
+
sprintf(tempname, "%s@", dir);
file = open(tempname,O_BINARY+O_WRONLY+O_CREAT+O_TRUNC, 0666);
@@ -1492,14 +1499,14 @@ int BLO_write_file(char *dir, int write_flags, char **error_r)
*error_r= "Unable to open";
return 0;
}
-
+
BLI_make_file_string(G.sce, userfilename, BLI_gethome(), ".B.blend");
write_user_block= BLI_streq(dir, userfilename);
fout= write_file_handle(file, write_user_block, write_flags);
close(file);
-
+
if(!fout) {
if(BLI_rename(tempname, dir) < 0) {
*error_r= "Can't change old file. File saved with @";
@@ -1511,7 +1518,7 @@ int BLO_write_file(char *dir, int write_flags, char **error_r)
*error_r= "Not enough diskspace";
return 0;
}
-
+
return 1;
}
@@ -1521,7 +1528,7 @@ int BLO_write_file(char *dir, int write_flags, char **error_r)
#define PATHSEPERATOR "\\"
#else
#define PATHSEPERATOR "/"
-#endif
+#endif
static char *get_install_dir(void) {
extern char bprogname[];
@@ -1534,7 +1541,7 @@ static char *get_install_dir(void) {
#endif
cut = BLI_last_slash(tmpname);
-
+
if (cut) {
cut[0] = 0;
return tmpname;
@@ -1546,7 +1553,7 @@ static char *get_install_dir(void) {
static char *get_runtime_path(char *exename) {
char *installpath= get_install_dir();
-
+
if (!installpath) {
return NULL;
} else {
@@ -1554,9 +1561,9 @@ static char *get_runtime_path(char *exename) {
strcpy(path, installpath);
strcat(path, PATHSEPERATOR);
strcat(path, exename);
-
+
MEM_freeN(installpath);
-
+
return path;
}
}
@@ -1567,12 +1574,12 @@ static int recursive_copy_runtime(char *outname, char *exename, char **cause_r)
char *cause = NULL, *runtime = get_runtime_path(exename);
char command[2 * (FILE_MAXDIR+FILE_MAXFILE) + 32];
int progfd = -1;
-
+
if (!runtime) {
cause= "Unable to find runtime";
goto cleanup;
}
-
+
progfd= open(runtime, O_BINARY|O_RDONLY, 0);
if (progfd==-1) {
cause= "Unable to find runtime";
@@ -1589,7 +1596,7 @@ cleanup:
close(progfd);
if (runtime)
MEM_freeN(runtime);
-
+
if (cause) {
*cause_r= cause;
return 0;
@@ -1601,21 +1608,21 @@ void BLO_write_runtime(char *file, char *exename) {
char gamename[FILE_MAXDIR+FILE_MAXFILE];
int outfd = -1;
char *cause= NULL;
-
+
// remove existing file / bundle
BLI_delete(file, NULL, TRUE);
-
+
if (!recursive_copy_runtime(file, exename, &cause))
goto cleanup;
-
+
strcpy(gamename, file);
strcat(gamename, "/Contents/Resources/game.blend");
-
+
outfd= open(gamename, O_BINARY|O_WRONLY|O_CREAT|O_TRUNC, 0777);
if (outfd != -1) {
write_file_handle(outfd, 0, G.fileflags);
-
+
if (write(outfd, " ", 1) != 1) {
cause= "Unable to write to output file";
goto cleanup;
@@ -1623,11 +1630,11 @@ void BLO_write_runtime(char *file, char *exename) {
} else {
cause = "Unable to open blenderfile";
}
-
+
cleanup:
if (outfd!=-1)
close(outfd);
-
+
if (cause)
error("Unable to make runtime: %s", cause);
}
@@ -1638,12 +1645,12 @@ static int handle_append_runtime(int handle, char *exename, char **cause_r) {
char *cause= NULL, *runtime= get_runtime_path(exename);
unsigned char buf[1024];
int count, progfd= -1;
-
+
if (!runtime) {
cause= "Unable to find runtime";
goto cleanup;
}
-
+
progfd= open(runtime, O_BINARY|O_RDONLY, 0);
if (progfd==-1) {
cause= "Unable to find runtime";
@@ -1656,13 +1663,13 @@ static int handle_append_runtime(int handle, char *exename, char **cause_r) {
goto cleanup;
}
}
-
+
cleanup:
if (progfd!=-1)
close(progfd);
if (runtime)
MEM_freeN(runtime);
-
+
if (cause) {
*cause_r= cause;
return 0;
@@ -1676,7 +1683,7 @@ static int handle_write_msb_int(int handle, int i) {
buf[1]= (i>>16)&0xFF;
buf[2]= (i>>8)&0xFF;
buf[3]= (i>>0)&0xFF;
-
+
return (write(handle, buf, 4)==4);
}
@@ -1684,27 +1691,27 @@ void BLO_write_runtime(char *file, char *exename) {
int outfd= open(file, O_BINARY|O_WRONLY|O_CREAT|O_TRUNC, 0777);
char *cause= NULL;
int datastart;
-
+
if (!outfd) {
cause= "Unable to open output file";
goto cleanup;
}
if (!handle_append_runtime(outfd, exename, &cause))
goto cleanup;
-
+
datastart= lseek(outfd, 0, SEEK_CUR);
write_file_handle(outfd, 0, G.fileflags);
-
+
if (!handle_write_msb_int(outfd, datastart) || (write(outfd, "BRUNTIME", 8)!=8)) {
cause= "Unable to write to output file";
goto cleanup;
}
-
+
cleanup:
if (outfd!=-1)
close(outfd);
-
+
if (cause)
error("Unable to make runtime: %s", cause);
}
diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h
index 9659defb755..54eae60747d 100644
--- a/source/blender/makesdna/DNA_sequence_types.h
+++ b/source/blender/makesdna/DNA_sequence_types.h
@@ -119,7 +119,7 @@ typedef struct Sequence {
int curpos; /* last sample position in audio_fill() */
int pad;
- void *varstr; /* Struct pointer for effect settings */
+ void *effectdata; /* Struct pointer for effect settings */
} Sequence;
#
@@ -140,7 +140,7 @@ typedef struct Editing {
/* ************* Effect Variable Structs ********* */
typedef struct SweepVars {
- short sweeptype;
+ short sweeptype;
} SweepVars;
diff --git a/source/blender/src/drawseq.c b/source/blender/src/drawseq.c
index 46c94a56eba..5f043e7d11f 100644
--- a/source/blender/src/drawseq.c
+++ b/source/blender/src/drawseq.c
@@ -603,7 +603,7 @@ static void draw_extra_seqinfo(void)
#define SEQ_BUT_PLUGIN 1
#define SEQ_BUT_MOVIE 2
-#define SEQ_BUT_IMAGE 3
+#define SEQ_BUT_EFFECT 3
void do_seqbuttons(short val)
{
@@ -623,7 +623,10 @@ void do_seqbuttons(short val)
se->ibuf= 0;
}
break;
- case SEQ_BUT_IMAGE:
+ case SEQ_BUT_EFFECT:
+ new_stripdata(last_seq);
+ calc_sequence(last_seq);
+ allqueue(REDRAWSEQ, 0);
break;
}
@@ -705,12 +708,12 @@ static void seq_panel_properties(short cntrl) // SEQ_HANDLER_PROPERTIES
uiDefBut(block, TEX, 0, "Stripname: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, "");
if(last_seq->type==SEQ_SWEEP){
- SweepVars *sweep = (SweepVars *)last_seq->varstr;
+ SweepVars *sweep = (SweepVars *)last_seq->effectdata;
char formatstring[1024];
strcpy(formatstring, "Select Sweep Type %t|Left to Right %x0|Right to Left %x1|Bottom to Top %x2|Top to Bottom %x3|Top left to Bottom right%x4|Bottom right to Top left %x5|Bottom left to Top right %x6|Top right to Bottom left %x7|Horizontal out %x8|Horizontal in %x9|Vertical out %x10|Vertical in %x11|Hor/Vert out %x12|Hor/Vert in %x13|Bottom left to Top right out %x14|Top left to Bottom right in %x15|Top left to Bottom right out %x16|Bottom left to Top right in %x17|Diagonal out %x18|Diagonal in %x19|Diagonal out 2 %x20|Diagonal in 2 %x21|");
- uiDefButS(block, MENU,SEQ_BUT_MOVIE, formatstring, 10,90,220,22, &sweep->sweeptype, 0, 0, 0, 0, "What type of sweep should be performed");
+ uiDefButS(block, MENU,SEQ_BUT_EFFECT, formatstring, 10,90,220,22, &sweep->sweeptype, 0, 0, 0, 0, "What type of sweep should be performed");
}
}
diff --git a/source/blender/src/editseq.c b/source/blender/src/editseq.c
index 1ac23530d03..aef76886ba2 100644
--- a/source/blender/src/editseq.c
+++ b/source/blender/src/editseq.c
@@ -901,7 +901,7 @@ static int add_seq_effect(int type)
/* Allocate variable structs for effects with settings */
if(seq->type==SEQ_SWEEP){
- seq->varstr = MEM_callocN(sizeof(struct SweepVars), "sweepvars");
+ seq->effectdata = MEM_callocN(sizeof(struct SweepVars), "sweepvars");
}
if(seq->type==SEQ_ALPHAUNDER || seq->type==SEQ_ALPHAOVER) {
diff --git a/source/blender/src/sequence.c b/source/blender/src/sequence.c
index 1f5a29b5089..f483d77114f 100644
--- a/source/blender/src/sequence.c
+++ b/source/blender/src/sequence.c
@@ -225,7 +225,7 @@ void free_sequence(Sequence *seq)
extern Sequence *last_seq;
if(seq->strip) free_strip(seq->strip);
- if(seq->varstr) MEM_freeN(seq->varstr);
+ if(seq->effectdata) MEM_freeN(seq->effectdata);
if(seq->anim) IMB_free_anim(seq->anim);
@@ -962,14 +962,14 @@ int check_zone(int x, int y, int xo, int yo, Sequence *seq, float facf0) {
float posx, posy;
float halfx = xo/2;
float halfy = yo/2;
- SweepVars *sweep = (SweepVars *)seq->varstr;
+ SweepVars *sweep = (SweepVars *)seq->effectdata;
//printf("facf0: %f xo: %d\n", facf0, x);
posx = facf0 * xo;
posy = facf0 * yo;
switch (sweep->sweeptype) {
- case DO_LEFT_RIGHT:
+ case DO_LEFT_RIGHT:
if (x > posx) return 1;
return 0;
break;
@@ -1023,19 +1023,19 @@ int check_zone(int x, int y, int xo, int yo, Sequence *seq, float facf0) {
break;
case DO_HORZ_VERT_OUT:
if (posy < posx) posx = posy;
- if (((x > (halfx - posx/2)) && (x < (halfx + posx/2))) ||
+ if (((x > (halfx - posx/2)) && (x < (halfx + posx/2))) ||
((y > (halfy - posx/2)) && (y < (halfy + posx/2)))) return 0;
return 1;
break;
case DO_HORZ_VERT_IN:
if (posy < posx) posx = posy;
- if ((x <posx/2) || ((xo - x) < posx/2) || (y < posx/2) ||
+ if ((x <posx/2) || ((xo - x) < posx/2) || (y < posx/2) ||
((yo - y) < posx/2)) return 0;
return 1;
break;
case DO_LEFT_DOWN_RIGHT_UP_OUT:
if (posy < posx) posx = posy;
- if (((x - halfx + y - halfy) < posx) &&
+ if (((x - halfx + y - halfy) < posx) &&
((halfx -x + halfy -y ) < posx)) return 0;
return 1;
break;
@@ -1046,7 +1046,7 @@ int check_zone(int x, int y, int xo, int yo, Sequence *seq, float facf0) {
break;
case DO_LEFT_UP_RIGHT_DOWN_OUT:
if (posy < posx) posx = posy;
- if (((x - halfx + yo - y - halfy) < posx) &&
+ if (((x - halfx + yo - y - halfy) < posx) &&
((halfx - x + halfy - yo + y ) < posx)) return 0;
return 1;
break;
@@ -1057,9 +1057,9 @@ int check_zone(int x, int y, int xo, int yo, Sequence *seq, float facf0) {
break;
case DO_DIAG_OUT:
if (posy < posx) posx = posy;
- if ((((x - halfx + y - halfy) < posx) &&
- ((halfx -x + halfy -y ) < posx)) &&
- (((x - halfx + yo - y - halfy) < posx)) &&
+ if ((((x - halfx + y - halfy) < posx) &&
+ ((halfx -x + halfy -y ) < posx)) &&
+ (((x - halfx + yo - y - halfy) < posx)) &&
((halfx -x + halfy -yo + y) < posx)) return 0;
return 1;
break;
@@ -1090,7 +1090,7 @@ int check_zone(int x, int y, int xo, int yo, Sequence *seq, float facf0) {
void do_sweep_effect(Sequence *seq, float facf0, float facf1, int x, int y, unsigned int *rect1, unsigned int *rect2, unsigned int *out)
{
- int xo, yo;
+ int xo, yo;
char *rt1, *rt2, *rt;
rt1 = (char *)rect1;
rt2 = (char *)rect2;
@@ -1099,9 +1099,9 @@ void do_sweep_effect(Sequence *seq, float facf0, float facf1, int x, int y, unsi
xo = x;
yo = y;
for(y=0;y<yo;y++) {
-
+
for(x=0;x<xo;x++) {
-
+
if (check_zone(x,y,xo,yo,seq,facf0)) {
if (rt1) {
rt[0] = rt1[0];
@@ -1115,7 +1115,7 @@ void do_sweep_effect(Sequence *seq, float facf0, float facf1, int x, int y, unsi
rt[3] = 255;
}
} else {
- if (rt2) {
+ if (rt2) {
rt[0] = rt2[0];
rt[1] = rt2[1];
rt[2] = rt2[2];
@@ -1127,7 +1127,7 @@ void do_sweep_effect(Sequence *seq, float facf0, float facf1, int x, int y, unsi
rt[3] = 255;
}
}
-
+
rt+=4;
if(rt1 !=NULL){
rt1+=4;