mirror of
https://github.com/pret/pokeemerald.git
synced 2026-09-26 12:42:56 -04:00
494 lines
10 KiB
C
494 lines
10 KiB
C
#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
|