diff options
| author | John Wilbert M. Villamor <lameguy64@gmail.com> | 2019-04-06 10:11:07 +0800 |
|---|---|---|
| committer | John Wilbert M. Villamor <lameguy64@gmail.com> | 2019-04-06 10:11:07 +0800 |
| commit | f3e040230772f978540a71aea43dfde200992922 (patch) | |
| tree | bd8ca31b72dd01e24980b073854e263589530f56 /libpsn00b/lzp/qlp.c | |
| download | psn00bsdk-f3e040230772f978540a71aea43dfde200992922.tar.gz | |
First commit
Diffstat (limited to 'libpsn00b/lzp/qlp.c')
| -rw-r--r-- | libpsn00b/lzp/qlp.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/libpsn00b/lzp/qlp.c b/libpsn00b/lzp/qlp.c new file mode 100644 index 0000000..3be8356 --- /dev/null +++ b/libpsn00b/lzp/qlp.c @@ -0,0 +1,64 @@ +#include <stdio.h> +#include <string.h> +#include <ctype.h> +#include "lzqlp.h" + +static char* lcase(char* str) { + + while(*str != 0x00) { + *str = tolower(*str); + str++; + } + + return(str); + +} + +int qlpFileCount(void* qlpfile) { + + if (strncmp(((QLP_HEAD*)qlpfile)->id, "QLP", 3) != 0) + return(PACK_ERR_INVALID); + + return(((QLP_HEAD*)qlpfile)->numfiles); + +} + +QLP_FILE* qlpFileEntry(int index, void* qlpfile) { + + if (strncmp(((QLP_HEAD*)qlpfile)->id, "QLP", 3) != 0) + return(NULL); + + if (index > ((QLP_HEAD*)qlpfile)->numfiles) + return(NULL); + + return(&((QLP_FILE*)(qlpfile+4))[index]); + +} + +void* qlpFileAddr(int index, void* qlpfile) { + + return( qlpfile+((QLP_FILE*)(qlpfile+4))[index].offs ); + +} + +int qlpFindFile(char* fileName, void* qlpfile) { + + int i; + char nameBuff[2][16]; + + strcpy(nameBuff[0], fileName); + lcase(nameBuff[0]); + + for(i=0; i<((QLP_HEAD*)qlpfile)->numfiles; i++) { + + strcpy(nameBuff[1], ((QLP_FILE*)(qlpfile+4))[i].name); + lcase(nameBuff[1]); + + if (strcmp(nameBuff[0], nameBuff[1]) == 0) + return(i); + + } + + return(PACK_ERR_NOTFOUND); + +}
\ No newline at end of file |
