#ifndef POKEDIAMOND_FILESYSTEM_H #define POKEDIAMOND_FILESYSTEM_H typedef struct NARC { FSFile file; u32 btaf_start; u32 gmif_start; u16 num_files; } NARC; typedef enum NarcId { NARC_BATTLE_SKILL_WAZA_SEQ = 0, NARC_BATTLE_SKILL_SUB_SEQ, NARC_POKETOOL_PERSONAL_PERSONAL, NARC_POKETOOL_PERSONAL_GROWTBL, NARC_POKETOOL_POKEGRA_POKEGRA, NARC_POKETOOL_POKEGRA_HEIGHT, NARC_POKETOOL_TRGRA_TRBGRA, NARC_BATTLE_GRAPHIC_BATT_BG, NARC_WAZAEFFECT_WE, NARC_POKETOOL_WAZA_WAZA_TBL, NARC_FIELDDATA_SCRIPT_SCR_SEQ_RELEASE, NARC_MSGDATA_SCENARIO_SCR_MSG, NARC_GRAPHIC_POKETCH, NARC_GRAPHIC_BAG_GRA, NARC_GRAPHIC_FONT, NARC_ITEMTOOL_ITEMDATA_ITEM_DATA, NARC_ITEMTOOL_ITEMDATA_ITEM_ICON, NARC_GRAPHIC_TMAP_GRA, NARC_GRAPHIC_BOX, NARC_POKETOOL_ICONGRA_POKE_ICON, NARC_GRAPHIC_PLIST_GRA, NARC_WAZAEFFECT_EFFECTCLACT_WECHAR, NARC_WAZAEFFECT_EFFECTCLACT_WEPLTT, NARC_WAZAEFFECT_EFFECTCLACT_WECELL, NARC_WAZAEFFECT_EFFECTCLACT_WECELLANM, NARC_GRAPHIC_IMAGECLIP, NARC_MSGDATA_MSG, NARC_BATTLE_GRAPHIC_BATT_OBJ, NARC_DATA_UNDERG_RADAR, NARC_WAZAEFFECT_EFFECTDATA_WAZA_PARTICLE, NARC_BATTLE_SKILL_BE_SEQ, NARC_DATA_NAMEIN, NARC_FIELDDATA_EVENTDATA_ZONE_EVENT_RELEASE, NARC_POKETOOL_PERSONAL_WOTBL, NARC_POKETOOL_PERSONAL_EVO, NARC_GRAPHIC_FONTOAM, NARC_GRAPHIC_FIELD_BOARD, NARC_FIELDDATA_ENCOUNTDATA_D_ENC_DATA, NARC_GRAPHIC_WINFRAME, NARC_GRAPHIC_PST_GRA, NARC_FIELDDATA_BUILD_MODEL_BUILD_MODEL, NARC_FIELDDATA_MAPMATRIX_MAP_MATRIX, NARC_FIELDDATA_AREADATA_AREA_DATA, NARC_FIELDDATA_AREADATA_AREA_BUILD_MODEL_AREA_BUILD, NARC_FIELDDATA_AREADATA_AREA_MAP_TEX_MAP_TEX_SET, NARC_CONTEST_GRAPHIC_CONTEST_BG, NARC_CONTEST_GRAPHIC_CONTEST_OBJ, NARC_DATA_UGEFFECT_OBJ_GRAPHIC, NARC_DEMO_TITLE_TITLEDEMO, NARC_FIELDDATA_AREADATA_AREA_MOVE_MODEL_MOVE_MODEL_LIST, NARC_DATA_UG_TRAP, NARC_GRAPHIC_TRAINER_CASE, NARC_DATA_UG_FOSSIL, NARC_GRAPHIC_NTAG_GRA, NARC_DATA_TRADELIST, NARC_DATA_UG_PARTS, NARC_GRAPHIC_OPENING, NARC_POKETOOL_TRAINER_TRDATA, NARC_POKETOOL_TRAINER_TRPOKE, NARC_POKETOOL_TRMSG_TRTBL, NARC_POKETOOL_TRGRA_TRFGRA, NARC_PARTICLEDATA_PARTICLEDATA, NARC_GRAPHIC_SHOP_GRA, NARC_WAZAEFFECT_WE_SUB, NARC_DATA_UG_ANIM, NARC_DATA_WEATHER_SYS, NARC_GRAPHIC_MENU_GRA, NARC_FIELDDATA_LAND_DATA_LAND_DATA_RELEASE, NARC_ITEMTOOL_ITEMDATA_NUTS_DATA, NARC_RESOURCE_ENG_ZUKAN_ZUKAN, NARC_POKETOOL_POKEFOOT_POKEFOOT, NARC_FIELDDATA_AREADATA_AREA_BUILD_MODEL_AREABM_TEXSET, NARC_BATTLE_GRAPHIC_B_PLIST_GRA, NARC_GRAPHIC_CONFIG_GRA, NARC_GRAPHIC_UNIONROOM, NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_DATA, NARC_GRAPHIC_PMSI, NARC_BATTLE_GRAPHIC_B_BAG_GRA, NARC_GRAPHIC_OEKAKI, NARC_GRAPHIC_MAIL_GRA, NARC_GRAPHIC_F_NOTE_GRA, NARC_DATA_MMODEL_MMODEL, NARC_GRAPHIC_EV_POKESELECT, NARC_GRAPHIC_PORU_GRA, NARC_GRAPHIC_TOUCH_SUBWINDOW, NARC_GRAPHIC_FLD_COMACT, NARC_GRAPHIC_RECORD, NARC_GRAPHIC_PORUDEMO, NARC_GRAPHIC_PORUACT, NARC_DATA_WIFINOTE, NARC_CONTEST_DATA_CONTEST_DATA, NARC_APPLICATION_CUSTOM_BALL_DATA_CB_DATA, NARC_DATA_WIFIP2PMATCH, NARC_GRAPHIC_DEMO_TRADE, NARC_POKEANIME_POKE_ANM, NARC_GRAPHIC_MYSIGN, NARC_FIELDDATA_MM_LIST_MOVE_MODEL_LIST, NARC_DATA_FIELD_CUTIN, NARC_DATA_DEMO_CLIMAX, NARC_WAZAEFFECT_EFFECTDATA_BALL_PARTICLE, NARC_WAZAEFFECT_PT_DEBUG_DEBUG_PARTICLE, NARC_GRAPHIC_DENDOU_PC, NARC_APPLICATION_WIFI_EARTH_WIFI_EARTH_PLACE, NARC_BATTLE_TR_AI_TR_AI_SEQ, NARC_GRAPHIC_WORLDTRADE, NARC_GRAPHIC_DENDOU_DEMO, NARC_ARC_ENCDATA_EX, NARC_DATA_MMODEL_FLDEFF, NARC_BATTLE_GRAPHIC_VS_DEMO_GRA, NARC_POKETOOL_POKEZUKAN, NARC_ARC_BM_ANIME, NARC_ARC_BM_ANIME_LIST, NARC_GRAPHIC_FIELD_ENCOUNTEFFECT, NARC_GRAPHIC_WAZA_OSHIE_GRA, NARC_POKETOOL_POKEANM_POKEANM, NARC_FIELDDATA_POKEMON_TRADE_FLD_TRADE, NARC_GRAPHIC_MYSTERY, NARC_POKETOOL_POKEGRA_OTHERPOKE, NARC_DEMO_EGG_DATA_EGG_DATA, NARC_DEMO_EGG_DATA_PARTICLE_EGG_DEMO_PARTICLE, NARC_ARC_SHIP_DEMO, NARC_POKETOOL_POKEGRA_HEIGHT_O, NARC_GRAPHIC_NUTMIXER, NARC_GRAPHIC_BTOWER, NARC_DEMO_SHINKA_DATA_PARTICLE_SHINKA_DEMO_PARTICLE, NARC_DEMO_INTRO_INTRO, NARC_ARC_TV, NARC_GRAPHIC_ENDING, NARC_DEMO_TITLE_OP_DEMO, NARC_APPLICATION_WIFI_EARTH_WIFI_EARTH, NARC_GRAPHIC_RANKING, NARC_ARC_PPARK, NARC_DEMO_SYOUJYOU_SYOUJYOU, NARC_DATA_SLOT, NARC_BATTLE_B_TOWER_BTDTR, NARC_BATTLE_B_TOWER_BTDPM, NARC_DEMO_INTRO_INTRO_TV, NARC_POKETOOL_TRMSG_TRTBLOFS, NARC_POKETOOL_POKEGRA_POKE_YOFS, NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_DIAMOND, NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_PEARL, NARC_GRAPHIC_HIDEN_EFFECT, NARC_POKETOOL_POKEGRA_POKE_SHADOW, NARC_FIELDDATA_ENCOUNTDATA_P_ENC_DATA, NARC_POKETOOL_POKEGRA_POKE_SHADOW_OFX, NARC_POKETOOL_SHINZUKAN, } NarcId; void ReadNARCFile(void * dest, const char * path, s32 file_idx, u32 offset, u32 size); void * LoadFileIntoMemory(const char * path, s32 file_idx, u32 heap_id, u32 offset, u32 size, BOOL r4); void LoadFromNARC(void * dest, NarcId narc_id, s32 file_id); void * LoadFromNarc_2(NarcId narc_id, s32 file_id, u32 heap_id); void * FUN_02006528(NarcId narc_id, s32 file_id, u32 heap_id); void FUN_02006548(void * dest, NarcId narc_id, s32 file_id, u32 offset, u32 size); void * FUN_02006564(NarcId narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size); void * FUN_02006584(NarcId narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size); u32 LoadFromNARC_7(NarcId narc_id, s32 file_idx); NARC * FUN_02006670(NarcId narc_id, u32 heap_id); void FUN_020066F4(NARC * narc); void * FUN_02006704(NARC * narc, u32 file_id, u32 heap_id); void FUN_02006774(NARC * narc, u32 file_id, void * dest); u32 FUN_020067D0(NARC * narc, u32 file_id); void FUN_02006814(NARC * narc, u32 file_id, u32 pos, u32 size, void * dest); void FUN_02006864(NARC * narc, u32 size, void * dest); u16 FUN_02006874(NARC * narc); #endif //POKEDIAMOND_FILESYSTEM_H