author | ecalot
<ecalot> 2003-12-08 13:20:21 UTC |
committer | ecalot
<ecalot> 2003-12-08 13:20:21 UTC |
parent | 79e4cf2c75508caa8e3a345b840110195c52c5eb |
PR/src/include/autodetect.h | +11 | -6 |
PR/src/include/bitmap.h | +2 | -2 |
PR/src/include/bmp.h | +2 | -2 |
PR/src/include/classify.h | +1 | -1 |
PR/src/include/common.h | +106 | -8 |
PR/src/include/disk.h | +3 | -3 |
PR/src/include/export.h | +1 | -1 |
PR/src/include/idlist.h | +11 | -6 |
PR/src/include/import.h | +1 | -1 |
PR/src/include/plv.h | +4 | -4 |
PR/src/include/png.h | +2 | -2 |
PR/src/include/pr.h | +106 | -8 |
PR/src/include/tree.h | +11 | -6 |
PR/src/include/unknown.h | +11 | -6 |
PR/src/include/xml.h | +2 | -1 |
diff --git a/PR/src/include/autodetect.h b/PR/src/include/autodetect.h index 8c443ca..228a429 100644 --- a/PR/src/include/autodetect.h +++ b/PR/src/include/autodetect.h @@ -5,19 +5,24 @@ #define MAX_LINE_SIZE 300 #define RES_XML_UNKNOWN_PATH "%s/unknown/%s/" +#define RES_XML_UNKNOWN_FILES "res%d.%s" #define RES_XML_UNKNOWN_START "<?xml version=\"1.0\" ?>\n<itemtypes version=\"0.6\">\n <folder name=\"unknown\" file=\"%s\" external=\"%s\" palette=\"%d\">\n" -#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" external=\"res%05d.%s\" itemtype=\"%s\">Unknown Resource number %d</item>\n" +#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" external=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown Resource number %d</item>\n" #define RES_XML_UNKNOWN_END " </folder>\n</itemtypes>\n" -#define RES_XML_UNKNOWN_FILES "%d.%s" +#define RES_FILE_EXTENSIONS {"raw","plv","bmp","wav","mid","ext","pal","pcs"} +#define RES_FILE_TYPES {"raw","level","image","wave","midi","unknown","palette","pcspeaker"} //types typedef struct { unsigned short int palette; unsigned short int size; - unsigned short int offset; + unsigned long int offset; + unsigned char number; //Used for level number char type; char* path; char* palAux; + char* title; + char* desc; }tResource; //Verify header @@ -31,7 +36,7 @@ char verifyHeader(char* array, int size); 04 Midis 05 Undefined 06 Palette - 07 Speaker Sounds + 07 Internal Speaker Sounds */ /***************************************************************\ @@ -42,11 +47,11 @@ char verifyHeader(char* array, int size); void emptyTable(tResource* r[]); //parse file -char parseFile(char* vFile, char* datFile, tResource* r[]); +char parseFile(const char* vFile, const char* datFile, tResource* r[]); //Resources extras -void getFileName(char* vFileext,char* vDirExt,tResource* r,short id,char* vFiledat); +void getFileName(char* vFileext,const char* vDirExt,tResource* r,short id,const char* vFiledat); void getUpperFolder(char* aux, char* vFiledat); const char* getExtDesc(int type); diff --git a/PR/src/include/bitmap.h b/PR/src/include/bitmap.h index 4647154..d727520 100644 --- a/PR/src/include/bitmap.h +++ b/PR/src/include/bitmap.h @@ -6,9 +6,9 @@ #include "compress.h" -char mFormatExtractBmp(unsigned char* data, char *vFileext,unsigned long int size,tImage image); +char mFormatExtractBmp(unsigned char* data, const char *vFileext,unsigned long int size,tImage image); char mFormatCompileBmp(unsigned char* data, FILE* fp, tResource *res); -char mWriteBitMap(tImage img,char* vFile); +char mWriteBitMap(tImage img,const char* vFile); char mReadBitMap(tImage* img,char* data, int size); //Note: this will ignore the palette #endif diff --git a/PR/src/include/bmp.h b/PR/src/include/bmp.h index 4647154..d727520 100644 --- a/PR/src/include/bmp.h +++ b/PR/src/include/bmp.h @@ -6,9 +6,9 @@ #include "compress.h" -char mFormatExtractBmp(unsigned char* data, char *vFileext,unsigned long int size,tImage image); +char mFormatExtractBmp(unsigned char* data, const char *vFileext,unsigned long int size,tImage image); char mFormatCompileBmp(unsigned char* data, FILE* fp, tResource *res); -char mWriteBitMap(tImage img,char* vFile); +char mWriteBitMap(tImage img,const char* vFile); char mReadBitMap(tImage* img,char* data, int size); //Note: this will ignore the palette #endif diff --git a/PR/src/include/classify.h b/PR/src/include/classify.h index d7257d9..d82f2ab 100644 --- a/PR/src/include/classify.h +++ b/PR/src/include/classify.h @@ -20,6 +20,6 @@ 11 Pop2 dat files */ -int prVerifyDatType(char* vFiledat); +int prVerifyDatType(const char* vFiledat); #endif diff --git a/PR/src/include/common.h b/PR/src/include/common.h index b6ae424..133ad55 100644 --- a/PR/src/include/common.h +++ b/PR/src/include/common.h @@ -9,9 +9,31 @@ #endif /* #define DLL --> use -DDLL as a precompiler option */ +#ifdef DLL + #ifdef UNIX + #define SO + #endif +#endif + +#ifndef OS + #ifndef UNIX + #define OS "Win32" + #else + #define OS "" + #endif +#endif + +//Debug options +#define DEB_FLAG + +#ifdef DEB_FLAG + #define fld(a) printf(a); +#else + #define fld(a) +#endif //Main program defines -#define PR_ABOUT "Princed resources (PR) V0.9\r\n(c) Copyright 2003 - Princed Development Team\r\n"\ +#define PR_ABOUT "Princed resources (PR) V0.9 "OS"\r\n(c) Copyright 2003 - Princed Development Team\r\n"\ "http://www.princed.com.ar\r\n\r\n" #define PR_CGI_TEXT1 "Content-Type:text/html\n\nRunning as a cgi\n" @@ -21,15 +43,21 @@ #define PR_TEXT_RESULT "Result: %s (%d)\r\n" #define PR_TEXT_RESULT_ERR "Result: %d files with errors\r\n" -#define PR_TEXT_SYNTAX "Syntax:\r\n pr datfile option [extract dir]\r\n\r\nValid options:\r\n -x[rn] for extract\r\n r: raw extraction\r\n n: don't extract\r\n -c[r] for compile\r\n r: raw compiling\r\n -d for type\r\n" +#define PR_TEXT_SYNTAX "Usage: pr [datFilePath] [-x [extractDir]|-c [compileDir]|-d] [-n filename]\r\n\r\nValid options:\r\n -x[rn] for extract\r\n r: raw extraction\r\n n: don't extract\r\n -c[r] for compile\r\n r: raw compiling\r\n -d for type\r\n" //Default Files #define RES_XML_UNKNOWN_XML "unknown.xml" #define RES_XML_RESOURC_XML "resources.xml" -//Difine max & min's +//Define max & min's #define MAX_RES_COUNT 65000 +//Define max & min's +#define MAX_FILENAME_SIZE 260 +#define MAX_EXTENSION_SIZE 10 + +#define DEFAULT_BACKUP_EXTENSION "bak" + //Path defines #ifdef UNIX #define DIR_SEPARATOR '/' @@ -38,12 +66,82 @@ #endif //Main functions -int prExportDat(char* vDatFile, char* vDirName, char* vResFile); -int prImportDat(char* vDatFile, char* vDirName, char* vResFile); -int prVerifyDatType(char* vFiledat); +int prExportDat(const char* vDatFile, const char* vDirName, const char* vResFile); +int prImportDat(const char* vDatFile, const char* vDirName, const char* vResFile); +int prVerifyDatType(const char* vFiledat); //Extra featured functions -int prExportDatOpt(char* vDatFile, char* vDirName, char* vResFile,char opt); -int prImportDatOpt(char* vDatFile, char* vDirName, char* vResFile,char opt); +int prExportDatOpt(const char* vDatFile, const char* vDirName, const char* vResFile,int opt,const char * vDatFileName,const char* datAuthor, const char* backupExtension); +int prImportDatOpt(const char* vDatFile, const char* vDirName, const char* vResFile,int opt,const char* vDatFileName, const char* backupExtension); + +//Command Line specific options + +#define PARSING_HELP "Usage: \n"\ +" pr [DATFILEPATH] [-x [EXTRACTDIR]|-c [COMPILEDIR]|-d]\n"\ +" pr [DATFILEPATH] [OPTIONS]\n"\ +"\n"\ +" Mandatory arguments to long options are mandatory for short options too.\n"\ +"\n"\ +" -c, --import[=DIRNAME] imports from DIRNAME into given dat file\n"\ +" -d, --classify returns the DAT file type\n"\ +" -x, -e, --export[=DIRNAME] extracts given dat file into DIRNAME\n"\ +"\n"\ +" -b, --backup[=EXTENSION] backup your files\n"\ +" -f, --force default option, you cannot disable it,\n"\ +" so please make a backup of your files\n"\ +" -g, --cgi run as CGI and output mime headers\n"\ +" -h, --help display this help and exit\n"\ +" -m, --resource=RESFILE uses an user-specific resource xml file\n"\ +" -r, --raw uses raw format\n"\ +" -R, --recursive searches for all dat files (only if DATFILEPATH\n"\ +" is not a dat file)\n"\ +" -t, --datfile=DATFILE specifies a dat file to read resources\n"\ +" different that the original file\n"\ +" --unknown generate the unknown file without performing\n"\ +" any extraction\n"\ +" -v, --verbose explain what is being done\n"\ +" --version output version information and exit\n"\ +"\n" + +//Add -a, --author for PLV format + +#define PARSING_OPTIONS {\ + {"import",optional_argument,0,'c'},\ + {"classify",no_argument,0,'d'},\ + {"export",optional_argument,0,'x'},\ +\ + {"backup",optional_argument,0,'b'},\ + {"force",no_argument,0,'f'},\ + {"cgi",no_argument,0,'g'},\ + {"help",no_argument,0,'?'},\ + {"resource",required_argument,0,'m'},\ + {"raw",no_argument,0,'r'},\ + {"recursive",no_argument,0,'R'},\ + {"datfile",required_argument,0,'t'},\ + {"unknown",no_argument,0,2},\ + {"verbose",no_argument,0,'v'},\ + {"version",no_argument,0,1},\ + {0, 0, 0, 0}\ + } + +#define PARSING_CHARS "c::dx::e::b::fgm:t:rRv" + +/* Flags */ +#define import_flag 0x0001 +#define classify_flag 0x0002 +#define export_flag 0x0004 +#define backup_flag 0x0008 +#define force_flag 0x0010 +#define cgi_flag 0x0020 +#define help_flag 0x0040 +#define undef4_flag 0x0080 +#define raw_flag 0x0100 +#define recursive_flag 0x0200 +#define verbose_flag 0x0400 +#define version_flag 0x0800 +#define unknown_flag 0x1000 +#define undef1_flag 0x2000 +#define undef2_flag 0x4000 +#define undef3_flag 0x8000 #endif diff --git a/PR/src/include/disk.h b/PR/src/include/disk.h index 587c670..7baa592 100644 --- a/PR/src/include/disk.h +++ b/PR/src/include/disk.h @@ -10,9 +10,9 @@ char mDiskVealidateFileHeader(unsigned char* text, int size, FILE* fp); char mSaveRaw (const char* vFile,const unsigned char* output, int size); char writeData (const unsigned char* data, int ignoreChars, char* vFileext, int size); -char writeOpen (char* vFileext, FILE* *fp); +char writeOpen (const char* vFileext, FILE* *fp); int mLoadFileArray(const char* vFile,unsigned char** array); int makebase (const char* p); -void repairFolders (char* a); - +const char *repairFolders(const char* a); +const char* getFileNameFromPath(const char* path); #endif diff --git a/PR/src/include/export.h b/PR/src/include/export.h index d5cf464..a7fd77e 100644 --- a/PR/src/include/export.h +++ b/PR/src/include/export.h @@ -17,6 +17,6 @@ 8 - rebuild resources list */ -int extract(char* vFiledat,char* vDirExt, tResource* r[], char task); +int extract(const char* vFiledat,const char* vDirExt, tResource* r[], int task, const char* vDatFileName); #endif diff --git a/PR/src/include/idlist.h b/PR/src/include/idlist.h index 8c443ca..228a429 100644 --- a/PR/src/include/idlist.h +++ b/PR/src/include/idlist.h @@ -5,19 +5,24 @@ #define MAX_LINE_SIZE 300 #define RES_XML_UNKNOWN_PATH "%s/unknown/%s/" +#define RES_XML_UNKNOWN_FILES "res%d.%s" #define RES_XML_UNKNOWN_START "<?xml version=\"1.0\" ?>\n<itemtypes version=\"0.6\">\n <folder name=\"unknown\" file=\"%s\" external=\"%s\" palette=\"%d\">\n" -#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" external=\"res%05d.%s\" itemtype=\"%s\">Unknown Resource number %d</item>\n" +#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" external=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown Resource number %d</item>\n" #define RES_XML_UNKNOWN_END " </folder>\n</itemtypes>\n" -#define RES_XML_UNKNOWN_FILES "%d.%s" +#define RES_FILE_EXTENSIONS {"raw","plv","bmp","wav","mid","ext","pal","pcs"} +#define RES_FILE_TYPES {"raw","level","image","wave","midi","unknown","palette","pcspeaker"} //types typedef struct { unsigned short int palette; unsigned short int size; - unsigned short int offset; + unsigned long int offset; + unsigned char number; //Used for level number char type; char* path; char* palAux; + char* title; + char* desc; }tResource; //Verify header @@ -31,7 +36,7 @@ char verifyHeader(char* array, int size); 04 Midis 05 Undefined 06 Palette - 07 Speaker Sounds + 07 Internal Speaker Sounds */ /***************************************************************\ @@ -42,11 +47,11 @@ char verifyHeader(char* array, int size); void emptyTable(tResource* r[]); //parse file -char parseFile(char* vFile, char* datFile, tResource* r[]); +char parseFile(const char* vFile, const char* datFile, tResource* r[]); //Resources extras -void getFileName(char* vFileext,char* vDirExt,tResource* r,short id,char* vFiledat); +void getFileName(char* vFileext,const char* vDirExt,tResource* r,short id,const char* vFiledat); void getUpperFolder(char* aux, char* vFiledat); const char* getExtDesc(int type); diff --git a/PR/src/include/import.h b/PR/src/include/import.h index 0e0dec9..36eb954 100644 --- a/PR/src/include/import.h +++ b/PR/src/include/import.h @@ -9,6 +9,6 @@ #include "resources.h" void mAddFileToDatFile(FILE* fp, char* data, int size); -int compile(char* vFiledat, char* vDirExt, tResource* r[], char opt); +int compile(const char* vFiledat, const char* vDirExt, tResource* r[], int opt, const char* vDatFileName); #endif diff --git a/PR/src/include/plv.h b/PR/src/include/plv.h index 4d99252..49569fb 100644 --- a/PR/src/include/plv.h +++ b/PR/src/include/plv.h @@ -6,17 +6,17 @@ #include "resources.h" char mFormatCompilePlv(unsigned char* data, FILE* fp, tResource *res); -char mFormatExtractPlv(unsigned char* data, char *vFileext,unsigned long int size,unsigned char level, char* filename, char* desc, char* title); +char mFormatExtractPlv(unsigned char* data, const char *vFileext,unsigned long int size,unsigned char level, const char* filename, const char* desc, const char* title); //Dias de la semana y meses del anio #define DATE_WEEKDAYS "Sun\0Mon\0Tue\0Wed\0Thu\0Fri\0Sat" #define DATE_MONTHS "Jan\0Feb\0Mar\0Apr\0May\0Jun\0Jul\0Aug\0Sep\0Oct\0Nov\0Dec" -#define PLV_HEADER_A "" +#define PLV_HEADER_A "POP_LVL\x01\x01" #define PLV_HEADER_A_SIZE sizeof(PLV_HEADER_A)-1 -#define PLV_HEADER_B "" +#define PLV_HEADER_B ":)" #define PLV_HEADER_B_SIZE sizeof(PLV_HEADER_B)-1 -#define PLV_FOOT "EDITORNAME\0PR\0EDITORVERS\00.9AUTHOR\0Pr User\0TITLE" +#define PLV_FOOT "EDITORNAME\0PR\0EDITORVERS\0\x30.9\0AUTHOR\0Pr User\0TITLE" #define PLV_FOOT_DESC "DESCRIPTION" #define PLV_FOOT_TCREAT "TIMECREATED" #define PLV_FOOT_TMODIF "TIMELASTMODIF" diff --git a/PR/src/include/png.h b/PR/src/include/png.h index 4647154..d727520 100644 --- a/PR/src/include/png.h +++ b/PR/src/include/png.h @@ -6,9 +6,9 @@ #include "compress.h" -char mFormatExtractBmp(unsigned char* data, char *vFileext,unsigned long int size,tImage image); +char mFormatExtractBmp(unsigned char* data, const char *vFileext,unsigned long int size,tImage image); char mFormatCompileBmp(unsigned char* data, FILE* fp, tResource *res); -char mWriteBitMap(tImage img,char* vFile); +char mWriteBitMap(tImage img,const char* vFile); char mReadBitMap(tImage* img,char* data, int size); //Note: this will ignore the palette #endif diff --git a/PR/src/include/pr.h b/PR/src/include/pr.h index b6ae424..133ad55 100644 --- a/PR/src/include/pr.h +++ b/PR/src/include/pr.h @@ -9,9 +9,31 @@ #endif /* #define DLL --> use -DDLL as a precompiler option */ +#ifdef DLL + #ifdef UNIX + #define SO + #endif +#endif + +#ifndef OS + #ifndef UNIX + #define OS "Win32" + #else + #define OS "" + #endif +#endif + +//Debug options +#define DEB_FLAG + +#ifdef DEB_FLAG + #define fld(a) printf(a); +#else + #define fld(a) +#endif //Main program defines -#define PR_ABOUT "Princed resources (PR) V0.9\r\n(c) Copyright 2003 - Princed Development Team\r\n"\ +#define PR_ABOUT "Princed resources (PR) V0.9 "OS"\r\n(c) Copyright 2003 - Princed Development Team\r\n"\ "http://www.princed.com.ar\r\n\r\n" #define PR_CGI_TEXT1 "Content-Type:text/html\n\nRunning as a cgi\n" @@ -21,15 +43,21 @@ #define PR_TEXT_RESULT "Result: %s (%d)\r\n" #define PR_TEXT_RESULT_ERR "Result: %d files with errors\r\n" -#define PR_TEXT_SYNTAX "Syntax:\r\n pr datfile option [extract dir]\r\n\r\nValid options:\r\n -x[rn] for extract\r\n r: raw extraction\r\n n: don't extract\r\n -c[r] for compile\r\n r: raw compiling\r\n -d for type\r\n" +#define PR_TEXT_SYNTAX "Usage: pr [datFilePath] [-x [extractDir]|-c [compileDir]|-d] [-n filename]\r\n\r\nValid options:\r\n -x[rn] for extract\r\n r: raw extraction\r\n n: don't extract\r\n -c[r] for compile\r\n r: raw compiling\r\n -d for type\r\n" //Default Files #define RES_XML_UNKNOWN_XML "unknown.xml" #define RES_XML_RESOURC_XML "resources.xml" -//Difine max & min's +//Define max & min's #define MAX_RES_COUNT 65000 +//Define max & min's +#define MAX_FILENAME_SIZE 260 +#define MAX_EXTENSION_SIZE 10 + +#define DEFAULT_BACKUP_EXTENSION "bak" + //Path defines #ifdef UNIX #define DIR_SEPARATOR '/' @@ -38,12 +66,82 @@ #endif //Main functions -int prExportDat(char* vDatFile, char* vDirName, char* vResFile); -int prImportDat(char* vDatFile, char* vDirName, char* vResFile); -int prVerifyDatType(char* vFiledat); +int prExportDat(const char* vDatFile, const char* vDirName, const char* vResFile); +int prImportDat(const char* vDatFile, const char* vDirName, const char* vResFile); +int prVerifyDatType(const char* vFiledat); //Extra featured functions -int prExportDatOpt(char* vDatFile, char* vDirName, char* vResFile,char opt); -int prImportDatOpt(char* vDatFile, char* vDirName, char* vResFile,char opt); +int prExportDatOpt(const char* vDatFile, const char* vDirName, const char* vResFile,int opt,const char * vDatFileName,const char* datAuthor, const char* backupExtension); +int prImportDatOpt(const char* vDatFile, const char* vDirName, const char* vResFile,int opt,const char* vDatFileName, const char* backupExtension); + +//Command Line specific options + +#define PARSING_HELP "Usage: \n"\ +" pr [DATFILEPATH] [-x [EXTRACTDIR]|-c [COMPILEDIR]|-d]\n"\ +" pr [DATFILEPATH] [OPTIONS]\n"\ +"\n"\ +" Mandatory arguments to long options are mandatory for short options too.\n"\ +"\n"\ +" -c, --import[=DIRNAME] imports from DIRNAME into given dat file\n"\ +" -d, --classify returns the DAT file type\n"\ +" -x, -e, --export[=DIRNAME] extracts given dat file into DIRNAME\n"\ +"\n"\ +" -b, --backup[=EXTENSION] backup your files\n"\ +" -f, --force default option, you cannot disable it,\n"\ +" so please make a backup of your files\n"\ +" -g, --cgi run as CGI and output mime headers\n"\ +" -h, --help display this help and exit\n"\ +" -m, --resource=RESFILE uses an user-specific resource xml file\n"\ +" -r, --raw uses raw format\n"\ +" -R, --recursive searches for all dat files (only if DATFILEPATH\n"\ +" is not a dat file)\n"\ +" -t, --datfile=DATFILE specifies a dat file to read resources\n"\ +" different that the original file\n"\ +" --unknown generate the unknown file without performing\n"\ +" any extraction\n"\ +" -v, --verbose explain what is being done\n"\ +" --version output version information and exit\n"\ +"\n" + +//Add -a, --author for PLV format + +#define PARSING_OPTIONS {\ + {"import",optional_argument,0,'c'},\ + {"classify",no_argument,0,'d'},\ + {"export",optional_argument,0,'x'},\ +\ + {"backup",optional_argument,0,'b'},\ + {"force",no_argument,0,'f'},\ + {"cgi",no_argument,0,'g'},\ + {"help",no_argument,0,'?'},\ + {"resource",required_argument,0,'m'},\ + {"raw",no_argument,0,'r'},\ + {"recursive",no_argument,0,'R'},\ + {"datfile",required_argument,0,'t'},\ + {"unknown",no_argument,0,2},\ + {"verbose",no_argument,0,'v'},\ + {"version",no_argument,0,1},\ + {0, 0, 0, 0}\ + } + +#define PARSING_CHARS "c::dx::e::b::fgm:t:rRv" + +/* Flags */ +#define import_flag 0x0001 +#define classify_flag 0x0002 +#define export_flag 0x0004 +#define backup_flag 0x0008 +#define force_flag 0x0010 +#define cgi_flag 0x0020 +#define help_flag 0x0040 +#define undef4_flag 0x0080 +#define raw_flag 0x0100 +#define recursive_flag 0x0200 +#define verbose_flag 0x0400 +#define version_flag 0x0800 +#define unknown_flag 0x1000 +#define undef1_flag 0x2000 +#define undef2_flag 0x4000 +#define undef3_flag 0x8000 #endif diff --git a/PR/src/include/tree.h b/PR/src/include/tree.h index 8c443ca..228a429 100644 --- a/PR/src/include/tree.h +++ b/PR/src/include/tree.h @@ -5,19 +5,24 @@ #define MAX_LINE_SIZE 300 #define RES_XML_UNKNOWN_PATH "%s/unknown/%s/" +#define RES_XML_UNKNOWN_FILES "res%d.%s" #define RES_XML_UNKNOWN_START "<?xml version=\"1.0\" ?>\n<itemtypes version=\"0.6\">\n <folder name=\"unknown\" file=\"%s\" external=\"%s\" palette=\"%d\">\n" -#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" external=\"res%05d.%s\" itemtype=\"%s\">Unknown Resource number %d</item>\n" +#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" external=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown Resource number %d</item>\n" #define RES_XML_UNKNOWN_END " </folder>\n</itemtypes>\n" -#define RES_XML_UNKNOWN_FILES "%d.%s" +#define RES_FILE_EXTENSIONS {"raw","plv","bmp","wav","mid","ext","pal","pcs"} +#define RES_FILE_TYPES {"raw","level","image","wave","midi","unknown","palette","pcspeaker"} //types typedef struct { unsigned short int palette; unsigned short int size; - unsigned short int offset; + unsigned long int offset; + unsigned char number; //Used for level number char type; char* path; char* palAux; + char* title; + char* desc; }tResource; //Verify header @@ -31,7 +36,7 @@ char verifyHeader(char* array, int size); 04 Midis 05 Undefined 06 Palette - 07 Speaker Sounds + 07 Internal Speaker Sounds */ /***************************************************************\ @@ -42,11 +47,11 @@ char verifyHeader(char* array, int size); void emptyTable(tResource* r[]); //parse file -char parseFile(char* vFile, char* datFile, tResource* r[]); +char parseFile(const char* vFile, const char* datFile, tResource* r[]); //Resources extras -void getFileName(char* vFileext,char* vDirExt,tResource* r,short id,char* vFiledat); +void getFileName(char* vFileext,const char* vDirExt,tResource* r,short id,const char* vFiledat); void getUpperFolder(char* aux, char* vFiledat); const char* getExtDesc(int type); diff --git a/PR/src/include/unknown.h b/PR/src/include/unknown.h index 8c443ca..228a429 100644 --- a/PR/src/include/unknown.h +++ b/PR/src/include/unknown.h @@ -5,19 +5,24 @@ #define MAX_LINE_SIZE 300 #define RES_XML_UNKNOWN_PATH "%s/unknown/%s/" +#define RES_XML_UNKNOWN_FILES "res%d.%s" #define RES_XML_UNKNOWN_START "<?xml version=\"1.0\" ?>\n<itemtypes version=\"0.6\">\n <folder name=\"unknown\" file=\"%s\" external=\"%s\" palette=\"%d\">\n" -#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" external=\"res%05d.%s\" itemtype=\"%s\">Unknown Resource number %d</item>\n" +#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" external=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown Resource number %d</item>\n" #define RES_XML_UNKNOWN_END " </folder>\n</itemtypes>\n" -#define RES_XML_UNKNOWN_FILES "%d.%s" +#define RES_FILE_EXTENSIONS {"raw","plv","bmp","wav","mid","ext","pal","pcs"} +#define RES_FILE_TYPES {"raw","level","image","wave","midi","unknown","palette","pcspeaker"} //types typedef struct { unsigned short int palette; unsigned short int size; - unsigned short int offset; + unsigned long int offset; + unsigned char number; //Used for level number char type; char* path; char* palAux; + char* title; + char* desc; }tResource; //Verify header @@ -31,7 +36,7 @@ char verifyHeader(char* array, int size); 04 Midis 05 Undefined 06 Palette - 07 Speaker Sounds + 07 Internal Speaker Sounds */ /***************************************************************\ @@ -42,11 +47,11 @@ char verifyHeader(char* array, int size); void emptyTable(tResource* r[]); //parse file -char parseFile(char* vFile, char* datFile, tResource* r[]); +char parseFile(const char* vFile, const char* datFile, tResource* r[]); //Resources extras -void getFileName(char* vFileext,char* vDirExt,tResource* r,short id,char* vFiledat); +void getFileName(char* vFileext,const char* vDirExt,tResource* r,short id,const char* vFiledat); void getUpperFolder(char* aux, char* vFiledat); const char* getExtDesc(int type); diff --git a/PR/src/include/xml.h b/PR/src/include/xml.h index 3d7b25a..37d7434 100644 --- a/PR/src/include/xml.h +++ b/PR/src/include/xml.h @@ -17,6 +17,7 @@ typedef struct tTag { char* type; char* value; char* version; + char* number; }tTag; //Constants @@ -26,5 +27,5 @@ typedef struct tTag { //tTag* getTagStructure(); //initializes void freeTagStructure(tTag* structure); //int parseNext(char** pString, tTag* tag); -tTag* parseXmlFile(char* vFile,int* error); +tTag* parseXmlFile(const char* vFile,int* error); #endif