diff options
| author | spicyjpeg <88942473+spicyjpeg@users.noreply.github.com> | 2021-09-27 20:11:10 +0200 |
|---|---|---|
| committer | spicyjpeg <88942473+spicyjpeg@users.noreply.github.com> | 2021-09-27 20:11:10 +0200 |
| commit | 0e3278a087daa25cba541d7c1dae19dfd4e2d422 (patch) | |
| tree | dbd8ea7b2f3398865a396d3f425a6ab4ba4bed94 /libpsn00b/lzp/lzp.c | |
| parent | 5bc36dfcfc64e48401a9c6472062020681b3511f (diff) | |
| download | psn00bsdk-0e3278a087daa25cba541d7c1dae19dfd4e2d422.tar.gz | |
Misc MSVC/CMake fixes, also fixed childexec example
Diffstat (limited to 'libpsn00b/lzp/lzp.c')
| -rw-r--r-- | libpsn00b/lzp/lzp.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/libpsn00b/lzp/lzp.c b/libpsn00b/lzp/lzp.c index 1f4fea4..9f2da48 100644 --- a/libpsn00b/lzp/lzp.c +++ b/libpsn00b/lzp/lzp.c @@ -17,7 +17,7 @@ static char* lcase(char* text) { } -int lzpSearchFile(const char* fileName, void* lzpack) { +int lzpSearchFile(const char* fileName, const LZP_HEAD* lzpack) { int i; char searchName[16]; @@ -27,8 +27,8 @@ int lzpSearchFile(const char* fileName, void* lzpack) { strcpy(searchName, fileName); lcase(searchName); - fileEntry = (LZP_FILE*)(lzpack+4); - for(i=0; i<((LZP_HEAD*)lzpack)->numFiles; i++) { + fileEntry = (LZP_FILE*)(((const char*)lzpack)+sizeof(LZP_HEAD)); + for(i=0; i<(lzpack->numFiles); i++) { strcpy(compareName, fileEntry[i].fileName); lcase(compareName); @@ -42,44 +42,44 @@ int lzpSearchFile(const char* fileName, void* lzpack) { } -LZP_FILE* lzpFileEntry(void* lzpack, int fileNum) { +const LZP_FILE* lzpFileEntry(const LZP_HEAD* lzpack, int fileNum) { - if (strncmp("LZP", ((LZP_HEAD*)lzpack)->id, 3) != 0) + if (strncmp("LZP", lzpack->id, 3) != 0) return(NULL); - if ((fileNum < 0) || (fileNum > (((LZP_HEAD*)lzpack)->numFiles-1))) + if ((fileNum < 0) || (fileNum > (lzpack->numFiles-1))) return(NULL); - return(&((LZP_FILE*)(lzpack+4))[fileNum]); + return &((LZP_FILE*)(((const char*)lzpack)+sizeof(LZP_HEAD)))[fileNum]; } -int lzpFileSize(void* lzpack, int fileNum) { +int lzpFileSize(const LZP_HEAD* lzpack, int fileNum) { - if (strncmp("LZP", ((LZP_HEAD*)lzpack)->id, 3) != 0) + if (strncmp("LZP", lzpack->id, 3) != 0) return 0; - if ((fileNum < 0) || (fileNum > (((LZP_HEAD*)lzpack)->numFiles-1))) + if ((fileNum < 0) || (fileNum > (lzpack->numFiles-1))) return 0; - return ((LZP_FILE*)(lzpack+4))[fileNum].fileSize; + return ((LZP_FILE*)(((const char*)lzpack)+sizeof(LZP_HEAD)))[fileNum].fileSize; } -int lzpUnpackFile(void* buff, void* lzpack, int fileNum) { +int lzpUnpackFile(void* buff, const LZP_HEAD* lzpack, int fileNum) { - LZP_FILE* fileEntry = &((LZP_FILE*)(lzpack+4))[fileNum]; + LZP_FILE* fileEntry = &((LZP_FILE*)(((const char*)lzpack)+sizeof(LZP_HEAD)))[fileNum]; int unpackedSize; // Check ID header - if (strncmp("LZP", ((LZP_HEAD*)lzpack)->id, 3) != 0) + if (strncmp("LZP", lzpack->id, 3) != 0) return(LZP_ERR_INVALID_PACK); // Do a CRC16 check of the compressed data's integrity - if (lzCRC32(lzpack+fileEntry->offset, fileEntry->packedSize, LZP_CRC32_REMAINDER) != fileEntry->crc) + if (lzCRC32(((const char*)lzpack)+fileEntry->offset, fileEntry->packedSize, LZP_CRC32_REMAINDER) != fileEntry->crc) return(LZP_ERR_CRC_MISMATCH); // Decompress data to the specified address - unpackedSize = lzDecompress(buff, lzpack+fileEntry->offset, fileEntry->packedSize); + unpackedSize = lzDecompress(buff, ((const char*)lzpack)+fileEntry->offset, fileEntry->packedSize); if (unpackedSize < 0) return(unpackedSize); |
