diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/constants/items.h | 167 | ||||
-rw-r--r-- | include/constants/map_sections.h | 117 | ||||
-rw-r--r-- | include/filesystem.h | 292 | ||||
-rw-r--r-- | include/heap.h | 1 | ||||
-rw-r--r-- | include/itemtool.h | 104 | ||||
-rw-r--r-- | include/proto.h | 2 |
6 files changed, 533 insertions, 150 deletions
diff --git a/include/constants/items.h b/include/constants/items.h index a7fcc32f..5fb58947 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -1,6 +1,162 @@ #ifndef POKEDIAMOND_CONSTANTS_ITEMS_H #define POKEDIAMOND_CONSTANTS_ITEMS_H +#define POCKET_ITEMS 0 +#define POCKET_MEDICINE 1 +#define POCKET_BALLS 2 +#define POCKET_TMHMS 3 +#define POCKET_BERRIES 4 +#define POCKET_MAIL 5 +#define POCKET_BATTLE_ITEMS 6 +#define POCKET_KEY_ITEMS 7 + +#define HOLD_EFFECT_NONE 0 +#define HOLD_EFFECT_HP_RESTORE 1 +#define HOLD_EFFECT_DIALGA_BOOST 2 +#define HOLD_EFFECT_PALKIA_BOOST 3 +#define HOLD_EFFECT_PRZ_RESTORE 4 +#define HOLD_EFFECT_SLP_RESTORE 5 +#define HOLD_EFFECT_PSN_RESTORE 6 +#define HOLD_EFFECT_BRN_RESTORE 7 +#define HOLD_EFFECT_FRZ_RESTORE 8 +#define HOLD_EFFECT_PP_RESTORE 9 +#define HOLD_EFFECT_CONFUSE_RESTORE 10 +#define HOLD_EFFECT_STATUS_RESTORE 11 +#define HOLD_EFFECT_HP_PCT_RESTORE 12 +#define HOLD_EFFECT_HP_RESTORE_SPICY 13 +#define HOLD_EFFECT_HP_RESTORE_DRY 14 +#define HOLD_EFFECT_HP_RESTORE_SWEET 15 +#define HOLD_EFFECT_HP_RESTORE_BITTER 16 +#define HOLD_EFFECT_HP_RESTORE_SOUR 17 +#define HOLD_EFFECT_WEAKEN_SE_FIRE 18 +#define HOLD_EFFECT_WEAKEN_SE_WATER 19 +#define HOLD_EFFECT_WEAKEN_SE_ELECTRIC 20 +#define HOLD_EFFECT_WEAKEN_SE_GRASS 21 +#define HOLD_EFFECT_WEAKEN_SE_ICE 22 +#define HOLD_EFFECT_WEAKEN_SE_FIGHT 23 +#define HOLD_EFFECT_WEAKEN_SE_POISON 24 +#define HOLD_EFFECT_WEAKEN_SE_GROUND 25 +#define HOLD_EFFECT_WEAKEN_SE_FLYING 26 +#define HOLD_EFFECT_WEAKEN_SE_PSYCHIC 27 +#define HOLD_EFFECT_WEAKEN_SE_BUG 28 +#define HOLD_EFFECT_WEAKEN_SE_ROCK 29 +#define HOLD_EFFECT_WEAKEN_SE_GHOST 30 +#define HOLD_EFFECT_WEAKEN_SE_DRAGON 31 +#define HOLD_EFFECT_WEAKEN_SE_DARK 32 +#define HOLD_EFFECT_WEAKEN_SE_STEEL 33 +#define HOLD_EFFECT_WEAKEN_NORMAL 34 +#define HOLD_EFFECT_PINCH_ATK_UP 35 +#define HOLD_EFFECT_PINCH_DEF_UP 36 +#define HOLD_EFFECT_PINCH_SPEED_UP 37 +#define HOLD_EFFECT_PINCH_SPATK_UP 38 +#define HOLD_EFFECT_PINCH_SPDEF_UP 39 +#define HOLD_EFFECT_PINCH_CRITRATE_UP 40 +#define HOLD_EFFECT_PINCH_RANDOM_UP 41 +#define HOLD_EFFECT_HP_RESTORE_SE 42 +#define HOLD_EFFECT_PINCH_ACC_UP 43 +#define HOLD_EFFECT_PINCH_PRIORITY 44 +#define HOLD_EFFECT_RECOIL_PHYSICAL 45 +#define HOLD_EFFECT_RECOIL_SPECIAL 46 +#define HOLD_EFFECT_ACC_REDUCE 47 +#define HOLD_EFFECT_STATDOWN_RESTORE 48 +#define HOLD_EFFECT_EXP_UP_SPEED_DOWN 49 +#define HOLD_EFFECT_EXP_SHARE 50 +#define HOLD_EFFECT_SOMETIMES_PRIORITY 51 +#define HOLD_EFFECT_FRIENDSHIP_UP 52 +#define HOLD_EFFECT_HEAL_INFATUATION 53 +#define HOLD_EFFECT_CHOICE_ATK 54 +#define HOLD_EFFECT_CRIT_UP 55 +#define HOLD_EFFECT_STRENGTHEN_BUG 56 +#define HOLD_EFFECT_MONEY_UP 57 +#define HOLD_EFFECT_ENCOUNTERS_DOWN 58 +#define HOLD_EFFECT_LATI_SPECIAL 59 +#define HOLD_EFFECT_CLAMPERL_SPATK 60 +#define HOLD_EFFECT_CLAMPERL_SPDEF 61 +#define HOLD_EFFECT_FLEE 62 +#define HOLD_EFFECT_NO_EVOLVE 63 +#define HOLD_EFFECT_MAYBE_ENDURE 64 +#define HOLD_EFFECT_EXP_UP 65 +#define HOLD_EFFECT_CRITRATE_UP 66 +#define HOLD_EFFECT_STRENGTHEN_STEEL 67 +#define HOLD_EFFECT_HP_RESTORE_GRADUAL 68 +#define HOLD_EFFECT_EVOLVE_SEADRA 69 +#define HOLD_EFFECT_PIKA_SPATK_UP 70 +#define HOLD_EFFECT_STRENGTHEN_GROUND 71 +#define HOLD_EFFECT_STRENGTHEN_ROCK 72 +#define HOLD_EFFECT_STRENGTHEN_GRASS 73 +#define HOLD_EFFECT_STRENGTHEN_DARK 74 +#define HOLD_EFFECT_STRENGTHEN_FIGHT 75 +#define HOLD_EFFECT_STRENGTHEN_ELECTRIC 76 +#define HOLD_EFFECT_STRENGTHEN_WATER 77 +#define HOLD_EFFECT_STRENGTHEN_FLYING 78 +#define HOLD_EFFECT_STRENGTHEN_POISON 79 +#define HOLD_EFFECT_STRENGTHEN_ICE 80 +#define HOLD_EFFECT_STRENGTHEN_GHOST 81 +#define HOLD_EFFECT_STRENGTHEN_PSYCHIC 82 +#define HOLD_EFFECT_STRENGTHEN_FIRE 83 +#define HOLD_EFFECT_STRENGTHEN_DRAGON 84 +#define HOLD_EFFECT_STRENGTHEN_NORMAL 85 +#define HOLD_EFFECT_EVOLVE_PORYGON 86 +#define HOLD_EFFECT_HP_RESTORE_ON_DMG 87 +#define HOLD_EFFECT_CHANSEY_CRITRATE_UP 88 +#define HOLD_EFFECT_DITTO_DEF_UP 89 +#define HOLD_EFFECT_CUBONE_ATK_UP 90 +#define HOLD_EFFECT_FARFETCHD_CRITRATE_UP 91 +#define HOLD_EFFECT_ACCURACY_UP 92 +#define HOLD_EFFECT_POWER_UP_PHYS 93 +#define HOLD_EFFECT_POWER_UP_SPEC 94 +#define HOLD_EFFECT_POWER_UP_SE 95 +#define HOLD_EFFECT_EXTEND_SCREENS 96 +#define HOLD_EFFECT_HP_DRAIN_ON_ATK 97 +#define HOLD_EFFECT_CHARGE_SKIP 98 +#define HOLD_EFFECT_PSN_USER 99 +#define HOLD_EFFECT_BRN_USER 100 +#define HOLD_EFFECT_DITTO_SPEED_UP 101 +#define HOLD_EFFECT_ENDURE 102 +#define HOLD_EFFECT_CRITRATE_UP_SLOWER 103 +#define HOLD_EFFECT_BOOST_REPEATED 104 +#define HOLD_EFFECT_SPEED_DOWN_GROUNDED 105 +#define HOLD_EFFECT_SPEED_DOWN 106 +#define HOLD_EFFECT_RECIPROCATE_INFAT 107 +#define HOLD_EFFECT_HP_RESTORE_PSN_TYPE 108 +#define HOLD_EFFECT_EXTEND_HAIL 109 +#define HOLD_EFFECT_EXTEND_SANDSTORM 110 +#define HOLD_EFFECT_EXTEND_SUN 111 +#define HOLD_EFFECT_EXTEND_RAIN 112 +#define HOLD_EFFECT_EXTEND_TRAPPING 113 +#define HOLD_EFFECT_CHOICE_SPEED 114 +#define HOLD_EFFECT_DMG_USER_CONTACT_XFR 115 +#define HOLD_EFFECT_LVLUP_ATK_EV_UP 116 +#define HOLD_EFFECT_LVLUP_DEF_EV_UP 117 +#define HOLD_EFFECT_LVLUP_SPATK_EV_UP 118 +#define HOLD_EFFECT_LVLUP_SPDEF_EV_UP 119 +#define HOLD_EFFECT_LVLUP_SPEED_EV_UP 120 +#define HOLD_EFFECT_LVLUP_HP_EV_UP 121 +#define HOLD_EFFECT_SWITCH 122 +#define HOLD_EFFECT_LEECH_BOOST 123 +#define HOLD_EFFECT_CHOICE_SPATK 124 +#define HOLD_EFFECT_ARCEUS_FIRE 125 +#define HOLD_EFFECT_ARCEUS_WATER 126 +#define HOLD_EFFECT_ARCEUS_ELECTRIC 127 +#define HOLD_EFFECT_ARCEUS_GRASS 128 +#define HOLD_EFFECT_ARCEUS_ICE 129 +#define HOLD_EFFECT_ARCEUS_FIGHT 130 +#define HOLD_EFFECT_ARCEUS_POISON 131 +#define HOLD_EFFECT_ARCEUS_GROUND 132 +#define HOLD_EFFECT_ARCEUS_FLYING 133 +#define HOLD_EFFECT_ARCEUS_PSYCHIC 134 +#define HOLD_EFFECT_ARCEUS_BUG 135 +#define HOLD_EFFECT_ARCEUS_ROCK 136 +#define HOLD_EFFECT_ARCEUS_GHOST 137 +#define HOLD_EFFECT_ARCEUS_DRAGON 138 +#define HOLD_EFFECT_ARCEUS_DARK 139 +#define HOLD_EFFECT_ARCEUS_STEEL 140 +#define HOLD_EFFECT_EVOLVE_RHYDON 141 +#define HOLD_EFFECT_EVOLVE_ELECTABUZZ 142 +#define HOLD_EFFECT_EVOLVE_MAGMAR 143 +#define HOLD_EFFECT_EVOLVE_PORYGON2 144 +#define HOLD_EFFECT_EVOLVE_DUSCLOPS 145 + #define ITEM_NONE 0 #define ITEM_MASTER_BALL 1 #define ITEM_ULTRA_BALL 2 @@ -35,10 +191,12 @@ #define ITEM_SODA_POP 31 #define ITEM_LEMONADE 32 #define ITEM_MOOMOO_MILK 33 + #define ITEM_ENERGYPOWDER 34 #define ITEM_ENERGY_ROOT 35 #define ITEM_HEAL_POWDER 36 #define ITEM_REVIVAL_HERB 37 + #define ITEM_ETHER 38 #define ITEM_MAX_ETHER 39 #define ITEM_ELIXIR 40 @@ -130,7 +288,6 @@ #define ITEM_BRICK_MAIL 148 #define ITEM_CHERI_BERRY 149 -#define FIRST_BERRY_IDX ITEM_CHERI_BERRY #define ITEM_CHESTO_BERRY 150 #define ITEM_PECHA_BERRY 151 #define ITEM_RAWST_BERRY 152 @@ -194,6 +351,11 @@ #define ITEM_CUSTAP_BERRY 210 #define ITEM_JABOCA_BERRY 211 #define ITEM_ROWAP_BERRY 212 + +#define FIRST_BERRY_IDX ITEM_CHERI_BERRY +#define LAST_BERRY_IDX ITEM_ROWAP_BERRY +#define NUM_BERRIES (LAST_BERRY_IDX - FIRST_BERRY_IDX + 1) + #define ITEM_BRIGHTPOWDER 213 #define ITEM_WHITE_HERB 214 #define ITEM_MACHO_BRACE 215 @@ -468,7 +630,7 @@ #define TM_GIGA_DRAIN ITEM_TM19 #define TM_SAFEGUARD ITEM_TM20 #define TM_FRUSTRATION ITEM_TM21 -#define TM_SOLARBEAM ITEM_TM22 +#define TM_SOLAR_BEAM ITEM_TM22 #define TM_IRON_TAIL ITEM_TM23 #define TM_THUNDERBOLT ITEM_TM24 #define TM_THUNDER ITEM_TM25 @@ -544,7 +706,6 @@ #define HM_SURF ITEM_HM03 #define HM_STRENGTH ITEM_HM04 #define HM_DEFOG ITEM_HM05 -#define HM_WHIRLPOOL ITEM_HM05 #define HM_ROCK_SMASH ITEM_HM06 #define HM_WATERFALL ITEM_HM07 #define HM_ROCK_CLIMB ITEM_HM08 diff --git a/include/constants/map_sections.h b/include/constants/map_sections.h new file mode 100644 index 00000000..3cc9d597 --- /dev/null +++ b/include/constants/map_sections.h @@ -0,0 +1,117 @@ +#ifndef POKEDIAMOND_CONSTANTS_MAP_SECTIONS_H +#define POKEDIAMOND_CONSTANTS_MAP_SECTIONS_H + +#define MAPSEC_MYSTERY_ZONE 0 +#define MAPSEC_TWINLEAF_TOWN 1 +#define MAPSEC_SANDGEM_TOWN 2 +#define MAPSEC_FLOAROMA_TOWN 3 +#define MAPSEC_SOLACEON_TOWN 4 +#define MAPSEC_CELESTIC_TOWN 5 +#define MAPSEC_JUBILIFE_CITY 6 +#define MAPSEC_CANALAVE_CITY 7 +#define MAPSEC_OREBURGH_CITY 8 +#define MAPSEC_ETERNA_CITY 9 +#define MAPSEC_HEARTHOME_CITY 10 +#define MAPSEC_PASTORIA_CITY 11 +#define MAPSEC_VEILSTONE_CITY 12 +#define MAPSEC_SUNYSHORE_CITY 13 +#define MAPSEC_SNOWPOINT_CITY 14 +#define MAPSEC_POKEMON_LEAGUE 15 +#define MAPSEC_ROUTE_201 16 +#define MAPSEC_ROUTE_202 17 +#define MAPSEC_ROUTE_203 18 +#define MAPSEC_ROUTE_204 19 +#define MAPSEC_ROUTE_205 20 +#define MAPSEC_ROUTE_206 21 +#define MAPSEC_ROUTE_207 22 +#define MAPSEC_ROUTE_208 23 +#define MAPSEC_ROUTE_209 24 +#define MAPSEC_ROUTE_210 25 +#define MAPSEC_ROUTE_211 26 +#define MAPSEC_ROUTE_212 27 +#define MAPSEC_ROUTE_213 28 +#define MAPSEC_ROUTE_214 29 +#define MAPSEC_ROUTE_215 30 +#define MAPSEC_ROUTE_216 31 +#define MAPSEC_ROUTE_217 32 +#define MAPSEC_ROUTE_218 33 +#define MAPSEC_ROUTE_219 34 +#define MAPSEC_ROUTE_220 35 +#define MAPSEC_ROUTE_221 36 +#define MAPSEC_ROUTE_222 37 +#define MAPSEC_ROUTE_223 38 +#define MAPSEC_ROUTE_224 39 +#define MAPSEC_ROUTE_225 40 +#define MAPSEC_ROUTE_226 41 +#define MAPSEC_ROUTE_227 42 +#define MAPSEC_ROUTE_228 43 +#define MAPSEC_ROUTE_229 44 +#define MAPSEC_ROUTE_230 45 +#define MAPSEC_OREBURGH_MINE 46 +#define MAPSEC_VALLEY_WINDWORKS 47 +#define MAPSEC_ETERNA_FOREST 48 +#define MAPSEC_FUEGO_IRONWORKS 49 +#define MAPSEC_MT_CORONET 50 +#define MAPSEC_SPEAR_PILLAR 51 +#define MAPSEC_GREAT_MARSH 52 +#define MAPSEC_SOLACEON_RUINS 53 +#define MAPSEC_VICTORY_ROAD 54 +#define MAPSEC_PAL_PARK 55 +#define MAPSEC_AMITY_SQUARE 56 +#define MAPSEC_RAVAGED_PATH 57 +#define MAPSEC_FLOAROMA_MEADOW 58 +#define MAPSEC_OREBURGH_GATE 59 +#define MAPSEC_FULLMOON_ISLAND 60 +#define MAPSEC_SENDOFF_SPRING 61 +#define MAPSEC_TURNBACK_CAVE 62 +#define MAPSEC_FLOWER_PARADISE 63 +#define MAPSEC_SNOWPOINT_TEMPLE 64 +#define MAPSEC_WAYWARD_CAVE 65 +#define MAPSEC_RUIN_MANIAC_CAVE 66 +#define MAPSEC_MANIAC_TUNNEL 67 +#define MAPSEC_TROPHY_GARDEN 68 +#define MAPSEC_IRON_ISLAND 69 +#define MAPSEC_OLD_CHATEAU 70 +#define MAPSEC_GALACTIC_HQ 71 +#define MAPSEC_VERITY_LAKEFRONT 72 +#define MAPSEC_VALOR_LAKEFRONT 73 +#define MAPSEC_ACUITY_LAKEFRONT 74 +#define MAPSEC_SPRING_PATH 75 +#define MAPSEC_LAKE_VERITY 76 +#define MAPSEC_LAKE_VALOR 77 +#define MAPSEC_LAKE_ACUITY 78 +#define MAPSEC_NEWMOON_ISLAND 79 +#define MAPSEC_BATTLE_TOWER 80 +#define MAPSEC_FIGHT_AREA 81 +#define MAPSEC_SURVIVAL_AREA 82 +#define MAPSEC_RESORT_AREA 83 +#define MAPSEC_STARK_MOUNTAIN 84 +#define MAPSEC_SEABREAK_PATH 85 +#define MAPSEC_HALL_OF_ORIGIN 86 +#define MAPSEC_VERITY_CAVERN 87 +#define MAPSEC_VALOR_CAVERN 88 +#define MAPSEC_ACUITY_CAVERN 89 +#define MAPSEC_JUBILIFE_TV 90 +#define MAPSEC_POKETCH_CO 91 +#define MAPSEC_GTS 92 +#define MAPSEC_TRAINERS_SCHOOL 93 +#define MAPSEC_MINING_MUSEUM 94 +#define MAPSEC_FLOWER_SHOP 95 +#define MAPSEC_CYCLE_SHOP 96 +#define MAPSEC_CONTEST_HALL 97 +#define MAPSEC_POFFIN_HOUSE 98 +#define MAPSEC_FOREIGN_BUILDING 99 +#define MAPSEC_POKEMON_DAY_CARE 100 +#define MAPSEC_VEILSTONE_STORE 101 +#define MAPSEC_GAME_CORNER 102 +#define MAPSEC_CANALAVE_LIBRARY 103 +#define MAPSEC_VISTA_LIGHTHOUSE 104 +#define MAPSEC_SUNYSHORE_MARKET 105 +#define MAPSEC_POKEMON_MANSION 106 +#define MAPSEC_FOOTSTEP_HOUSE 107 +#define MAPSEC_CAFE 108 +#define MAPSEC_GRAND_LAKE 109 +#define MAPSEC_RESTAURANT 110 +#define MAPSEC_BATTLE_PARK 111 + +#endif //POKEDIAMOND_CONSTANTS_MAP_SECTIONS_H diff --git a/include/filesystem.h b/include/filesystem.h index 6b5a16d6..35fc6fe6 100644 --- a/include/filesystem.h +++ b/include/filesystem.h @@ -14,152 +14,152 @@ typedef struct 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, + 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); diff --git a/include/heap.h b/include/heap.h index 49c54d22..6f04c5bc 100644 --- a/include/heap.h +++ b/include/heap.h @@ -4,5 +4,6 @@ void * AllocFromHeap(u32 heap_id, u32 size); void * AllocFromHeapAtEnd(u32 heap_id, u32 size); void FreeToHeap(void * ptr); +void FUN_02016A8C(u32 heap_id, void * ptr); #endif //POKEDIAMOND_HEAP_H diff --git a/include/itemtool.h b/include/itemtool.h index d8419c2b..53140128 100644 --- a/include/itemtool.h +++ b/include/itemtool.h @@ -2,6 +2,7 @@ #define POKEDIAMOND_ITEMTOOL_H #include "global.h" +#include "filesystem.h" #include "constants/items.h" // Berries (nutdata) @@ -21,6 +22,85 @@ struct NutData u8 unkB; }; +struct ItemSlot +{ + u16 id; + u16 quantity; +}; + +struct ItemDataSub +{ + u8 unk0_0:1; + u8 unk0_1:1; + u8 unk0_2:1; + u8 unk0_3:1; + u8 unk0_4:1; + u8 unk0_5:1; + u8 unk0_6:1; + u8 unk0_7:1; + u8 unk1_0:1; + u8 unk1_1:1; + u8 unk1_2:1; + u8 unk1_3:1; + u8 unk1_4:4; + u8 unk2_0:4; + u8 unk2_4:4; + u8 unk3_0:4; + u8 unk3_4:4; + u8 unk4_0:4; + u8 unk4_4:2; + u8 unk4_6:1; + u8 unk4_7:1; + u8 unk5_0:1; + u8 unk5_1:1; + u8 unk5_2:1; + u8 unk5_3:1; + u8 unk5_4:1; + u8 unk5_5:1; + u8 unk5_6:1; + u8 unk5_7:1; + u8 unk6_0:1; + u8 unk6_1:1; + u8 unk6_2:1; + u8 unk6_3:1; + s8 unk7; + s8 unk8; + s8 unk9; + s8 unkA; + s8 unkB; + s8 unkC; + u8 unkD; + u8 unkE; + s8 unkF; + s8 unk10; + s8 unk11; + u8 paddding[4]; +}; + +struct ItemData +{ + u16 price; + u8 holdEffect; + u8 holdEffectParam; + u8 unk4; + u8 unk5; + u8 unk6; + u8 naturalGiftPower; + u16 unk8_0:5; + u16 unk8_5:1; + u16 unk8_6:1; + u16 pocket:4; + u16 unk8_B:5; + u8 unkA; + u8 unkB; + u8 unkC; + u8 padding; + union { + u8 flat; + struct ItemDataSub sub; + } unkE; +}; + NARC * OpenNutsDataNarc(u32 heap_id); struct NutData * ReadNutDataFromNarc(NARC * narc, u32 berry_idx, u32 heap_id); void CloseNutsDataNarc(NARC * narc); @@ -30,4 +110,28 @@ u32 GetNutAttr(struct NutData * nut, u32 attr); struct String * GetNutName(u32 berry_idx, u32 heap_id); struct String * GetNutDesc(u32 berry_idx, u32 heap_id); +void MoveItemSlotInList(struct ItemSlot * itemSlots, u16 from, u16 to); +u16 GetItemIndexMapping(u16 a0, u16 a1); +u16 UpConvertItemId_Gen3to4(u16 a0); +int FUN_0206E708(); +int FUN_0206E70C(); +void * LoadItemDataOrGfx(u16 a0, u16 a1, u32 heap_id); +void GetItemNameIntoString(struct String * dest, u16 item_id, u32 heap_no); +void GetItemDescIntoString(struct String * dest, u16 item_id, u32 heap_no); +u32 GetItemAttr(u16 item, u32 attr, u32 heap_id); +u32 GetItemAttr_PreloadedItemData(struct ItemData * itemData, u32 attr); +u32 GetItemAttrSub(struct ItemDataSub * sub, u32 attr); +u16 TMHMGetMove(u16 a0); +BOOL MoveIsHM(u16 a0); +u8 ItemToTMHMId(u16 a0); +BOOL ItemIdIsMail(u16 a0); +u8 ItemToMailId(u16 item_id); +u16 MailToItemId(u8 i); +BOOL ItemIdIsBerry(u16 item_id); +u8 ItemToBerryId(u16 item_id); +u16 BerryToItemId(u8 a0); +u8 ItemIsBitter(u16 item_id); +struct ItemData * LoadAllItemData(u32 heap_id); +struct ItemData * GetItemDataPtrFromArray(struct ItemData * a0, u16 item_id); + #endif //POKEDIAMOND_ITEMTOOL_H diff --git a/include/proto.h b/include/proto.h index 4a0012d3..bcb95ee0 100644 --- a/include/proto.h +++ b/include/proto.h @@ -10,7 +10,7 @@ void StringCopy(u16 * dest, struct String * src); void String_dtor(void * ptr); void FUN_02021E28(u16 * dest, u16 * src); void FUN_02021EF0(const struct String * src, u16 * dest, u32 count); -u32 FUN_0206E7B8(u16 item, u32 a1, u32 a2); +u32 GetItemAttr(u16 item, u32 a1, u32 a2); int FUN_02014C3C(u8); void FUN_02014C54(int, int, struct UnkStruct_02069038 *, u8); u32 IsNighttime(void); // is day or night |