Changed: Some Big endian swaps (for PowerPC especially)
This commit is contained in:
parent
d02a3d7fe6
commit
0d81bb48b8
3 changed files with 43 additions and 4 deletions
|
@ -61,6 +61,10 @@ uint8 getType(const std::string &sFileNameDest)
|
||||||
return NOT_DEFINED;
|
return NOT_DEFINED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef NL_BIG_ENDIAN
|
||||||
|
NLMISC_BSWAP32(dds);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (fread(&h,sizeof(CS3TCCompressor::DDS_HEADER),1,f) != 1)
|
if (fread(&h,sizeof(CS3TCCompressor::DDS_HEADER),1,f) != 1)
|
||||||
{
|
{
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
|
@ -69,11 +69,20 @@ int main(int argc, char* argv[])
|
||||||
if (fread (&size, sizeof(uint32), 1, file) != 1)
|
if (fread (&size, sizeof(uint32), 1, file) != 1)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#ifdef NL_BIG_ENDIAN
|
||||||
|
NLMISC_BSWAP32(size);
|
||||||
|
#endif
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
uint32 start;
|
uint32 start;
|
||||||
if (fread (&start, sizeof(uint32), 1, file) != 1)
|
if (fread (&start, sizeof(uint32), 1, file) != 1)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#ifdef NL_BIG_ENDIAN
|
||||||
|
NLMISC_BSWAP32(start);
|
||||||
|
#endif
|
||||||
|
|
||||||
string category;
|
string category;
|
||||||
if (!readString (category, file))
|
if (!readString (category, file))
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -94,7 +94,15 @@ struct BNPHeader
|
||||||
if (f == NULL) return false;
|
if (f == NULL) return false;
|
||||||
|
|
||||||
uint32 nNbFile = (uint32)Files.size();
|
uint32 nNbFile = (uint32)Files.size();
|
||||||
if (fwrite (&nNbFile, sizeof(uint32), 1, f) != 1)
|
|
||||||
|
// value to be serialized
|
||||||
|
uint32 nNbFile2 = nNbFile;
|
||||||
|
|
||||||
|
#ifdef NL_BIG_ENDIAN
|
||||||
|
NLMISC_BSWAP32(nNbFile2);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fwrite (&nNbFile2, sizeof(uint32), 1, f) != 1)
|
||||||
{
|
{
|
||||||
fclose(f);
|
fclose(f);
|
||||||
return false;
|
return false;
|
||||||
|
@ -115,20 +123,38 @@ struct BNPHeader
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fwrite (&Files[i].Size, sizeof(uint32), 1, f) != 1)
|
uint32 nFileSize = Files[i].Size;
|
||||||
|
|
||||||
|
#ifdef NL_BIG_ENDIAN
|
||||||
|
NLMISC_BSWAP32(nFileSize);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fwrite (&nFileSize, sizeof(uint32), 1, f) != 1)
|
||||||
{
|
{
|
||||||
fclose(f);
|
fclose(f);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fwrite (&Files[i].Pos, sizeof(uint32), 1, f) != 1)
|
uint32 nFilePos = Files[i].Pos;
|
||||||
|
|
||||||
|
#ifdef NL_BIG_ENDIAN
|
||||||
|
NLMISC_BSWAP32(nFilePos);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fwrite (&nFilePos, sizeof(uint32), 1, f) != 1)
|
||||||
{
|
{
|
||||||
fclose(f);
|
fclose(f);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fwrite (&OffsetFromBeginning, sizeof(uint32), 1, f) != 1)
|
uint32 nOffsetFromBeginning = OffsetFromBeginning;
|
||||||
|
|
||||||
|
#ifdef NL_BIG_ENDIAN
|
||||||
|
NLMISC_BSWAP32(nOffsetFromBeginning);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fwrite (&nOffsetFromBeginning, sizeof(uint32), 1, f) != 1)
|
||||||
{
|
{
|
||||||
fclose(f);
|
fclose(f);
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in a new issue