#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