summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/constants/items.h167
-rw-r--r--include/constants/map_sections.h117
-rw-r--r--include/filesystem.h292
-rw-r--r--include/heap.h1
-rw-r--r--include/itemtool.h104
-rw-r--r--include/proto.h2
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