00001 #ifndef _PA_FS
00002 #define _PA_FS
00003
00004
00010 #include "PA_Text.h"
00011
00012 typedef struct{
00013 char Name[20];
00014 char Ext[6];
00015 u32 Length;
00016 u32 FilePos;
00017 }PAFSFiles;
00018
00019 typedef struct{
00020 char Name[20];
00021 u32 FirstFile;
00022 u32 NFiles;
00023 u32 FirstFolder;
00024 u32 NFolders;
00025 }PAFSFolders;
00026
00027
00028 typedef struct{
00029 u32 Nfolders;
00030 u32 Nfiles;
00031 } PAFSSystems;
00032
00033 extern PAFSSystems *PA_FSSys;
00034 extern PAFSFiles *PA_FSFile;
00035 extern PAFSFolders *PA_FSFolder;
00036
00037 extern char *PAFSStart;
00038
00039
00040
00041
00042
00053 u32 PA_FSInit(void);
00054
00060 #define PA_PAFSFile(FileN) ((void*)(PAFSStart+PA_FSFile[FileN].FilePos))
00061
00062
00063
00064
00079 extern inline s32 PA_FSGetFile(s16 start, char *name, char *extension){
00080 u16 i;
00081
00082 for (i = start; i < PA_FSSys->Nfiles; i++){
00083 if (PA_CompareText(PA_FSFile[i].Name, name)&& PA_CompareText(PA_FSFile[i].Ext, extension))
00084 return i;
00085 }
00086
00087 return -1;
00088 }
00089
00090
00102 s16 PA_FSSearchExt(s16 *array, char *extension);
00103
00104
00106
00107
00108
00109 #endif
00110
00111