00001 #ifndef _PA_GBFS
00002 #define _PA_GBFS
00003
00004
00010 #include "PA_Text.h"
00011 #include "gbfs.h"
00012
00013
00014
00015
00016 typedef struct{
00017 void *File;
00018 char Name[30];
00019 char Ext[6];
00020 u32 Length;
00021 } PA_GBFS_infos;
00022 extern PA_GBFS_infos PA_GBFSfile[200];
00023 extern s16 PA_GBFS_nfiles;
00024 extern GBFS_FILE const* PA_GBFS_FILE;
00025
00036 extern inline u32 PA_InitGBFS(void){
00037 s16 dot = 0;
00038 s16 i = 0;
00039
00040 WAIT_CR &= ~0x80;
00041
00042 PA_GBFS_FILE = find_first_gbfs_file((void*)0x08000000);
00043 PA_GBFS_nfiles = 0;
00044 PA_GBFSfile[PA_GBFS_nfiles].File = (void*)gbfs_get_nth_obj(PA_GBFS_FILE, PA_GBFS_nfiles, (char*)PA_GBFSfile[PA_GBFS_nfiles].Name, &PA_GBFSfile[PA_GBFS_nfiles].Length);
00045
00046 while(PA_GBFSfile[PA_GBFS_nfiles].File != NULL){
00047
00048
00049 while(PA_GBFSfile[PA_GBFS_nfiles].Name[i]) i++;
00050
00051 while(PA_GBFSfile[PA_GBFS_nfiles].Name[i] != '.') i--;
00052 dot = i+1;
00053
00054 for (i = 0; PA_GBFSfile[PA_GBFS_nfiles].Name[i+dot] ; i++){
00055 PA_GBFSfile[PA_GBFS_nfiles].Ext[i] = PA_GBFSfile[PA_GBFS_nfiles].Name[i+dot];
00056 PA_GBFSfile[PA_GBFS_nfiles].Ext[i+1] = 0;
00057 PA_GBFSfile[PA_GBFS_nfiles].Name[i+dot-1] = 0;
00058 if (PA_GBFSfile[PA_GBFS_nfiles].Name[i+dot-2] == '.') PA_GBFSfile[PA_GBFS_nfiles].Name[i+dot-2] = 0;
00059 }
00060 PA_GBFSfile[PA_GBFS_nfiles].Name[dot] = 0;
00061 PA_GBFSfile[PA_GBFS_nfiles].Ext[dot] = 0;
00062
00063 ++PA_GBFS_nfiles;
00064 PA_GBFSfile[PA_GBFS_nfiles].File = (void*)gbfs_get_nth_obj(PA_GBFS_FILE, PA_GBFS_nfiles, (char*)PA_GBFSfile[PA_GBFS_nfiles].Name, &PA_GBFSfile[PA_GBFS_nfiles].Length);
00065 }
00066
00067 return PA_GBFS_nfiles;
00068 }
00069
00070
00071
00086 extern inline s32 PA_GetGBFSFile(s16 start, char *name, char *extension){
00087 s16 i;
00088
00089 for (i = start; i < PA_GBFS_nfiles; i++){
00090 if (PA_CompareText(PA_GBFSfile[i].Name, name)&& PA_CompareText(PA_GBFSfile[i].Ext, extension))
00091 return i;
00092 }
00093
00094 return -1;
00095 }
00096
00097
00109 s16 PA_GBFSSearchExt(s16 *array, char *extension);
00110
00111
00113
00114
00115
00116 #endif
00117
00118