author | ecalot
<ecalot> 2005-06-05 02:28:45 UTC |
committer | ecalot
<ecalot> 2005-06-05 02:28:45 UTC |
parent | c5468c23b2329e14bcbac4b627be509d154b0fa6 |
PR/src/Makefile | +1 | -1 |
PR/src/include/autodetect.h | +2 | -2 |
PR/src/include/idlist.h | +2 | -2 |
PR/src/include/list.h | +61 | -0 |
PR/src/include/pr.h | +1 | -0 |
PR/src/include/tree.h | +2 | -2 |
PR/src/include/unknown.h | +2 | -2 |
PR/src/lib/actions/export.c | +2 | -2 |
PR/src/lib/actions/import.c | +2 | -2 |
PR/src/lib/layers/autodetect.c | +4 | -4 |
PR/src/lib/layers/idlist.c | +4 | -4 |
PR/src/lib/layers/list.c | +125 | -0 |
PR/src/lib/layers/reslist.c | +81 | -0 |
PR/src/lib/xml/parse.c | +4 | -0 |
PR/src/lib/xml/tree.c | +4 | -4 |
PR/src/lib/xml/unknown.c | +4 | -4 |
PR/src/xml/resources.xml | +191 | -24 |
diff --git a/PR/src/Makefile b/PR/src/Makefile index 6fc257d..5b3e52a 100644 --- a/PR/src/Makefile +++ b/PR/src/Makefile @@ -8,7 +8,7 @@ INFO = @echo MAKEDIR = @mkdir -p REMOVER = @rm -f GZIP = @gzip -COPY = @cp -f +COPY = @ln -f ##################### # Operating Systems # diff --git a/PR/src/include/autodetect.h b/PR/src/include/autodetect.h index 6c0a1d5..a493c21 100644 --- a/PR/src/include/autodetect.h +++ b/PR/src/include/autodetect.h @@ -39,7 +39,7 @@ resources.h: Princed Resources : Resource Handler headers #define RES_XML_UNKNOWN_PATH "%s/unknown/%s/" #define RES_XML_UNKNOWN_FILES "%s%02d.%s" #define RES_XML_UNKNOWN_START "<?xml version=\"1.0\" ?>\n<resources version=\"generated\">\n <folder name=\"unknown\" path=\"%s\" file=\"%s\" palette=\"%d\">\n" -#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" path=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown %s %d</item>\n" +#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" index=\"%s\" path=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown %s %d</item>\n" #define RES_XML_UNKNOWN_END " </folder>\n</resources>\n" /* File extensions */ @@ -123,7 +123,7 @@ int checkSum(const unsigned char* data,int size); void emptyTable(tResource* r[]); /* Resources extras */ -void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag,const char* backupExtension); +void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag,const char* backupExtension,const char* indexName); void getUpperFolder(char* aux, char* vFiledat); const char* getExtDesc(int type); diff --git a/PR/src/include/idlist.h b/PR/src/include/idlist.h index 6c0a1d5..a493c21 100644 --- a/PR/src/include/idlist.h +++ b/PR/src/include/idlist.h @@ -39,7 +39,7 @@ resources.h: Princed Resources : Resource Handler headers #define RES_XML_UNKNOWN_PATH "%s/unknown/%s/" #define RES_XML_UNKNOWN_FILES "%s%02d.%s" #define RES_XML_UNKNOWN_START "<?xml version=\"1.0\" ?>\n<resources version=\"generated\">\n <folder name=\"unknown\" path=\"%s\" file=\"%s\" palette=\"%d\">\n" -#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" path=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown %s %d</item>\n" +#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" index=\"%s\" path=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown %s %d</item>\n" #define RES_XML_UNKNOWN_END " </folder>\n</resources>\n" /* File extensions */ @@ -123,7 +123,7 @@ int checkSum(const unsigned char* data,int size); void emptyTable(tResource* r[]); /* Resources extras */ -void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag,const char* backupExtension); +void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag,const char* backupExtension,const char* indexName); void getUpperFolder(char* aux, char* vFiledat); const char* getExtDesc(int type); diff --git a/PR/src/include/list.h b/PR/src/include/list.h new file mode 100644 index 0000000..445e47d --- /dev/null +++ b/PR/src/include/list.h @@ -0,0 +1,61 @@ +/* Princed V3 - Prince of Persia Level Editor for PC Version + Copyright (C) 2003 Princed Development Team + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + The authors of this program may be contacted at http://forum.princed.com.ar +*/ + +/* +list.h: Princed Resources : Ordered Read-Only list headers +\xaf\xaf\xaf\xaf\xaf\xaf + Copyright 2005 Princed Development Team + Created: 04 Jun 2005 + + Author: Enrique Calot <ecalot.cod@princed.com.ar> + Version: 1.00 (2005-Jun-04) + + Note: + DO NOT remove this copyright notice +*/ + +/* Defines */ +#ifndef _LIST_H_ +#define _LIST_H_ + +#define GT 1 +#define EQ 0 +#define LT -1 + +typedef struct node { + void* data; + struct node* next; +}tListNode; + +typedef struct { + int size; + int (*cmp)(void*,void*); + tListNode *cursor,*first; +}tList; + +tList list_create(int dataSize,int dataCmp(void*,void*)); +void list_insert(tList *list,void* data); +void list_drop(tList *list); +void list_nextCursor(tList* list); +void list_firstCursor(tList* list); +int list_moveCursor(tList* list,void* data); +const void* list_getCursor(tList* list); + +#endif diff --git a/PR/src/include/pr.h b/PR/src/include/pr.h index 398048b..f248d18 100644 --- a/PR/src/include/pr.h +++ b/PR/src/include/pr.h @@ -55,6 +55,7 @@ typedef struct tTag { char* palette; char* type; char* value; + char* index; char* version; char* number; }tTag; diff --git a/PR/src/include/tree.h b/PR/src/include/tree.h index 6c0a1d5..a493c21 100644 --- a/PR/src/include/tree.h +++ b/PR/src/include/tree.h @@ -39,7 +39,7 @@ resources.h: Princed Resources : Resource Handler headers #define RES_XML_UNKNOWN_PATH "%s/unknown/%s/" #define RES_XML_UNKNOWN_FILES "%s%02d.%s" #define RES_XML_UNKNOWN_START "<?xml version=\"1.0\" ?>\n<resources version=\"generated\">\n <folder name=\"unknown\" path=\"%s\" file=\"%s\" palette=\"%d\">\n" -#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" path=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown %s %d</item>\n" +#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" index=\"%s\" path=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown %s %d</item>\n" #define RES_XML_UNKNOWN_END " </folder>\n</resources>\n" /* File extensions */ @@ -123,7 +123,7 @@ int checkSum(const unsigned char* data,int size); void emptyTable(tResource* r[]); /* Resources extras */ -void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag,const char* backupExtension); +void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag,const char* backupExtension,const char* indexName); 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 6c0a1d5..a493c21 100644 --- a/PR/src/include/unknown.h +++ b/PR/src/include/unknown.h @@ -39,7 +39,7 @@ resources.h: Princed Resources : Resource Handler headers #define RES_XML_UNKNOWN_PATH "%s/unknown/%s/" #define RES_XML_UNKNOWN_FILES "%s%02d.%s" #define RES_XML_UNKNOWN_START "<?xml version=\"1.0\" ?>\n<resources version=\"generated\">\n <folder name=\"unknown\" path=\"%s\" file=\"%s\" palette=\"%d\">\n" -#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" path=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown %s %d</item>\n" +#define RES_XML_UNKNOWN_ITEM " <item value=\"%d\" index=\"%s\" path=\""RES_XML_UNKNOWN_FILES"\" itemtype=\"%s\">Unknown %s %d</item>\n" #define RES_XML_UNKNOWN_END " </folder>\n</resources>\n" /* File extensions */ @@ -123,7 +123,7 @@ int checkSum(const unsigned char* data,int size); void emptyTable(tResource* r[]); /* Resources extras */ -void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag,const char* backupExtension); +void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag,const char* backupExtension,const char* indexName); void getUpperFolder(char* aux, char* vFiledat); const char* getExtDesc(int type); diff --git a/PR/src/lib/actions/export.c b/PR/src/lib/actions/export.c index 837e840..253b616 100644 --- a/PR/src/lib/actions/export.c +++ b/PR/src/lib/actions/export.c @@ -106,7 +106,7 @@ int extract(const char* vFiledat,const char* vDirExt, tResource* r[], int option if (hasFlag(raw_flag)) r[id]->type=0; /* If "extract as raw" is set, type is 0 */ /* get save file name (if unknown document it in the xml) */ - getFileName(vFileext,vDirExt,r[id],(unsigned short)id,vFiledat,vDatFileName,optionflag,backupExtension); + getFileName(vFileext,vDirExt,r[id],(unsigned short)id,vFiledat,vDatFileName,optionflag,backupExtension,indexName); switch (r[id]->type) { case RES_TYPE_LEVEL: @@ -174,7 +174,7 @@ int extract(const char* vFiledat,const char* vDirExt, tResource* r[], int option } } else { /* if the dat file is unknown, add it in the xml */ - getFileName(vFileext,vDirExt,r[id],(unsigned short)id,vFiledat,vDatFileName,optionflag,backupExtension); + getFileName(vFileext,vDirExt,r[id],(unsigned short)id,vFiledat,vDatFileName,optionflag,backupExtension,indexName); } /*freeAllocation(data);*/ } diff --git a/PR/src/lib/actions/import.c b/PR/src/lib/actions/import.c index ebfb23f..c70229b 100644 --- a/PR/src/lib/actions/import.c +++ b/PR/src/lib/actions/import.c @@ -111,7 +111,7 @@ int fullCompile(const char* vFiledat, const char* vDirExt, tResource* r[], int o for (;id!=MAX_RES_COUNT;id++) { if (r[id]!=NULL) { if (hasFlag(raw_flag)) r[id]->type=0; /* compile from raw */ - getFileName(vFileext,vDirExt,r[id],id,vFiledat,vDatFileName,optionflag,backupExtension); + getFileName(vFileext,vDirExt,r[id],id,vFiledat,vDatFileName,optionflag,backupExtension,"POP1"); /* the file is in the archive, so i'll add it to the main dat body */ if ((r[id]->size=((unsigned short)mLoadFileArray(vFileext,&data)))) { mWriteInitResource(r+id); @@ -181,7 +181,7 @@ int partialCompile(const char* vFiledat, const char* vDirExt, tResource* r[], in mWriteInitResource(r+id); if (r[id]&&isInThePartialList(r[id]->path,id)) { /* If the resource was specified */ if (hasFlag(raw_flag)) r[id]->type=0; /* compile from raw */ - getFileName(vFileext,vDirExt,r[id],(unsigned short)id,vFiledat,vDatFileName,optionflag,backupExtension); + getFileName(vFileext,vDirExt,r[id],(unsigned short)id,vFiledat,vDatFileName,optionflag,backupExtension,"POP1"); /* the file is in the archive, so i'll add it to the main dat body */ if ((r[id]->size=((unsigned long)mLoadFileArray(vFileext,&data)))) { diff --git a/PR/src/lib/layers/autodetect.c b/PR/src/lib/layers/autodetect.c index caf3179..3cc79fd 100644 --- a/PR/src/lib/layers/autodetect.c +++ b/PR/src/lib/layers/autodetect.c @@ -272,7 +272,7 @@ int parseFile(const char* vFile, const char* datFile, tResource* r[]) { /* Resources output to xml functions. Private+abstract variable */ static FILE* unknownXmlFile=NULL; -void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* ext,char type,const char* vDirExt,unsigned short pal,const char* vFiledat,int optionflag,int count) { +void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* ext,char type,const char* vDirExt,unsigned short pal,const char* vFiledat,int optionflag,int count,const char* indexName) { /* Open file if not open */ if (unknownXmlFile==NULL) { char xmlFile[MAX_FILENAME_SIZE]; @@ -290,7 +290,7 @@ void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* /* Write item */ fprintf(unknownXmlFile,RES_XML_UNKNOWN_ITEM, - id,getExtDesc(type),count,ext,getExtDesc(type),getExtDesc(type),count + id,indexName,getExtDesc(type),count,ext,getExtDesc(type),getExtDesc(type),count ); /* To the xml output */ } @@ -310,7 +310,7 @@ void endUnknownXml(int optionflag, const char* backupExtension) { | Resources extra functions | \***************************************************************/ -void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag, const char* backupExtension) { +void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag, const char* backupExtension,const char* indexName) { static const char* extarray[]=RES_FILE_EXTENSIONS; int pos; @@ -320,7 +320,7 @@ void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short /* set filename */ sprintf(vFileext,RES_XML_UNKNOWN_PATH""RES_XML_UNKNOWN_FILES,vDirExt,vDatFileName,getExtDesc(pos),typeCount[pos],extarray[pos]); - AddToUnknownXml(vDatFileName,id,extarray[pos],r->type,vDirExt,r->palette,vFiledat,optionflag,typeCount[pos]); + AddToUnknownXml(vDatFileName,id,extarray[pos],r->type,vDirExt,r->palette,vFiledat,optionflag,typeCount[pos],indexName); } else { /* set filename */ sprintf(vFileext,"%s/%s",vDirExt,r->path); diff --git a/PR/src/lib/layers/idlist.c b/PR/src/lib/layers/idlist.c index caf3179..3cc79fd 100644 --- a/PR/src/lib/layers/idlist.c +++ b/PR/src/lib/layers/idlist.c @@ -272,7 +272,7 @@ int parseFile(const char* vFile, const char* datFile, tResource* r[]) { /* Resources output to xml functions. Private+abstract variable */ static FILE* unknownXmlFile=NULL; -void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* ext,char type,const char* vDirExt,unsigned short pal,const char* vFiledat,int optionflag,int count) { +void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* ext,char type,const char* vDirExt,unsigned short pal,const char* vFiledat,int optionflag,int count,const char* indexName) { /* Open file if not open */ if (unknownXmlFile==NULL) { char xmlFile[MAX_FILENAME_SIZE]; @@ -290,7 +290,7 @@ void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* /* Write item */ fprintf(unknownXmlFile,RES_XML_UNKNOWN_ITEM, - id,getExtDesc(type),count,ext,getExtDesc(type),getExtDesc(type),count + id,indexName,getExtDesc(type),count,ext,getExtDesc(type),getExtDesc(type),count ); /* To the xml output */ } @@ -310,7 +310,7 @@ void endUnknownXml(int optionflag, const char* backupExtension) { | Resources extra functions | \***************************************************************/ -void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag, const char* backupExtension) { +void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag, const char* backupExtension,const char* indexName) { static const char* extarray[]=RES_FILE_EXTENSIONS; int pos; @@ -320,7 +320,7 @@ void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short /* set filename */ sprintf(vFileext,RES_XML_UNKNOWN_PATH""RES_XML_UNKNOWN_FILES,vDirExt,vDatFileName,getExtDesc(pos),typeCount[pos],extarray[pos]); - AddToUnknownXml(vDatFileName,id,extarray[pos],r->type,vDirExt,r->palette,vFiledat,optionflag,typeCount[pos]); + AddToUnknownXml(vDatFileName,id,extarray[pos],r->type,vDirExt,r->palette,vFiledat,optionflag,typeCount[pos],indexName); } else { /* set filename */ sprintf(vFileext,"%s/%s",vDirExt,r->path); diff --git a/PR/src/lib/layers/list.c b/PR/src/lib/layers/list.c new file mode 100644 index 0000000..37e5504 --- /dev/null +++ b/PR/src/lib/layers/list.c @@ -0,0 +1,125 @@ +/* Princed V3 - Prince of Persia Level Editor for PC Version + Copyright (C) 2003 Princed Development Team + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + The authors of this program may be contacted at http://forum.princed.com.ar +*/ + +/* +list.c: Princed Resources : Ordered Read-Only list implementarion +\xaf\xaf\xaf\xaf\xaf\xaf + Copyright 2005 Princed Development Team + Created: 04 Jun 2005 + + Author: Enrique Calot <ecalot.cod@princed.com.ar> + Version: 1.00 (2005-Jun-04) + + Note: + DO NOT remove this copyright notice +*/ + +/* Defines */ +#include <stdlib.h> +#include "list.h" + +tList list_create(int dataSize,int dataCmp(void*,void*)) { + tList r; + r.size=dataSize; + r.cmp=dataCmp; + r.cursor=NULL; + r.first=NULL; + return r; +} + +void list_insert(tList *list,void* data) { + /* I will assume sequential access is very common, + * so it is very possible that data is the next element. + * I will check that and if not I'll start a sequential search */ + tListNode *node; + node=(tListNode*)malloc(sizeof(tListNode)); + node->data=malloc(list->size); + memcpy(node->data,data,list->size); + + if (!list->cursor) { + /* insert first */ + list->first=node; + node->next=NULL; + } else { + /* if the data was lower, start searching from the beginning */ + if (list->cmp(list->cursor->data/*>*/,data)==GT) list->cursor=list->first; + /* in case the first record is higher than the data, we will insert the data as the first */ + if ((list->cursor==list->first) && (list->cmp(list->first->data/*>=*/,data)!=LT)) { + node->next=list->first; + list->first=node; + } else { + /* search until we find the first higher record or the end of the list */ + while ((list->cursor->next) && (list->cmp(list->cursor->next->data/*>*/,data)!=GT)) + list->cursor=list->cursor->next; + + node->next=list->cursor->next; + list->cursor->next=node; + } + } + + list->cursor=node; +} + +void list_drop(tList *list) { + tListNode* aux; + list->cursor=list->first; + while (list->cursor) { + aux=list->cursor->next; + free(list->cursor->data); + free(list->cursor); + list->cursor=aux; + } + list->first=NULL; +} + +void list_nextCursor(tList* list) { + if (list->cursor) list->cursor=list->cursor->next; +} + +void list_firstCursor(tList* list) { + list->cursor=list->first; +} + +int list_moveCursor(tList* list,void* data) { + if (!list->cursor) { + return 0; + } else { + /* if the data was lower, start searching from the beginning */ + if (list->cmp(list->cursor->data/*>*/,data)==GT) list->cursor=list->first; + /* in case the first record is higher than the data, we will move the cursor to the first and return 0 */ + if ((list->cursor==list->first) && (list->cmp(list->first->data/*>=*/,data)!=LT)) { + list->cursor=list->first; + return 0; + } else { + /* search until we find the first higher record or the end of the list */ + while ((list->cursor->next) && (list->cmp(list->cursor->next->data/*>*/,data)!=GT)) + list->cursor=list->cursor->next; + /* if the prior to the first higher record is equal to data, we've found it, if not 0 will be returned; + * of course the cursor will be set to the prior to the first higher record in both cases */ + return (list->cmp(list->cursor->data/*>*/,data)==EQ); + } + } +} + +const void* list_getCursor(tList* list) { + if (!list->cursor) return NULL; + return list->cursor->data; +} + diff --git a/PR/src/lib/layers/reslist.c b/PR/src/lib/layers/reslist.c new file mode 100644 index 0000000..198d88f --- /dev/null +++ b/PR/src/lib/layers/reslist.c @@ -0,0 +1,81 @@ +/* Princed V3 - Prince of Persia Level Editor for PC Version + Copyright (C) 2003 Princed Development Team + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + The authors of this program may be contacted at http://forum.princed.com.ar +*/ + +/* +reslist.c: Princed Resources : Ordered Read-Only list implementarion +\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf + Copyright 2005 Princed Development Team + Created: 04 Jun 2005 + + Author: Enrique Calot <ecalot.cod@princed.com.ar> + Version: 1.00 (2005-Jun-04) + + Note: + DO NOT remove this copyright notice +*/ + +/* Defines */ +#include "list.h" + +/* app test */ + +int dataCmp(void* a,void* b) { + int ap,bp; + ap=*((int*)a); + bp=*((int*)b); + + if (ap>bp) return GT; + if (ap<bp) return LT; + return EQ; +} + + +int main(int a, char** b) { + tList lista; + const int* value; + int k; + int i; + + lista=list_create(sizeof(int),dataCmp); + + for (i=1;i<a;i++) { + k=atoi(b[i]); + list_insert(&lista,&k); + } + + list_firstCursor(&lista); + while (value=list_getCursor(&lista)) { + printf("value: %d\n",*value); + list_nextCursor(&lista); + } + + list_firstCursor(&lista); + k=100; + i=list_moveCursor(&lista,&k); + if (value=list_getCursor(&lista)) + printf("value prior 100: %d %d\n",*value,i); + + + printf("listo\n"); + list_drop(&lista); + return 0; +} + + diff --git a/PR/src/lib/xml/parse.c b/PR/src/lib/xml/parse.c index f8660a2..14dbbfb 100644 --- a/PR/src/lib/xml/parse.c +++ b/PR/src/lib/xml/parse.c @@ -86,6 +86,7 @@ tTag* getTagStructure() { t->palette=NULL; t->type=NULL; t->value=NULL; + t->index=NULL; t->version=NULL; t->number=NULL; @@ -105,6 +106,7 @@ void freeTagStructure(tTag* t) { freeAllocation(t->palette); freeAllocation(t->type); freeAllocation(t->value); + freeAllocation(t->index); freeAllocation(t->version); freeAllocation(t->number); free(t); @@ -131,6 +133,7 @@ int attribFill(char* attr,char* val, tTag* t) { FillAttr(t->palette,"palette"); FillAttr(t->type,"type"); FillAttr(t->value,"value"); + FillAttr(t->value,"index"); FillAttr(t->version,"version"); FillAttr(t->number,"levelnumber"); /* levelnumber is a number alias */ FillAttr(t->number,"number"); @@ -363,6 +366,7 @@ tTag* makeTree(char** p,char* name, int* error,tTag* father) { TotalInheritance(palette); TotalInheritance(itemtype); TotalInheritance(file); + TotalInheritance(index); /* PartialConcatInheritance(tag->path,father->path,tag->value); */ if ((tag->value==NULL)||(tag->path!=NULL)) { /* Make sure paths do exist */ diff --git a/PR/src/lib/xml/tree.c b/PR/src/lib/xml/tree.c index caf3179..3cc79fd 100644 --- a/PR/src/lib/xml/tree.c +++ b/PR/src/lib/xml/tree.c @@ -272,7 +272,7 @@ int parseFile(const char* vFile, const char* datFile, tResource* r[]) { /* Resources output to xml functions. Private+abstract variable */ static FILE* unknownXmlFile=NULL; -void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* ext,char type,const char* vDirExt,unsigned short pal,const char* vFiledat,int optionflag,int count) { +void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* ext,char type,const char* vDirExt,unsigned short pal,const char* vFiledat,int optionflag,int count,const char* indexName) { /* Open file if not open */ if (unknownXmlFile==NULL) { char xmlFile[MAX_FILENAME_SIZE]; @@ -290,7 +290,7 @@ void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* /* Write item */ fprintf(unknownXmlFile,RES_XML_UNKNOWN_ITEM, - id,getExtDesc(type),count,ext,getExtDesc(type),getExtDesc(type),count + id,indexName,getExtDesc(type),count,ext,getExtDesc(type),getExtDesc(type),count ); /* To the xml output */ } @@ -310,7 +310,7 @@ void endUnknownXml(int optionflag, const char* backupExtension) { | Resources extra functions | \***************************************************************/ -void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag, const char* backupExtension) { +void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag, const char* backupExtension,const char* indexName) { static const char* extarray[]=RES_FILE_EXTENSIONS; int pos; @@ -320,7 +320,7 @@ void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short /* set filename */ sprintf(vFileext,RES_XML_UNKNOWN_PATH""RES_XML_UNKNOWN_FILES,vDirExt,vDatFileName,getExtDesc(pos),typeCount[pos],extarray[pos]); - AddToUnknownXml(vDatFileName,id,extarray[pos],r->type,vDirExt,r->palette,vFiledat,optionflag,typeCount[pos]); + AddToUnknownXml(vDatFileName,id,extarray[pos],r->type,vDirExt,r->palette,vFiledat,optionflag,typeCount[pos],indexName); } else { /* set filename */ sprintf(vFileext,"%s/%s",vDirExt,r->path); diff --git a/PR/src/lib/xml/unknown.c b/PR/src/lib/xml/unknown.c index caf3179..3cc79fd 100644 --- a/PR/src/lib/xml/unknown.c +++ b/PR/src/lib/xml/unknown.c @@ -272,7 +272,7 @@ int parseFile(const char* vFile, const char* datFile, tResource* r[]) { /* Resources output to xml functions. Private+abstract variable */ static FILE* unknownXmlFile=NULL; -void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* ext,char type,const char* vDirExt,unsigned short pal,const char* vFiledat,int optionflag,int count) { +void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* ext,char type,const char* vDirExt,unsigned short pal,const char* vFiledat,int optionflag,int count,const char* indexName) { /* Open file if not open */ if (unknownXmlFile==NULL) { char xmlFile[MAX_FILENAME_SIZE]; @@ -290,7 +290,7 @@ void AddToUnknownXml(const char* vFiledatWithPath,unsigned short id,const char* /* Write item */ fprintf(unknownXmlFile,RES_XML_UNKNOWN_ITEM, - id,getExtDesc(type),count,ext,getExtDesc(type),getExtDesc(type),count + id,indexName,getExtDesc(type),count,ext,getExtDesc(type),getExtDesc(type),count ); /* To the xml output */ } @@ -310,7 +310,7 @@ void endUnknownXml(int optionflag, const char* backupExtension) { | Resources extra functions | \***************************************************************/ -void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag, const char* backupExtension) { +void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short id,const char* vFiledat, const char* vDatFileName,int optionflag, const char* backupExtension,const char* indexName) { static const char* extarray[]=RES_FILE_EXTENSIONS; int pos; @@ -320,7 +320,7 @@ void getFileName(char* vFileext,const char* vDirExt,tResource* r,unsigned short /* set filename */ sprintf(vFileext,RES_XML_UNKNOWN_PATH""RES_XML_UNKNOWN_FILES,vDirExt,vDatFileName,getExtDesc(pos),typeCount[pos],extarray[pos]); - AddToUnknownXml(vDatFileName,id,extarray[pos],r->type,vDirExt,r->palette,vFiledat,optionflag,typeCount[pos]); + AddToUnknownXml(vDatFileName,id,extarray[pos],r->type,vDirExt,r->palette,vFiledat,optionflag,typeCount[pos],indexName); } else { /* set filename */ sprintf(vFileext,"%s/%s",vDirExt,r->path); diff --git a/PR/src/xml/resources.xml b/PR/src/xml/resources.xml index 24d2e08..d7e046e 100644 --- a/PR/src/xml/resources.xml +++ b/PR/src/xml/resources.xml @@ -37,13 +37,14 @@ resources.xml: Princed Resources : Resource tree Version: 0.7.7 (2004-Feb-28) Version: 0.8.1 (2004-Mar-11) Version: 0.8.2 (2005-Mar-26) - + Version: 1.0.0 (2005-Jun-04) + Note: DO NOT remove this copyright notice --> -<resources version="0.8"> - <folder name="binary" file="title.dat" path="title"> +<resources version="1.0"> + <folder index="pop1" name="binary" file="title.dat" path="title"> <folder path="texts" itemtype="image" palette="monochrome"> <item value="42" path="in the absence.bmp">Text in the absence (42)</item> <item value="43" path="marry jaffar.bmp">Text marry jaffar (43)</item> @@ -64,7 +65,7 @@ resources.xml: Princed Resources : Resource tree </folder> </folder> - <folder itemtype="image" name="vga dungeon enviornment" file="vdungeon.dat" path="vdungeon" palette="200"> + <folder itemtype="image" index="pop1" name="vga dungeon enviornment" file="vdungeon.dat" path="vdungeon" palette="200"> <folder itemtype="palette" name="palette" path="palette"> <item value="200" path="dungeon.pal">Dungeon Palette</item> </folder> @@ -308,7 +309,7 @@ resources.xml: Princed Resources : Resource tree </folder> - <folder itemtype="image" name="vga palace enviornment" file="vpalace.dat" path="vpalace" palette="200"> + <folder itemtype="image" index="pop1" name="vga palace enviornment" file="vpalace.dat" path="vpalace" palette="200"> <folder path="palettes" name="palettes" itemtype="palette"> <item value="200" path="palace.pal">Main palace palette</item> <item value="360" path="wall.pal">Wall palette for res 361</item> @@ -593,7 +594,7 @@ resources.xml: Princed Resources : Resource tree </folder> </folder> - <folder name="binary" file="pv.dat" path="pv" palette="800" itemtype="image"> + <folder index="pop1" name="binary" file="pv.dat" path="pv" palette="800" itemtype="image"> <folder path="jaffar" palette="850"> <item value="850" path="palette.pal" itemtype="palette">Unknown Resource number 850</item> <folder path="walking"> @@ -717,7 +718,7 @@ resources.xml: Princed Resources : Resource tree </folder> </folder> - <folder name="binary" file="prince.dat" path="prince" palette="150"> + <folder index="pop1" name="binary" file="prince.dat" path="prince" palette="150"> <item value="150" path="main.pal" itemtype="palette">Unknown Resource number 150</item> <folder name="fire animation" path="fire" itemtype="image" palette="150"> @@ -805,7 +806,7 @@ resources.xml: Princed Resources : Resource tree </folder> - <folder name="binary" file="kid.dat" path="kid" palette="400" itemtype="image"> + <folder index="pop1" name="binary" file="kid.dat" path="kid" palette="400" itemtype="image"> <item value="400" path="kid.pal" itemtype="palette">Resource number 400</item> <folder path="running"> <item value="401" path="frame01.bmp">Image frame01 (401)</item> @@ -1068,7 +1069,7 @@ resources.xml: Princed Resources : Resource tree </folder> </folder> - <folder name="midi sound" file="midisnd1.dat" path="midisnd1" itemtype="midi"> + <folder index="pop1" name="midi sound" file="midisnd1.dat" path="midisnd1" itemtype="midi"> <item value="10024" path="death 1.mid">Unknown Resource number 10024</item> <item value="10025" path="presentation.mid">Unknown Resource number 10025</item> <item value="10026" path="arrived to princess.mid">Unknown Resource number 10026</item> @@ -1087,7 +1088,7 @@ resources.xml: Princed Resources : Resource tree <item value="10043" path="guard death 2.mid">Unknown Resource number 10043</item> </folder> - <folder name="midi sound 2" file="midisnd2.dat" path="midisnd2" itemtype="midi"> + <folder index="pop1" name="midi sound 2" file="midisnd2.dat" path="midisnd2" itemtype="midi"> <item value="10050" path="princess waiting 3.mid">Unknown Resource number 10050</item> <item value="10052" path="story3.mid">Unknown Resource number 10052</item> <item value="10053" path="story2 jaffar and clock apprearing.mid">Unknown Resource number 10053</item> @@ -1096,7 +1097,7 @@ resources.xml: Princed Resources : Resource tree <item value="10056" path="winning theme.mid">Unknown Resource number 10056</item> </folder> - <folder name="digital sound" file="digisnd1.dat" path="digisnd1" itemtype="wave"> + <folder index="pop1" name="digital sound" file="digisnd1.dat" path="digisnd1" itemtype="wave"> <item value="10000" path="prince crashing into the floor.wav">crash with the flood</item> <item value="10002" path="tile crashing into the floor.wav">Unknown Resource number 10002</item> <item value="10003" path="door tile pressed 1.wav">Unknown Resource number 10003</item> @@ -1118,7 +1119,7 @@ resources.xml: Princed Resources : Resource tree <item value="10022" path="door gate closing slow 2.wav">Unknown Resource number 10022</item> <item value="10023" path="running 2.wav">Unknown Resource number 10023</item> </folder> - <folder name="binary" file="digisnd2.dat" path="digisnd2" itemtype="wave"> + <folder index="pop1" name="binary" file="digisnd2.dat" path="digisnd2" itemtype="wave"> <item value="10044" path="skel alive.wav">Unknown Resource number 10044</item> <item value="10045" path="mirror.wav">Unknown Resource number 10045</item> <item value="10046" path="something chopped.wav">Unknown Resource number 10046</item> @@ -1127,7 +1128,7 @@ resources.xml: Princed Resources : Resource tree <item value="10049" path="spikes.wav">Unknown Resource number 10049</item> <item value="10051" path="res10051.wav">Unknown Resource number 10051</item> </folder> - <folder name="binary" file="digisnd3.dat" path="digisnd3" itemtype="wave"> + <folder index="pop1" name="binary" file="digisnd3.dat" path="digisnd3" itemtype="wave"> <item value="10001" path="falling.wav">Unknown Resource number 10001</item> <item value="10014" path="res10014.wav">Unknown Resource number 10014</item> <item value="10015" path="res10015.bin" itemtype="binary">Unknown Resource number 10015</item> @@ -1135,7 +1136,7 @@ resources.xml: Princed Resources : Resource tree </folder> <!-- not processed --> - <folder name="binary" file="ibm_snd1.dat" path="ibm_snd1" itemtype="pcspeaker"> + <folder index="pop1" name="binary" file="ibm_snd1.dat" path="ibm_snd1" itemtype="pcspeaker"> <item value="10000" path="snd00.pcs">Unknown Resource number 10000</item> <item value="10001" path="snd01.bin" itemtype="binary">Unknown Resource number 10001</item> <item value="10002" path="snd02.pcs">Unknown Resource number 10002</item> @@ -1181,7 +1182,7 @@ resources.xml: Princed Resources : Resource tree <item value="10042" path="snd42.bin" itemtype="binary">Unknown Resource number 10042</item> <item value="10043" path="snd43.pcs">Unknown Resource number 10043</item> </folder> - <folder name="binary" file="ibm_snd2.dat" path="ibm_snd2" itemtype="pcspeaker"> + <folder index="pop1" name="binary" file="ibm_snd2.dat" path="ibm_snd2" itemtype="pcspeaker"> <item value="10044" path="snd44.pcs">Unknown Resource number 10044</item> <item value="10045" path="snd45.pcs">Unknown Resource number 10045</item> <item value="10046" path="snd46.pcs">Unknown Resource number 10046</item> @@ -1199,7 +1200,7 @@ resources.xml: Princed Resources : Resource tree <!-- guards --> - <folder name="binary" file="skel.dat" path="skel" palette="750"> + <folder index="pop1" name="binary" file="skel.dat" path="skel" palette="750"> <item value="750" path="res750.pal" itemtype="palette">Unknown Resource number 750</item> <item value="751" path="res751.bin" itemtype="binary">Unknown Resource number 751</item> <item value="752" path="res752.bin" itemtype="binary">Unknown Resource number 752</item> @@ -1231,7 +1232,7 @@ resources.xml: Princed Resources : Resource tree <item value="778" path="chopped.bmp" itemtype="image">Unknown Resource number 778</item> </folder> - <folder name="binary" file="vizier.dat" path="vizier" palette="750"> + <folder index="pop1" name="binary" file="vizier.dat" path="vizier" palette="750"> <item value="750" path="res750.pal" itemtype="palette">Unknown Resource number 750</item> <item value="751" path="hit points.bmp" itemtype="image">Unknown Resource number 751</item> <item value="752" path="splash.bmp" itemtype="image">Unknown Resource number 752</item> @@ -1269,7 +1270,7 @@ resources.xml: Princed Resources : Resource tree <item value="784" path="res784.bmp" itemtype="image">Unknown Resource number 784</item> </folder> - <folder name="binary" file="shadow.dat" path="shadow" palette="750"> + <folder index="pop1" name="binary" file="shadow.dat" path="shadow" palette="750"> <item value="750" path="res750.pal" itemtype="palette">Unknown Resource number 750</item> <item value="751" path="hit points.bmp" itemtype="image">Unknown Resource number 751</item> <item value="752" path="splash.bmp" itemtype="image">Unknown Resource number 752</item> @@ -1305,7 +1306,7 @@ resources.xml: Princed Resources : Resource tree <item value="782" path="res782.bin" itemtype="binary">Unknown Resource number 782</item> </folder> - <folder name="binary" file="fat.dat" path="fat" palette="750"> + <folder index="pop1" name="binary" file="fat.dat" path="fat" palette="750"> <item value="750" path="res750.pal" itemtype="palette">Unknown Resource number 750</item> <item value="751" path="hit points.bmp" itemtype="image">Unknown Resource number 751</item> <item value="752" path="splash.bmp" itemtype="image">Unknown Resource number 752</item> @@ -1342,7 +1343,7 @@ resources.xml: Princed Resources : Resource tree <item value="783" path="res783.bmp" itemtype="image">Unknown Resource number 783</item> <item value="784" path="res784.bmp" itemtype="image">Unknown Resource number 784</item> </folder> - <folder name="binary" file="guard.dat" path="guards" palette="0"> + <folder index="pop1" name="binary" file="guard.dat" path="guards" palette="0"> <item value="751" path="hit points.bmp" itemtype="image">Unknown Resource number 751</item> <item value="752" path="splash.bmp" itemtype="image">Unknown Resource number 752</item> <item value="753" path="res753.bmp" itemtype="image">Unknown Resource number 753</item> @@ -1378,14 +1379,14 @@ resources.xml: Princed Resources : Resource tree <item value="783" path="res783.bmp" itemtype="image">Unknown Resource number 783</item> <item value="784" path="res784.bmp" itemtype="image">Unknown Resource number 784</item> </folder> - <folder name="binary" file="guard1.dat" path="guards" palette="750"> + <folder index="pop1" name="binary" file="guard1.dat" path="guards" palette="750"> <item value="750" path="palette1.pal" itemtype="palette">Unknown Resource number 750</item> </folder> - <folder name="binary" file="guard2.dat" path="guards" palette="750"> + <folder index="pop1" name="binary" file="guard2.dat" path="guards" palette="750"> <item value="750" path="palette2.pal" itemtype="palette">Unknown Resource number 750</item> </folder> - <folder name="binary" file="levels.dat" itemtype="level" path="levels"> + <folder index="pop1" name="binary" file="levels.dat" itemtype="level" path="levels"> <item value="2000" number="0" path="demo.plv">Demo level</item> <item value="2001" number="1" path="level1.plv">Level 1</item> <item value="2002" number="2" path="level2.plv">Level 2</item> @@ -1404,13 +1405,178 @@ resources.xml: Princed Resources : Resource tree <item value="2015" number="15" path="potions.plv">Potions level</item> </folder> + <folder index="pahs" name="the pop2 bird guard" file="bird.dat" itemtype="image" path="bird" palette="750"> + <item value="750" index="mark" path="binary01.bin" itemtype="binary">Unknown binary 1</item> + <item value="750" index="clap" path="binary02.bin" itemtype="binary">Unknown binary 2</item> + <item value="750" index="slap" path="bird.pal" itemtype="palette">The bird palette</item> + <item value="751" path="image01.bmp" itemtype="image">Unknown image 1</item> + <item value="752" path="image02.bmp" itemtype="image">Unknown image 2</item> + <item value="753" path="image03.bmp" itemtype="image">Unknown image 3</item> + <item value="754" path="image04.bmp" itemtype="image">Unknown image 4</item> + <item value="755" path="image05.bmp" itemtype="image">Unknown image 5</item> + <item value="756" path="image06.bmp" itemtype="image">Unknown image 6</item> + <item value="757" path="image07.bmp" itemtype="image">Unknown image 7</item> + <item value="758" path="image08.bmp" itemtype="image">Unknown image 8</item> + <item value="759" path="image09.bmp" itemtype="image">Unknown image 9</item> + <item value="760" path="image10.bmp" itemtype="image">Unknown image 10</item> + <item value="761" path="image11.bmp" itemtype="image">Unknown image 11</item> + <item value="762" path="image12.bmp" itemtype="image">Unknown image 12</item> + <item value="763" path="image13.bmp" itemtype="image">Unknown image 13</item> + <item value="764" path="image14.bmp" itemtype="image">Unknown image 14</item> + <item value="765" path="image15.bmp" itemtype="image">Unknown image 15</item> + <item value="766" path="image16.bmp" itemtype="image">Unknown image 16</item> + <item value="767" path="image17.bmp" itemtype="image">Unknown image 17</item> + <item value="768" path="image18.bmp" itemtype="image">Unknown image 18</item> + <item value="769" path="image19.bmp" itemtype="image">Unknown image 19</item> + <item value="770" path="image20.bmp" itemtype="image">Unknown image 20</item> + <item value="771" path="image21.bmp" itemtype="image">Unknown image 21</item> + <item value="772" path="image22.bmp" itemtype="image">Unknown image 22</item> + <item value="773" path="image23.bmp" itemtype="image">Unknown image 23</item> + <item value="774" path="image24.bmp" itemtype="image">Unknown image 24</item> + <item value="775" path="image25.bmp" itemtype="image">Unknown image 25</item> + <item value="776" path="image26.bmp" itemtype="image">Unknown image 26</item> + <item value="777" path="image27.bmp" itemtype="image">Unknown image 27</item> + <item value="778" path="image28.bmp" itemtype="image">Unknown image 28</item> + <item value="779" path="image29.bmp" itemtype="image">Unknown image 29</item> + <item value="780" path="image30.bmp" itemtype="image">Unknown image 30</item> + <item value="781" path="image31.bmp" itemtype="image">Unknown image 31</item> + <item value="782" path="image32.bmp" itemtype="image">Unknown image 32</item> + <item value="783" path="image33.bmp" itemtype="image">Unknown image 33</item> + <item value="784" path="image34.bmp" itemtype="image">Unknown image 34</item> + <item value="785" path="image35.bmp" itemtype="image">Unknown image 35</item> + <item value="786" path="image36.bmp" itemtype="image">Unknown image 36</item> + <item value="787" path="image37.bmp" itemtype="image">Unknown image 37</item> + <item value="788" path="image38.bmp" itemtype="image">Unknown image 38</item> + <item value="789" path="image39.bmp" itemtype="image">Unknown image 39</item> + <item value="790" path="image40.bmp" itemtype="image">Unknown image 40</item> + <item value="791" path="pcspeaker01.pcs" itemtype="pcspeaker">Unknown pcspeaker 1</item> + <item value="792" path="pcspeaker02.pcs" itemtype="pcspeaker">Unknown pcspeaker 2</item> + <item value="793" path="pcspeaker03.pcs" itemtype="pcspeaker">Unknown pcspeaker 3</item> + <item value="794" path="pcspeaker04.pcs" itemtype="pcspeaker">Unknown pcspeaker 4</item> + <item value="795" path="pcspeaker05.pcs" itemtype="pcspeaker">Unknown pcspeaker 5</item> + <item value="796" path="pcspeaker06.pcs" itemtype="pcspeaker">Unknown pcspeaker 6</item> + <item value="797" path="pcspeaker07.pcs" itemtype="pcspeaker">Unknown pcspeaker 7</item> + <item value="798" path="pcspeaker08.pcs" itemtype="pcspeaker">Unknown pcspeaker 8</item> + <item value="799" path="pcspeaker09.pcs" itemtype="pcspeaker">Unknown pcspeaker 9</item> + <item value="800" path="pcspeaker10.pcs" itemtype="pcspeaker">Unknown pcspeaker 10</item> + <item value="801" path="pcspeaker11.pcs" itemtype="pcspeaker">Unknown pcspeaker 11</item> + <item value="802" path="pcspeaker12.pcs" itemtype="pcspeaker">Unknown pcspeaker 12</item> + <item value="803" path="pcspeaker13.pcs" itemtype="pcspeaker">Unknown pcspeaker 13</item> + <item value="804" path="pcspeaker14.pcs" itemtype="pcspeaker">Unknown pcspeaker 14</item> + <item value="805" path="pcspeaker15.pcs" itemtype="pcspeaker">Unknown pcspeaker 15</item> + <item value="806" path="pcspeaker16.pcs" itemtype="pcspeaker">Unknown pcspeaker 16</item> + <item value="807" path="pcspeaker17.pcs" itemtype="pcspeaker">Unknown pcspeaker 17</item> + <item value="808" path="pcspeaker18.pcs" itemtype="pcspeaker">Unknown pcspeaker 18</item> + <item value="809" path="pcspeaker19.pcs" itemtype="pcspeaker">Unknown pcspeaker 19</item> + <item value="810" path="pcspeaker20.pcs" itemtype="pcspeaker">Unknown pcspeaker 20</item> + <item value="811" path="pcspeaker21.pcs" itemtype="pcspeaker">Unknown pcspeaker 21</item> + <item value="812" path="pcspeaker22.pcs" itemtype="pcspeaker">Unknown pcspeaker 22</item> + <item value="813" path="pcspeaker23.pcs" itemtype="pcspeaker">Unknown pcspeaker 23</item> + <item value="814" path="pcspeaker24.pcs" itemtype="pcspeaker">Unknown pcspeaker 24</item> + <item value="815" path="pcspeaker25.pcs" itemtype="pcspeaker">Unknown pcspeaker 25</item> + <item value="816" path="pcspeaker26.pcs" itemtype="pcspeaker">Unknown pcspeaker 26</item> + <item value="817" path="pcspeaker27.pcs" itemtype="pcspeaker">Unknown pcspeaker 27</item> + <item value="818" path="pcspeaker28.pcs" itemtype="pcspeaker">Unknown pcspeaker 28</item> + <item value="819" path="pcspeaker29.pcs" itemtype="pcspeaker">Unknown pcspeaker 29</item> + <item value="820" path="pcspeaker30.pcs" itemtype="pcspeaker">Unknown pcspeaker 30</item> + <item value="821" path="pcspeaker31.pcs" itemtype="pcspeaker">Unknown pcspeaker 31</item> + <item value="822" path="pcspeaker32.pcs" itemtype="pcspeaker">Unknown pcspeaker 32</item> + <item value="823" path="pcspeaker33.pcs" itemtype="pcspeaker">Unknown pcspeaker 33</item> + <item value="824" path="pcspeaker34.pcs" itemtype="pcspeaker">Unknown pcspeaker 34</item> + <item value="825" path="pcspeaker35.pcs" itemtype="pcspeaker">Unknown pcspeaker 35</item> + <item value="826" path="pcspeaker36.pcs" itemtype="pcspeaker">Unknown pcspeaker 36</item> + <item value="827" path="pcspeaker37.pcs" itemtype="pcspeaker">Unknown pcspeaker 37</item> + <item value="828" path="pcspeaker38.pcs" itemtype="pcspeaker">Unknown pcspeaker 38</item> + <item value="829" path="pcspeaker39.pcs" itemtype="pcspeaker">Unknown pcspeaker 39</item> + <item value="830" path="pcspeaker40.pcs" itemtype="pcspeaker">Unknown pcspeaker 40</item> + <item value="831" path="pcspeaker41.pcs" itemtype="pcspeaker">Unknown pcspeaker 41</item> + <item value="832" path="pcspeaker42.pcs" itemtype="pcspeaker">Unknown pcspeaker 42</item> + <item value="833" path="pcspeaker43.pcs" itemtype="pcspeaker">Unknown pcspeaker 43</item> + <item value="834" path="pcspeaker44.pcs" itemtype="pcspeaker">Unknown pcspeaker 44</item> + <item value="835" path="pcspeaker45.pcs" itemtype="pcspeaker">Unknown pcspeaker 45</item> + <item value="836" path="pcspeaker46.pcs" itemtype="pcspeaker">Unknown pcspeaker 46</item> + <item value="837" path="pcspeaker47.pcs" itemtype="pcspeaker">Unknown pcspeaker 47</item> + <item value="838" path="pcspeaker48.pcs" itemtype="pcspeaker">Unknown pcspeaker 48</item> + <item value="839" path="pcspeaker49.pcs" itemtype="pcspeaker">Unknown pcspeaker 49</item> + <item value="840" path="pcspeaker50.pcs" itemtype="pcspeaker">Unknown pcspeaker 50</item> + <item value="841" path="pcspeaker51.pcs" itemtype="pcspeaker">Unknown pcspeaker 51</item> + <item value="842" path="pcspeaker52.pcs" itemtype="pcspeaker">Unknown pcspeaker 52</item> + <item value="843" path="pcspeaker53.pcs" itemtype="pcspeaker">Unknown pcspeaker 53</item> + <item value="844" path="pcspeaker54.pcs" itemtype="pcspeaker">Unknown pcspeaker 54</item> + <item value="845" path="pcspeaker55.pcs" itemtype="pcspeaker">Unknown pcspeaker 55</item> + <item value="846" path="pcspeaker56.pcs" itemtype="pcspeaker">Unknown pcspeaker 56</item> + <item value="847" path="pcspeaker57.pcs" itemtype="pcspeaker">Unknown pcspeaker 57</item> + <item value="848" path="pcspeaker58.pcs" itemtype="pcspeaker">Unknown pcspeaker 58</item> + <item value="849" path="pcspeaker59.pcs" itemtype="pcspeaker">Unknown pcspeaker 59</item> + <item value="891" path="image41.bmp" itemtype="image">Unknown image 41</item> + <item value="892" path="image42.bmp" itemtype="image">Unknown image 42</item> + <item value="893" path="image43.bmp" itemtype="image">Unknown image 43</item> + <item value="894" path="image44.bmp" itemtype="image">Unknown image 44</item> + <item value="895" path="image45.bmp" itemtype="image">Unknown image 45</item> + <item value="896" path="image46.bmp" itemtype="image">Unknown image 46</item> + <item value="897" path="image47.bmp" itemtype="image">Unknown image 47</item> + <item value="898" path="image48.bmp" itemtype="image">Unknown image 48</item> + <item value="899" path="image49.bmp" itemtype="image">Unknown image 49</item> + <item value="900" path="image50.bmp" itemtype="image">Unknown image 50</item> + <item value="901" path="image51.bmp" itemtype="image">Unknown image 51</item> + <item value="902" path="image52.bmp" itemtype="image">Unknown image 52</item> + <item value="903" path="image53.bmp" itemtype="image">Unknown image 53</item> + <item value="904" path="image54.bmp" itemtype="image">Unknown image 54</item> + <item value="905" path="image55.bmp" itemtype="image">Unknown image 55</item> + <item value="906" path="image56.bmp" itemtype="image">Unknown image 56</item> + <item value="907" path="image57.bmp" itemtype="image">Unknown image 57</item> + <item value="908" path="image58.bmp" itemtype="image">Unknown image 58</item> + <item value="909" path="image59.bmp" itemtype="image">Unknown image 59</item> + <item value="910" path="image60.bmp" itemtype="image">Unknown image 60</item> + <item value="911" path="image61.bmp" itemtype="image">Unknown image 61</item> + <item value="912" path="image62.bmp" itemtype="image">Unknown image 62</item> + <item value="913" path="image63.bmp" itemtype="image">Unknown image 63</item> + <item value="914" path="image64.bmp" itemtype="image">Unknown image 64</item> + <item value="915" path="image65.bmp" itemtype="image">Unknown image 65</item> + <item value="916" path="image66.bmp" itemtype="image">Unknown image 66</item> + <item value="917" path="image67.bmp" itemtype="image">Unknown image 67</item> + <item value="918" path="image68.bmp" itemtype="image">Unknown image 68</item> + <item value="919" path="image69.bmp" itemtype="image">Unknown image 69</item> + <item value="920" path="image70.bmp" itemtype="image">Unknown image 70</item> + <item value="921" path="image71.bmp" itemtype="image">Unknown image 71</item> + <item value="922" path="image72.bmp" itemtype="image">Unknown image 72</item> + <item value="923" path="image73.bmp" itemtype="image">Unknown image 73</item> + <item value="924" path="image74.bmp" itemtype="image">Unknown image 74</item> + <item value="925" path="image75.bmp" itemtype="image">Unknown image 75</item> + <item value="926" path="image76.bmp" itemtype="image">Unknown image 76</item> + <item value="927" path="image77.bmp" itemtype="image">Unknown image 77</item> + <item value="928" path="image78.bmp" itemtype="image">Unknown image 78</item> + <item value="929" path="image79.bmp" itemtype="image">Unknown image 79</item> + <item value="930" path="image80.bmp" itemtype="image">Unknown image 80</item> + <item value="931" path="image81.bmp" itemtype="image">Unknown image 81</item> + <item value="932" path="image82.bmp" itemtype="image">Unknown image 82</item> + <item value="933" path="image83.bmp" itemtype="image">Unknown image 83</item> + <item value="934" path="image84.bmp" itemtype="image">Unknown image 84</item> + <item value="935" path="image85.bmp" itemtype="image">Unknown image 85</item> + <item value="936" path="image86.bmp" itemtype="image">Unknown image 86</item> + <item value="937" path="image87.bmp" itemtype="image">Unknown image 87</item> + <item value="938" path="image88.bmp" itemtype="image">Unknown image 88</item> + <item value="939" path="image89.bmp" itemtype="image">Unknown image 89</item> + <item value="940" path="image90.bmp" itemtype="image">Unknown image 90</item> + <item value="941" path="image91.bmp" itemtype="image">Unknown image 91</item> + <item value="942" path="image92.bmp" itemtype="image">Unknown image 92</item> + <item value="943" path="image93.bmp" itemtype="image">Unknown image 93</item> + <item value="944" path="image94.bmp" itemtype="image">Unknown image 94</item> + <item value="945" path="image95.bmp" itemtype="image">Unknown image 95</item> + <item value="946" path="image96.bmp" itemtype="image">Unknown image 96</item> + <item value="947" path="image97.bmp" itemtype="image">Unknown image 97</item> + <item value="948" path="image98.bmp" itemtype="image">Unknown image 98</item> + <item value="949" path="image99.bmp" itemtype="image">Unknown image 99</item> + <item value="750" path="binary04.bin" itemtype="binary">Unknown binary 4</item> + </folder> + </resources> <!-- File Format: Attributes: - itemtypes: + resources: o version: the version of the file (mandatory) folder: o type (inheritable): the type of the folder @@ -1445,6 +1611,7 @@ Attributes: o file (inheritable): the file where the item is located item: o value: the item ID (mandatory) + o index: the index name (mandatory) o file: see itemtype file (mandatory but may be inherited from a folder) o itemtype: see folder itemtype. May be inherited, omissions means autodetect o palette: see folder palette. Mandatory for image types but may be inherited,