#ifndef GUARD_CONSTANTS_ITEMS_H #define GUARD_CONSTANTS_ITEMS_H enum { ITEM_NONE, // Balls // Note: If moving ball IDs around, updating FIRST_BALL/LAST_BALL is not sufficient // Several places expect the ball IDs to be first and contiguous (e.g. gBattlescriptsForBallThrow and MON_DATA_POKEBALL) ITEM_MASTER_BALL, ITEM_ULTRA_BALL, ITEM_GREAT_BALL, ITEM_POKE_BALL, ITEM_SAFARI_BALL, ITEM_NET_BALL, ITEM_DIVE_BALL, ITEM_NEST_BALL, ITEM_REPEAT_BALL, ITEM_TIMER_BALL, ITEM_LUXURY_BALL, ITEM_PREMIER_BALL, // Pokémon Items // Only items from this point through to the end of the berries may be considered valid for use on a pokémon. // Items outside this range will show the "It won't have any effect" message when attemping to use them this way (see ITEM_HAS_EFFECT). ITEM_POTION, ITEM_ANTIDOTE, ITEM_BURN_HEAL, ITEM_ICE_HEAL, ITEM_AWAKENING, ITEM_PARALYZE_HEAL, ITEM_FULL_RESTORE, ITEM_MAX_POTION, ITEM_HYPER_POTION, ITEM_SUPER_POTION, ITEM_FULL_HEAL, ITEM_REVIVE, ITEM_MAX_REVIVE, ITEM_FRESH_WATER, ITEM_SODA_POP, ITEM_LEMONADE, ITEM_MOOMOO_MILK, ITEM_ENERGY_POWDER, ITEM_ENERGY_ROOT, ITEM_HEAL_POWDER, ITEM_REVIVAL_HERB, ITEM_ETHER, ITEM_MAX_ETHER, ITEM_ELIXIR, ITEM_MAX_ELIXIR, ITEM_LAVA_COOKIE, ITEM_BLUE_FLUTE, ITEM_YELLOW_FLUTE, ITEM_RED_FLUTE, ITEM_BLACK_FLUTE, ITEM_WHITE_FLUTE, ITEM_BERRY_JUICE, ITEM_SACRED_ASH, ITEM_SHOAL_SALT, ITEM_SHOAL_SHELL, ITEM_RED_SHARD, ITEM_BLUE_SHARD, ITEM_YELLOW_SHARD, ITEM_GREEN_SHARD, ITEM_034, ITEM_035, ITEM_036, ITEM_037, ITEM_038, ITEM_039, ITEM_03A, ITEM_03B, ITEM_03C, ITEM_03D, ITEM_03E, ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, ITEM_CARBOS, ITEM_CALCIUM, ITEM_RARE_CANDY, ITEM_PP_UP, ITEM_ZINC, ITEM_PP_MAX, ITEM_048, ITEM_GUARD_SPEC, ITEM_DIRE_HIT, ITEM_X_ATTACK, ITEM_X_DEFEND, ITEM_X_SPEED, ITEM_X_ACCURACY, ITEM_X_SPECIAL, ITEM_POKE_DOLL, ITEM_FLUFFY_TAIL, ITEM_052, ITEM_SUPER_REPEL, ITEM_MAX_REPEL, ITEM_ESCAPE_ROPE, ITEM_REPEL, ITEM_057, ITEM_058, ITEM_059, ITEM_05A, ITEM_05B, ITEM_05C, ITEM_SUN_STONE, ITEM_MOON_STONE, ITEM_FIRE_STONE, ITEM_THUNDER_STONE, ITEM_WATER_STONE, ITEM_LEAF_STONE, ITEM_063, ITEM_064, ITEM_065, ITEM_066, // Unusable ITEM_TINY_MUSHROOM, ITEM_BIG_MUSHROOM, ITEM_069, ITEM_PEARL, ITEM_BIG_PEARL, ITEM_STARDUST, ITEM_STAR_PIECE, ITEM_NUGGET, ITEM_HEART_SCALE, ITEM_070, ITEM_071, ITEM_072, ITEM_073, ITEM_074, ITEM_075, ITEM_076, ITEM_077, ITEM_078, // Mails ITEM_ORANGE_MAIL, ITEM_HARBOR_MAIL, ITEM_GLITTER_MAIL, ITEM_MECH_MAIL, ITEM_WOOD_MAIL, ITEM_WAVE_MAIL, ITEM_BEAD_MAIL, ITEM_SHADOW_MAIL, ITEM_TROPIC_MAIL, ITEM_DREAM_MAIL, ITEM_FAB_MAIL, ITEM_RETRO_MAIL, // Berries ITEM_CHERI_BERRY, ITEM_CHESTO_BERRY, ITEM_PECHA_BERRY, ITEM_RAWST_BERRY, ITEM_ASPEAR_BERRY, ITEM_LEPPA_BERRY, ITEM_ORAN_BERRY, ITEM_PERSIM_BERRY, ITEM_LUM_BERRY, ITEM_SITRUS_BERRY, ITEM_FIGY_BERRY, ITEM_WIKI_BERRY, ITEM_MAGO_BERRY, ITEM_AGUAV_BERRY, ITEM_IAPAPA_BERRY, ITEM_RAZZ_BERRY, ITEM_BLUK_BERRY, ITEM_NANAB_BERRY, ITEM_WEPEAR_BERRY, ITEM_PINAP_BERRY, ITEM_POMEG_BERRY, ITEM_KELPSY_BERRY, ITEM_QUALOT_BERRY, ITEM_HONDEW_BERRY, ITEM_GREPA_BERRY, ITEM_TAMATO_BERRY, ITEM_CORNN_BERRY, ITEM_MAGOST_BERRY, ITEM_RABUTA_BERRY, ITEM_NOMEL_BERRY, ITEM_SPELON_BERRY, ITEM_PAMTRE_BERRY, ITEM_WATMEL_BERRY, ITEM_DURIN_BERRY, ITEM_BELUE_BERRY, ITEM_LIECHI_BERRY, ITEM_GANLON_BERRY, ITEM_SALAC_BERRY, ITEM_PETAYA_BERRY, ITEM_APICOT_BERRY, ITEM_LANSAT_BERRY, ITEM_STARF_BERRY, ITEM_ENIGMA_BERRY, ITEM_UNUSED_BERRY_1, ITEM_UNUSED_BERRY_2, ITEM_UNUSED_BERRY_3, // Battle Held items ITEM_BRIGHT_POWDER, ITEM_WHITE_HERB, ITEM_MACHO_BRACE, ITEM_EXP_SHARE, ITEM_QUICK_CLAW, ITEM_SOOTHE_BELL, ITEM_MENTAL_HERB, ITEM_CHOICE_BAND, ITEM_KINGS_ROCK, ITEM_SILVER_POWDER, ITEM_AMULET_COIN, ITEM_CLEANSE_TAG, ITEM_SOUL_DEW, ITEM_DEEP_SEA_TOOTH, ITEM_DEEP_SEA_SCALE, ITEM_SMOKE_BALL, ITEM_EVERSTONE, ITEM_FOCUS_BAND, ITEM_LUCKY_EGG, ITEM_SCOPE_LENS, ITEM_METAL_COAT, ITEM_LEFTOVERS, ITEM_DRAGON_SCALE, ITEM_LIGHT_BALL, ITEM_SOFT_SAND, ITEM_HARD_STONE, ITEM_MIRACLE_SEED, ITEM_BLACK_GLASSES, ITEM_BLACK_BELT, ITEM_MAGNET, ITEM_MYSTIC_WATER, ITEM_SHARP_BEAK, ITEM_POISON_BARB, ITEM_NEVER_MELT_ICE, ITEM_SPELL_TAG, ITEM_TWISTED_SPOON, ITEM_CHARCOAL, ITEM_DRAGON_FANG, ITEM_SILK_SCARF, ITEM_UP_GRADE, ITEM_SHELL_BELL, ITEM_SEA_INCENSE, ITEM_LAX_INCENSE, ITEM_LUCKY_PUNCH, ITEM_METAL_POWDER, ITEM_THICK_CLUB, ITEM_STICK, ITEM_0E2, ITEM_0E3, ITEM_0E4, ITEM_0E5, ITEM_0E6, ITEM_0E7, ITEM_0E8, ITEM_0E9, ITEM_0EA, ITEM_0EB, ITEM_0EC, ITEM_0ED, ITEM_0EE, ITEM_0EF, ITEM_0F0, ITEM_0F1, ITEM_0F2, ITEM_0F3, ITEM_0F4, ITEM_0F5, ITEM_0F6, ITEM_0F7, ITEM_0F8, ITEM_0F9, ITEM_0FA, ITEM_0FB, ITEM_0FC, ITEM_0FD, // Contest held items ITEM_RED_SCARF, ITEM_BLUE_SCARF, ITEM_PINK_SCARF, ITEM_GREEN_SCARF, ITEM_YELLOW_SCARF, // Key Items ITEM_MACH_BIKE, ITEM_COIN_CASE, ITEM_ITEMFINDER, ITEM_OLD_ROD, ITEM_GOOD_ROD, ITEM_SUPER_ROD, ITEM_SS_TICKET, ITEM_CONTEST_PASS, ITEM_10B, ITEM_WAILMER_PAIL, ITEM_DEVON_GOODS, ITEM_SOOT_SACK, ITEM_BASEMENT_KEY, ITEM_ACRO_BIKE, ITEM_POKEBLOCK_CASE, ITEM_LETTER, ITEM_EON_TICKET, ITEM_RED_ORB, ITEM_BLUE_ORB, ITEM_SCANNER, ITEM_GO_GOGGLES, ITEM_METEORITE, ITEM_ROOM_1_KEY, ITEM_ROOM_2_KEY, ITEM_ROOM_4_KEY, ITEM_ROOM_6_KEY, ITEM_STORAGE_KEY, ITEM_ROOT_FOSSIL, ITEM_CLAW_FOSSIL, ITEM_DEVON_SCOPE, // TMs/HMs ITEM_TM01, ITEM_TM02, ITEM_TM03, ITEM_TM04, ITEM_TM05, ITEM_TM06, ITEM_TM07, ITEM_TM08, ITEM_TM09, ITEM_TM10, ITEM_TM11, ITEM_TM12, ITEM_TM13, ITEM_TM14, ITEM_TM15, ITEM_TM16, ITEM_TM17, ITEM_TM18, ITEM_TM19, ITEM_TM20, ITEM_TM21, ITEM_TM22, ITEM_TM23, ITEM_TM24, ITEM_TM25, ITEM_TM26, ITEM_TM27, ITEM_TM28, ITEM_TM29, ITEM_TM30, ITEM_TM31, ITEM_TM32, ITEM_TM33, ITEM_TM34, ITEM_TM35, ITEM_TM36, ITEM_TM37, ITEM_TM38, ITEM_TM39, ITEM_TM40, ITEM_TM41, ITEM_TM42, ITEM_TM43, ITEM_TM44, ITEM_TM45, ITEM_TM46, ITEM_TM47, ITEM_TM48, ITEM_TM49, ITEM_TM50, ITEM_HM01, ITEM_HM02, ITEM_HM03, ITEM_HM04, ITEM_HM05, ITEM_HM06, ITEM_HM07, ITEM_HM08, // Unknown ITEM_15B, ITEM_15C, // FireRed/LeafGreen ITEM_OAKS_PARCEL, ITEM_POKE_FLUTE, ITEM_SECRET_KEY, ITEM_BIKE_VOUCHER, ITEM_GOLD_TEETH, ITEM_OLD_AMBER, ITEM_CARD_KEY, ITEM_LIFT_KEY, ITEM_HELIX_FOSSIL, ITEM_DOME_FOSSIL, ITEM_SILPH_SCOPE, ITEM_BICYCLE, ITEM_TOWN_MAP, ITEM_VS_SEEKER, ITEM_FAME_CHECKER, ITEM_TM_CASE, ITEM_BERRY_POUCH, ITEM_TEACHY_TV, ITEM_TRI_PASS, ITEM_RAINBOW_PASS, ITEM_TEA, ITEM_MYSTIC_TICKET, ITEM_AURORA_TICKET, ITEM_POWDER_JAR, ITEM_RUBY, ITEM_SAPPHIRE, // Emerald ITEM_MAGMA_EMBLEM, ITEM_OLD_SEA_MAP, ITEMS_COUNT }; // A special item id associated with "Cancel"/"Exit" etc. in a list of items or decorations // Its icon is defined at ITEMS_COUNT as the "return to field" arrow #define ITEM_LIST_END 0xFFFF #define FIRST_BALL ITEM_MASTER_BALL #define LAST_BALL ITEM_PREMIER_BALL #define FIRST_MAIL_INDEX ITEM_ORANGE_MAIL #define FIRST_BERRY_INDEX ITEM_CHERI_BERRY #define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY #define MAX_BERRY_INDEX ITEM_UNUSED_BERRY_3 // Range of berries given out by various NPCS #define FIRST_BERRY_MASTER_BERRY ITEM_POMEG_BERRY #define LAST_BERRY_MASTER_BERRY ITEM_NOMEL_BERRY #define FIRST_BERRY_MASTER_WIFE_BERRY ITEM_CHERI_BERRY #define LAST_BERRY_MASTER_WIFE_BERRY ITEM_SITRUS_BERRY #define FIRST_KIRI_BERRY ITEM_POMEG_BERRY #define LAST_KIRI_BERRY ITEM_NOMEL_BERRY #define FIRST_ROUTE_114_MAN_BERRY ITEM_RAZZ_BERRY #define LAST_ROUTE_114_MAN_BERRY ITEM_PINAP_BERRY #define NUM_BERRY_MASTER_BERRIES (LAST_BERRY_MASTER_BERRY - FIRST_BERRY_MASTER_BERRY + 1) #define NUM_BERRY_MASTER_BERRIES_SKIPPED (FIRST_BERRY_MASTER_BERRY - FIRST_BERRY_INDEX) #define NUM_BERRY_MASTER_WIFE_BERRIES (LAST_BERRY_MASTER_WIFE_BERRY - FIRST_BERRY_MASTER_WIFE_BERRY + 1) #define NUM_KIRI_BERRIES (LAST_KIRI_BERRY - FIRST_KIRI_BERRY + 1) #define NUM_KIRI_BERRIES_SKIPPED (FIRST_KIRI_BERRY - FIRST_BERRY_INDEX) #define NUM_ROUTE_114_MAN_BERRIES (LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1) #define NUM_ROUTE_114_MAN_BERRIES_SKIPPED (FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX) #define ITEM_TO_BERRY(itemId) (((itemId) - FIRST_BERRY_INDEX) + 1) #define ITEM_TO_MAIL(itemId) ((itemId) - FIRST_MAIL_INDEX) #define MAIL_NONE 0xFF #define NUM_TECHNICAL_MACHINES 50 #define NUM_HIDDEN_MACHINES 8 #define MAX_BAG_ITEM_CAPACITY 99 #define MAX_PC_ITEM_CAPACITY 999 #define MAX_BERRY_CAPACITY 999 #define BAG_ITEM_CAPACITY_DIGITS 2 #define BERRY_CAPACITY_DIGITS 3 #define MAX_ITEM_DIGITS BERRY_CAPACITY_DIGITS // Secondary IDs for rods enum { OLD_ROD, GOOD_ROD, SUPER_ROD, }; // Secondary IDs for bikes enum { MACH_BIKE, ACRO_BIKE, }; // Item type IDs (used to determine the exit callback) enum { ITEM_USE_MAIL, ITEM_USE_PARTY_MENU, ITEM_USE_FIELD, ITEM_USE_PBLOCK_CASE, ITEM_USE_BAG_MENU, // No exit callback, stays in bag menu }; // Item battle usage IDs (only checked to see if nonzero) enum { ITEM_B_USE_NONE, ITEM_B_USE_MEDICINE, ITEM_B_USE_OTHER, }; // Check if the item is one that can be used on a Pokémon. #define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= MAX_BERRY_INDEX) #endif // GUARD_CONSTANTS_ITEMS_H