pokeemerald-expansion/include/constants/event_objects.h
grintoul 5e3e3b1a28
Some checks are pending
CI / build (push) Waiting to run
CI / docs_validate (push) Waiting to run
CI / allcontributors (push) Waiting to run
Typeless enums for OBJ_EVENT_GFX, Multichoice Ids, and Facility Classes (#9066)
2026-03-04 00:30:52 +01:00

622 lines
24 KiB
C

#ifndef GUARD_CONSTANTS_EVENT_OBJECTS_H
#define GUARD_CONSTANTS_EVENT_OBJECTS_H
#include "constants/global.h"
#include "constants/map_event_ids.h"
#define PLAYER_AVATAR_GFX_MALE_NORMAL (IS_FRLG ? OBJ_EVENT_GFX_RED_NORMAL : OBJ_EVENT_GFX_BRENDAN_NORMAL)
#define PLAYER_AVATAR_GFX_MALE_MACH_BIKE (IS_FRLG ? OBJ_EVENT_GFX_RED_BIKE : OBJ_EVENT_GFX_BRENDAN_MACH_BIKE)
#define PLAYER_AVATAR_GFX_MALE_ACRO_BIKE (IS_FRLG ? OBJ_EVENT_GFX_RED_BIKE : OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE)
#define PLAYER_AVATAR_GFX_MALE_SURFING (IS_FRLG ? OBJ_EVENT_GFX_RED_SURF : OBJ_EVENT_GFX_BRENDAN_SURFING)
#define PLAYER_AVATAR_GFX_MALE_UNDERWATER (IS_FRLG ? OBJ_EVENT_GFX_RED_SURF : OBJ_EVENT_GFX_BRENDAN_UNDERWATER)
#define PLAYER_AVATAR_GFX_MALE_FIELD_MOVE (IS_FRLG ? OBJ_EVENT_GFX_RED_FIELD_MOVE : OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE)
#define PLAYER_AVATAR_GFX_MALE_FISHING (IS_FRLG ? OBJ_EVENT_GFX_RED_FISH : OBJ_EVENT_GFX_BRENDAN_FISHING)
#define PLAYER_AVATAR_GFX_MALE_WATERING (IS_FRLG ? OBJ_EVENT_GFX_RED_FIELD_MOVE : OBJ_EVENT_GFX_BRENDAN_WATERING)
#define PLAYER_AVATAR_GFX_MALE_VSSEEKER (IS_FRLG ? OBJ_EVENT_GFX_RED_VS_SEEKER : OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE)
#define PLAYER_AVATAR_GFX_FEMALE_NORMAL (IS_FRLG ? OBJ_EVENT_GFX_GREEN_NORMAL : OBJ_EVENT_GFX_MAY_NORMAL)
#define PLAYER_AVATAR_GFX_FEMALE_MACH_BIKE (IS_FRLG ? OBJ_EVENT_GFX_GREEN_BIKE : OBJ_EVENT_GFX_MAY_MACH_BIKE)
#define PLAYER_AVATAR_GFX_FEMALE_ACRO_BIKE (IS_FRLG ? OBJ_EVENT_GFX_GREEN_BIKE : OBJ_EVENT_GFX_MAY_ACRO_BIKE)
#define PLAYER_AVATAR_GFX_FEMALE_SURFING (IS_FRLG ? OBJ_EVENT_GFX_GREEN_SURF : OBJ_EVENT_GFX_MAY_SURFING)
#define PLAYER_AVATAR_GFX_FEMALE_UNDERWATER (IS_FRLG ? OBJ_EVENT_GFX_GREEN_SURF : OBJ_EVENT_GFX_MAY_UNDERWATER)
#define PLAYER_AVATAR_GFX_FEMALE_FIELD_MOVE (IS_FRLG ? OBJ_EVENT_GFX_GREEN_FIELD_MOVE : OBJ_EVENT_GFX_MAY_FIELD_MOVE)
#define PLAYER_AVATAR_GFX_FEMALE_FISHING (IS_FRLG ? OBJ_EVENT_GFX_GREEN_FISH : OBJ_EVENT_GFX_MAY_FISHING)
#define PLAYER_AVATAR_GFX_FEMALE_WATERING (IS_FRLG ? OBJ_EVENT_GFX_GREEN_FIELD_MOVE : OBJ_EVENT_GFX_MAY_WATERING)
#define PLAYER_AVATAR_GFX_FEMALE_VSSEEKER (IS_FRLG ? OBJ_EVENT_GFX_GREEN_VS_SEEKER : OBJ_EVENT_GFX_MAY_FIELD_MOVE)
enum
{
OBJ_EVENT_GFX_BRENDAN_NORMAL,
OBJ_EVENT_GFX_BRENDAN_MACH_BIKE,
OBJ_EVENT_GFX_BRENDAN_SURFING,
OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE,
OBJ_EVENT_GFX_QUINTY_PLUMP,
OBJ_EVENT_GFX_NINJA_BOY,
OBJ_EVENT_GFX_TWIN,
OBJ_EVENT_GFX_BOY_1,
OBJ_EVENT_GFX_GIRL_1,
OBJ_EVENT_GFX_BOY_2,
OBJ_EVENT_GFX_GIRL_2,
OBJ_EVENT_GFX_LITTLE_BOY,
OBJ_EVENT_GFX_LITTLE_GIRL,
OBJ_EVENT_GFX_BOY_3,
OBJ_EVENT_GFX_GIRL_3,
OBJ_EVENT_GFX_RICH_BOY,
OBJ_EVENT_GFX_WOMAN_1,
OBJ_EVENT_GFX_FAT_MAN,
OBJ_EVENT_GFX_POKEFAN_F,
OBJ_EVENT_GFX_MAN_1,
OBJ_EVENT_GFX_WOMAN_2,
OBJ_EVENT_GFX_EXPERT_M,
OBJ_EVENT_GFX_EXPERT_F,
OBJ_EVENT_GFX_MAN_2,
OBJ_EVENT_GFX_WOMAN_3,
OBJ_EVENT_GFX_POKEFAN_M,
OBJ_EVENT_GFX_WOMAN_4,
OBJ_EVENT_GFX_COOK,
OBJ_EVENT_GFX_LINK_RECEPTIONIST,
OBJ_EVENT_GFX_OLD_MAN,
OBJ_EVENT_GFX_OLD_WOMAN,
OBJ_EVENT_GFX_CAMPER,
OBJ_EVENT_GFX_PICNICKER,
OBJ_EVENT_GFX_MAN_3,
OBJ_EVENT_GFX_WOMAN_5,
OBJ_EVENT_GFX_YOUNGSTER,
OBJ_EVENT_GFX_BUG_CATCHER,
OBJ_EVENT_GFX_PSYCHIC_M,
OBJ_EVENT_GFX_SCHOOL_KID_M,
OBJ_EVENT_GFX_MANIAC,
OBJ_EVENT_GFX_HEX_MANIAC,
OBJ_EVENT_GFX_RAYQUAZA_STILL,
OBJ_EVENT_GFX_SWIMMER_M,
OBJ_EVENT_GFX_SWIMMER_F,
OBJ_EVENT_GFX_BLACK_BELT,
OBJ_EVENT_GFX_BEAUTY,
OBJ_EVENT_GFX_SCIENTIST_1,
OBJ_EVENT_GFX_LASS,
OBJ_EVENT_GFX_GENTLEMAN,
OBJ_EVENT_GFX_SAILOR,
OBJ_EVENT_GFX_FISHERMAN,
OBJ_EVENT_GFX_RUNNING_TRIATHLETE_M,
OBJ_EVENT_GFX_RUNNING_TRIATHLETE_F,
OBJ_EVENT_GFX_TUBER_F,
OBJ_EVENT_GFX_TUBER_M,
OBJ_EVENT_GFX_HIKER,
OBJ_EVENT_GFX_CYCLING_TRIATHLETE_M,
OBJ_EVENT_GFX_CYCLING_TRIATHLETE_F,
OBJ_EVENT_GFX_NURSE,
OBJ_EVENT_GFX_ITEM_BALL,
OBJ_EVENT_GFX_BERRY_TREE,
OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES,
OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES,
OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE,
OBJ_EVENT_GFX_PROF_BIRCH,
OBJ_EVENT_GFX_MAN_4,
OBJ_EVENT_GFX_MAN_5,
OBJ_EVENT_GFX_REPORTER_M,
OBJ_EVENT_GFX_REPORTER_F,
OBJ_EVENT_GFX_BARD,
OBJ_EVENT_GFX_ANABEL,
OBJ_EVENT_GFX_TUCKER,
OBJ_EVENT_GFX_GRETA,
OBJ_EVENT_GFX_SPENSER,
OBJ_EVENT_GFX_NOLAND,
OBJ_EVENT_GFX_LUCY,
OBJ_EVENT_GFX_UNUSED_NATU_DOLL,
OBJ_EVENT_GFX_UNUSED_MAGNEMITE_DOLL,
OBJ_EVENT_GFX_UNUSED_SQUIRTLE_DOLL,
OBJ_EVENT_GFX_UNUSED_WOOPER_DOLL,
OBJ_EVENT_GFX_UNUSED_PIKACHU_DOLL,
OBJ_EVENT_GFX_UNUSED_PORYGON2_DOLL,
OBJ_EVENT_GFX_CUTTABLE_TREE,
OBJ_EVENT_GFX_MART_EMPLOYEE,
OBJ_EVENT_GFX_ROOFTOP_SALE_WOMAN,
OBJ_EVENT_GFX_TEALA,
OBJ_EVENT_GFX_BREAKABLE_ROCK,
OBJ_EVENT_GFX_PUSHABLE_BOULDER,
OBJ_EVENT_GFX_MR_BRINEYS_BOAT,
OBJ_EVENT_GFX_MAY_NORMAL,
OBJ_EVENT_GFX_MAY_MACH_BIKE,
OBJ_EVENT_GFX_MAY_ACRO_BIKE,
OBJ_EVENT_GFX_MAY_SURFING,
OBJ_EVENT_GFX_MAY_FIELD_MOVE,
OBJ_EVENT_GFX_TRUCK,
OBJ_EVENT_GFX_VIGOROTH_CARRYING_BOX,
OBJ_EVENT_GFX_VIGOROTH_FACING_AWAY,
OBJ_EVENT_GFX_BIRCHS_BAG,
OBJ_EVENT_GFX_ZIGZAGOON_1,
OBJ_EVENT_GFX_ARTIST,
OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL,
OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE,
OBJ_EVENT_GFX_RIVAL_BRENDAN_ACRO_BIKE,
OBJ_EVENT_GFX_RIVAL_BRENDAN_SURFING,
OBJ_EVENT_GFX_RIVAL_BRENDAN_FIELD_MOVE,
OBJ_EVENT_GFX_RIVAL_MAY_NORMAL,
OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE,
OBJ_EVENT_GFX_RIVAL_MAY_ACRO_BIKE,
OBJ_EVENT_GFX_RIVAL_MAY_SURFING,
OBJ_EVENT_GFX_RIVAL_MAY_FIELD_MOVE,
OBJ_EVENT_GFX_CAMERAMAN,
OBJ_EVENT_GFX_BRENDAN_UNDERWATER,
OBJ_EVENT_GFX_MAY_UNDERWATER,
OBJ_EVENT_GFX_MOVING_BOX,
OBJ_EVENT_GFX_CABLE_CAR,
OBJ_EVENT_GFX_SCIENTIST_2,
OBJ_EVENT_GFX_DEVON_EMPLOYEE,
OBJ_EVENT_GFX_AQUA_MEMBER_M,
OBJ_EVENT_GFX_AQUA_MEMBER_F,
OBJ_EVENT_GFX_MAGMA_MEMBER_M,
OBJ_EVENT_GFX_MAGMA_MEMBER_F,
OBJ_EVENT_GFX_SIDNEY,
OBJ_EVENT_GFX_PHOEBE,
OBJ_EVENT_GFX_GLACIA,
OBJ_EVENT_GFX_DRAKE,
OBJ_EVENT_GFX_ROXANNE,
OBJ_EVENT_GFX_BRAWLY,
OBJ_EVENT_GFX_WATTSON,
OBJ_EVENT_GFX_FLANNERY,
OBJ_EVENT_GFX_NORMAN,
OBJ_EVENT_GFX_WINONA,
OBJ_EVENT_GFX_LIZA,
OBJ_EVENT_GFX_TATE,
OBJ_EVENT_GFX_WALLACE,
OBJ_EVENT_GFX_STEVEN,
OBJ_EVENT_GFX_WALLY,
OBJ_EVENT_GFX_LITTLE_BOY_3,
OBJ_EVENT_GFX_BRENDAN_FISHING,
OBJ_EVENT_GFX_MAY_FISHING,
OBJ_EVENT_GFX_HOT_SPRINGS_OLD_WOMAN,
OBJ_EVENT_GFX_SS_TIDAL,
OBJ_EVENT_GFX_SUBMARINE_SHADOW,
OBJ_EVENT_GFX_PICHU_DOLL,
OBJ_EVENT_GFX_PIKACHU_DOLL,
OBJ_EVENT_GFX_MARILL_DOLL,
OBJ_EVENT_GFX_TOGEPI_DOLL,
OBJ_EVENT_GFX_CYNDAQUIL_DOLL,
OBJ_EVENT_GFX_CHIKORITA_DOLL,
OBJ_EVENT_GFX_TOTODILE_DOLL,
OBJ_EVENT_GFX_JIGGLYPUFF_DOLL,
OBJ_EVENT_GFX_MEOWTH_DOLL,
OBJ_EVENT_GFX_CLEFAIRY_DOLL,
OBJ_EVENT_GFX_DITTO_DOLL,
OBJ_EVENT_GFX_SMOOCHUM_DOLL,
OBJ_EVENT_GFX_TREECKO_DOLL,
OBJ_EVENT_GFX_TORCHIC_DOLL,
OBJ_EVENT_GFX_MUDKIP_DOLL,
OBJ_EVENT_GFX_DUSKULL_DOLL,
OBJ_EVENT_GFX_WYNAUT_DOLL,
OBJ_EVENT_GFX_BALTOY_DOLL,
OBJ_EVENT_GFX_KECLEON_DOLL,
OBJ_EVENT_GFX_AZURILL_DOLL,
OBJ_EVENT_GFX_SKITTY_DOLL,
OBJ_EVENT_GFX_SWABLU_DOLL,
OBJ_EVENT_GFX_GULPIN_DOLL,
OBJ_EVENT_GFX_LOTAD_DOLL,
OBJ_EVENT_GFX_SEEDOT_DOLL,
OBJ_EVENT_GFX_PIKA_CUSHION,
OBJ_EVENT_GFX_ROUND_CUSHION,
OBJ_EVENT_GFX_KISS_CUSHION,
OBJ_EVENT_GFX_ZIGZAG_CUSHION,
OBJ_EVENT_GFX_SPIN_CUSHION,
OBJ_EVENT_GFX_DIAMOND_CUSHION,
OBJ_EVENT_GFX_BALL_CUSHION,
OBJ_EVENT_GFX_GRASS_CUSHION,
OBJ_EVENT_GFX_FIRE_CUSHION,
OBJ_EVENT_GFX_WATER_CUSHION,
OBJ_EVENT_GFX_BIG_SNORLAX_DOLL,
OBJ_EVENT_GFX_BIG_RHYDON_DOLL,
OBJ_EVENT_GFX_BIG_LAPRAS_DOLL,
OBJ_EVENT_GFX_BIG_VENUSAUR_DOLL,
OBJ_EVENT_GFX_BIG_CHARIZARD_DOLL,
OBJ_EVENT_GFX_BIG_BLASTOISE_DOLL,
OBJ_EVENT_GFX_BIG_WAILMER_DOLL,
OBJ_EVENT_GFX_BIG_REGIROCK_DOLL,
OBJ_EVENT_GFX_BIG_REGICE_DOLL,
OBJ_EVENT_GFX_BIG_REGISTEEL_DOLL,
OBJ_EVENT_GFX_LATIAS,
OBJ_EVENT_GFX_LATIOS,
OBJ_EVENT_GFX_GAMEBOY_KID,
OBJ_EVENT_GFX_CONTEST_JUDGE,
OBJ_EVENT_GFX_BRENDAN_WATERING,
OBJ_EVENT_GFX_MAY_WATERING,
OBJ_EVENT_GFX_BRENDAN_DECORATING,
OBJ_EVENT_GFX_MAY_DECORATING,
OBJ_EVENT_GFX_ARCHIE,
OBJ_EVENT_GFX_MAXIE,
OBJ_EVENT_GFX_KYOGRE_FRONT,
OBJ_EVENT_GFX_GROUDON_FRONT,
OBJ_EVENT_GFX_FOSSIL,
OBJ_EVENT_GFX_REGIROCK,
OBJ_EVENT_GFX_REGICE,
OBJ_EVENT_GFX_REGISTEEL,
OBJ_EVENT_GFX_SKITTY,
OBJ_EVENT_GFX_KECLEON,
OBJ_EVENT_GFX_KYOGRE_ASLEEP,
OBJ_EVENT_GFX_GROUDON_ASLEEP,
OBJ_EVENT_GFX_RAYQUAZA,
OBJ_EVENT_GFX_ZIGZAGOON_2,
OBJ_EVENT_GFX_PIKACHU,
OBJ_EVENT_GFX_AZUMARILL,
OBJ_EVENT_GFX_WINGULL,
OBJ_EVENT_GFX_KECLEON_BRIDGE_SHADOW,
OBJ_EVENT_GFX_TUBER_M_SWIMMING,
OBJ_EVENT_GFX_AZURILL,
OBJ_EVENT_GFX_MOM,
OBJ_EVENT_GFX_LINK_BRENDAN,
OBJ_EVENT_GFX_LINK_MAY,
OBJ_EVENT_GFX_JUAN,
OBJ_EVENT_GFX_SCOTT,
OBJ_EVENT_GFX_POOCHYENA,
OBJ_EVENT_GFX_KYOGRE_SIDE,
OBJ_EVENT_GFX_GROUDON_SIDE,
OBJ_EVENT_GFX_MYSTERY_GIFT_MAN,
OBJ_EVENT_GFX_TRICK_HOUSE_STATUE,
OBJ_EVENT_GFX_KIRLIA,
OBJ_EVENT_GFX_DUSCLOPS,
OBJ_EVENT_GFX_UNION_ROOM_NURSE,
OBJ_EVENT_GFX_SUDOWOODO,
OBJ_EVENT_GFX_MEW,
OBJ_EVENT_GFX_RED,
OBJ_EVENT_GFX_LEAF,
OBJ_EVENT_GFX_DEOXYS,
OBJ_EVENT_GFX_DEOXYS_TRIANGLE,
OBJ_EVENT_GFX_BRANDON,
OBJ_EVENT_GFX_LINK_RS_BRENDAN,
OBJ_EVENT_GFX_LINK_RS_MAY,
OBJ_EVENT_GFX_LUGIA,
OBJ_EVENT_GFX_HOOH,
OBJ_EVENT_GFX_POKE_BALL,
OBJ_EVENT_GFX_OW_MON,
OBJ_EVENT_GFX_LIGHT_SPRITE,
OBJ_EVENT_GFX_APRICORN_TREE,
OBJ_EVENT_GFX_RED_NORMAL, // FRLG objects
OBJ_EVENT_GFX_RED_BIKE,
OBJ_EVENT_GFX_RED_SURF,
OBJ_EVENT_GFX_RED_FIELD_MOVE,
OBJ_EVENT_GFX_RED_FISH,
OBJ_EVENT_GFX_RED_VS_SEEKER,
OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE,
OBJ_EVENT_GFX_UNUSED_250,
OBJ_EVENT_GFX_GREEN_NORMAL,
OBJ_EVENT_GFX_GREEN_BIKE,
OBJ_EVENT_GFX_GREEN_SURF,
OBJ_EVENT_GFX_GREEN_FIELD_MOVE,
OBJ_EVENT_GFX_GREEN_FISH,
OBJ_EVENT_GFX_GREEN_VS_SEEKER,
OBJ_EVENT_GFX_GREEN_VS_SEEKER_BIKE,
OBJ_EVENT_GFX_BOY,
OBJ_EVENT_GFX_BATTLE_GIRL,
OBJ_EVENT_GFX_MAN,
OBJ_EVENT_GFX_ROCKER,
OBJ_EVENT_GFX_BALDING_MAN,
OBJ_EVENT_GFX_OLD_MAN_1,
OBJ_EVENT_GFX_OLD_MAN_2,
OBJ_EVENT_GFX_OLD_MAN_LYING_DOWN,
OBJ_EVENT_GFX_TUBER_M_WATER,
OBJ_EVENT_GFX_TUBER_M_LAND,
OBJ_EVENT_GFX_COOLTRAINER_M,
OBJ_EVENT_GFX_COOLTRAINER_F,
OBJ_EVENT_GFX_SWIMMER_M_WATER,
OBJ_EVENT_GFX_SWIMMER_F_WATER,
OBJ_EVENT_GFX_SWIMMER_M_LAND,
OBJ_EVENT_GFX_SWIMMER_F_LAND,
OBJ_EVENT_GFX_WORKER_M,
OBJ_EVENT_GFX_WORKER_F,
OBJ_EVENT_GFX_ROCKET_M,
OBJ_EVENT_GFX_ROCKET_F,
OBJ_EVENT_GFX_GBA_KID,
OBJ_EVENT_GFX_SUPER_NERD,
OBJ_EVENT_GFX_BIKER,
OBJ_EVENT_GFX_BLACKBELT,
OBJ_EVENT_GFX_SCIENTIST,
OBJ_EVENT_GFX_FISHER,
OBJ_EVENT_GFX_CHANNELER,
OBJ_EVENT_GFX_CHEF,
OBJ_EVENT_GFX_POLICEMAN,
OBJ_EVENT_GFX_CAPTAIN,
OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST,
OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST,
OBJ_EVENT_GFX_CLERK,
OBJ_EVENT_GFX_MG_DELIVERYMAN,
OBJ_EVENT_GFX_TRAINER_TOWER_DUDE,
OBJ_EVENT_GFX_PROF_OAK,
OBJ_EVENT_GFX_BLUE,
OBJ_EVENT_GFX_BILL,
OBJ_EVENT_GFX_LANCE,
OBJ_EVENT_GFX_AGATHA,
OBJ_EVENT_GFX_DAISY,
OBJ_EVENT_GFX_LORELEI,
OBJ_EVENT_GFX_MR_FUJI,
OBJ_EVENT_GFX_BRUNO,
OBJ_EVENT_GFX_BROCK,
OBJ_EVENT_GFX_MISTY,
OBJ_EVENT_GFX_LT_SURGE,
OBJ_EVENT_GFX_ERIKA,
OBJ_EVENT_GFX_KOGA,
OBJ_EVENT_GFX_SABRINA,
OBJ_EVENT_GFX_BLAINE,
OBJ_EVENT_GFX_GIOVANNI,
OBJ_EVENT_GFX_CELIO,
OBJ_EVENT_GFX_TEACHY_TV_HOST,
OBJ_EVENT_GFX_GYM_GUY,
OBJ_EVENT_GFX_TOWN_MAP,
OBJ_EVENT_GFX_POKEDEX,
OBJ_EVENT_GFX_LITTLE_BOY_FRLG,
OBJ_EVENT_GFX_LITTLE_GIRL_FRLG,
OBJ_EVENT_GFX_YOUNGSTER_FRLG,
OBJ_EVENT_GFX_BUG_CATCHER_FRLG,
OBJ_EVENT_GFX_LASS_FRLG,
OBJ_EVENT_GFX_WOMAN_1_FRLG,
OBJ_EVENT_GFX_FAT_MAN_FRLG,
OBJ_EVENT_GFX_WOMAN_2_FRLG,
OBJ_EVENT_GFX_BEAUTY_FRLG,
OBJ_EVENT_GFX_WOMAN_3_FRLG,
OBJ_EVENT_GFX_OLD_WOMAN_FRLG,
OBJ_EVENT_GFX_CAMPER_FRLG,
OBJ_EVENT_GFX_PICNICKER_FRLG,
OBJ_EVENT_GFX_MOM_FRLG,
OBJ_EVENT_GFX_TUBER_F_FRLG,
OBJ_EVENT_GFX_HIKER_FRLG,
OBJ_EVENT_GFX_GENTLEMAN_FRLG,
OBJ_EVENT_GFX_SAILOR_FRLG,
OBJ_EVENT_GFX_NURSE_FRLG,
OBJ_EVENT_GFX_FOSSIL_FRLG,
OBJ_EVENT_GFX_RUBY,
OBJ_EVENT_GFX_SAPPHIRE,
OBJ_EVENT_GFX_OLD_AMBER,
OBJ_EVENT_GFX_GYM_SIGN,
OBJ_EVENT_GFX_SIGN,
OBJ_EVENT_GFX_TRAINER_TIPS,
OBJ_EVENT_GFX_CLIPBOARD,
OBJ_EVENT_GFX_METEORITE,
OBJ_EVENT_GFX_LAPRAS_DOLL,
OBJ_EVENT_GFX_SEAGALLOP,
OBJ_EVENT_GFX_SNORLAX,
OBJ_EVENT_GFX_SPEAROW,
OBJ_EVENT_GFX_CUBONE,
OBJ_EVENT_GFX_POLIWRATH,
OBJ_EVENT_GFX_CLEFAIRY,
OBJ_EVENT_GFX_PIDGEOT,
OBJ_EVENT_GFX_JIGGLYPUFF,
OBJ_EVENT_GFX_PIDGEY,
OBJ_EVENT_GFX_CHANSEY,
OBJ_EVENT_GFX_OMANYTE,
OBJ_EVENT_GFX_KANGASKHAN,
OBJ_EVENT_GFX_PIKACHU_FRLG,
OBJ_EVENT_GFX_PSYDUCK,
OBJ_EVENT_GFX_NIDORAN_F,
OBJ_EVENT_GFX_NIDORAN_M,
OBJ_EVENT_GFX_NIDORINO,
OBJ_EVENT_GFX_MEOWTH,
OBJ_EVENT_GFX_SEEL,
OBJ_EVENT_GFX_VOLTORB,
OBJ_EVENT_GFX_SLOWPOKE,
OBJ_EVENT_GFX_SLOWBRO,
OBJ_EVENT_GFX_MACHOP,
OBJ_EVENT_GFX_WIGGLYTUFF,
OBJ_EVENT_GFX_DODUO,
OBJ_EVENT_GFX_FEAROW,
OBJ_EVENT_GFX_MACHOKE,
OBJ_EVENT_GFX_LAPRAS,
OBJ_EVENT_GFX_ZAPDOS,
OBJ_EVENT_GFX_MOLTRES,
OBJ_EVENT_GFX_ARTICUNO,
OBJ_EVENT_GFX_MEWTWO,
OBJ_EVENT_GFX_ENTEI,
OBJ_EVENT_GFX_SUICUNE,
OBJ_EVENT_GFX_RAIKOU,
OBJ_EVENT_GFX_CELEBI,
OBJ_EVENT_GFX_KABUTO,
OBJ_EVENT_GFX_DEOXYS_D,
OBJ_EVENT_GFX_DEOXYS_A,
OBJ_EVENT_GFX_DEOXYS_N,
OBJ_EVENT_GFX_SS_ANNE,
OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG,
OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG,
OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG,
NUM_OBJ_EVENT_GFX,
};
// FRLG equivalents
// #define OBJ_EVENT_GFX_MEW OBJ_EVENT_GFX_NINJA_BOY
// #define OBJ_EVENT_GFX_LUGIA OBJ_EVENT_GFX_NINJA_BOY
// NOTE: The maximum amount of object events has been expanded from 255 to 65535.
// Since dynamic graphics ids still require at least 16 free values, the actual limit
// is 65519, but even considering follower Pokémon, this should be more than enough :)
// These are dynamic object gfx ids.
// They correspond with the values of the VAR_OBJ_GFX_ID_X vars.
// More info about them in include/constants/vars.h
#define OBJ_EVENT_GFX_VARS (NUM_OBJ_EVENT_GFX + 1)
#define OBJ_EVENT_GFX_VAR_0 (OBJ_EVENT_GFX_VARS + 0x0)
#define OBJ_EVENT_GFX_VAR_1 (OBJ_EVENT_GFX_VARS + 0x1)
#define OBJ_EVENT_GFX_VAR_2 (OBJ_EVENT_GFX_VARS + 0x2)
#define OBJ_EVENT_GFX_VAR_3 (OBJ_EVENT_GFX_VARS + 0x3)
#define OBJ_EVENT_GFX_VAR_4 (OBJ_EVENT_GFX_VARS + 0x4)
#define OBJ_EVENT_GFX_VAR_5 (OBJ_EVENT_GFX_VARS + 0x5)
#define OBJ_EVENT_GFX_VAR_6 (OBJ_EVENT_GFX_VARS + 0x6)
#define OBJ_EVENT_GFX_VAR_7 (OBJ_EVENT_GFX_VARS + 0x7)
#define OBJ_EVENT_GFX_VAR_8 (OBJ_EVENT_GFX_VARS + 0x8)
#define OBJ_EVENT_GFX_VAR_9 (OBJ_EVENT_GFX_VARS + 0x9)
#define OBJ_EVENT_GFX_VAR_A (OBJ_EVENT_GFX_VARS + 0xA)
#define OBJ_EVENT_GFX_VAR_B (OBJ_EVENT_GFX_VARS + 0xB)
#define OBJ_EVENT_GFX_VAR_C (OBJ_EVENT_GFX_VARS + 0xC)
#define OBJ_EVENT_GFX_VAR_D (OBJ_EVENT_GFX_VARS + 0xD)
#define OBJ_EVENT_GFX_VAR_E (OBJ_EVENT_GFX_VARS + 0xE)
#define OBJ_EVENT_GFX_VAR_F (OBJ_EVENT_GFX_VARS + 0xF)
// Don't use (1u << 15) to avoid conflict with BLEND_IMMUNE_FLAG.
#define OBJ_EVENT_MON (1u << 14)
#define OBJ_EVENT_MON_SHINY (1u << 13)
#define OBJ_EVENT_MON_FEMALE (1u << 12)
#define OBJ_EVENT_MON_SPECIES_MASK (~(7u << 12))
// Used to call a specific species' follower graphics. Useful for static encounters.
#define OBJ_EVENT_GFX_SPECIES(name) (SPECIES_##name + OBJ_EVENT_MON)
#define OBJ_EVENT_GFX_SPECIES_SHINY(name) (SPECIES_##name + OBJ_EVENT_MON + OBJ_EVENT_MON_SHINY)
#define OBJ_EVENT_GFX_SPECIES_FEMALE(name) (SPECIES_##name + OBJ_EVENT_MON + OBJ_EVENT_MON_FEMALE)
#define OBJ_EVENT_GFX_SPECIES_SHINY_FEMALE(name) (SPECIES_##name + OBJ_EVENT_MON + OBJ_EVENT_MON_SHINY + OBJ_EVENT_MON_FEMALE)
#define OW_SPECIES(x) ((x)->graphicsId & OBJ_EVENT_MON_SPECIES_MASK)
#define OW_SHINY(x) ((x)->graphicsId & OBJ_EVENT_MON_SHINY)
#define OW_FEMALE(x) ((x)->graphicsId & OBJ_EVENT_MON_FEMALE)
// Whether Object Event is an OW pokemon
#define IS_OW_MON_OBJ(obj) ((obj)->graphicsId & OBJ_EVENT_MON)
#define SHADOW_SIZE_S 0
#define SHADOW_SIZE_M 1
#define SHADOW_SIZE_L 2
#define SHADOW_SIZE_NONE 3 // Originally SHADOW_SIZE_XL, which went unused due to shadowSize in ObjectEventGraphicsInfo being only 2 bits.
#define SHADOW_SIZE_XL_BATTLE_ONLY SHADOW_SIZE_NONE // Battle-only definition for XL shadow size.
#define F_INANIMATE (1 << 6)
#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7)
#define TRACKS_NONE 0
#define TRACKS_FOOT 1
#define TRACKS_BIKE_TIRE 2
#define TRACKS_SLITHER 3
#define TRACKS_SPOT 4
#define TRACKS_BUG 5
#define LIGHT_TYPE_BALL 0
#define LIGHT_TYPE_PKMN_CENTER_SIGN 1
#define LIGHT_TYPE_POKE_MART_SIGN 2
#define FIRST_DECORATION_SPRITE_GFX OBJ_EVENT_GFX_PICHU_DOLL
#define OBJ_KIND_NORMAL 0
#define OBJ_KIND_CLONE 255 // Exclusive to FRLG
// Special object event local ids
// Used for link player OWs in CreateLinkPlayerSprite
#define OBJ_EVENT_ID_DYNAMIC_BASE 0xF0
// Each object event template gets an ID that can be used to refer to it in scripts and elsewhere.
// This is referred to as the "local id" (and it's really just 1 + its index in the templates array).
// There are a few special IDs reserved for objects that don't have templates in the map data -- one for the player
// in regular offline play, five for linked players while playing Berry Blender, and one for an invisible object that
// can be spawned for the camera to track instead of the player. Additionally, the value 0 is reserved as an "empty" indicator.
#define LOCALID_NONE 0
#define LOCALID_CAMERA 127
#define LOCALID_BERRY_BLENDER_PLAYER_END 240 // This will use 5 (MAX_RFU_PLAYERS) IDs ending at 240, i.e. 236-240
#define LOCALID_FOLLOWING_POKEMON 254
#define LOCALID_PLAYER 255
#define OBJ_EVENT_ID_FOLLOWER 0xFE
#define OBJ_EVENT_ID_NPC_FOLLOWER 0xFD
// Aliases for old names. "object event id" normally refers to an index into gObjectEvents, which these are not.
// Used for link player OWs in CreateLinkPlayerSprite
#define OBJ_EVENT_ID_DYNAMIC_BASE 0xF0
#define OBJ_EVENT_ID_CAMERA LOCALID_CAMERA
#define OBJ_EVENT_ID_PLAYER LOCALID_PLAYER
// Moved from src/event_object_movement.c so that they're accesible from other files.
#define OBJ_EVENT_PAL_TAG_BRENDAN 0x1100
#define OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION 0x1101
#define OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION 0x1102
#define OBJ_EVENT_PAL_TAG_NPC_1 0x1103
#define OBJ_EVENT_PAL_TAG_NPC_2 0x1104
#define OBJ_EVENT_PAL_TAG_NPC_3 0x1105
#define OBJ_EVENT_PAL_TAG_NPC_4 0x1106
#define OBJ_EVENT_PAL_TAG_NPC_1_REFLECTION 0x1107
#define OBJ_EVENT_PAL_TAG_NPC_2_REFLECTION 0x1108
#define OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION 0x1109
#define OBJ_EVENT_PAL_TAG_NPC_4_REFLECTION 0x110A
#define OBJ_EVENT_PAL_TAG_QUINTY_PLUMP 0x110B
#define OBJ_EVENT_PAL_TAG_QUINTY_PLUMP_REFLECTION 0x110C
#define OBJ_EVENT_PAL_TAG_TRUCK 0x110D
#define OBJ_EVENT_PAL_TAG_VIGOROTH 0x110E
#define OBJ_EVENT_PAL_TAG_ZIGZAGOON 0x110F
#define OBJ_EVENT_PAL_TAG_MAY 0x1110
#define OBJ_EVENT_PAL_TAG_MAY_REFLECTION 0x1111
#define OBJ_EVENT_PAL_TAG_MOVING_BOX 0x1112
#define OBJ_EVENT_PAL_TAG_CABLE_CAR 0x1113
#define OBJ_EVENT_PAL_TAG_SSTIDAL 0x1114
#define OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER 0x1115
#define OBJ_EVENT_PAL_TAG_KYOGRE 0x1116
#define OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION 0x1117
#define OBJ_EVENT_PAL_TAG_GROUDON 0x1118
#define OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION 0x1119
#define OBJ_EVENT_PAL_TAG_UNUSED 0x111A
#define OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW 0x111B
#define OBJ_EVENT_PAL_TAG_POOCHYENA 0x111C
#define OBJ_EVENT_PAL_TAG_RED_LEAF 0x111D
#define OBJ_EVENT_PAL_TAG_DEOXYS 0x111E
#define OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE 0x111F
#define OBJ_EVENT_PAL_TAG_HO_OH 0x1120
#define OBJ_EVENT_PAL_TAG_LUGIA 0x1121
#define OBJ_EVENT_PAL_TAG_RS_BRENDAN 0x1122
#define OBJ_EVENT_PAL_TAG_RS_MAY 0x1123
#define OBJ_EVENT_PAL_TAG_DYNAMIC 0x1124
#define OBJ_EVENT_PAL_TAG_PLAYER_RED 0x1125
#define OBJ_EVENT_PAL_TAG_PLAYER_RED_REFLECTION 0x1126
#define OBJ_EVENT_PAL_TAG_PLAYER_GREEN 0x1127
#define OBJ_EVENT_PAL_TAG_PLAYER_GREEN_REFLECTION 0x1128
#define OBJ_EVENT_PAL_TAG_NPC_BLUE 0x1129
#define OBJ_EVENT_PAL_TAG_NPC_PINK 0x1130
#define OBJ_EVENT_PAL_TAG_NPC_GREEN 0x1131
#define OBJ_EVENT_PAL_TAG_NPC_WHITE 0x1132
#define OBJ_EVENT_PAL_TAG_NPC_BLUE_REFLECTION 0x1133
#define OBJ_EVENT_PAL_TAG_NPC_PINK_REFLECTION 0x1134
#define OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION 0x1135
#define OBJ_EVENT_PAL_TAG_NPC_WHITE_REFLECTION 0x1136
#define OBJ_EVENT_PAL_TAG_METEORITE 0x1137
#define OBJ_EVENT_PAL_TAG_SEAGALLOP 0x1138
#define OBJ_EVENT_PAL_TAG_SS_ANNE 0x1139
#if OW_FOLLOWERS_POKEBALLS
// Vanilla
#define OBJ_EVENT_PAL_TAG_BALL_MASTER 0x1150
#define OBJ_EVENT_PAL_TAG_BALL_ULTRA 0x1151
#define OBJ_EVENT_PAL_TAG_BALL_GREAT 0x1152
#define OBJ_EVENT_PAL_TAG_BALL_SAFARI 0x1153
#define OBJ_EVENT_PAL_TAG_BALL_NET 0x1154
#define OBJ_EVENT_PAL_TAG_BALL_DIVE 0x1155
#define OBJ_EVENT_PAL_TAG_BALL_NEST 0x1156
#define OBJ_EVENT_PAL_TAG_BALL_REPEAT 0x1157
#define OBJ_EVENT_PAL_TAG_BALL_TIMER 0x1158
#define OBJ_EVENT_PAL_TAG_BALL_LUXURY 0x1159
#define OBJ_EVENT_PAL_TAG_BALL_PREMIER 0x115A
// Gen IV/Sinnoh
#define OBJ_EVENT_PAL_TAG_BALL_DUSK 0x115B
#define OBJ_EVENT_PAL_TAG_BALL_HEAL 0x115C
#define OBJ_EVENT_PAL_TAG_BALL_QUICK 0x115D
#define OBJ_EVENT_PAL_TAG_BALL_CHERISH 0x115E
#define OBJ_EVENT_PAL_TAG_BALL_PARK 0x115F
// Gen II/Johto Apricorns
#define OBJ_EVENT_PAL_TAG_BALL_FAST 0x1160
#define OBJ_EVENT_PAL_TAG_BALL_LEVEL 0x1161
#define OBJ_EVENT_PAL_TAG_BALL_LURE 0x1162
#define OBJ_EVENT_PAL_TAG_BALL_HEAVY 0x1163
#define OBJ_EVENT_PAL_TAG_BALL_LOVE 0x1164
#define OBJ_EVENT_PAL_TAG_BALL_FRIEND 0x1165
#define OBJ_EVENT_PAL_TAG_BALL_MOON 0x1166
#define OBJ_EVENT_PAL_TAG_BALL_SPORT 0x1167
// Gen V
#define OBJ_EVENT_PAL_TAG_BALL_DREAM 0x1168
// Gen VII
#define OBJ_EVENT_PAL_TAG_BALL_BEAST 0x1169
// Gen VIII
#define OBJ_EVENT_PAL_TAG_BALL_STRANGE 0x116A
#endif //OW_FOLLOWERS_POKEBALLS
// Used as a placeholder follower graphic
#define OBJ_EVENT_PAL_TAG_SUBSTITUTE 0x7611
#define OBJ_EVENT_PAL_TAG_LIGHT 0x8001
#define OBJ_EVENT_PAL_TAG_LIGHT_2 0x8002
#define OBJ_EVENT_PAL_TAG_EMOTES 0x8003
#define OBJ_EVENT_PAL_TAG_NEON_LIGHT 0x8004
// Not a real OW palette tag; used for the white flash applied to followers
#define OBJ_EVENT_PAL_TAG_WHITE (OBJ_EVENT_PAL_TAG_NONE - 1)
#define OBJ_EVENT_PAL_TAG_NONE 0x11FF
// This + localId is used as the tileTag
// for compressed graphicsInfos
// '(C)ompressed (E)vent'
#define COMP_OW_TILE_TAG_BASE 0xCE00
#endif // GUARD_CONSTANTS_EVENT_OBJECTS_H