mirror of
https://github.com/pret/pokediamond.git
synced 2026-04-19 19:37:31 -05:00
184 lines
7.1 KiB
C
184 lines
7.1 KiB
C
#ifndef POKEDIAMOND_FILESYSTEM_H
|
|
#define POKEDIAMOND_FILESYSTEM_H
|
|
|
|
#include "nitro/types.h"
|
|
|
|
#include "FS_file.h"
|
|
#include "heap.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 = 1,
|
|
NARC_POKETOOL_PERSONAL_PERSONAL = 2,
|
|
NARC_POKETOOL_PERSONAL_GROWTBL = 3,
|
|
NARC_POKETOOL_POKEGRA_POKEGRA = 4,
|
|
NARC_POKETOOL_POKEGRA_HEIGHT = 5,
|
|
NARC_POKETOOL_TRGRA_TRBGRA = 6,
|
|
NARC_BATTLE_GRAPHIC_BATT_BG = 7,
|
|
NARC_WAZAEFFECT_WE = 8,
|
|
NARC_POKETOOL_WAZA_WAZA_TBL = 9,
|
|
NARC_FIELDDATA_SCRIPT_SCR_SEQ_RELEASE = 10,
|
|
NARC_MSGDATA_SCENARIO_SCR_MSG = 11,
|
|
NARC_GRAPHIC_POKETCH = 12,
|
|
NARC_GRAPHIC_BAG_GRA = 13,
|
|
NARC_GRAPHIC_FONT = 14,
|
|
NARC_ITEMTOOL_ITEMDATA_ITEM_DATA = 15,
|
|
NARC_ITEMTOOL_ITEMDATA_ITEM_ICON = 16,
|
|
NARC_GRAPHIC_TMAP_GRA = 17,
|
|
NARC_GRAPHIC_BOX = 18,
|
|
NARC_POKETOOL_ICONGRA_POKE_ICON = 19,
|
|
NARC_GRAPHIC_PLIST_GRA = 20,
|
|
NARC_WAZAEFFECT_EFFECTCLACT_WECHAR = 21,
|
|
NARC_WAZAEFFECT_EFFECTCLACT_WEPLTT = 22,
|
|
NARC_WAZAEFFECT_EFFECTCLACT_WECELL = 23,
|
|
NARC_WAZAEFFECT_EFFECTCLACT_WECELLANM = 24,
|
|
NARC_GRAPHIC_IMAGECLIP = 25,
|
|
NARC_MSGDATA_MSG = 26,
|
|
NARC_BATTLE_GRAPHIC_BATT_OBJ = 27,
|
|
NARC_DATA_UNDERG_RADAR = 28,
|
|
NARC_WAZAEFFECT_EFFECTDATA_WAZA_PARTICLE = 29,
|
|
NARC_BATTLE_SKILL_BE_SEQ = 30,
|
|
NARC_DATA_NAMEIN = 31,
|
|
NARC_FIELDDATA_EVENTDATA_ZONE_EVENT_RELEASE = 32,
|
|
NARC_POKETOOL_PERSONAL_WOTBL = 33,
|
|
NARC_POKETOOL_PERSONAL_EVO = 34,
|
|
NARC_GRAPHIC_FONTOAM = 35,
|
|
NARC_GRAPHIC_FIELD_BOARD = 36,
|
|
NARC_FIELDDATA_ENCOUNTDATA_D_ENC_DATA = 37,
|
|
NARC_GRAPHIC_WINFRAME = 38,
|
|
NARC_GRAPHIC_PST_GRA = 39,
|
|
NARC_FIELDDATA_BUILD_MODEL_BUILD_MODEL = 40,
|
|
NARC_FIELDDATA_MAPMATRIX_MAP_MATRIX = 41,
|
|
NARC_FIELDDATA_AREADATA_AREA_DATA = 42,
|
|
NARC_FIELDDATA_AREADATA_AREA_BUILD_MODEL_AREA_BUILD = 43,
|
|
NARC_FIELDDATA_AREADATA_AREA_MAP_TEX_MAP_TEX_SET = 44,
|
|
NARC_CONTEST_GRAPHIC_CONTEST_BG = 45,
|
|
NARC_CONTEST_GRAPHIC_CONTEST_OBJ = 46,
|
|
NARC_DATA_UGEFFECT_OBJ_GRAPHIC = 47,
|
|
NARC_DEMO_TITLE_TITLEDEMO = 48,
|
|
NARC_FIELDDATA_AREADATA_AREA_MOVE_MODEL_MOVE_MODEL_LIST = 49,
|
|
NARC_DATA_UG_TRAP = 50,
|
|
NARC_GRAPHIC_TRAINER_CASE = 51,
|
|
NARC_DATA_UG_FOSSIL = 52,
|
|
NARC_GRAPHIC_NTAG_GRA = 53,
|
|
NARC_DATA_TRADELIST = 54,
|
|
NARC_DATA_UG_PARTS = 55,
|
|
NARC_GRAPHIC_OPENING = 56,
|
|
NARC_POKETOOL_TRAINER_TRDATA = 57,
|
|
NARC_POKETOOL_TRAINER_TRPOKE = 58,
|
|
NARC_POKETOOL_TRMSG_TRTBL = 59,
|
|
NARC_POKETOOL_TRGRA_TRFGRA = 60,
|
|
NARC_PARTICLEDATA_PARTICLEDATA = 61,
|
|
NARC_GRAPHIC_SHOP_GRA = 62,
|
|
NARC_WAZAEFFECT_WE_SUB = 63,
|
|
NARC_DATA_UG_ANIM = 64,
|
|
NARC_DATA_WEATHER_SYS = 65,
|
|
NARC_GRAPHIC_MENU_GRA = 66,
|
|
NARC_FIELDDATA_LAND_DATA_LAND_DATA_RELEASE = 67,
|
|
NARC_ITEMTOOL_ITEMDATA_NUTS_DATA = 68,
|
|
NARC_RESOURCE_ENG_ZUKAN_ZUKAN = 69,
|
|
NARC_POKETOOL_POKEFOOT_POKEFOOT = 70,
|
|
NARC_FIELDDATA_AREADATA_AREA_BUILD_MODEL_AREABM_TEXSET = 71,
|
|
NARC_BATTLE_GRAPHIC_B_PLIST_GRA = 72,
|
|
NARC_GRAPHIC_CONFIG_GRA = 73,
|
|
NARC_GRAPHIC_UNIONROOM = 74,
|
|
NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_DATA = 75,
|
|
NARC_GRAPHIC_PMSI = 76,
|
|
NARC_BATTLE_GRAPHIC_B_BAG_GRA = 77,
|
|
NARC_GRAPHIC_OEKAKI = 78,
|
|
NARC_GRAPHIC_MAIL_GRA = 79,
|
|
NARC_GRAPHIC_F_NOTE_GRA = 80,
|
|
NARC_DATA_MMODEL_MMODEL = 81,
|
|
NARC_GRAPHIC_EV_POKESELECT = 82,
|
|
NARC_GRAPHIC_PORU_GRA = 83,
|
|
NARC_GRAPHIC_TOUCH_SUBWINDOW = 84,
|
|
NARC_GRAPHIC_FLD_COMACT = 85,
|
|
NARC_GRAPHIC_RECORD = 86,
|
|
NARC_GRAPHIC_PORUDEMO = 87,
|
|
NARC_GRAPHIC_PORUACT = 88,
|
|
NARC_DATA_WIFINOTE = 89,
|
|
NARC_CONTEST_DATA_CONTEST_DATA = 90,
|
|
NARC_APPLICATION_CUSTOM_BALL_DATA_CB_DATA = 91,
|
|
NARC_DATA_WIFIP2PMATCH = 92,
|
|
NARC_GRAPHIC_DEMO_TRADE = 93,
|
|
NARC_POKEANIME_POKE_ANM = 94,
|
|
NARC_GRAPHIC_MYSIGN = 95,
|
|
NARC_FIELDDATA_MM_LIST_MOVE_MODEL_LIST = 96,
|
|
NARC_DATA_FIELD_CUTIN = 97,
|
|
NARC_DATA_DEMO_CLIMAX = 98,
|
|
NARC_WAZAEFFECT_EFFECTDATA_BALL_PARTICLE = 99,
|
|
NARC_WAZAEFFECT_PT_DEBUG_DEBUG_PARTICLE = 100,
|
|
NARC_GRAPHIC_DENDOU_PC = 101,
|
|
NARC_APPLICATION_WIFI_EARTH_WIFI_EARTH_PLACE = 102,
|
|
NARC_BATTLE_TR_AI_TR_AI_SEQ = 103,
|
|
NARC_GRAPHIC_WORLDTRADE = 104,
|
|
NARC_GRAPHIC_DENDOU_DEMO = 105,
|
|
NARC_ARC_ENCDATA_EX = 106,
|
|
NARC_DATA_MMODEL_FLDEFF = 107,
|
|
NARC_BATTLE_GRAPHIC_VS_DEMO_GRA = 108,
|
|
NARC_POKETOOL_POKEZUKAN = 109,
|
|
NARC_ARC_BM_ANIME = 110,
|
|
NARC_ARC_BM_ANIME_LIST = 111,
|
|
NARC_GRAPHIC_FIELD_ENCOUNTEFFECT = 112,
|
|
NARC_GRAPHIC_WAZA_OSHIE_GRA = 113,
|
|
NARC_POKETOOL_POKEANM_POKEANM = 114,
|
|
NARC_FIELDDATA_POKEMON_TRADE_FLD_TRADE = 115,
|
|
NARC_GRAPHIC_MYSTERY = 116,
|
|
NARC_POKETOOL_POKEGRA_OTHERPOKE = 117,
|
|
NARC_DEMO_EGG_DATA_EGG_DATA = 118,
|
|
NARC_DEMO_EGG_DATA_PARTICLE_EGG_DEMO_PARTICLE = 119,
|
|
NARC_ARC_SHIP_DEMO = 120,
|
|
NARC_POKETOOL_POKEGRA_HEIGHT_O = 121,
|
|
NARC_GRAPHIC_NUTMIXER = 122,
|
|
NARC_GRAPHIC_BTOWER = 123,
|
|
NARC_DEMO_SHINKA_DATA_PARTICLE_SHINKA_DEMO_PARTICLE = 124,
|
|
NARC_DEMO_INTRO_INTRO = 125,
|
|
NARC_ARC_TV = 126,
|
|
NARC_GRAPHIC_ENDING = 127,
|
|
NARC_DEMO_TITLE_OP_DEMO = 128,
|
|
NARC_APPLICATION_WIFI_EARTH_WIFI_EARTH = 129,
|
|
NARC_GRAPHIC_RANKING = 130,
|
|
NARC_ARC_PPARK = 131,
|
|
NARC_DEMO_SYOUJYOU_SYOUJYOU = 132,
|
|
NARC_DATA_SLOT = 133,
|
|
NARC_BATTLE_B_TOWER_BTDTR = 134,
|
|
NARC_BATTLE_B_TOWER_BTDPM = 135,
|
|
NARC_DEMO_INTRO_INTRO_TV = 136,
|
|
NARC_POKETOOL_TRMSG_TRTBLOFS = 137,
|
|
NARC_POKETOOL_POKEGRA_POKE_YOFS = 138,
|
|
NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_DIAMOND = 139,
|
|
NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_PEARL = 140,
|
|
NARC_GRAPHIC_HIDEN_EFFECT = 141,
|
|
NARC_POKETOOL_POKEGRA_POKE_SHADOW = 142,
|
|
NARC_FIELDDATA_ENCOUNTDATA_P_ENC_DATA = 143,
|
|
NARC_POKETOOL_POKEGRA_POKE_SHADOW_OFX = 144,
|
|
NARC_POKETOOL_SHINZUKAN = 145,
|
|
} NarcId;
|
|
|
|
void ReadFromNarcMemberByPathAndId(void *dest, const char *path, s32 file_idx, u32 offset, u32 size);
|
|
void *AllocAndReadFromNarcMemberByPathAndId(const char *path, s32 file_idx, enum HeapID heapID, u32 offset, u32 size, BOOL r4);
|
|
void ReadWholeNarcMemberByIdPair(void *dest, NarcId narc_id, s32 file_id);
|
|
void *AllocAndReadWholeNarcMemberByIdPair(NarcId narc_id, s32 file_id, enum HeapID heapID);
|
|
void *AllocAtEndAndReadWholeNarcMemberByIdPair(NarcId narc_id, s32 file_id, enum HeapID heapID);
|
|
void ReadFromNarcMemberByIdPair(void *dest, NarcId narc_id, s32 file_id, u32 offset, u32 size);
|
|
void *AllocAndReadFromNarcMemberByIdPair(NarcId narc_id, s32 file_id, enum HeapID heapID, u32 offset, u32 size);
|
|
void *AllocAtEndAndReadFromNarcMemberByIdPair(NarcId narc_id, s32 file_id, enum HeapID heapID, u32 offset, u32 size);
|
|
u32 GetNarcMemberSizeByIdPair(NarcId narc_id, s32 file_idx);
|
|
NARC *NARC_New(NarcId narc_id, enum HeapID heapID);
|
|
void NARC_Delete(NARC *narc);
|
|
void *NARC_AllocAndReadWholeMember(NARC *narc, u32 file_id, enum HeapID heapID);
|
|
void NARC_ReadWholeMember(NARC *narc, u32 file_id, void *dest);
|
|
u32 NARC_GetMemberSize(NARC *narc, u32 file_id);
|
|
void NARC_ReadFromMember(NARC *narc, u32 file_id, u32 pos, u32 size, void *dest);
|
|
void NARC_ReadFile(NARC *narc, u32 size, void *dest);
|
|
u16 NARC_GetFileCount(NARC *narc);
|
|
|
|
#endif // POKEDIAMOND_FILESYSTEM_H
|