#ifndef _ENUMS_H_ #define _ENUMS_H_ #include "ultra64.h" #include "types.h" enum StoryProgress { STORY_INTRO = -128, STORY_CH0_WAKE_UP, STORY_CH0_MET_INNKEEPER, STORY_UNUSED_FFFFFF83, STORY_CH0_MET_GOOMPA, STORY_CH0_GATE_CRUSHED, STORY_CH0_FELL_OFF_CLIFF, STORY_CH0_GOOMPA_JOINED_PARTY, STORY_CH0_LOOKING_FOR_HAMMER, STORY_CH0_FOUND_HAMMER, STORY_CH0_DEFEATED_JR_TROOPA, STORY_CH0_LEFT_THE_PLAYGROUND, STORY_UNUSED_FFFFFF8C, STORY_CH0_GOOMBARIO_JOINED_PARTY, STORY_CH0_SMASHED_GATE_BLOCK, STORY_CH0_DEFEATED_GOOMBA_BROS, STORY_CH0_DEFEATED_GOOMBA_KING, STORY_CH0_FOUND_GATEHOUSE_SWITCH, STORY_CH0_HIT_GATEHOUSE_SWITCH, STORY_CH0_OPENED_BRIDGE_TO_TOAD_TOWN, STORY_CH0_KAMMY_RETURNED_TO_BOWSER, STORY_CH0_ARRIVED_AT_TOAD_TOWN, STORY_CH0_MET_STAR_SPIRITS, STORY_CH0_BEGAN_PEACH_MISSION, STORY_CH0_TWINK_GAVE_LUCKY_STAR, STORY_CH0_RETURNED_TO_TOAD_TOWN, STORY_CH1_SPOKE_WITH_MERLIN, STORY_CH1_TOLD_MERLIN_ABOUT_DARK_TOADS, STORY_CH1_MERLIN_REVEALED_KOOPA_BROS, STORY_CH1_KNOCKED_SWITCH_FROM_TREE, STORY_CH1_MADE_FIRST_BRIDGE, STORY_CH1_ARRIVED_AT_KOOPA_VILLAGE, STORY_CH1_PROMISED_TO_HELP_KOOPER, STORY_CH1_FUZZY_THIEF_LEFT_TOWN, STORY_CH1_FUZZY_THIEF_RAN_AWAY, STORY_CH1_FUZZY_THIEF_HID_IN_TREE, STORY_CH1_KOOPER_JOINED_PARTY, STORY_CH1_MADE_SECOND_BRIDGE, STORY_CH1_ARRIVED_AT_KOOPA_FORTRESS, STORY_CH1_SPOTTED_BY_KOOPA_BROS, STORY_CH1_KOOPA_BROS_HID_KEY, STORY_CH1_DEFEATED_BASEMENT_GUARD, STORY_CH1_LOWERED_FIRST_STAIRS, STORY_CH1_KOOPA_BROS_SET_TRAP, STORY_CH1_MARIO_ACTIVATED_TRAP, STORY_CH1_BOMBETTE_JOINED_PARTY, STORY_CH1_DEFEATED_DUNGEON_GUARDS, STORY_CH1_LOWERED_SECOND_STAIRS, STORY_CH1_RAISED_SUBMERGED_STAIRS, STORY_CH1_KOOPA_BROS_FIRING_BLASTERS, STORY_CH1_DEFEATED_KOOPA_BROS, STORY_CH1_STAR_SPIRIT_RESCUED, STORY_CH1_BEGAN_PEACH_MISSION, STORY_CH1_STAR_SPRIT_DEPARTED, STORY_CH1_DEFEATED_JR_TROOPA, STORY_CH1_RETURNED_TO_TOAD_TOWN, STORY_CH2_ARRIVED_AT_MT_RUGGED, STORY_CH2_SPOKE_WITH_PARAKARRY, STORY_CH2_PARAKARRY_JOINED_PARTY, STORY_CH2_ARRIVED_AT_DRY_DRY_DESERT, STORY_CH2_ARRIVED_AT_DRY_DRY_OUTPOST, STORY_CH2_SHADY_MOUSE_LEFT_SHOP, STORY_CH2_SPOKE_WITH_SHEEK, STORY_CH2_SHADY_MOUSE_ENTERED_SHOP, STORY_CH2_BOUGHT_SECRET_ITEMS, STORY_CH2_GOT_PULSE_STONE, STORY_CH2_UNCOVERED_DRY_DRY_RUINS, STORY_CH2_DRAINED_FIRST_SAND_ROOM, STORY_CH2_DRAINED_SECOND_SAND_ROOM, STORY_CH2_GOT_SUPER_HAMMER, STORY_CH2_DRAINED_THIRD_SAND_ROOM, STORY_CH2_SOLVED_ARTIFACT_PUZZLE, STORY_CH2_DEFEATED_TUTANKOOPA, STORY_CH2_STAR_SPIRIT_RESCUED, STORY_CH2_BEGAN_PEACH_MISSION, STORY_CH2_STAR_SPRIT_DEPARTED, STORY_UNUSED_FFFFFFCC, STORY_CH3_SAW_BOO_ENTER_FOREST, STORY_CH3_INVITED_TO_BOOS_MANSION, STORY_CH3_ALLOWED_INTO_FOREVER_FOREST, STORY_CH3_ARRIVED_AT_BOOS_MANSION, STORY_CH3_OPENED_BOOS_MANSION_GATE, STORY_CH3_ENTERED_BOOS_MANSION, STORY_CH3_TRIGGERED_DOOR_JUMP_SCARE, STORY_CH3_GOT_RECORD, STORY_CH3_PLAYED_THE_RECORD, STORY_CH3_GOT_WEIGHT, STORY_CH3_WEIGHED_DOWN_CHANDELIER, STORY_CH3_GOT_SUPER_BOOTS, STORY_CH3_HIT_HUGE_BLUE_SWITCH, STORY_CH3_GOT_BOO_PORTRAIT, STORY_CH3_RESTORED_BOO_PORTRAIT, STORY_CH3_BOW_JOINED_PARTY, STORY_CH3_UNLOCKED_GUSTY_GULCH, STORY_CH3_ARRIVED_AT_GHOST_TOWN, STORY_CH3_SAW_TUBBA_EAT_BOO, STORY_CH3_ARRIVED_AT_TUBBAS_MANOR, STORY_UNUSED_FFFFFFE1, STORY_CH3_TUBBA_BEGAN_NAPPING, STORY_CH3_TUBBA_WOKE_UP, STORY_CH3_TUBBA_SMASHED_THE_BRIDGES, STORY_CH3_TUBBA_CHASED_MARIO_IN_HALL, STORY_CH3_TUBBA_CHASED_MARIO_IN_FOYER, STORY_CH3_ESCAPED_TUBBAS_MANOR, STORY_CH3_UNLOCKED_WINDY_MILL, STORY_CH3_WENT_DOWN_THE_WELL, STORY_CH3_HEART_FLED_FIRST_TUNNEL, STORY_UNUSED_FFFFFFEB, STORY_UNUSED_FFFFFFEC, STORY_CH3_HEART_FLED_SECOND_TUNNEL, STORY_CH3_HEART_ESCAPED_WELL, STORY_CH3_HEART_ESCAPED_WINDY_MILL, STORY_CH3_DEFEATED_TUBBA_BLUBBA, STORY_CH3_STAR_SPIRIT_RESCUED, STORY_CH3_BEGAN_PEACH_MISSION, STORY_CH3_STAR_SPRIT_DEPARTED, STORY_CH4_FRYING_PAN_STOLEN, STORY_CH4_MET_WITH_TWINK, STORY_CH4_FOUND_HIDDEN_DOOR, STORY_CH4_ENTERED_THE_TOY_BOX, STORY_CH4_GOT_STOREROOM_KEY, STORY_CH4_RETURNED_STOREROOM_KEY, STORY_CH4_GOT_TOY_TRAIN, STORY_CH4_RETURNED_TOY_TRAIN, STORY_CH4_GOT_FRYING_PAN, STORY_CH4_GOT_TAYCE_TS_CAKE, STORY_CH4_GAVE_CAKE_TO_GOURMET_GUY, STORY_CH4_PULLED_SWITCH_SWITCH, STORY_CH4_SOLVED_COLOR_PUZZLE, STORY_CH4_DEFEATED_LANTERN_GHOST, STORY_CH4_WATT_JOINED_PARTY, STORY_CH4_OPENED_GENERAL_GUY_ROOM, STORY_CH4_DEFEATED_GENERAL_GUY, STORY_CH4_STAR_SPIRIT_RESCUED, STORY_CH4_BEGAN_PEACH_MISSION, STORY_CH4_STAR_SPRIT_DEPARTED, STORY_CH5_WHALE_MOUTH_OPEN, STORY_CH5_ENTERED_WHALE, STORY_CH5_DEFEATED_FUZZIPEDE, STORY_CH5_REACHED_LAVA_LAVA_ISLAND, STORY_CH5_KOLORADO_ESCAPED_FUZZIES, STORY_CH5_KOLORADO_ESCAPED_SPEAR_GUYS, STORY_CH5_YOSHI_CHILDREN_ARE_MISSING, STORY_CH5_SUSHIE_JOINED_PARTY, STORY_CH5_ALL_YOSHI_CHILDREN_RESCUED, STORY_CH5_GOT_JADE_RAVEN, STORY_CH5_MOVED_RAVEN_STATUE, STORY_CH5_DEFEATED_PIRANHAS_MINIBOSS, STORY_CH5_REACHED_RAFAELS_TREE, STORY_CH5_RAFAEL_LEFT_NEST, STORY_CH5_RAFAEL_MOVED_ROOT, STORY_CH5_RAFAEL_WAITING_FOR_MARIO, STORY_CH5_ZIP_LINE_READY, STORY_CH5_ENTERED_MT_LAVA_LAVA, STORY_CH5_KOLORADO_FELL_IN_LAVA, STORY_CH5_LAVA_STREAM_BLOCKED, STORY_CH5_GOT_ULTRA_HAMMER, STORY_CH5_SMASHED_ULTRA_BLOCK, STORY_CH5_KOLORADO_FELL_IN_PIT, STORY_CH5_KOLORADO_AT_DEAD_END, STORY_CH5_HIDDEN_PASSAGE_OPEN, STORY_CH5_KOLORADO_RAN_AHEAD, STORY_CH5_KOLORADO_IN_TREASURE_ROOM, STORY_CH5_DEFEATED_LAVA_PIRANHA, STORY_CH5_MT_LAVA_LAVA_ERUPTING, STORY_CH5_OPENED_ESCAPE_ROUTE, STORY_CH5_BEGAN_PEACH_MISSION, STORY_CH5_STAR_SPRIT_DEPARTED, STORY_CH5_TRADED_VASE_FOR_SEED, STORY_CH5_RETURNED_TO_TOAD_TOWN, STORY_CH6_FLOWER_GATE_OPEN, STORY_CH6_ARRIVED_AT_FLOWER_FIELDS, STORY_CH6_ASKED_TO_DEFEAT_MONTY_MOLES, STORY_CH6_GOT_MAGICAL_BEAN, STORY_CH6_GOT_FERTILE_SOIL, STORY_CH6_GOT_CRYSTAL_BERRY, STORY_CH6_GOT_WATER_STONE, STORY_CH6_FILLED_SPRING_WITH_WATER, STORY_CH6_SPOKE_WITH_THE_SUN, STORY_CH6_LAKILESTER_JOINED_PARTY, STORY_CH6_DEFEATED_PUFF_PUFF_GUARDS, STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE, STORY_CH6_WISTERWOOD_GAVE_HINT, STORY_CH6_GREW_MAGIC_BEANSTALK, STORY_CH6_DEFEATED_HUFF_N_PUFF, STORY_CH6_STAR_SPIRIT_RESCUED, STORY_CH6_BEGAN_PEACH_MISSION, STORY_CH6_STAR_SPRIT_DEPARTED, STORY_CH6_RETURNED_TO_TOAD_TOWN, STORY_CH7_INVITED_TO_STARBORN_VALLEY, STORY_CH7_ARRIVED_AT_SHIVER_CITY, STORY_CH7_MAYOR_MURDER_MYSTERY, STORY_CH7_SHATTERED_FROZEN_POND, STORY_CH7_SPOKE_WITH_HERRINGWAY, STORY_CH7_HERRINGWAY_AT_MAYORS_HOUSE, STORY_CH7_MAYOR_MURDER_SOLVED, STORY_CH7_DEFEATED_JR_TROOPA, STORY_CH7_DEFEATED_MONSTAR, STORY_CH7_ARRIVED_AT_STARBORN_VALLEY, STORY_CH7_MERLE_APOLOGIZED, STORY_CH7_GOT_SNOWMAN_SCARF, STORY_CH7_GOT_SNOWMAN_BUCKET, STORY_CH7_UNLOCKED_SHIVER_MOUNTAIN, STORY_CH7_DEFEATED_FIRST_DUPLIGHOST, STORY_CH7_GOT_STAR_STONE, STORY_CH7_RAISED_FROZEN_STAIRS, STORY_CH7_ARRIVED_AT_CRYSTAL_PALACE, STORY_CH7_DEFEATED_MIRROR_DUPLIGHOSTS, STORY_CH7_DEFEATED_BOMBETTE_DUPLIGHOSTS, STORY_CH7_DEFEATED_CLUBBAS, STORY_CH7_DEFEATED_KOOPER_DUPLIGHOSTS, STORY_CH7_EXTENDED_PALACE_BRIDGE, STORY_CH7_FOUND_HIDDEN_ROOM_UNDER_STATUE, STORY_CH7_SOLVED_ALBINO_DINO_PUZZLE, STORY_CH7_DEFEATED_CRYSTAL_KING, STORY_CH7_STAR_SPIRIT_RESCUED, STORY_CH7_BEGAN_PEACH_MISSION, STORY_CH7_STAR_SPRIT_DEPARTED, STORY_CH8_OPENED_PATH_TO_STAR_WAY, STORY_CH8_REACHED_STAR_HAVEN, STORY_CH8_STAR_SHIP_ACTIVATED, STORY_UNUSED_5D, STORY_CH8_REACHED_BOWSERS_CASTLE, STORY_CH8_REACHED_PEACHS_CASTLE, STORY_EPILOGUE, }; typedef UNK_TYPE EncounterTrigger; enum EncounterTriggers { ENCOUNTER_TRIGGER_NONE = 1, ENCOUNTER_TRIGGER_JUMP, ENCOUNTER_TRIGGER_SPIN, ENCOUNTER_TRIGGER_HAMMER, ENCOUNTER_TRIGGER_CONVERSATION, ENCOUNTER_TRIGGER_PARTNER, }; typedef s32 SongID; enum SongIDs { SONG_TOAD_TOWN = 0, SONG_UNUSED_1, SONG_NORMAL_BATTLE, SONG_SPECIAL_BATTLE, SONG_JR_TROOPA_BATTLE, SONG_FINAL_BOWSER_BATTLE, SONG_UNUSED_6, SONG_GOOMBA_KING_BATTLE, SONG_KOOPA_BROS_BATTLE, SONG_FAKE_BOWSER_BATTLE, SONG_TUTANKOOPA_BATTLE, SONG_TUBBA_BLUBBA_BATTLE, SONG_GENERAL_GUY_BATTLE, SONG_LAVA_PIRANHA_BATTLE, SONG_HUFF_N_PUFF_BATTLE, SONG_CRYSTAL_KING_BATTLE, SONG_GOOMBA_VILLAGE, SONG_PLEASANT_PATH, SONG_FUZZY_ATTACK, SONG_KOOPA_VILLAGE, SONG_KOOPA_FORTRESS, SONG_DRY_DRY_OUTPOST, SONG_MT_RUGGED, SONG_DRY_DRY_DESERT, SONG_DRY_DRY_RUINS, SONG_RUINS_BASEMENT, SONG_FOREVER_FOREST, SONG_BOOS_MANSION, SONG_CHEERFUL_BOOS_MANSION, SONG_GUSTY_GULCH, SONG_TUBBAS_MANOR, SONG_TUBBA_ESCAPE, SONG_SHY_GUY_TOYBOX, SONG_TOYBOX_TRAIN, SONG_CREEPY_TOYBOX, SONG_UNUSED_35, SONG_JADE_JUNGLE, SONG_DEEP_JUNGLE, SONG_YOSHIS_VILLAGE, SONG_YOSHIS_PANIC, SONG_RAPHAEL_RAVEN, SONG_MT_LAVALAVA, SONG_VOLCANO_ESCAPE, SONG_STAR_WAY_OPENS, SONG_MASTER_BATTLE, SONG_RADIO_ISLAND_SOUNDS, SONG_RADIO_HOT_HITS, SONG_RADIO_GOLDEN_OLDIES, SONG_FLOWER_FIELDS_CLOUDY, SONG_FLOWER_FIELDS_SUNNY, SONG_CLOUDY_CLIMB, SONG_PUFF_PUFF_MACHINE, SONG_SUN_TOWER_CLOUDY, SONG_SUN_TOWER_SUNNY, SONG_UNUSED_54, SONG_CRYSTAL_PALACE, SONG_SHIVER_CITY, SONG_PENGUIN_MYSTERY, SONG_SHIVER_SNOWFIELD, SONG_SHIVER_MOUNTAIN, SONG_STARBORN_VALLEY, SONG_MERLAR_THEME, SONG_MAIL_CALL, SONG_PEACHS_CASTLE_PARTY, SONG_CHAPTER_END, SONG_CHAPTER_START, SONG_ITEM_UPGRADE, SONG_UNUSED_67, SONG_PHONOGRAPH_MUSIC, SONG_TUTANKOOPA_THEME, SONG_KAMMY_KOOPA_THEME, SONG_JR_TROOPA_THEME, SONG_BULLET_BILL_ASSAULT, SONG_MONTY_MOLE_ASSAULT, SONG_SHY_GUY_INVASION, SONG_TOAD_TOWN_TUNNELS, SONG_WHALE_THEME, SONG_FOREVER_FOREST_WARNING, SONG_YOSHI_KIDS_FOUND, SONG_UNUSED_FANFARE, SONG_GOOMBA_KING_THEME, SONG_KOOPA_BROS_INTERLUDE, SONG_KOOPA_BROS_THEME, SONG_TUTANKOOPA_WARNING, SONG_TUTANKOOPA_REVEALED, SONG_TUBBA_BLUBBA_THEME, SONG_GENERAL_GUY_THEME, SONG_LAVA_PIRANHA_THEME, SONG_HUFF_N_PUFF_THEME, SONG_CRYSTAL_KING_THEME, SONG_BLOOPER_THEME, SONG_MINIBOSS_BATTLE, SONG_MONSTAR_THEME, SONG_CLUB64, SONG_UNUSED_OPENING, SONG_BOWSERS_CASTLE_FALLS, SONG_STAR_HAVEN, SONG_SHOOTING_STAR_SUMMIT, SONG_STARSHIP_THEME, SONG_STAR_SANCTUARY, SONG_BOWSERS_CASTLE, SONG_BOWSERS_CASTLE_CAVES, SONG_BOWSER_THEME, SONG_BOWSER_BATTLE, SONG_PEACH_WISHES, SONG_FILE_SELECT, SONG_MAIN_THEME, SONG_BOWSER_ATTACKS, SONG_MARIO_FALLS, SONG_PEACH_APPEARS, SONG_THE_END, SONG_RECOVERED_STAR_ROD, SONG_TWINK_THEME, SONG_STIRRING_CAKE, SONG_GOURMET_GUY_FREAKOUT, SONG_PRISONER_PEACH_THEME, SONG_PEACH_MISSION, SONG_PEACH_SNEAKING, SONG_PEACH_CAUGHT, SONG_PEACH_QUIZ_INTRO, SONG_STAR_SPIRIT_THEME, SONG_PENGUIN_WHODUNIT, SONG_PENGUIN_WAKES_UP, SONG_MAGIC_BEANSTALK, SONG_MERLEE_SPELL, SONG_LAKILESTER_THEME, SONG_GOOMBA_BROS_RETREAT, SONG_SUNSHINE_RETURNS, SONG_RIDING_THE_RAILS, SONG_RIDING_THE_WHALE, SONG_NEW_PARTNER, SONG_DRY_DRY_RUINS_APPEAR, SONG_CANDY_CANES, SONG_PLAYROOM, SONG_MOUSTAFA_THEME, SONG_GAME_OVER, SONG_TAKING_REST, SONG_FLOWER_N_P_C_THEME, SONG_FLOWER_GATE_APPEARS, SONG_BATTLE_END, SONG_POP_DIVA_SONG, SONG_BOO_MINIGAME, SONG_LEVEL_UP, SONG_UNUSED_143, SONG_PARADE_DAY, SONG_PARADE_NIGHT, SONG_UNUSED_146, SONG_UNUSED_147, SONG_MARIO_BROS_HOUSE, SONG_INTRO_STORY, SONG_NEW_PARTNER_J_P, }; typedef UNK_TYPE Ability; enum Abilities { ABILITY_DODGE_MASTER, ABILITY_UNUSED, ABILITY_SPIKE_SHIELD, ABILITY_FIRST_ATTACK, ABILITY_HP_PLUS, ABILITY_DOUBLE_DIP, ABILITY_MYSTERY_SCROLL, ABILITY_FIRE_SHIELD, ABILITY_PRETTY_LUCKY, ABILITY_HP_DRAIN, ABILITY_ALL_OR_NOTHING, ABILITY_SLOW_GO, ABILITY_FP_PLUS, ABILITY_ICE_POWER, ABILITY_FEELING_FINE, ABILITY_ATTACK_F_X, ABILITY_MONEY_MONEY, ABILITY_CHILL_OUT, ABILITY_HAPPY_HEART, ABILITY_ZAP_TAP, ABILITY_MEGA_RUSH, ABILITY_BERSERKER, ABILITY_RIGHT_ON, ABILITY_RUNAWAY_PAY, ABILITY_FLOWER_SAVER, ABILITY_PAY_OFF, ABILITY_QUICK_CHANGE, ABILITY_DEFEND_PLUS, ABILITY_POWER_PLUS, ABILITY_REFUND, ABILITY_POWER_RUSH, ABILITY_CRAZY_HEART, ABILITY_LAST_STAND, ABILITY_CLOSE_CALL, ABILITY_P_UP_D_DOWN, ABILITY_LUCKY_DAY, ABILITY_MEGA_HP_DRAIN, ABILITY_P_DOWN_D_UP, ABILITY_FLOWER_FANATIC, ABILITY_SPEEDY_SPIN, ABILITY_SPIN_ATTACK, ABILITY_I_SPY, ABILITY_BUMP_ATTACK, ABILITY_HEART_FINDER, ABILITY_FLOWER_FINDER, ABILITY_DIZZY_ATTACK, ABILITY_FINAL_GOOMPA, ABILITY_FINAL_BOMBOMB, ABILITY_DEEP_FOCUS, ABILITY_SUPER_FOCUS, ABILITY_KAIDEN, ABILITY_DAMAGE_DODGE, ABILITY_HAPPY_FLOWER, ABILITY_GROUP_FOCUS, ABILITY_PEEKABOO, ABILITY_HEALTHY_HEALTHY, }; typedef UNK_TYPE Emote; enum Emotes { EMOTE_EXCLAMATION, EMOTE_SHOCK, EMOTE_QUESTION, EMOTE_FRUSTRATION, EMOTE_ELLIPSIS, EMOTE_INVALID, }; typedef UNK_TYPE Easing; enum Easings { EASING_LINEAR, EASING_QUADRATIC_IN, EASING_CUBIC_IN, EASING_QUARTIC_IN, EASING_QUADRATIC_OUT, EASING_CUBIC_OUT, EASING_QUARTIC_OUT, EASING_COS_SLOW_OVERSHOOT, EASING_COS_FAST_OVERSHOOT, EASING_COS_BOUNCE, EASING_COS_IN_OUT, EASING_SIN_OUT, EASING_COS_IN, }; typedef UNK_TYPE SoundID; enum SoundIDs { SOUND_UNKNOWN_0, SOUND_UNKNOWN_D = 13, SOUND_UNKNOWN_E = 14, SOUND_UNKNOWN_43 = 67, SOUND_JR_TROOPA_SPLASH = 69, SOUND_JR_TROOPA_SWIM, SOUND_BOO_SPOOK, SOUND_UNKNOWN_B4 = 180, SOUND_BOO_VANISH = 193, SOUND_BOO_APPEAR = 195, SOUND_MENU_OPEN = 197, SOUND_MENU_CLOSE, SOUND_MENU_CHANGE_SELECTION, SOUND_MENU_CHANGE_TAB, SOUND_MENU_NEXT, SOUND_MENU_BACK, SOUND_STEP1 = 321, SOUND_STEP2, SOUND_TORNADO_JUMP = 327, SOUND_SOFT_LAND, SOUND_LAND = 331, SOUND_HIT_BLOCK = 334, SOUND_SEARCH_BUSH = 339, SOUND_UNKNOWN_162 = 354, SOUND_BASIC_DOOR_OPEN = 449, SOUND_BASIC_DOOR_CLOSE, SOUND_METAL_DOOR_OPEN, SOUND_METAL_DOOR_CLOSE, SOUND_LARGE_DOOR_OPEN, SOUND_LARGE_DOOR_CLOSE, SOUND_CREAKY_DOOR_OPEN, SOUND_CREAKY_DOOR_CLOSE, SOUND_METAL_GATE_OPEN, SOUND_METAL_GATE_CLOSE, SOUND_UNKNOWN_246 = 582, SOUND_UNKNOWN_259 = 601, SOUND_UNKNOWN_25A, SOUND_UNKNOWN_25C = 604, SOUND_UNKNOWN_25D, SOUND_UNKNOWN_262 = 610, SOUND_UNKNOWN_282 = 642, SOUND_BOW_SPOOK = 657, SOUND_UNUSED_2C1 = 705, SOUND_SMOKE_BURST = 717, SOUND_DAYZEE_SONG = 727, SOUND_POWER_UP, SOUND_UNKNOWN_2F1 = 753, SOUND_UNKNOWN_2F7 = 759, SOUND_CLOSE_SHELL = 767, SOUND_SHY_GUY_SCREAMS1 = 780, SOUND_SHY_GUY_SCREAMS2, SOUND_SHY_GUY_SCREAMS3, SOUND_TOY_TANK_MOVE1, SOUND_TOY_TANK_MOVE2, SOUND_UNKNOWN_315 = 789, SOUND_MOLE_SURFACE = 801, SOUND_MOLE_DIG, SOUND_MOLE_POP, SOUND_UNKNOWN_32E = 814, SOUND_UNKNOWN_361 = 865, SOUND_UNKNOWN_362, SOUND_UNKNOWN_363, SOUND_UNKNOWN_364, SOUND_UNKNOWN_365, SOUND_UNKNOWN_366, SOUND_UNKNOWN_367, SOUND_UNKNOWN_368, SOUND_UNKNOWN_369, SOUND_UNKNOWN_375 = 885, SOUND_UNKNOWN_376, SOUND_UNKNOWN_377, SOUND_UNKNOWN_379 = 889, SOUND_GENERAL_WHISTLE = 917, SOUND_OPEN_SHELL = 980, SOUND_JUMP_3E2 = 994, SOUND_MISS_JUMP, SOUND_DEATH = 997, SOUND_BIG_POWER_UP, SOUND_MOLE_THROW = 1000, SOUND_UNKNOWN_3F3 = 1011, SOUND_THROW = 1018, SOUND_UNKNOWN_2003 = 8195, SOUND_UNKNOWN_200D = 8205, SOUND_BOW_VANISH, SOUND_BOW_APPEAR, SOUND_UNKNOWN_2010, SOUND_CANNON1 = 8214, SOUND_CANNON2, SOUND_CANNON3, SOUND_UNKNOWN_202C = 8236, SOUND_UNKNOWN_202D, SOUND_UNKNOWN_202E, SOUND_UNKNOWN_202F, SOUND_UNKNOWN_2030, SOUND_UNKNOWN_2038 = 8248, SOUND_UNKNOWN_2039, SOUND_BOMB_BLAST = 8310, SOUND_JUMP_2081 = 8321, SOUND_UNKNOWN_208C = 8332, SOUND_UNKNOWN_208D, SOUND_UNKNOWN_208E, SOUND_UNKNOWN_208F, SOUND_UNKNOWN_2095 = 8341, SOUND_SPELL_CAST1 = 8404, SOUND_SPELL_CAST2, SOUND_SPELL_CAST3, SOUND_SPELL_CAST4, SOUND_SPELL_CAST5, SOUND_UNKNOWN_20F6 = 8438, }; typedef UNK_TYPE Cam; enum Cams { CAM_DEFAULT, CAM_BATTLE, CAM_TATTLE, CAM_CAM3, }; #define LOOKUP_ITEM(itemID) gItemTable[itemID & ~0xF0000] typedef s16 ItemID; enum ItemIDs { ITEM_NONE, ITEM_JUMP, ITEM_SPIN_JUMP, ITEM_TORNADO_JUMP, ITEM_HAMMER, ITEM_SUPER_HAMMER, ITEM_ULTRA_HAMMER, ITEM_LUCKY_STAR, ITEM_MAP, ITEM_BIG_MAP, ITEM_FIRST_DEGREE_CARD, ITEM_SECOND_DEGREE_CARD, ITEM_THIRD_DEGREE_CARD, ITEM_FOURTH_DEGREE_CARD, ITEM_DIPLOMA, ITEM_ULTRA_STONE, ITEM_FORTRESS_KEY, ITEM_RUINS_KEY, ITEM_PULSE_STONE, ITEM_CASTLE_KEY1, ITEM_PALACE_KEY, ITEM_LUNAR_STONE, ITEM_PYRAMID_STONE, ITEM_DIAMOND_STONE, ITEM_GOLDEN_VASE, ITEM_KOOPERS_SHELL, ITEM_CASTLE_KEY2, ITEM_FOREST_PASS, ITEM_WEIGHT, ITEM_BOOS_PORTRAIT, ITEM_CRYSTAL_BERRY, ITEM_MYSTICAL_KEY, ITEM_STOREROOM_KEY, ITEM_TOY_TRAIN, ITEM_RECORD, ITEM_FRYING_PAN, ITEM_DICTIONARY, ITEM_MYSTERY_NOTE, ITEM_SUSPICIOUS_NOTE, ITEM_CRYSTAL_BALL, ITEM_SCREWDRIVER, ITEM_COOKBOOK, ITEM_JADE_RAVEN, ITEM_MAGICAL_SEED1, ITEM_MAGICAL_SEED2, ITEM_MAGICAL_SEED3, ITEM_MAGICAL_SEED4, ITEM_TOAD_DOLL, ITEM_CALCULATOR, ITEM_BUCKET, ITEM_SCARF, ITEM_RED_KEY, ITEM_BLUE_KEY, ITEM_LETTER01 = 54, ITEM_LETTER02, ITEM_LETTER03, ITEM_LETTER04, ITEM_LETTER05, ITEM_LETTER06, ITEM_LETTER07, ITEM_LETTER08, ITEM_LETTER09, ITEM_LETTER10 = 64, ITEM_LETTER11, ITEM_LETTER12 = 69, ITEM_LETTER13, ITEM_LETTER14, ITEM_LETTER15, ITEM_LETTER16, ITEM_LETTER17, ITEM_LETTER18, ITEM_LETTER19, ITEM_LETTER20 = 78, ITEM_LETTER21, ITEM_LETTER22, ITEM_LETTER23, ITEM_LETTER24, ITEM_ARTIFACT, ITEM_LETTER25, ITEM_DOLLY = 86, ITEM_WATER_STONE, ITEM_MAGICAL_BEAN, ITEM_FERTILE_SOIL, ITEM_MIRACLE_WATER, ITEM_VOLCANO_VASE, ITEM_TAPE, ITEM_SUGAR, ITEM_SALT, ITEM_EGG1, ITEM_CREAM, ITEM_STRAWBERRY, ITEM_BUTTER, ITEM_CLEANSER, ITEM_WATER, ITEM_FLOUR, ITEM_MILK, ITEM_LYRICS, ITEM_MELODY, ITEM_MAILBAG, ITEM_CASTLE_KEY3, ITEM_ODD_KEY, ITEM_STAR_STONE, ITEM_SNEAKY_PARASOL, ITEM_KOOPA_LEGENDS, ITEM_AUTOGRAPH1, ITEM_EMPTY_WALLET, ITEM_AUTOGRAPH2, ITEM_KOOPA_SHELL, ITEM_OLD_PHOTO, ITEM_GLASSES, ITEM_PHOTOGRAPH, ITEM_PACKAGE, ITEM_RED_JAR, ITEM_CASTLE_KEY4, ITEM_WAREHOUSE_KEY, ITEM_PRISON_KEY1, ITEM_SILVER_CREDIT, ITEM_GOLD_CREDIT, ITEM_PRISON_KEY2, ITEM_PRISON_KEY3, ITEM_PRISON_KEY4, ITEM_FIRE_FLOWER, ITEM_SNOWMAN_DOLL, ITEM_THUNDER_RAGE, ITEM_SHOOTING_STAR, ITEM_THUNDER_BOLT, ITEM_PEBBLE, ITEM_DUSTY_HAMMER, ITEM_INSECTICIDE_HERB, ITEM_STONE_CAP, ITEM_TASTY_TONIC, ITEM_MUSHROOM, ITEM_VOLT_SHROOM, ITEM_SUPER_SHROOM, ITEM_DRIED_SHROOM, ITEM_ULTRA_SHROOM, ITEM_SLEEPY_SHEEP, ITEM_P_O_W_BLOCK, ITEM_HUSTLE_DRINK, ITEM_STOP_WATCH, ITEM_WHACKAS_BUMP, ITEM_APPLE, ITEM_LIFE_SHROOM, ITEM_MYSTERY, ITEM_REPEL_GEL, ITEM_FRIGHT_JAR, ITEM_PLEASE_COME_BACK, ITEM_DIZZY_DIAL, ITEM_SUPER_SODA, ITEM_LEMON, ITEM_LIME, ITEM_BLUE_BERRY, ITEM_RED_BERRY, ITEM_YELLOW_BERRY, ITEM_BUBBLE_BERRY, ITEM_JAMMIN_JELLY, ITEM_MAPLE_SYRUP, ITEM_HONEY_SYRUP, ITEM_GOOMNUT, ITEM_KOOPA_LEAF, ITEM_DRIED_PASTA, ITEM_DRIED_FRUIT, ITEM_STRANGE_LEAF, ITEM_CAKE_MIX, ITEM_EGG2, ITEM_COCONUT, ITEM_MELON, ITEM_STINKY_HERB, ITEM_ICED_POTATO, ITEM_SPICY_SOUP, ITEM_APPLE_PIE, ITEM_HONEY_ULTRA, ITEM_MAPLE_ULTRA, ITEM_JELLY_ULTRA, ITEM_KOOPASTA, ITEM_FRIED_SHROOM, ITEM_SHROOM_CAKE, ITEM_SHROOM_STEAK, ITEM_HOT_SHROOM, ITEM_SWEET_SHROOM, ITEM_YUMMY_MEAL, ITEM_HEALTHY_JUICE, ITEM_BLAND_MEAL, ITEM_DELUXE_FEAST, ITEM_SPECIAL_SHAKE, ITEM_BIG_COOKIE, ITEM_CAKE, ITEM_MISTAKE, ITEM_KOOPA_TEA, ITEM_HONEY_SUPER, ITEM_MAPLE_SUPER, ITEM_JELLY_SUPER, ITEM_SPAGHETTI, ITEM_EGG_MISSILE, ITEM_FRIED_EGG, ITEM_HONEY_SHROOM, ITEM_HONEY_CANDY, ITEM_ELECTRO_POP, ITEM_FIRE_POP, ITEM_LIME_CANDY, ITEM_COCO_POP, ITEM_LEMON_CANDY, ITEM_JELLY_POP, ITEM_STRANGE_CAKE, ITEM_KOOKY_COOKIE, ITEM_FROZEN_FRIES, ITEM_POTATO_SALAD, ITEM_NUTTY_CAKE, ITEM_MAPLE_SHROOM, ITEM_BOILED_EGG, ITEM_YOSHI_COOKIE, ITEM_JELLY_SHROOM1, ITEM_JELLY_SHROOM2, ITEM_JELLY_SHROOM3, ITEM_JELLY_SHROOM4, ITEM_JELLY_SHROOM5, ITEM_JELLY_SHROOM6, ITEM_SPIN_SMASH, ITEM_MULTIBOUNCE, ITEM_POWER_PLUS_A, ITEM_DODGE_MASTER, ITEM_POWER_BOUNCE, ITEM_SPIKE_SHIELD, ITEM_FIRST_ATTACK, ITEM_HP_PLUS_A, ITEM_QUAKE_HAMMER, ITEM_DOUBLE_DIP, ITEM_MYSTERY_SCROLL, ITEM_SLEEP_STOMP, ITEM_FIRE_SHIELD, ITEM_QUICK_CHANGE, ITEM_D_DOWN_POUND, ITEM_DIZZY_STOMP, ITEM_SMASH_CHARGE0, ITEM_PRETTY_LUCKY, ITEM_FEELING_FINE, ITEM_ATTACK_F_X_A, ITEM_ALLOR_NOTHING, ITEM_HP_DRAIN, ITEM_JUMP_CHARGE0, ITEM_SLOW_GO, ITEM_FP_PLUS_A, ITEM_MEGA_RUSH, ITEM_ICE_POWER, ITEM_DEFEND_PLUS_A, ITEM_PAY_OFF, ITEM_MONEY_MONEY, ITEM_CHILL_OUT, ITEM_HAPPY_HEART_A, ITEM_ZAP_TAP, ITEM_BERSERKER, ITEM_RIGHT_ON, ITEM_RUNAWAY_PAY, ITEM_REFUND, ITEM_FLOWER_SAVER_A, ITEM_TRIPLE_DIP, ITEM_HAMMER_THROW, ITEM_MEGA_QUAKE, ITEM_SMASH_CHARGE, ITEM_JUMP_CHARGE, ITEM_S_SMASH_CHG, ITEM_S_JUMP_CHG, ITEM_POWER_RUSH, ITEM_AUTO_JUMP, ITEM_AUTO_SMASH, ITEM_CRAZY_HEART, ITEM_LAST_STAND, ITEM_CLOSE_CALL, ITEM_P_UP_D_DOWN, ITEM_LUCKY_DAY, ITEM_MEGA_HP_DRAIN, ITEM_P_DOWN_D_UP, ITEM_POWER_QUAKE, ITEM_AUTO_MULTIBOUNCE, ITEM_FLOWER_FANATIC, ITEM_HEART_FINDER, ITEM_FLOWER_FINDER, ITEM_SPIN_ATTACK, ITEM_DIZZY_ATTACK, ITEM_I_SPY, ITEM_SPEEDY_SPIN, ITEM_BUMP_ATTACK, ITEM_POWER_JUMP, ITEM_SUPER_JUMP, ITEM_MEGA_JUMP, ITEM_POWER_SMASH1, ITEM_SUPER_SMASH, ITEM_MEGA_SMASH, ITEM_POWER_SMASH2, ITEM_POWER_SMASH3, ITEM_DEEP_FOCUS1, ITEM_SUPER_FOCUS, ITEM_SHRINK_SMASH, ITEM_SHELL_CRACK, ITEM_KAIDEN, ITEM_D_DOWN_JUMP, ITEM_SHRINK_STOMP, ITEM_DAMAGE_DODGE_A, ITEM_EARTHQUAKE_JUMP, ITEM_DEEP_FOCUS2, ITEM_DEEP_FOCUS3, ITEM_HP_PLUS_B, ITEM_FP_PLUS_B, ITEM_HAPPY_HEART_B, ITEM_HAPPY_HEART_X, ITEM_FLOWER_SAVER_B, ITEM_FLOWER_SAVER_X, ITEM_DAMAGE_DODGE_B, ITEM_DAMAGE_DODGE_X, ITEM_POWER_PLUS_B, ITEM_POWER_PLUS_X, ITEM_DEFEND_PLUS_X, ITEM_DEFEND_PLUS_Y, ITEM_HAPPY_FLOWER_A, ITEM_HAPPY_FLOWER_B, ITEM_HAPPY_FLOWER_X, ITEM_GROUP_FOCUS, ITEM_PEEKABOO, ITEM_ATTACK_F_X_D, ITEM_ATTACK_F_X_B, ITEM_ATTACK_F_X_E, ITEM_ATTACK_F_X_C, ITEM_ATTACK_F_X_F, ITEM_HP_PLUS_C, ITEM_HP_PLUS_X, ITEM_HP_PLUS_Y, ITEM_FP_PLUS_C, ITEM_FP_PLUS_X, ITEM_FP_PLUS_Y, ITEM_HEALTHY_HEALTHY, ITEM_ATTACK_F_X_F2, ITEM_ATTACK_F_X_F3, ITEM_ATTACK_F_X_F4, ITEM_ATTACK_F_X_F5, ITEM_PARTNER_ATTACK, ITEM_HEART, ITEM_COIN, ITEM_HEART_PIECE, ITEM_STAR_POINT, ITEM_FULL_HEAL, ITEM_FLOWER, ITEM_STAR_PIECE, ITEM_PRESENT, ITEM_COMPLETE_CAKE, ITEM_BARE_CAKE, ITEM_EMPTY_CAKE_PAN, ITEM_FULL_CAKE_PAN, ITEM_EMPTY_MIXING_BOWL, ITEM_FULL_MIXING_BOWL, ITEM_CAKE_WITH_ICING, ITEM_CAKE_WITH_BERRIES, ITEM_HAMMER1_ICON, ITEM_HAMMER2_ICON, ITEM_HAMMER3_ICON, ITEM_BOOTS1_ICON, ITEM_BOOTS2_ICON, ITEM_BOOTS3_ICON, ITEM_ITEMS_ICON, }; // TODO: use NPC_ANIM-like macro for player animations typedef UNK_TYPE PlayerAnim; enum PlayerAnims { ANIM_1 = 1, // XXX ANIM_STAND_STILL = 0x10000, ANIM_CROUCH_STILL, ANIM_10002, ANIM_PANTING, ANIM_WALKING, ANIM_RUNNING, ANIM_BEFORE_JUMP, ANIM_MIDAIR_STILL, ANIM_MIDAIR, ANIM_10009, ANIM_STUNNED_STILL = 0x1000E, ANIM_DEAD_STILL, ANIM_SPINNING = 0x10011, ANIM_FLAILING, ANIM_SIT_STILL, ANIM_CROUCH, ANIM_STONE_STILL, ANIM_THROW, ANIM_FALL_BACK, ANIM_FALL_DOWN, ANIM_SCARED, ANIM_HURT_FOOT, ANIM_RUN_PANIC, ANIM_EAT, ANIM_STICK_OUT_TONGUE, ANIM_PLANT, ANIM_GOT_ITEM, ANIM_READY_JUMP, ANIM_THINKING, ANIM_LOST_BALANCE, ANIM_SHOCK_STILL, ANIM_DRINK = 0x10025, ANIM_SQUISH, ANIM_RUN_THINKING, ANIM_QUESTION, ANIM_NOD_YES, ANIM_1002B = 0x1002B, ANIM_PRAY, ANIM_CHARRED = 0x1002F, ANIM_GET_UP, ANIM_DUST_OFF, ANIM_THUMBS_UP, ANIM_30004 = 0x30004, ANIM_30008 = 0x30008, ANIM_30009, ANIM_80003 = 0x80003, ANIM_80007 = 0x80007, ANIM_8000B = 0x8000B, ANIM_8000C, ANIM_80017 = 0x80017, ANIM_8001B = 0x8001B, ANIM_8001D = 0x8001D, ANIM_8001E, ANIM_90004 = 0x90004, ANIM_90005, ANIM_90006, }; typedef UNK_TYPE AmbientSound; enum AmbientSounds { AMBIENT_SPOOKY, AMBIENT_WIND, AMBIENT_BEACH, AMBIENT_JUNGLE, AMBIENT_UNDER_SEA1, AMBIENT_UNDER_SEA2, AMBIENT_SILENCE, AMBIENT_UNDER_SEA3, AMBIENT_UNDER_SEA4, AMBIENT_EXIT_SEA, AMBIENT_UNDER_SEA5, AMBIENT_UNDER_SEA6, AMBIENT_BIRDS, AMBIENT_SEA, AMBIENT_MUSIC = 16, }; typedef UNK_TYPE EncounterOutcome; enum EncounterOutcomes { OUTCOME_PLAYER_WON, OUTCOME_PLAYER_LOST, OUTCOME_PLAYER_FLED, OUTCOME_ENEMY_FLED, }; typedef UNK_TYPE DecorationID; enum DecorationIDs { DECORATION_GOLDEN_FLAMES = 1, DECORATION_SWEAT, DECORATION_SEEING_STARS, DECORATION_RED_FLAMES, DECORATION_GREY_SMOKE_TRAIL, DECORATION_FIRE_SMOKE_TRAIL, DECORATION_WHIRLWIND, DECORATION_STEAM_EMITTER, DECORATION_RADIAL_STAR_EMITTER = 11, }; typedef UNK_TYPE HitResult; enum HitResults { HIT_RESULT_TRIGGERED_EXPLODE = -1, HIT_RESULT_HIT, HIT_RESULT_LANDED_ON_SPIKE = 4, HIT_RESULT_LUCKY, HIT_RESULT_MISS, HIT_RESULT_HIT_STATIC, HIT_RESULT_IMMUNE, }; typedef UNK_TYPE Iter; enum Iters { ITER_FIRST = -1, ITER_NEXT, ITER_PREV, ITER_LAST = 10, }; typedef UNK_TYPE ActorSoundID; enum ActorSoundIDs { ACTOR_SOUND_WALK, ACTOR_SOUND_FLY, ACTOR_SOUND_JUMP, ACTOR_SOUND_HURT, ACTOR_SOUND_WALK_INCREMENT, ACTOR_SOUND_FLY_INCREMENT, }; typedef UNK_TYPE Phase; enum Phases { PHASE_EXECUTE_ACTION, PHASE_FIRST_STRIKE, PHASE_RUN_AWAY_START = 3, PHASE_RUN_AWAY_RESET, PHASE_USE_DEFEND = 6, PHASE_RUN_AWAY_FAIL, PHASE_USE_LIFE_SHROOM, PHASE_PLAYER_BEGIN = 10, PHASE_ENEMY_END, PHASE_ENEMY_BEGIN, PHASE_PLAYER_END, PHASE_MERLEE_ATTACK_BONUS = 20, PHASE_MERLEE_DEFENSE_BONUS, PHASE_MERLEE_EXP_BONUS, PHASE_PLAYER_HAPPY = 30, }; typedef s32 ActorID; enum ActorIDs { ACTOR_SELF = 0xFFFFFF81, ACTOR_PLAYER = 0x0, ACTOR_PARTNER = 0x100, ACTOR_ENEMY0 = 0x200, ACTOR_ENEMY1, ACTOR_ENEMY2, ACTOR_ENEMY3, ACTOR_ENEMY4, ACTOR_ENEMY5, ACTOR_ENEMY6, ACTOR_ENEMY7, ACTOR_ENEMY8, ACTOR_ENEMY9, ACTOR_ENEMY10, ACTOR_ENEMY11, ACTOR_ENEMY12, ACTOR_ENEMY13, ACTOR_ENEMY14, ACTOR_ENEMY15, ACTOR_ENEMY16, ACTOR_ENEMY17, ACTOR_ENEMY18, ACTOR_ENEMY19, ACTOR_ENEMY20, ACTOR_ENEMY21, ACTOR_ENEMY22, ACTOR_ENEMY23, }; typedef UNK_TYPE Element; enum Elements { ELEMENT_END, ELEMENT_NORMAL, ELEMENT_FIRE, ELEMENT_WATER, ELEMENT_ICE, ELEMENT_MYSTERY, ELEMENT_MAGIC = 7, ELEMENT_HAMMER, ELEMENT_JUMP, ELEMENT_COSMIC, ELEMENT_BLAST, ELEMENT_SHOCK, ELEMENT_QUAKE, ELEMENT_THROW = 15, }; typedef UNK_TYPE Event; enum Events { EVENT_HIT_COMBO = 9, EVENT_HIT, EVENT_SPIN_SMASH_HIT, EVENT_FALL_TRIGGER, EVENT_FLIP_TRIGGER, EVENT_BURN_HIT, EVENT_SPIN_SMASH_LAUNCH_HIT = 17, EVENT_STAR_BEAM = 19, EVENT_POWER_BOUNCE_HIT = 21, EVENT_BLOW_AWAY, EVENT_IMMUNE = 25, EVENT_BLOCK, EVENT_SPIKE_TAUNT, EVENT_BURN_TAUNT, EVENT_AIR_LIFT_FAILED = 31, EVENT_DEATH, EVENT_SPIN_SMASH_DEATH, EVENT_EXPLODE_TRIGGER, EVENT_BURN_DEATH = 36, EVENT_SHOCK_DEATH = 38, EVENT_SPIKE_DEATH, EVENT_POWER_BOUNCE_DEATH, EVENT_SPIKE_CONTACT = 42, EVENT_BURN_CONTACT = 44, EVENT_SHOCK_HIT = 47, EVENT_RECOVER_STATUS = 49, EVENT_END_FIRST_STRIKE = 53, EVENT_LUCKY = 55, EVENT_BEGIN_FIRST_STRIKE, EVENT_SCARE_AWAY, EVENT_BEGIN_AIR_LIFT, EVENT_UP_AND_AWAY = 61, EVENT_SWAP_PARTNER = 63, EVENT_LIFE_SHROOM_PROC, EVENT_REVIVE, }; typedef UNK_TYPE HitSound; enum HitSounds { HIT_SOUND_MISS, HIT_SOUND_BONES, HIT_SOUND_NORMAL, HIT_SOUND_FIRE, HIT_SOUND_ICE, HIT_SOUND_SHOCK, }; typedef s8 Status; enum Statuses { STATUS_END, STATUS_NORMAL, STATUS_DEFAULT, STATUS_FEAR, STATUS_DIZZY, STATUS_PARALYZE, STATUS_SLEEP, STATUS_FROZEN, STATUS_STOP, STATUS_POISON, STATUS_SHRINK, STATUS_STATIC, STATUS_STONE, STATUS_DAZE, STATUS_E, STATUS_BERSERK = 16, STATUS_TURN_DONE = 18, STATUS_HUSTLE = 25, STATUS_DANGER, STATUS_THINKING = 28, STATUS_WEARY, STATUS_DEFAULT_TURN_MOD = 31, STATUS_SLEEP_TURN_MOD, STATUS_STATIC_TURN_MOD, STATUS_FROZEN_TURN_MOD, STATUS_FEAR_TURN_MOD, STATUS_DIZZY_TURN_MOD, STATUS_POISON_TURN_MOD, STATUS_PARALYZE_TURN_MOD, STATUS_SHRINK_TURN_MOD, STATUS_STOP_TURN_MOD = 41, }; typedef UNK_TYPE DoorSwing; enum DoorSwings { DOOR_SWING_OUT = -1, DOOR_SWING_IN = 1, }; typedef UNK_TYPE ItemSpawnMode; enum ItemSpawnModes { ITEM_SPAWN_MODE_UNKNOWN_0, ITEM_SPAWN_MODE_DECORATION, ITEM_SPAWN_MODE_UNKNOWN_2, ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS, ITEM_SPAWN_MODE_BATTLE_REWARD, ITEM_SPAWN_MODE_TOSS_NEVER_VANISH, ITEM_SPAWN_MODE_TOSS, ITEM_SPAWN_MODE_TOSS_SPAWN_ONCE, ITEM_SPAWN_MODE_TOSS_SPAWN_ONCE_NEVER_VANISH, ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS_NEVER_VANISH, ITEM_SPAWN_MODE_ITEM_BLOCK_ITEM, ITEM_SPAWN_MODE_ITEM_BLOCK_BADGE, ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS, ITEM_SPAWN_MODE_FALL_NEVER_VANISH, ITEM_SPAWN_MODE_FALL, ITEM_SPAWN_MODE_FALL_SPAWN_ONCE, ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, ITEM_SPAWN_MODE_FIXED, ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS_NEVER_VANISH, ITEM_SPAWN_MODE_ITEM_BLOCK_SPAWN_ALWAYS, ITEM_SPAWN_MODE_ITEM_BLOCK_COIN, ITEM_SPAWN_MODE_TOSS_HIGHER_NEVER_VANISH, ITEM_SPAWN_MODE_UNKNOWN_17, ITEM_SPAWN_MODE_UNKNOWN_18, ITEM_SPAWN_MODE_UNKNOWN_19, ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS_SMALL, ITEM_SPAWN_MODE_UNKNOWN_1B, }; typedef UNK_TYPE Location; enum Locations { LOCATION_TOAD_TOWN = 1, LOCATION_TOAD_TOWN_TUNNELS, LOCATION_KOOPA_BROS_FORTRESS = 7, LOCATION_MT_RUGGED, LOCATION_DRY_DRY_OUTPOST, LOCATION_DRY_DRY_DESERT, LOCATION_DRY_DRY_RUINS, LOCATION_FOREVER_FOREST, LOCATION_BOOS_MANSION, LOCATION_TUBBAS_MANOR = 15, LOCATION_SHY_GUYS_TOYBOX, LOCATION_MT_LAVALAVA = 18, LOCATION_CRYSTAL_PALACE = 21, LOCATION_BOWSERS_CASTLE, LOCATION_TESTING, LOCATION_NONE, LOCATION_PEACH_CASTLE_GROUNDS, LOCATION_PEACHS_CASTLE, LOCATION_SHOOTING_STAR_SUMMIT, LOCATION_STAR_WAY, LOCATION_STAR_HAVEN, LOCATION_GOOMBA_VILLAGE, LOCATION_GOOMBA_ROAD, LOCATION_PLEASANT_PATH, LOCATION_KOOPA_VILLAGE, LOCATION_GUSTY_GULCH, LOCATION_WINDY_MILL, LOCATION_JADE_JUNGLE, LOCATION_YOSHIS_VILLAGE, LOCATION_FLOWER_FIELDS, LOCATION_CLOUDY_CLIMB, LOCATION_SHIVER_CITY, LOCATION_SHIVER_SNOWFIELD, LOCATION_STARBORN_VALLEY, LOCATION_SHIVER_MOUNTAIN, LOCATION_MARIOS_HOUSE, }; typedef UNK_TYPE DoorSound; enum DoorSounds { DOOR_SOUND_BASIC, DOOR_SOUND_METAL, DOOR_SOUND_LARGE, DOOR_SOUND_CREAKY, DOOR_SOUND_GATE, DOOR_SOUND_UNKNOWN_5, DOOR_SOUND_UNKNOWN_6, }; typedef s8 ActionState; enum ActionStates { ACTION_STATE_IDLE, ACTION_STATE_WALK, ACTION_STATE_RUN, ACTION_STATE_JUMP, ACTION_STATE_BOUNCE, ///< Used with Kooper ACTION_STATE_HOP, ///< Released A before apex of jump ACTION_STATE_LAUNCH, ///< Shy Guy Toybox jack-in-the-boxes ACTION_STATE_LAND_ON_SWITCH, ///< Small red/blue ! switches ACTION_STATE_FALLING, ACTION_STATE_STEP_DOWN, ACTION_STATE_LAND, ACTION_STATE_STEP_DOWN_LAND, // Following action states prohibit movement (see set_action_state()) ACTION_STATE_TALK, ///< Reading signs doesn't count ACTION_STATE_SPIN_JUMP, ACTION_STATE_GROUND_POUND, ACTION_STATE_ULTRA_JUMP, ACTION_STATE_ULTRA_POUND, ACTION_STATE_SLIDE, ACTION_STATE_HAMMER, ACTION_STATE_13, ACTION_STATE_14, ACTION_STATE_HIT_FIRE, ///< Causes Mario to fly up and take damage. Used for fire bars. ACTION_STATE_UNKNOWN_16, // some kind of knockback, does no damage ACTION_STATE_HIT_LAVA, ACTION_STATE_18, ACTION_STATE_SNEAKY_PARASOL, ACTION_STATE_SPIN, ACTION_STATE_ENEMY_FIRST_STRIKE, ACTION_STATE_GET_STAR_SPIRIT, ACTION_STATE_USE_SPINNING_FLOWER, ACTION_STATE_USE_MUNCHLESIA, ///< Set by the jan_09 squishy flower entity; throws the player in the air. ACTION_STATE_USE_TWEESTER, ACTION_STATE_BOUNCE_OFF_SWITCH, ///< Small red/blue ! switches ACTION_STATE_RIDE, ACTION_STATE_STEP_UP, ACTION_STATE_23, ACTION_STATE_24, ACTION_STATE_25, ACTION_STATE_USE_SPRING, }; typedef s32 NpcID; enum NpcIDs { NPC_SELF = -1, NPC_PLAYER = -2, NPC_PARTNER = -4, NPC_BTL_MERLEE = -10, }; typedef UNK_TYPE TriggerFlag; enum TriggerFlags { TRIGGER_WALL_PUSH = 0x00000040, TRIGGER_FLOOR_TOUCH = 0x00000080, TRIGGER_WALL_PRESS_A = 0x00000100, TRIGGER_FLOOR_JUMP = 0x00000200, TRIGGER_WALL_TOUCH = 0x00000400, TRIGGER_FLOOR_PRESS_A = 0x00000800, TRIGGER_WALL_HAMMER = 0x00001000, TRIGGER_GAME_FLAG_SET = 0x00010000, TRIGGER_AREA_FLAG_SET = 0x00020000, TRIGGER_CEILING_TOUCH = 0x00040000, TRIGGER_FLOOR_ABOVE = 0x00080000, TRIGGER_POINT_BOMB = 0x00100000, }; typedef UNK_TYPE Button; enum Buttons { BUTTON_C_RIGHT = 0x00000001, BUTTON_C_LEFT = 0x00000002, BUTTON_C_DOWN = 0x00000004, BUTTON_C_UP = 0x00000008, BUTTON_R = 0x00000010, BUTTON_L = 0x00000020, BUTTON_D_RIGHT = 0x00000100, BUTTON_D_LEFT = 0x00000200, BUTTON_D_DOWN = 0x00000400, BUTTON_D_UP = 0x00000800, BUTTON_START = 0x00001000, BUTTON_Z = 0x00002000, BUTTON_B = 0x00004000, BUTTON_A = 0x00008000, }; typedef UNK_TYPE PlayerBuff; enum PlayerBuffs { PLAYER_BUFF_JUMP_CHARGE = 0x00000001, PLAYER_BUFF_HAMMER_CHARGE = 0x00000002, PLAYER_BUFF_STONE = 0x00000008, PLAYER_BUFF_HUSTLE = 0x00000010, PLAYER_BUFF_STATIC = 0x00000020, PLAYER_BUFF_TRANSPARENT = 0x00000040, PLAYER_BUFF_CLOUD_NINE = 0x00000080, PLAYER_BUFF_TURBO_CHARGE = 0x00000100, PLAYER_BUFF_WATER_BLOCK = 0x00000200, PLAYER_BUFF_PARTNER_GLOWING = 0x00010000, PLAYER_BUFF_ALL = 0xFFFFFFFF, }; typedef UNK_TYPE StatusFlag; enum StatusFlags { STATUS_FLAG_SLEEP = 0x00001000, STATUS_FLAG_STATIC = 0x00002000, STATUS_FLAG_FROZEN = 0x00004000, STATUS_FLAG_UNKNOWN_STATUS3 = 0x00008000, STATUS_FLAG_PARALYZE = 0x00010000, STATUS_FLAG_POISON = 0x00020000, STATUS_FLAG_DIZZY = 0x00040000, STATUS_FLAG_SHRINK = 0x00080000, STATUS_FLAG_STONE = 0x00100000, STATUS_FLAG_STOP = 0x00200000, STATUS_FLAG_KO = 0x01000000, STATUS_FLAG_GLOWING = 0x02000000, STATUS_FLAG_TRANSPARENT = 0x04000000, STATUS_FLAG_ATTACK_BOOST = 0x08000000, STATUS_FLAG_DEFENSE_BOOST = 0x10000000, STATUS_FLAG_CHILL_OUT = 0x20000000, STATUS_FLAG_RIGHT_ON = 0x40000000, }; typedef UNK_TYPE DamageType; enum DamageTypes { DAMAGE_TYPE_FIRE = 0x00000002, DAMAGE_TYPE_WATER = 0x00000004, DAMAGE_TYPE_ICE = 0x00000008, DAMAGE_TYPE_MAGIC = 0x00000010, DAMAGE_TYPE_ELECTRIC = 0x00000020, DAMAGE_TYPE_SMASH = 0x00000040, DAMAGE_TYPE_JUMP = 0x00000080, DAMAGE_TYPE_COSMIC = 0x00000100, DAMAGE_TYPE_BLAST = 0x00000200, DAMAGE_TYPE_POW = 0x00000400, DAMAGE_TYPE_QUAKE = 0x00000800, DAMAGE_TYPE_THROW = 0x00040000, DAMAGE_TYPE_IGNORE_DEFENSE = 0x08000000, DAMAGE_TYPE_NO_CONTACT = 0x10000000, DAMAGE_TYPE_UNBLOCKABLE = 0x20000000, DAMAGE_TYPE_TRIGGER_LUCKY = 0x80000000, }; typedef s8 PartnerID; enum PartnerIDs { PARTNER_NONE, PARTNER_GOOMBARIO, PARTNER_KOOPER, PARTNER_BOMBETTE, PARTNER_PARAKARRY, PARTNER_GOOMPA, PARTNER_WATT, PARTNER_SUSHIE, PARTNER_LAKILESTER, PARTNER_BOW, PARTNER_GOOMBARIA, PARTNER_TWINK, }; /// @see gAreas enum Areas { AREA_KMR, AREA_MAC, AREA_TIK, AREA_KGR, AREA_KKJ, AREA_HOS, AREA_NOK, AREA_TRD, AREA_IWA, AREA_DRO, AREA_SBK, AREA_ISK, AREA_MIM, AREA_OBK, AREA_ARN, AREA_DGB, AREA_OMO, AREA_JAN, AREA_KZN, AREA_FLO, AREA_SAM, AREA_PRA, AREA_KPA, AREA_OSR, AREA_END, AREA_MGM, AREA_GV, AREA_TST, }; enum NpcFlags { NPC_FLAG_PASSIVE = 0x00000001, ///< Collision does not trigger battle NPC_FLAG_2 = 0x00000002, NPC_FLAG_4 = 0x00000004, NPC_FLAG_ENABLE_HIT_SCRIPT = 0x00000008, NPC_FLAG_HAS_SHADOW = 0x00000010, ///< Set by default and by enable_npc_shadow NPC_FLAG_NO_AI = 0x00000020, ///< Disable movement AI and collision (idle animation plays) NPC_FLAG_80 = 0x00000080, // TODO NPC_FLAG_40 = 0x00000040, NPC_FLAG_100 = 0x00000100, // TODO NPC_FLAG_GRAVITY = 0x00000200, ///< Enables gravity. Does nothing if NPC_FLAG_NO_Y_MOVEMENT is set. NPC_FLAG_LOCK_ANIMS = 0x00000400, ///< Do not allow scripts to change animation NPC_FLAG_NO_Y_MOVEMENT = 0x00000800, ///< Causes NpcMoveTo() to ignore stairs NPC_FLAG_NO_PROJECT_SHADOW = 0x00002000, ///< Draw shadow at base of sprite instead of projecting to ground NPC_FLAG_4000 = 0x00004000, NPC_FLAG_8000 = 0x00008000, NPC_FLAG_DIRTY_SHADOW = 0x00010000, ///< Set if shadow model is dirty (needs to be repositioned etc.) NPC_FLAG_REFLECT_WALL = 0x00020000, ///< Mirror rendering across z=0 NPC_FLAG_40000 = 0x00040000, ///< Yaw? NPC_FLAG_REFLECT_FLOOR = 0x00080000, ///< Mirror rendering across y=0 NPC_FLAG_MOTION_BLUR = 0x00100000, ///< Gives motion blur effect as NPC moves. Set by enable_npc_blur NPC_FLAG_200000 = 0x00200000, NPC_FLAG_400000 = 0x00400000, NPC_FLAG_NO_DROPS = 0x00800000, ///< Do not drop hearts, flowers, or coins on defeat NPC_FLAG_1000000 = 0x01000000, // TODO. fails assert in set_npc_sprite /// Use simpler, faster physics calculations: /// - Perform only one lateral collision test during motion /// - Allow falling below Y=-2000 (by default, NPC_FLAG_NO_Y_MOVEMENT is set when an NPC falls out-of-bounds) NPC_FLAG_PARTICLE = 0x04000000, NPC_FLAG_8000000 = 0x08000000, NPC_FLAG_NO_ANIMS_LOADED = 0x40000000, ///< Npc has no animations loaded NPC_FLAG_80000000 = 0x80000000, }; // XXX bad name /// @see PlayerStatus::animFlags enum PlayerAnimFlags { PLAYER_ANIM_FLAG_HOLDING_ITEM = 0x00000001, PLAYER_ANIM_FLAG_2 = 0x00000002, PLAYER_ANIM_FLAG_4 = 0x00000004, PLAYER_ANIM_FLAG_8 = 0x00000008, PLAYER_ANIM_FLAG_INTERACT_PROMPT = 0x00000010, ///< ! prompt PLAYER_ANIM_FLAG_SPEECH_PROMPT = 0x00000020, ///< (...) prompt PLAYER_ANIM_FLAG_40 = 0x00000040, PLAYER_ANIM_FLAG_PULSE_STONE = 0x00000080, PLAYER_ANIM_FLAG_100 = 0x00000100, PLAYER_ANIM_FLAG_GET_STAR_SPIRIT = 0x00000200, ///< Sets action state to ACTION_STATE_GET_STAR_SPIRIT on idle PLAYER_ANIM_FLAG_SHIVER = 0x00000400, PLAYER_ANIM_FLAG_PEACH_PHYSICS = 0x00001000, PLAYER_ANIM_FLAG_IN_DISGUISE = 0x00002000, PLAYER_ANIM_FLAG_8BIT_MARIO = 0x00004000, }; /// not really enum RenderMode { RENDER_MODE_SURF_SOLID_AA_ZB_LAYER0 = 0x00, RENDER_MODE_SURFACE_OPA = 0x01, RENDER_MODE_SURFACE_OPA_NO_AA = 0x03, RENDER_MODE_SURFACE_OPA_NO_ZB = 0x04, RENDER_MODE_DECAL_OPA = 0x05, RENDER_MODE_DECAL_OPA_NO_AA = 0x07, RENDER_MODE_INTERSECTING_OPA = 0x09, RENDER_MODE_ALPHATEST = 0x0D, RENDER_MODE_ALPHATEST_ONESIDED = 0x0F, RENDER_MODE_ALPHATEST_NO_ZB = 0x10, RENDER_MODE_SURFACE_XLU_LAYER1 = 0x11, RENDER_MODE_SURFACE_XLU_NO_AA = 0x13, RENDER_MODE_SURFACE_XLU_NO_ZB = 0x14, RENDER_MODE_SURF_XLU_ZB_ZUPD = 0x15, RENDER_MODE_SURFACE_XLU_LAYER2 = 0x16, RENDER_MODE_DECAL_XLU = 0x1A, RENDER_MODE_DECAL_XLU_NO_AA = 0x1C, RENDER_MODE_SHADOW = 0x20, RENDER_MODE_SURFACE_XLU_LAYER3 = 0x22, RENDER_MODE_INTERSECTING_XLU = 0x26, RENDER_MODE_SURF_XLU_AA_ZB_ZUPD = 0x29, RENDER_MODE_CLOUD = 0x2E, RENDER_MODE_CLOUD_NO_ZB = 0x2F, }; enum ActorFlags { ACTOR_FLAG_NO_SHADOW = 0x00000004, ///< Hide shadow. ACTOR_FLAG_FLYING = 0x00000200, ///< Quake Hammer can't hit. ACTOR_FLAG_HP_OFFSET_BELOW = 0x00000800, ///< HP bar offset below actor (e.g. Swooper when upside-down). ACTOR_FLAG_TARGET_ONLY = 0x00004000, ///< Battle ends even if undefeated. No turn. ACTOR_FLAG_NO_ATTACK = 0x00200000, ///< Skip attack turn. ACTOR_FLAG_NO_DMG_POPUP = 0x02000000, ///< Hide damage popup. }; enum ActorPartFlags { PART_FLAG_INVISIBLE = 0x00000001, PART_FLAG_NO_TARGET = 0x00020000, ///< Cannot be targeted. PART_FLAG_MULTI_TARGET = 0x00800000, ///< Can be targeted with multi-target attacks (e.g. Star Storm). }; enum ActorEventFlags { EVENT_FLAG_FIREY = 0x00000002, ///< Player takes burn damage upon contact. EVENT_FLAG_ICY = 0x00000008, ///< No known effect, but is used. EVENT_FLAG_SPIKY_TOP = 0x00000010, ///< Player takes spike damage from jump attacks. EVENT_FLAG_ILLUSORY = 0x00000020, ///< Player attacks pass through and miss. EVENT_FLAG_ELECTRIFIED = 0x00000080, ///< Player takes shock damage upon contact. EVENT_FLAG_EXPLOSIVE = 0x00000200, ///< Blast and fire attacks trigger an explosion. EVENT_FLAG_FLIPABLE = 0x00001000, ///< Actor can be flipped; triggered by jump and quake attacks. EVENT_FLAG_GROUNDABLE = 0x00004000, ///< Actor can be knocked down from flight; triggered by jump attacks. EVENT_FLAG_SPIKY_FRONT = 0x00010000, ///< Player takes spike damage from hammer attacks. EVENT_FLAG_ENCHANTED = 0x00040000, ///< Actor glows and listens for the Star Beam event. EVENT_FLAG_POWER_BOUNCE = 0x00100000, ///< Actor listens for Power Bounce events. }; enum PartnerAnims { PARTNER_ANIM_STILL, PARTNER_ANIM_WALK, PARTNER_ANIM_JUMP, PARTNER_ANIM_FALL, PARTNER_ANIM_FLY, PARTNER_ANIM_IDLE, PARTNER_ANIM_RUN, PARTNER_ANIM_TALK, PARTNER_ANIM_HURT, }; #endif