revert change in bFile, it broke serialization
This commit is contained in:
@@ -183,8 +183,7 @@ void bFile::parseInternal(bool verboseDumpAllTypes, char* memDna,int memDnaLengt
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
char *blenderData = mFileBuffer;
|
char *blenderData = mFileBuffer;
|
||||||
bChunkInd dna;
|
int sdnaPos=0;
|
||||||
dna.oldPtr = 0;
|
|
||||||
|
|
||||||
char *tempBuffer = blenderData;
|
char *tempBuffer = blenderData;
|
||||||
for (int i=0; i<mFileLen; i++)
|
for (int i=0; i<mFileLen; i++)
|
||||||
@@ -194,33 +193,15 @@ void bFile::parseInternal(bool verboseDumpAllTypes, char* memDna,int memDnaLengt
|
|||||||
|
|
||||||
if (!mDataStart && strncmp(tempBuffer, "REND", 4)==0)
|
if (!mDataStart && strncmp(tempBuffer, "REND", 4)==0)
|
||||||
mDataStart = i;
|
mDataStart = i;
|
||||||
|
if (!sdnaPos && strncmp(tempBuffer, "SDNANAME", 8)==0)
|
||||||
|
sdnaPos = i;
|
||||||
|
|
||||||
if (strncmp(tempBuffer, "DNA1", 4)==0)
|
if (mDataStart && sdnaPos) break;
|
||||||
{
|
|
||||||
// read the DNA1 block and extract SDNA
|
|
||||||
if (getNextBlock(&dna, tempBuffer, mFlags) > 0)
|
|
||||||
{
|
|
||||||
if (strncmp((tempBuffer + ChunkUtils::getOffset(mFlags)), "SDNANAME", 8) ==0)
|
|
||||||
dna.oldPtr = (tempBuffer + ChunkUtils::getOffset(mFlags));
|
|
||||||
else dna.oldPtr = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
dna.oldPtr = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mDataStart && dna.oldPtr) break;
|
|
||||||
tempBuffer++;
|
tempBuffer++;
|
||||||
}
|
}
|
||||||
if (!dna.oldPtr || !dna.len)
|
|
||||||
{
|
|
||||||
printf("Failed to find DNA1+SDNA pair\n");
|
|
||||||
mFlags &= ~FD_OK;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
mFileDNA = new bDNA();
|
mFileDNA = new bDNA();
|
||||||
mFileDNA->init((char*)dna.oldPtr, dna.len, (mFlags & FD_ENDIAN_SWAP)!=0);
|
mFileDNA->init(blenderData+sdnaPos, mFileLen-sdnaPos, (mFlags & FD_ENDIAN_SWAP)!=0);
|
||||||
|
|
||||||
if (mVersion==276)
|
if (mVersion==276)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user