diff --git a/Extras/Serialize/BulletFileLoader/bFile.cpp b/Extras/Serialize/BulletFileLoader/bFile.cpp index 3531dd59c..849c98f31 100644 --- a/Extras/Serialize/BulletFileLoader/bFile.cpp +++ b/Extras/Serialize/BulletFileLoader/bFile.cpp @@ -183,8 +183,7 @@ void bFile::parseInternal(bool verboseDumpAllTypes, char* memDna,int memDnaLengt return; char *blenderData = mFileBuffer; - bChunkInd dna; - dna.oldPtr = 0; + int sdnaPos=0; char *tempBuffer = blenderData; for (int i=0; i 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; + if (mDataStart && sdnaPos) break; tempBuffer++; } - if (!dna.oldPtr || !dna.len) - { - printf("Failed to find DNA1+SDNA pair\n"); - mFlags &= ~FD_OK; - return; - } - 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) {