aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/lzp/lzp.c
diff options
context:
space:
mode:
authorspicyjpeg <88942473+spicyjpeg@users.noreply.github.com>2021-09-27 20:11:10 +0200
committerspicyjpeg <88942473+spicyjpeg@users.noreply.github.com>2021-09-27 20:11:10 +0200
commit0e3278a087daa25cba541d7c1dae19dfd4e2d422 (patch)
treedbd8ea7b2f3398865a396d3f425a6ab4ba4bed94 /libpsn00b/lzp/lzp.c
parent5bc36dfcfc64e48401a9c6472062020681b3511f (diff)
downloadpsn00bsdk-0e3278a087daa25cba541d7c1dae19dfd4e2d422.tar.gz
Misc MSVC/CMake fixes, also fixed childexec example
Diffstat (limited to 'libpsn00b/lzp/lzp.c')
-rw-r--r--libpsn00b/lzp/lzp.c32
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);