#include #include "fstfile.h" char *fstfiles(FST_ENTRY *fst, u32 index) { u32 count = fst[0].filelen; u32 stringoffset; if (index < count) { stringoffset = *(u32 *) &(fst[index]) % (256 * 256 * 256); return (char *) ((u32) fst + count * 12 + stringoffset); } else { return NULL; } } char *fstfilename(u32 index) { FST_ENTRY *fst = (FST_ENTRY *) *(u32 *) 0x80000038; u32 count = fst[0].filelen; u32 stringoffset; if (index < count) { stringoffset = *(u32 *) &(fst[index]) % (256 * 256 * 256); return (char *) (*(u32 *) 0x80000038 + count * 12 + stringoffset); } else { return NULL; } } u32 fstfileoffset(u32 index) { FST_ENTRY *fst = (FST_ENTRY *) *(u32 *) 0x80000038; u32 count = fst[0].filelen; if (index < count) { return fst[index].fileoffset; } else { return 0; } }