#ifndef _ENUMS_H_ #define _ENUMS_H_ #include "ultra64.h" #include "types.h" #include "saved_byte_names.h" #include "saved_flag_names.h" enum StoryProgress { STORY_INTRO = -128, STORY_CH0_WAKE_UP = -127, STORY_CH0_MET_INNKEEPER = -126, STORY_UNUSED_FFFFFF83 = -125, STORY_CH0_MET_GOOMPA = -124, STORY_CH0_GATE_CRUSHED = -123, STORY_CH0_FELL_OFF_CLIFF = -122, STORY_CH0_GOOMPA_JOINED_PARTY = -121, STORY_CH0_LOOKING_FOR_HAMMER = -120, STORY_CH0_FOUND_HAMMER = -119, STORY_CH0_DEFEATED_JR_TROOPA = -118, STORY_CH0_LEFT_THE_PLAYGROUND = -117, STORY_UNUSED_FFFFFF8C = -116, STORY_CH0_GOOMBARIO_JOINED_PARTY = -115, STORY_CH0_SMASHED_GATE_BLOCK = -114, STORY_CH0_DEFEATED_GOOMBA_BROS = -113, STORY_CH0_DEFEATED_GOOMBA_KING = -112, STORY_CH0_FOUND_GATEHOUSE_SWITCH = -111, STORY_CH0_HIT_GATEHOUSE_SWITCH = -110, STORY_CH0_OPENED_BRIDGE_TO_TOAD_TOWN = -109, STORY_CH0_KAMMY_RETURNED_TO_BOWSER = -108, STORY_CH0_ARRIVED_AT_TOAD_TOWN = -107, STORY_CH0_MET_STAR_SPIRITS = -106, STORY_CH0_BEGAN_PEACH_MISSION = -105, STORY_CH0_TWINK_GAVE_LUCKY_STAR = -104, STORY_CH0_RETURNED_TO_TOAD_TOWN = -103, STORY_CH1_SPOKE_WITH_MERLIN = -102, STORY_CH1_TOLD_MERLIN_ABOUT_DARK_TOADS = -101, STORY_CH1_MERLIN_REVEALED_KOOPA_BROS = -100, STORY_CH1_KNOCKED_SWITCH_FROM_TREE = -99, STORY_CH1_MADE_FIRST_BRIDGE = -98, STORY_CH1_ARRIVED_AT_KOOPA_VILLAGE = -97, STORY_CH1_PROMISED_TO_HELP_KOOPER = -96, STORY_CH1_FUZZY_THIEF_LEFT_TOWN = -95, STORY_CH1_FUZZY_THIEF_RAN_AWAY = -94, STORY_CH1_FUZZY_THIEF_HID_IN_TREE = -93, STORY_CH1_KOOPER_JOINED_PARTY = -92, STORY_CH1_MADE_SECOND_BRIDGE = -91, STORY_CH1_ARRIVED_AT_KOOPA_FORTRESS = -90, STORY_CH1_SPOTTED_BY_KOOPA_BROS = -89, STORY_CH1_KOOPA_BROS_HID_KEY = -88, STORY_CH1_DEFEATED_BASEMENT_GUARD = -87, STORY_CH1_LOWERED_FIRST_STAIRS = -86, STORY_CH1_KOOPA_BROS_SET_TRAP = -85, STORY_CH1_MARIO_ACTIVATED_TRAP = -84, STORY_CH1_BOMBETTE_JOINED_PARTY = -83, STORY_CH1_DEFEATED_DUNGEON_GUARDS = -82, STORY_CH1_LOWERED_SECOND_STAIRS = -81, STORY_CH1_RAISED_SUBMERGED_STAIRS = -80, STORY_CH1_KOOPA_BROS_FIRING_BLASTERS = -79, STORY_CH1_DEFEATED_KOOPA_BROS = -78, STORY_CH1_STAR_SPIRIT_RESCUED = -77, STORY_CH1_BEGAN_PEACH_MISSION = -76, STORY_CH1_STAR_SPRIT_DEPARTED = -75, STORY_CH1_DEFEATED_JR_TROOPA = -74, STORY_CH1_RETURNED_TO_TOAD_TOWN = -73, STORY_CH2_ARRIVED_AT_MT_RUGGED = -72, STORY_CH2_SPOKE_WITH_PARAKARRY = -71, STORY_CH2_PARAKARRY_JOINED_PARTY = -70, STORY_CH2_ARRIVED_AT_DRY_DRY_DESERT = -69, STORY_CH2_ARRIVED_AT_DRY_DRY_OUTPOST = -68, STORY_CH2_SHADY_MOUSE_LEFT_SHOP = -67, STORY_CH2_SPOKE_WITH_SHEEK = -66, STORY_CH2_SHADY_MOUSE_ENTERED_SHOP = -65, STORY_CH2_BOUGHT_SECRET_ITEMS = -64, STORY_CH2_GOT_PULSE_STONE = -63, STORY_CH2_UNCOVERED_DRY_DRY_RUINS = -62, STORY_CH2_DRAINED_FIRST_SAND_ROOM = -61, STORY_CH2_DRAINED_SECOND_SAND_ROOM = -60, STORY_CH2_GOT_SUPER_HAMMER = -59, STORY_CH2_DRAINED_THIRD_SAND_ROOM = -58, STORY_CH2_SOLVED_ARTIFACT_PUZZLE = -57, STORY_CH2_DEFEATED_TUTANKOOPA = -56, STORY_CH2_STAR_SPIRIT_RESCUED = -55, STORY_CH2_BEGAN_PEACH_MISSION = -54, STORY_CH2_STAR_SPRIT_DEPARTED = -53, STORY_UNUSED_FFFFFFCC = -52, STORY_CH3_SAW_BOO_ENTER_FOREST = -51, STORY_CH3_INVITED_TO_BOOS_MANSION = -50, STORY_CH3_ALLOWED_INTO_FOREVER_FOREST = -49, STORY_CH3_ARRIVED_AT_BOOS_MANSION = -48, STORY_CH3_OPENED_BOOS_MANSION_GATE = -47, STORY_CH3_ENTERED_BOOS_MANSION = -46, STORY_CH3_TRIGGERED_DOOR_JUMP_SCARE = -45, STORY_CH3_GOT_RECORD = -44, STORY_CH3_PLAYED_THE_RECORD = -43, STORY_CH3_GOT_WEIGHT = -42, STORY_CH3_WEIGHED_DOWN_CHANDELIER = -41, STORY_CH3_GOT_SUPER_BOOTS = -40, STORY_CH3_HIT_HUGE_BLUE_SWITCH = -39, STORY_CH3_GOT_BOO_PORTRAIT = -38, STORY_CH3_RESTORED_BOO_PORTRAIT = -37, STORY_CH3_BOW_JOINED_PARTY = -36, STORY_CH3_UNLOCKED_GUSTY_GULCH = -35, STORY_CH3_ARRIVED_AT_GHOST_TOWN = -34, STORY_CH3_SAW_TUBBA_EAT_BOO = -33, STORY_CH3_ARRIVED_AT_TUBBAS_MANOR = -32, STORY_UNUSED_FFFFFFE1 = -31, STORY_CH3_TUBBA_BEGAN_NAPPING = -30, STORY_CH3_TUBBA_WOKE_UP = -29, STORY_CH3_TUBBA_SMASHED_THE_BRIDGES = -28, STORY_CH3_TUBBA_CHASED_MARIO_IN_HALL = -27, STORY_CH3_TUBBA_CHASED_MARIO_IN_FOYER = -26, STORY_CH3_ESCAPED_TUBBAS_MANOR = -25, STORY_CH3_UNLOCKED_WINDY_MILL = -24, STORY_CH3_WENT_DOWN_THE_WELL = -23, STORY_CH3_HEART_FLED_FIRST_TUNNEL = -22, STORY_UNUSED_FFFFFFEB = -21, STORY_UNUSED_FFFFFFEC = -20, STORY_CH3_HEART_FLED_SECOND_TUNNEL = -19, STORY_CH3_HEART_ESCAPED_WELL = -18, STORY_CH3_HEART_ESCAPED_WINDY_MILL = -17, STORY_CH3_DEFEATED_TUBBA_BLUBBA = -16, STORY_CH3_STAR_SPIRIT_RESCUED = -15, STORY_CH3_BEGAN_PEACH_MISSION = -14, STORY_CH3_STAR_SPRIT_DEPARTED = -13, STORY_CH4_FRYING_PAN_STOLEN = -12, STORY_CH4_MET_WITH_TWINK = -11, STORY_CH4_FOUND_HIDDEN_DOOR = -10, STORY_CH4_ENTERED_THE_TOY_BOX = -9, STORY_CH4_GOT_STOREROOM_KEY = -8, STORY_CH4_RETURNED_STOREROOM_KEY = -7, STORY_CH4_GOT_TOY_TRAIN = -6, STORY_CH4_RETURNED_TOY_TRAIN = -5, STORY_CH4_GOT_FRYING_PAN = -4, STORY_CH4_GOT_TAYCE_TS_CAKE = -3, STORY_CH4_GAVE_CAKE_TO_GOURMET_GUY = -2, STORY_CH4_PULLED_SWITCH_SWITCH = -1, STORY_CH4_SOLVED_COLOR_PUZZLE = 0, STORY_CH4_DEFEATED_LANTERN_GHOST = 1, STORY_CH4_WATT_JOINED_PARTY = 2, STORY_CH4_OPENED_GENERAL_GUY_ROOM = 3, STORY_CH4_DEFEATED_GENERAL_GUY = 4, STORY_CH4_STAR_SPIRIT_RESCUED = 5, STORY_CH4_BEGAN_PEACH_MISSION = 6, STORY_CH4_STAR_SPRIT_DEPARTED = 7, STORY_CH5_WHALE_MOUTH_OPEN = 8, STORY_CH5_ENTERED_WHALE = 9, STORY_CH5_DEFEATED_FUZZIPEDE = 10, STORY_CH5_REACHED_LAVA_LAVA_ISLAND = 11, STORY_CH5_KOLORADO_ESCAPED_FUZZIES = 12, STORY_CH5_KOLORADO_ESCAPED_SPEAR_GUYS = 13, STORY_CH5_YOSHI_CHILDREN_ARE_MISSING = 14, STORY_CH5_SUSHIE_JOINED_PARTY = 15, STORY_CH5_ALL_YOSHI_CHILDREN_RESCUED = 16, STORY_CH5_GOT_JADE_RAVEN = 17, STORY_CH5_MOVED_RAVEN_STATUE = 18, STORY_CH5_DEFEATED_PIRANHAS_MINIBOSS = 19, STORY_CH5_REACHED_RAPHAELS_TREE = 20, STORY_CH5_RAPHAEL_LEFT_NEST = 21, STORY_CH5_RAPHAEL_MOVED_ROOT = 22, STORY_CH5_RAPHAEL_WAITING_FOR_MARIO = 23, STORY_CH5_ZIP_LINE_READY = 24, STORY_CH5_ENTERED_MT_LAVA_LAVA = 25, STORY_CH5_KOLORADO_FELL_IN_LAVA = 26, STORY_CH5_LAVA_STREAM_BLOCKED = 27, STORY_CH5_GOT_ULTRA_HAMMER = 28, STORY_CH5_SMASHED_ULTRA_BLOCK = 29, STORY_CH5_KOLORADO_FELL_IN_PIT = 30, STORY_CH5_KOLORADO_AT_DEAD_END = 31, STORY_CH5_HIDDEN_PASSAGE_OPEN = 32, STORY_CH5_KOLORADO_RAN_AHEAD = 33, STORY_CH5_KOLORADO_IN_TREASURE_ROOM = 34, STORY_CH5_DEFEATED_LAVA_PIRANHA = 35, STORY_CH5_MT_LAVA_LAVA_ERUPTING = 36, STORY_CH5_OPENED_ESCAPE_ROUTE = 37, STORY_CH5_BEGAN_PEACH_MISSION = 38, STORY_CH5_STAR_SPRIT_DEPARTED = 39, STORY_CH5_TRADED_VASE_FOR_SEED = 40, STORY_CH5_RETURNED_TO_TOAD_TOWN = 41, STORY_CH6_FLOWER_GATE_OPEN = 42, STORY_CH6_ARRIVED_AT_FLOWER_FIELDS = 43, STORY_CH6_ASKED_TO_DEFEAT_MONTY_MOLES = 44, STORY_CH6_GOT_MAGICAL_BEAN = 45, STORY_CH6_GOT_FERTILE_SOIL = 46, STORY_CH6_GOT_CRYSTAL_BERRY = 47, STORY_CH6_GOT_WATER_STONE = 48, STORY_CH6_FILLED_SPRING_WITH_WATER = 49, STORY_CH6_SPOKE_WITH_THE_SUN = 50, STORY_CH6_LAKILESTER_JOINED_PARTY = 51, STORY_CH6_DEFEATED_PUFF_PUFF_GUARDS = 52, STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE = 53, STORY_CH6_WISTERWOOD_GAVE_HINT = 54, STORY_CH6_GREW_MAGIC_BEANSTALK = 55, STORY_CH6_DEFEATED_HUFF_N_PUFF = 56, STORY_CH6_STAR_SPIRIT_RESCUED = 57, STORY_CH6_BEGAN_PEACH_MISSION = 58, STORY_CH6_STAR_SPRIT_DEPARTED = 59, STORY_CH6_RETURNED_TO_TOAD_TOWN = 60, STORY_CH7_INVITED_TO_STARBORN_VALLEY = 61, STORY_CH7_ARRIVED_AT_SHIVER_CITY = 62, STORY_CH7_MAYOR_MURDER_MYSTERY = 63, STORY_CH7_SHATTERED_FROZEN_POND = 64, STORY_CH7_SPOKE_WITH_HERRINGWAY = 65, STORY_CH7_HERRINGWAY_AT_MAYORS_HOUSE = 66, STORY_CH7_MAYOR_MURDER_SOLVED = 67, STORY_CH7_DEFEATED_JR_TROOPA = 68, STORY_CH7_DEFEATED_MONSTAR = 69, STORY_CH7_ARRIVED_AT_STARBORN_VALLEY = 70, STORY_CH7_MERLE_APOLOGIZED = 71, STORY_CH7_GOT_SNOWMAN_SCARF = 72, STORY_CH7_GOT_SNOWMAN_BUCKET = 73, STORY_CH7_UNLOCKED_SHIVER_MOUNTAIN = 74, STORY_CH7_DEFEATED_FIRST_DUPLIGHOST = 75, STORY_CH7_GOT_STAR_STONE = 76, STORY_CH7_RAISED_FROZEN_STAIRS = 77, STORY_CH7_ARRIVED_AT_CRYSTAL_PALACE = 78, STORY_CH7_DEFEATED_MIRROR_DUPLIGHOSTS = 79, STORY_CH7_DEFEATED_BOMBETTE_DUPLIGHOSTS = 80, STORY_CH7_DEFEATED_CLUBBAS = 81, STORY_CH7_DEFEATED_KOOPER_DUPLIGHOSTS = 82, STORY_CH7_EXTENDED_PALACE_BRIDGE = 83, STORY_CH7_FOUND_HIDDEN_ROOM_UNDER_STATUE = 84, STORY_CH7_SOLVED_ALBINO_DINO_PUZZLE = 85, STORY_CH7_DEFEATED_CRYSTAL_KING = 86, STORY_CH7_STAR_SPIRIT_RESCUED = 87, STORY_CH7_BEGAN_PEACH_MISSION = 88, STORY_CH7_STAR_SPRIT_DEPARTED = 89, STORY_CH8_OPENED_PATH_TO_STAR_WAY = 90, STORY_CH8_REACHED_STAR_HAVEN = 91, STORY_CH8_STAR_SHIP_ACTIVATED = 92, STORY_UNUSED_0000005D = 93, STORY_CH8_REACHED_BOWSERS_CASTLE = 94, STORY_CH8_REACHED_PEACHS_CASTLE = 95, STORY_EPILOGUE = 96, STORY_NEVER = 97, }; enum KoopaKootFavors { KOOT_FAVOR_CH1_1 = 0, KOOT_FAVOR_CH1_2 = 1, KOOT_FAVOR_CH2_1 = 2, KOOT_FAVOR_CH2_2 = 3, KOOT_FAVOR_CH2_3 = 4, KOOT_FAVOR_CH3_1 = 5, KOOT_FAVOR_CH3_2 = 6, KOOT_FAVOR_CH3_3 = 7, KOOT_FAVOR_CH4_1 = 8, KOOT_FAVOR_CH4_2 = 9, KOOT_FAVOR_CH4_3 = 10, KOOT_FAVOR_CH5_1 = 11, KOOT_FAVOR_CH5_2 = 12, KOOT_FAVOR_CH5_3 = 13, KOOT_FAVOR_CH6_1 = 14, KOOT_FAVOR_CH6_2 = 15, KOOT_FAVOR_CH6_3 = 16, KOOT_FAVOR_CH7_1 = 17, KOOT_FAVOR_CH7_2 = 18, KOOT_FAVOR_CH7_3 = 19, }; enum KoopaKootFavorStates { KOOT_FAVOR_STATE_0 = 0, KOOT_FAVOR_STATE_1 = 1, KOOT_FAVOR_STATE_2 = 2, }; enum EncounterTriggers { ENCOUNTER_TRIGGER_NONE = 1, ENCOUNTER_TRIGGER_JUMP = 2, ENCOUNTER_TRIGGER_SPIN = 3, ENCOUNTER_TRIGGER_HAMMER = 4, ENCOUNTER_TRIGGER_CONVERSATION = 5, ENCOUNTER_TRIGGER_PARTNER = 6, }; enum SoundOutputMode { SOUND_OUT_MONO = 0, SOUND_OUT_STEREO = 1, }; enum SongIDs { SONG_TOAD_TOWN = 0x00000000, //SONG_GOOMBA_VILLAGE_COPY = 0x00000001, SONG_NORMAL_BATTLE = 0x00000002, SONG_SPECIAL_BATTLE = 0x00000003, SONG_JR_TROOPA_BATTLE = 0x00000004, SONG_FINAL_BOWSER_BATTLE = 0x00000005, //SONG_GOOMBA_VILLAGE_COPY = 0x00000006, SONG_GOOMBA_KING_BATTLE = 0x00000007, SONG_KOOPA_BROS_BATTLE = 0x00000008, SONG_FAKE_BOWSER_BATTLE = 0x00000009, SONG_TUTANKOOPA_BATTLE = 0x0000000A, SONG_TUBBA_BLUBBA_BATTLE = 0x0000000B, SONG_GENERAL_GUY_BATTLE = 0x0000000C, SONG_LAVA_PIRANHA_BATTLE = 0x0000000D, SONG_HUFF_N_PUFF_BATTLE = 0x0000000E, SONG_CRYSTAL_KING_BATTLE = 0x0000000F, SONG_GOOMBA_VILLAGE = 0x00000010, SONG_PLEASANT_PATH = 0x00000011, SONG_FUZZY_ATTACK = 0x00000012, SONG_KOOPA_VILLAGE = 0x00000013, SONG_KOOPA_FORTRESS = 0x00000014, SONG_DRY_DRY_OUTPOST = 0x00000015, SONG_MT_RUGGED = 0x00000016, SONG_DRY_DRY_DESERT = 0x00000017, SONG_DRY_DRY_RUINS = 0x00000018, SONG_RUINS_BASEMENT = 0x00000019, SONG_FOREVER_FOREST = 0x0000001A, SONG_BOOS_MANSION = 0x0000001B, SONG_CHEERFUL_BOOS_MANSION = 0x0000001C, SONG_GUSTY_GULCH = 0x0000001D, SONG_TUBBAS_MANOR = 0x0000001E, SONG_TUBBA_ESCAPE = 0x0000001F, SONG_SHY_GUY_TOYBOX = 0x00000020, SONG_TOYBOX_TRAIN = 0x00000021, SONG_CREEPY_TOYBOX = 0x00000022, //SONG_GOOMBA_VILLAGE_COPY = 0x00000023, SONG_JADE_JUNGLE = 0x00000024, SONG_DEEP_JUNGLE = 0x00000025, SONG_YOSHIS_VILLAGE = 0x00000026, SONG_YOSHIS_PANIC = 0x00000027, SONG_RAPHAEL_RAVEN = 0x00000028, SONG_MT_LAVALAVA = 0x00000029, SONG_VOLCANO_ESCAPE = 0x0000002A, SONG_STAR_WAY_OPENS = 0x0000002B, SONG_MASTER_BATTLE = 0x0000002C, SONG_RADIO_ISLAND_SOUNDS = 0x0000002D, SONG_RADIO_HOT_HITS = 0x0000002E, SONG_RADIO_GOLDEN_OLDIES = 0x0000002F, SONG_FLOWER_FIELDS_CLOUDY = 0x00000030, SONG_FLOWER_FIELDS_SUNNY = 0x00000031, SONG_CLOUDY_CLIMB = 0x00000032, SONG_PUFF_PUFF_MACHINE = 0x00000033, SONG_SUN_TOWER_CLOUDY = 0x00000034, SONG_SUN_TOWER_SUNNY = 0x00000035, //SONG_GOOMBA_VILLAGE_COPY = 0x00000036, SONG_CRYSTAL_PALACE = 0x00000037, SONG_SHIVER_CITY = 0x00000038, SONG_PENGUIN_MYSTERY = 0x00000039, SONG_SHIVER_SNOWFIELD = 0x0000003A, SONG_SHIVER_MOUNTAIN = 0x0000003B, SONG_STARBORN_VALLEY = 0x0000003C, SONG_MERLAR_THEME = 0x0000003D, SONG_MAIL_CALL = 0x0000003E, SONG_PEACHS_CASTLE_PARTY = 0x0000003F, SONG_CHAPTER_END = 0x00000040, SONG_CHAPTER_START = 0x00000041, SONG_ITEM_UPGRADE = 0x00000042, //SONG_GOOMBA_VILLAGE_COPY = 0x00000043, SONG_PHONOGRAPH_MUSIC = 0x00000044, SONG_TUTANKOOPA_THEME = 0x00000045, SONG_KAMMY_KOOPA_THEME = 0x00000046, SONG_JR_TROOPA_THEME = 0x00000047, SONG_BULLET_BILL_ASSAULT = 0x00000048, SONG_MONTY_MOLE_ASSAULT = 0x00000049, SONG_SHY_GUY_INVASION = 0x0000004A, SONG_TOAD_TOWN_TUNNELS = 0x0000004B, SONG_WHALE_THEME = 0x0000004C, SONG_FOREVER_FOREST_WARNING = 0x0000004D, SONG_YOSHI_KIDS_FOUND = 0x0000004E, SONG_UNUSED_FANFARE = 0x0000004F, SONG_GOOMBA_KING_THEME = 0x00000050, SONG_KOOPA_BROS_INTERLUDE = 0x00000051, SONG_KOOPA_BROS_THEME = 0x00000052, SONG_TUTANKOOPA_WARNING = 0x00000053, SONG_TUTANKOOPA_REVEALED = 0x00000054, SONG_TUBBA_BLUBBA_THEME = 0x00000055, SONG_GENERAL_GUY_THEME = 0x00000056, SONG_LAVA_PIRANHA_THEME = 0x00000057, SONG_HUFF_N_PUFF_THEME = 0x00000058, SONG_CRYSTAL_KING_THEME = 0x00000059, SONG_BLOOPER_THEME = 0x0000005A, SONG_MINIBOSS_BATTLE = 0x0000005B, SONG_MONSTAR_THEME = 0x0000005C, SONG_CLUB64 = 0x0000005D, SONG_UNUSED_OPENING = 0x0000005E, SONG_BOWSERS_CASTLE_FALLS = 0x0000005F, SONG_STAR_HAVEN = 0x00000060, SONG_SHOOTING_STAR_SUMMIT = 0x00000061, SONG_STARSHIP_THEME = 0x00000062, SONG_STAR_SANCTUARY = 0x00000063, SONG_BOWSERS_CASTLE = 0x00000064, SONG_BOWSERS_CASTLE_CAVES = 0x00000065, SONG_BOWSER_THEME = 0x00000066, SONG_BOWSER_BATTLE = 0x00000067, SONG_PEACH_WISHES = 0x00000068, SONG_FILE_SELECT = 0x00000069, SONG_MAIN_THEME = 0x0000006A, SONG_BOWSER_ATTACKS = 0x0000006B, SONG_MARIO_FALLS = 0x0000006C, SONG_PEACH_APPEARS = 0x0000006D, SONG_THE_END = 0x0000006E, SONG_RECOVERED_STAR_ROD = 0x0000006F, SONG_TWINK_THEME = 0x00000070, SONG_STIRRING_CAKE = 0x00000071, SONG_GOURMET_GUY_FREAKOUT = 0x00000072, SONG_PRISONER_PEACH_THEME = 0x00000073, SONG_PEACH_MISSION = 0x00000074, SONG_PEACH_SNEAKING = 0x00000075, SONG_PEACH_CAUGHT = 0x00000076, SONG_PEACH_QUIZ_INTRO = 0x00000077, SONG_STAR_SPIRIT_THEME = 0x00000078, SONG_PENGUIN_WHODUNIT = 0x00000079, SONG_PENGUIN_WAKES_UP = 0x0000007A, SONG_MAGIC_BEANSTALK = 0x0000007B, SONG_MERLEE_SPELL = 0x0000007C, SONG_LAKILESTER_THEME = 0x0000007D, SONG_GOOMBA_BROS_RETREAT = 0x0000007E, SONG_SUNSHINE_RETURNS = 0x0000007F, SONG_RIDING_THE_RAILS = 0x00000080, SONG_RIDING_THE_WHALE = 0x00000081, SONG_NEW_PARTNER = 0x00000082, SONG_DRY_DRY_RUINS_APPEAR = 0x00000083, SONG_CANDY_CANES = 0x00000084, SONG_PLAYROOM = 0x00000085, SONG_MOUSTAFA_THEME = 0x00000086, SONG_GAME_OVER = 0x00000087, SONG_TAKING_REST = 0x00000088, SONG_FLOWER_NPC_THEME = 0x00000089, SONG_FLOWER_GATE_APPEARS = 0x0000008A, SONG_BATTLE_END = 0x0000008B, SONG_POP_DIVA_SONG = 0x0000008C, SONG_BOO_MINIGAME = 0x0000008D, SONG_LEVEL_UP = 0x0000008E, //SONG_GOOMBA_VILLAGE_COPY = 0x0000008F, SONG_PARADE_DAY = 0x00000090, SONG_PARADE_NIGHT = 0x00000091, //SONG_GOOMBA_VILLAGE_COPY = 0x00000092, //SONG_GOOMBA_VILLAGE_COPY = 0x00000093, SONG_MARIO_BROS_HOUSE = 0x00000094, SONG_INTRO_STORY = 0x00000095, SONG_NEW_PARTNER_JP = 0x00000096, }; enum Abilities { ABILITY_DODGE_MASTER = 0x00000000, ABILITY_UNUSED = 0x00000001, ABILITY_SPIKE_SHIELD = 0x00000002, ABILITY_FIRST_ATTACK = 0x00000003, ABILITY_HP_PLUS = 0x00000004, ABILITY_DOUBLE_DIP = 0x00000005, ABILITY_MYSTERY_SCROLL = 0x00000006, ABILITY_FIRE_SHIELD = 0x00000007, ABILITY_PRETTY_LUCKY = 0x00000008, ABILITY_HP_DRAIN = 0x00000009, ABILITY_ALL_OR_NOTHING = 0x0000000A, ABILITY_SLOW_GO = 0x0000000B, ABILITY_FP_PLUS = 0x0000000C, ABILITY_ICE_POWER = 0x0000000D, ABILITY_FEELING_FINE = 0x0000000E, ABILITY_ATTACK_FX = 0x0000000F, ABILITY_MONEY_MONEY = 0x00000010, ABILITY_CHILL_OUT = 0x00000011, ABILITY_HAPPY_HEART = 0x00000012, ABILITY_ZAP_TAP = 0x00000013, ABILITY_MEGA_RUSH = 0x00000014, ABILITY_BERSERKER = 0x00000015, ABILITY_RIGHT_ON = 0x00000016, ABILITY_RUNAWAY_PAY = 0x00000017, ABILITY_FLOWER_SAVER = 0x00000018, ABILITY_PAY_OFF = 0x00000019, ABILITY_QUICK_CHANGE = 0x0000001A, ABILITY_DEFEND_PLUS = 0x0000001B, ABILITY_POWER_PLUS = 0x0000001C, ABILITY_REFUND = 0x0000001D, ABILITY_POWER_RUSH = 0x0000001E, ABILITY_CRAZY_HEART = 0x0000001F, ABILITY_LAST_STAND = 0x00000020, ABILITY_CLOSE_CALL = 0x00000021, ABILITY_P_UP_D_DOWN = 0x00000022, ABILITY_LUCKY_DAY = 0x00000023, ABILITY_MEGA_HP_DRAIN = 0x00000024, ABILITY_P_DOWN_D_UP = 0x00000025, ABILITY_FLOWER_FANATIC = 0x00000026, ABILITY_SPEEDY_SPIN = 0x00000027, ABILITY_SPIN_ATTACK = 0x00000028, ABILITY_I_SPY = 0x00000029, ABILITY_BUMP_ATTACK = 0x0000002A, ABILITY_HEART_FINDER = 0x0000002B, ABILITY_FLOWER_FINDER = 0x0000002C, ABILITY_DIZZY_ATTACK = 0x0000002D, ABILITY_FINAL_GOOMPA = 0x0000002E, ABILITY_FINAL_BOBOMB = 0x0000002F, ABILITY_DEEP_FOCUS = 0x00000030, ABILITY_SUPER_FOCUS = 0x00000031, ABILITY_KAIDEN = 0x00000032, ABILITY_DAMAGE_DODGE = 0x00000033, ABILITY_HAPPY_FLOWER = 0x00000034, ABILITY_GROUP_FOCUS = 0x00000035, ABILITY_PEEKABOO = 0x00000036, ABILITY_HEALTHY_HEALTHY = 0x00000037, }; enum Emotes { EMOTE_EXCLAMATION = 0, EMOTE_SHOCK = 1, EMOTE_QUESTION = 2, EMOTE_FRUSTRATION = 3, EMOTE_ELLIPSIS = 4, EMOTE_INVALID = 5, }; enum Emoters { EMOTER_PLAYER = 0, EMOTER_NPC = 1, EMOTER_POS = 2, }; enum EasingType { EASING_LINEAR = 0, EASING_QUADRATIC_IN = 1, EASING_CUBIC_IN = 2, EASING_QUARTIC_IN = 3, EASING_QUADRATIC_OUT = 4, EASING_CUBIC_OUT = 5, EASING_QUARTIC_OUT = 6, EASING_COS_SLOW_OVERSHOOT = 7, EASING_COS_FAST_OVERSHOOT = 8, EASING_COS_BOUNCE = 9, EASING_COS_IN_OUT = 10, EASING_SIN_OUT = 11, EASING_COS_IN = 12, }; enum SoundIDBits { SOUND_ID_STOP = 0x00008000, SOUND_ID_LOWER = 0x000023FF, SOUND_ID_UNK = 0x00002000, // sounds belonging to special large section SOUND_ID_ADJUST = 0x00001000, SOUND_ID_TRIGGER_MASK = 0x00000C00, SOUND_ID_TRIGGER_CHANGE_VOLUME = 0x00000800, SOUND_ID_TRIGGER_CHANGE_SOUND = 0x00000400, SOUND_ID_SECTION_MASK = 0x00000300, // corresponds to sections 0-3 for indices < 0xC0 and 4-7 for those above SOUND_ID_INDEX_MASK = 0x000000FF, SOUND_ID_UNK_INDEX_MASK = 0x000001FF, // indices for the special large section }; enum SoundType { SOUND_TYPE_SPECIAL = 0x80000000, SOUND_TYPE_LOOPING = 0, // 0x80000000 (with SOUND_TYPE_SPECIAL) SOUND_TYPE_EXIT_DOOR = 1, // 0x90000000 (with SOUND_TYPE_SPECIAL) SOUND_TYPE_ROOM_DOOR = 2, // 0xA0000000 (with SOUND_TYPE_SPECIAL) SOUND_TYPE_ALTERNATING = 3, // 0xB0000000 (with SOUND_TYPE_SPECIAL) }; enum SoundIDs { SOUND_NONE = 0x00000000, SOUND_OPEN_POPUP_1 = 0x00000001, SOUND_OPEN_POPUP_2 = 0x00000002, SOUND_LOWER_STATUS_BAR = 0x00000003, SOUND_RAISE_STATUS_BAR = 0x00000004, SOUND_MENU_BADGE_EQUIP = 0x00000005, SOUND_MENU_BADGE_UNEQUIP = 0x00000006, SOUND_MENU_SHOW_CHOICE = 0x00000009, SOUND_CHIME_BEGIN_AMBUSH = 0x0000000A, SOUND_CHIME_SOLVED_PUZZLE = 0x0000000B, SOUND_ACTIVATE_COMPUTER = 0x0000000C, // unused SOUND_PARTNER_PUT_AWAY = 0x0000000D, SOUND_PARTNER_GET_OUT = 0x0000000E, SOUND_PARTNER_SWAP_BATTLE_POS = 0x0000000F, SOUND_SAVE_CONFIRM = 0x00000010, SOUND_MSG_VOICE_1A = 0x00000011, SOUND_MSG_VOICE_1B = 0x00000012, SOUND_MSG_VOICE_2A = 0x00000013, SOUND_MSG_VOICE_2B = 0x00000014, SOUND_MSG_VOICE_3A = 0x00000015, SOUND_MSG_VOICE_3B = 0x00000016, SOUND_MSG_VOICE_4A = 0x00000017, SOUND_MSG_VOICE_4B = 0x00000018, SOUND_MSG_VOICE_5A = 0x00000019, SOUND_MSG_VOICE_5B = 0x0000001A, SOUND_MSG_VOICE_STAR = 0x0000001B, SOUND_LRAW_TRD_FLOWING_WATER = 0x00000021, SOUND_LRAW_TRD_RAISE_STAIRS = 0x00000022, SOUND_TRD_WATER_SPLASH = 0x00000023, SOUND_LRAW_TRD_02_LOWER_STAIRS = 0x00000024, SOUND_TRD_02_STAIRS_LOWERED = 0x00000025, SOUND_TRD_PUZZLE_PLATFORM_THUD = 0x00000026, SOUND_LRAW_TRD_04_LOWER_STAIRS = 0x00000027, SOUND_TRD_04_STAIRS_LOWERED = 0x00000028, SOUND_TRD_POUNDING_HIGH = 0x00000029, SOUND_TRD_POUNDING_LOW = 0x0000002A, SOUND_TRD_MAGIC_DOOR_JUMP = 0x0000002B, SOUND_TRD_MAGIC_DOOR_LAND = 0x0000002C, SOUND_PRA_PUSH_STATUE = 0x0000002D, SOUND_PRA_FLIP_WALL = 0x0000002E, SOUND_PRA_EXTEND_HIDDEN_BRIDGE = 0x0000002F, SOUND_PRA_UNFOLD_EXIT = 0x00000030, SOUND_LRAW_KKJ_RUMBLING = 0x00000033, SOUND_LRAW_OSR_RUMBLING = 0x00000034, // doesn't loop? SOUND_OSR_GROUND_CRACKING = 0x00000035, SOUND_OSR_SMOKE_RISING_1 = 0x00000036, SOUND_OSR_SMOKE_RISING_2 = 0x00000037, SOUND_OSR_SMOKE_RISING_3 = 0x00000038, SOUND_LRAW_MAC_HARBOR_WATER = 0x00000039, // #looping SOUND_PRA_SHIFT_FLOORS_RUMBLE = 0x0000003F, // #looping SOUND_PRA_SHIFT_FLOORS_THUD = 0x00000040, SOUND_WHALE_JIGGLE = 0x00000041, SOUND_WHALE_FILL = 0x00000042, SOUND_LRAW_WHALE_GEYSER = 0x00000043, // #looping SOUND_WHALE_EJECT = 0x00000044, SOUND_JR_TROOPA_SPLASH = 0x00000045, SOUND_LRAW_JR_TROOPA_SWIM = 0x00000046, SOUND_BOO_SPOOK = 0x00000047, SOUND_OBJECT_LAND = 0x00000048, SOUND_UNUSED_WATER_RUNNING = 0x00000049, // #looping SOUND_LRAW_JAN_BEACH_WAVES = 0x0000004A, SOUND_LRAW_OSR_FOUNTAIN_INTACT = 0x0000004C, SOUND_LRAW_OSR_FOUNTAIN_BROKEN = 0x0000004D, SOUND_LRAW_JAN_SMALL_GEYSER = 0x0000004E, SOUND_LRAW_JAN_LARGE_GEYSER = 0x0000004F, SOUND_LRAW_WINDMILL_EXT = 0x00000050, SOUND_OMO_FLIP_TRACK_THUD = 0x00000051, SOUND_LRAW_TROMP_ROLL = 0x00000052, SOUND_ISK_DRAINING_SAND = 0x00000053, // #looping SOUND_ISK_FLIP_STAIRS = 0x00000054, SOUND_LARGE_LENS_FLARE = 0x00000055, SOUND_LRAW_ISK_LOWER_STAIRS = 0x00000056, SOUND_ISK_STAIR_DROP_THUD = 0x00000057, SOUND_ISK_STAIRS_EMERGE_RUMBLE = 0x00000058, SOUND_ISK_STAIRS_EMERGE_THUD = 0x00000059, SOUND_KKJ_ARENA_LENS_FLARE = 0x0000005A, SOUND_LRAW_SBK_RUINS_WHIRLWIND = 0x0000005B, SOUND_SBK_RUINS_FINISH_RISING = 0x0000005C, SOUND_LRAW_SBK_RUINS_RISING = 0x0000005D, SOUND_SBK_RUINS_STEPS_UNFOLD = 0x0000005E, SOUND_SBK_RUINS_PEDESTAL_SINK = 0x0000005F, SOUND_LRAW_SBK_RUINS_RISING_DISTANT = 0x00000060, SOUND_GOOMPA_ATTACKED = 0x00000061, SOUND_TWINK_DEPART = 0x00000062, SOUND_UNUSED_STAR_SPIRIT_APPEARS = 0x00000063, SOUND_MULTIPLE_STAR_SPIRITS_APPEAR = 0x00000064, SOUND_NOK_BRIDGE_XYLOPHONE_1 = 0x00000067, SOUND_NOK_BRIDGE_XYLOPHONE_2 = 0x00000068, SOUND_NOK_BRIDGE_XYLOPHONE_3 = 0x00000069, SOUND_NOK_BRIDGE_XYLOPHONE_4 = 0x0000006A, SOUND_NOK_BRIDGE_XYLOPHONE_5 = 0x0000006B, SOUND_NOK_BRIDGE_XYLOPHONE_6 = 0x0000006C, SOUND_NOK_BRIDGE_XYLOPHONE_7 = 0x0000006D, SOUND_LRAW_WINDMILL_GEARS = 0x00000070, SOUND_NOK_BRIDGE_THUD_1 = 0x00000071, SOUND_NOK_BRIDGE_THUD_2 = 0x00000072, SOUND_NOK_BRIDGE_THUD_3 = 0x00000073, SOUND_JR_TROOPA_SCAMPER = 0x00000074, SOUND_NOK_HOUSE_CONFLICT = 0x00000077, SOUND_PULSE_STONE = 0x0000007D, SOUND_TRAIN_DEPARTURE = 0x00000082, SOUND_LRAW_TOYBOX_TRAIN_GEAR = 0x00000083, SOUND_OMO_TOY_TRAIN_WHISTLE_B = 0x00000084, SOUND_OMO_PLATFORM_ASCEND = 0x00000085, SOUND_OMO_PLATFORM_DESCEND = 0x00000087, SOUND_LRAW_AUDIENCE_MURMUR = 0x00000089, SOUND_AUDIENCE_CHEER = 0x0000008A, SOUND_AUDIENCE_BOO = 0x0000008B, SOUND_QUIZ_NEXT_QUESTION = 0x0000008C, SOUND_QUIZ_BUZZER = 0x0000008D, SOUND_LRAW_QUIZ_TICKING = 0x0000008E, SOUND_QUIZMO_VANISH = 0x0000008F, SOUND_LRAW_PUFF_PUFF_MACHINE = 0x00000091, SOUND_KKJ_USE_SNEAKY_PARASOL = 0x00000092, SOUND_KKJ_ROTATING_WALL = 0x00000093, // #looping SOUND_LRAW_DGB_COLLAPSE = 0x00000094, SOUND_DGB_COLLAPSE_1 = 0x00000095, SOUND_DGB_COLLAPSE_2 = 0x00000096, SOUND_DGB_COLLAPSE_4 = 0x00000097, SOUND_DGB_COLLAPSE_3 = 0x00000098, SOUND_LRAW_OBK_LOWER_CHAIN = 0x00000099, SOUND_OBK_CAGE_SLAM = 0x0000009B, SOUND_OBK_CHANDELIER_SWING = 0x0000009D, SOUND_LRAW_MOVE_STATUE = 0x0000009E, SOUND_LRAW_MOVE_LARGE_STATUE = 0x0000009F, SOUND_LRAW_OMO_ROTATING_WHEEL = 0x000000A0, SOUND_OMO_TOYBOX_TRAIN_DROP = 0x000000A1, SOUND_LRAW_STAR_ORB_RISING = 0x000000A2, SOUND_STARSHIP_APPEARS = 0x000000A3, SOUND_KPA_LIGHT_RAYS = 0x000000A4, SOUND_KMR_TOWER_COLLAPSE_RUMBLE_LOOP = 0x000000A5, SOUND_KMR_TOWER_COLLAPSE_THUD = 0x000000A6, SOUND_KMR_TOWER_COLLAPSE_UNFOLD = 0x000000A7, SOUND_DGB_SMALL_THUD = 0x000000A8, SOUND_ROWF_OPEN_SHOP = 0x000000A9, SOUND_ROWF_PULL_RUG_OUT = 0x000000AA, SOUND_ROWF_CLOSE_SHOP = 0x000000AB, SOUND_ROWF_PUSH_RUG_IN = 0x000000AC, SOUND_LRAW_STAR_SANCTUARY_FAR = 0x000000AD, SOUND_LRAW_STAR_SANCTUARY_NEAR = 0x000000AE, SOUND_LRAW_STAR_SANCTUARY_INSIDE = 0x000000AF, SOUND_INTRO_NEXT_PAGE = 0x000000B0, SOUND_MERLAR_APPEARS = 0x000000B1, SOUND_STAR_ORB_BURST = 0x000000B2, SOUND_TUBBA_POUNDING = 0x000000B4, SOUND_BOO_VANISH_A = 0x000000C1, SOUND_BOO_VANISH_B = 0x000000C2, SOUND_BOO_APPEAR_A = 0x000000C3, SOUND_BOO_APPEAR_B = 0x000000C4, SOUND_MENU_OPEN = 0x000000C5, SOUND_MENU_CLOSE = 0x000000C6, SOUND_MENU_CHANGE_SELECTION = 0x000000C7, SOUND_MENU_CHANGE_TAB = 0x000000C8, SOUND_MENU_NEXT = 0x000000C9, SOUND_MENU_BACK = 0x000000CA, SOUND_MSG_WAIT = 0x000000CB, SOUND_MSG_SKIP = 0x000000CC, SOUND_MSG_REWIND = 0x000000CD, SOUND_MSG_UNREWIND = 0x000000CE, SOUND_JINGLE_GOT_ITEM = 0x000000D1, SOUND_JINGLE_GOT_KEY = 0x000000D2, SOUND_JINGLE_GOT_BADGE = 0x000000D3, SOUND_JINGLE_WON_BATTLE = 0x000000D4, SOUND_FILE_MENU_IN = 0x000000D5, SOUND_FILE_MENU_OUT = 0x000000D6, SOUND_TRANSPORTER_IN = 0x000000D9, SOUND_TRANSPORTER_OUT = 0x000000DA, SOUND_SLIDE_WHISTLE_IN = 0x000000DB, // unused SOUND_SLIDE_WHISTLE_OUT = 0x000000DC, SOUND_HEAVY_OBJECT_DROP = 0x000000DD, SOUND_CHECK_LAUGHING_FLOWERS = 0x000000DF, SOUNC_CHECK_MAILBOX = 0x000000E0, SOUND_HIT_PLAYER_NORMAL = 0x000000E1, SOUND_HIT_PLAYER_FIRE = 0x000000E2, SOUND_HIT_PLAYER_ICE = 0x000000E3, SOUND_FROZEN_SHATTER = 0x000000E7, SOUND_TOUCH_LAVA = 0x000000E8, SOUND_HIT_NORMAL = 0x000000E9, SOUND_HIT_FIRE = 0x000000EA, SOUND_HIT_ICE = 0x000000EB, SOUND_PLANTS_BELL = 0x000000F1, SOUND_PLANTS_CYMBAL_CRASH = 0x000000F2, SOUND_PLANTS_TRUMPET = 0x000000F3, SOUND_PLANTS_LIGHT_UP = 0x000000F4, SOUND_FIREPLACE_BURST = 0x000000F5, SOUND_OBK_CHECK_CABINET = 0x000000F6, SOUND_OBK_CABINET_CRASH = 0x000000F7, SOUND_FLIP_PAGE = 0x000000F8, SOUND_KKJ_REVEAL_BUTTON = 0x000000F9, SOUND_KKJ_PRESS_BUTTON = 0x000000FA, SOUND_KKJ_DROP_INTO_ASHES = 0x000000FB, SOUND_KKJ_EXTINGUISH_FIRE = 0x000000FC, SOUND_SNEAKY_PARASOL_COPY = 0x000000FD, SOUND_SNEAKY_PARASOL_TRANSFORM = 0x000000FE, SOUND_START_OVEN_TIMER = 0x000000FF, SOUND_KOOPER_STEP = 0x00000100, SOUND_HIT_SPIKE = 0x00000108, SOUND_HAMMER_WINDUP = 0x0000010B, SOUND_IMMUNE = 0x0000010C, SOUND_HIT_BONES = 0x0000010D, SOUND_HIT_SILENT = 0x0000010E, // nothing is audible SOUND_ACTOR_HURT = 0x0000010F, SOUND_HIT_RATTLE = 0x00000110, SOUND_HEART_BLOCK = 0x00000131, SOUND_UNUSED_HEAL_BLOCK = 0x00000133, // #unused SOUND_ASCENDING_CHIMES = 0x00000134, // #unused SOUND_DESCENDING_CHIMES = 0x00000135, // #unused SOUND_STAR_CARD_APPEARS = 0x00000137, SOUND_RESCUE_STAR_SPIRIT = 0x00000138, SOUND_RECEIVE_STAR_POWER = 0x00000139, SOUND_MONSTAR_BREAKS_APART = 0x0000013D, SOUND_STAR_KID_FLYING = 0x0000013E, SOUND_STEP_NORMAL1 = 0x00000141, SOUND_STEP_NORMAL2 = 0x00000142, SOUND_STEP_CRUNCHY1 = 0x00000143, SOUND_STEP_CRUNCHY2 = 0x00000144, SOUND_SPIN_JUMP = 0x00000146, SOUND_TORNADO_JUMP = 0x00000147, SOUND_LAND_SOFTLY = 0x00000148, SOUND_LAND_SPIN_JUMP = 0x00000149, SOUND_LAND_TORANDO_JUMP = 0x0000014A, SOUND_HIT_BLOCK = 0x0000014E, SOUND_SMASH_HAMER_BLOCK_1 = 0x0000014F, SOUND_SMASH_HAMER_BLOCK_2 = 0x00000150, SOUND_SMASH_HAMER_BLOCK_3 = 0x00000151, SOUND_ACTIVATE_SWITCH = 0x00000152, SOUND_SEARCH_BUSH = 0x00000153, SOUND_PLAYER_CHARGE = 0x00000156, SOUND_BLOCK_SHATTER = 0x00000158, SOUND_SMALL_BOING = 0x00000159, // #spring #boing #unused SOUND_ACTOR_JUMPED_1 = 0x0000015A, // #unused SOUND_ACTOR_JUMPED_2 = 0x0000015B, // #unused SOUND_ACTOR_JUMPED_3 = 0x0000015C, // #unused SOUND_PLAYER_RUN_IN_PLACE = 0x0000015D, SOUND_PLAYER_RUN_AWAY = 0x0000015E, SOUND_LONG_PLAYER_JUMP = 0x00000160, SOUND_PLAYER_LONG_FALL = 0x00000161, SOUND_TRIP = 0x00000162, SOUND_ENTER_PIPE = 0x00000163, SOUND_LRAW_NOTHING_26 = 0x00000164, // #unused #nodata SOUND_SMACK_TREE = 0x00000165, SOUND_SHAKE_TREE_LEAVES = 0x00000166, SOUND_SLIDE = 0x00000167, // #looping SOUND_LRAW_ZIPLINE_RIDE = 0x00000168, SOUND_DUST_OFF = 0x00000172, SOUND_RUN_AWAY_BUILDUP = 0x00000173, SOUND_RUN_AWAY = 0x00000174, SOUND_PAPER_GLIDE_1 = 0x00000175, SOUND_PAPER_GLIDE_2 = 0x00000176, SOUND_LUIGI_STEP_A = 0x00000179, SOUND_LUIGI_STEP_B = 0x0000017A, SOUND_ISPY = 0x0000017B, SOUND_STARSHIP_ENGINE_LOOP = 0x0000017C, // #looping SOUND_STARSHIP_TAKEOFF_LONG = 0x0000017D, SOUND_STARSHIP_TAKEOFF_SHORT = 0x0000017E, SOUND_STARSHIP_ARRIVE = 0x0000017F, SOUND_STARSHIP_NEAR_FLYBY = 0x00000180, SOUND_STARSHIP_ASCEND = 0x00000181, SOUND_STARSHIP_FLY_AWAY = 0x00000182, SOUND_STARSHIP_FLY_TOWARD = 0x00000183, SOUND_SPRINKLE_MAGIC = 0x00000184, // #unused SOUND_LRAW_ZIPLINE_RETURN = 0x00000185, SOUND_JAN_BASKET_ELEVATOR = 0x00000186, SOUND_FLO_STAIRS_LOWERING = 0x00000187, // #rocky #scrape #rumble SOUND_GET_STAR_POWER_WAVE = 0x00000188, SOUND_LRAW_JAN_CONSTRUCTION = 0x00000189, SOUND_JAN_RAPHAEL_POUND = 0x0000018A, // #heavy #impact #thud SOUND_JAN_ROOT_WOBBLE_1 = 0x0000018C, SOUND_JAN_ROOT_WOBBLE_2 = 0x0000018D, SOUND_JAN_ROOT_WOBBLE_3 = 0x0000018E, SOUND_FLO_PUFF_PUFF_SMOKE_BURST = 0x00000190, // #explode SOUND_JAN_BOULDER_TREMBLE = 0x00000191, // #rocky #knock #short #impact SOUND_FLO_BLOW_BUBBLE = 0x00000193, SOUND_LRAW_BUBBLE_DRIFT = 0x00000194, // #looping SOUND_LRAW_FLO_FILL_WATER_POOL = 0x00000197, // #looping SOUND_LRAW_FLO_WATER_FLOW_1 = 0x00000198, // #looping #gentle SOUND_LRAW_FLO_WATER_FLOW_2 = 0x00000199, // #looping #fountain SOUND_LRAW_FLO_RELEASE_FOUNTAIN = 0x0000019A, // #looping #fountain SOUND_FLO_BEANSTALK_START_GROWING = 0x0000019B, SOUND_FLO_RIDE_BEANSTALK_UP_LOOP = 0x0000019C, // #looping SOUND_FLO_RIDE_BEANSTALK_DOWN_LOOP = 0x0000019D, // #looping SOUND_FLO_MAGIKOOPA_FLY_AWAY = 0x0000019E, SOUND_FLO_LAKITU_FLY_AWAY = 0x0000019F, SOUND_FLO_PUFF_PUFF_EXPLODE = 0x000001A0, // #explode SOUND_OMO_BOX_GLOW_1 = 0x000001A1, SOUND_OMO_BOX_GLOW_2 = 0x000001A2, SOUND_OMO_BOX_GLOW_3 = 0x000001A3, SOUND_OMO_BOX_GLOW_4 = 0x000001A4, SOUND_OMO_BOX_CHIME_1 = 0x000001A5, SOUND_OMO_BOX_CHIME_2 = 0x000001A6, SOUND_OMO_BOX_CHIME_3 = 0x000001A7, SOUND_OMO_BOX_CHIME_4 = 0x000001A8, SOUND_OMO_BOX_DONE = 0x000001A9, SOUND_OMO_TOYBOX_LID = 0x000001AA, SOUND_OMO_SECRET_DOOR_OPEN = 0x000001AB, SOUND_OMO_SECRET_DOOR_CLOSE = 0x000001AC, SOUND_FLYING_PYROCLAST_1 = 0x000001AD, SOUND_FLYING_PYROCLAST_2 = 0x000001AE, SOUND_JAN_CHEST_IMPACT = 0x000001AF, SOUND_LRAW_NOK_WATER = 0x000001B1, SOUND_LRAW_TRD_WATER_EXT = 0x000001B2, SOUND_LRAW_SBK_OASIS_WATER = 0x000001B3, SOUND_BASIC_DOOR_OPEN = 0x000001C1, SOUND_BASIC_DOOR_CLOSE = 0x000001C2, SOUND_METAL_DOOR_OPEN = 0x000001C3, SOUND_METAL_DOOR_CLOSE = 0x000001C4, SOUND_LARGE_DOOR_OPEN = 0x000001C5, SOUND_LARGE_DOOR_CLOSE = 0x000001C6, SOUND_CREAKY_DOOR_OPEN = 0x000001C7, SOUND_CREAKY_DOOR_CLOSE = 0x000001C8, SOUND_METAL_GATE_OPEN = 0x000001C9, SOUND_METAL_GATE_CLOSE = 0x000001CA, SOUND_WINDOW_OPEN_A = 0x000001CB, SOUND_WINDOW_CLOSE_A = 0x000001CC, SOUND_WINDOW_OPEN_B = 0x000001CD, SOUND_WINDOW_CLOSE_B = 0x000001CE, SOUND_WOODEN_DOOR_OPEN = 0x000001CF, SOUND_WOODEN_DOOR_CLOSE = 0x000001D0, SOUND_SARCOPHAGUS_OPEN = 0x000001D1, SOUND_GOOMBA_GATE_OPEN = 0x000001D2, SOUND_OPEN_CHEST = 0x000001D3, SOUND_FOREST_GATE_OPEN = 0x000001D4, SOUND_FOREST_GATE_CLOSE = 0x000001D5, SOUND_CREAKY_ROCKING = 0x000001D6, SOUND_KKJ_WINDOW_TAP = 0x000001D8, SOUND_OMO_DOOR_FLIP = 0x000001D9, SOUND_PUSH_BLOCK_FALL = 0x000001DA, SOUND_FLO_LOG_OPEN = 0x000001DB, SOUND_FLO_LOG_CLOSE = 0x000001DC, SOUND_SAM_RAISE_BARRIER = 0x000001DD, SOUND_SAM_LOWER_BARRIER = 0x000001DE, SOUND_AIRSHIP_DOCK_DOOR_OPEN = 0x000001DF, SOUND_AIRSHIP_DOCK_DOOR_CLOSE = 0x000001E0, SOUND_KMR_TOWER_RUMBLE = 0x000001E1, SOUND_DISTANT_THUD = 0x000001E2, SOUND_TROMP_DROP = 0x000001E3, SOUND_TROMP_CRASH = 0x000001E4, SOUND_PUFF_PUFF_SMASH = 0x000001E5, SOUND_PUFF_PUFF_PART_BREAKS = 0x000001E6, SOUND_PUFF_PUFF_PANEL_BREAKS = 0x000001E7, SOUND_BOING = 0x000001E8, SOUND_SAM_DROP_STAIR = 0x000001E9, SOUND_SAM_BARRIER_THUD = 0x000001EA, SOUND_SAM_PLACE_STAR_STONE = 0x000001EB, SOUND_SAM_ICE_STEP_THUD = 0x000001EC, SOUND_PRA_ROTATE_ALBINO_DINO = 0x000001ED, SOUND_PRA_UNFOLD_STEP = 0x000001EE, SOUND_KPA_DROP_WALL = 0x000001EF, SOUND_YOSHI_KID_CRY = 0x000001F0, SOUND_OMO_TRAIN_TRACK_LEVER = 0x000001F1, SOUND_OMO_FLIP_TRAIN_TRACK = 0x000001F2, SOUND_OMO_COLORED_PANEL_DROP = 0x000001F3, SOUND_OMO_BARRICADE_DROP = 0x000001F4, SOUND_OMO_LANTERN_BREAK = 0x000001F5, SOUND_OMO_TRAIN_SWITCH_RATTLE = 0x000001F9, SOUND_OMO_TRAIN_SWITCH_SELECT = 0x000001FA, SOUND_TRAIN_CHUG_A = 0x000001FB, SOUND_TRAIN_CHUG_B = 0x000001FC, SOUND_TRAIN_RELEASE_STEAM = 0x000001FD, SOUND_OMO_TOY_TRAIN_CLICK = 0x000001FE, SOUND_OMO_TOY_TRAIN_WHISTLE_A = 0x000001FF, SOUND_MERLEE_TWIRL = 0x00000201, SOUND_MERLEE_GATHER_ENERGY = 0x00000202, SOUND_MERLEE_SHOW_CARD = 0x00000203, SOUND_MERLEE_GATHER_CARDS = 0x00000204, SOUND_MERLEE_RELEASE_PLAYER = 0x00000205, SOUND_MERLEE_COMPLETE_SPELL = 0x00000206, SOUND_LRAW_CRYSTAL_BALL_GLOW = 0x00000207, SOUND_CRYSTAL_BALL_WAVE = 0x00000208, SOUND_MERLON_GATHER = 0x00000209, SOUND_MERLON_STRIKE = 0x0000020A, SOUND_LOWER_PITCH_MAGIC = 0x0000020B, // #unused SOUND_RAVEN_FALL_A = 0x0000020C, SOUND_RAVEN_FALL_B = 0x0000020D, SOUND_RAVEN_FALL_C = 0x0000020E, SOUND_COIN_PICKUP = 0x00000211, SOUND_COIN_BOUNCE = 0x00000212, SOUND_HEART_PICKUP = 0x00000213, SOUND_HEART_BOUNCE = 0x00000214, SOUND_STAR_POINT_PICKUP = 0x00000215, SOUND_FLOWER_PICKUP = 0x00000217, SOUND_FLOWER_BOUNCE = 0x00000218, SOUND_STAR_PIECE_BOUNCE = 0x00000219, SOUND_ITEM_BOUNCE = 0x0000021A, SOUND_BADGE_BOUNCE = 0x0000021B, SOUND_APPROVE = 0x0000021C, SOUND_MENU_ERROR = 0x0000021D, SOUND_LRAW_KPA_CHAIN_DRIVE = 0x00000221, SOUND_KPA_DUMP_LAVA = 0x00000222, SOUND_KPA_BOWSER_POWER_UP = 0x00000223, SOUND_KPA_BOWSER_POWER_DOWN = 0x00000224, // #unused SOUND_KPA_QUIZ_DOORS_OPEN = 0x00000225, // #stony #scraping SOUND_KPA_QUIZ_DOORS_CLOSE = 0x00000226, // #stony #scraping SOUND_KPA_RAISE_STONE_PLATFORM = 0x00000227, // #stony #scraping #rumble SOUND_KPA_LOWER_STONE_PLATFORM = 0x00000228, // #stony #scraping #rumble SOUND_KPA_PULL_CHAIN = 0x00000229, // #metallic #rattle SOUND_LRAW_KPA_FILL_WATER = 0x0000022A, // #looping #flush #flowing #water SOUND_LRAW_KPA_DRAIN_WATER = 0x0000022B, // #looping #flush #flowing #water SOUND_LRAW_KPA_ARENA_TURN_ON = 0x0000022C, // #electric #humming #machine SOUND_LRAW_KPA_ARENA_ACTIVE = 0x0000022D, // #electric #humming #machine SOUND_KPA_EXPLOSION_A = 0x0000022E, // #explosion SOUND_KPA_EXPLOSION_B = 0x0000022F, // #explosion SOUND_KPA_EXPLOSION_CLUSTER = 0x00000230, // #explosion SOUND_DAMAGE_STARS = 0x00000231, // also used when blocking SOUND_COLLECT_1UP = 0x00000232, // #unused SOUND_TIMING_BAR_TICK = 0x00000233, SOUND_TIMING_BAR_GO = 0x00000234, SOUND_JUMP_COMBO_1 = 0x00000235, SOUND_JUMP_COMBO_2 = 0x00000236, SOUND_JUMP_COMBO_3 = 0x00000237, SOUND_JUMP_COMBO_4 = 0x00000238, SOUND_JUMP_COMBO_5 = 0x00000239, // #unused SOUND_JUMP_COMBO_6 = 0x0000023A, // #unused SOUND_JUMP_COMBO_7 = 0x0000023B, // #unused rings a bit longer than the others SOUND_JUMP_COMBO_8 = 0x0000023C, // #unused SOUND_LRAW_BOWSER_PROPELLER = 0x0000023D, SOUND_BEGIN_WISH = 0x00000241, SOUND_REFRESH = 0x00000242, SOUND_CHILL_OUT = 0x00000244, SOUND_SMOOCH = 0x00000245, SOUND_TIME_OUT = 0x00000246, SOUND_UP_AND_AWAY_CAST = 0x00000247, SOUND_LRAW_USE_STAR_BEAM = 0x00000248, SOUND_LRAW_USE_PEACH_BEAM = 0x00000249, SOUND_STAR_BEAM_FIRE = 0x0000024A, SOUND_MERLEE_APPEAR = 0x0000024B, SOUND_SHOOTING_STAR_FALL_A = 0x00000259, SOUND_SHOOTING_STAR_FALL_B = 0x0000025A, SOUND_STAR_BOUNCE_A = 0x0000025C, SOUND_STAR_BOUNCE_B = 0x0000025D, SOUND_ISK_PLACE_IN_SOCKET = 0x00000261, // #stony #thud SOUND_EMOTE_IDEA = 0x00000262, SOUND_EMOTE_QUESTION = 0x00000263, SOUND_ISK_DOOR_OPEN = 0x00000265, SOUND_ISK_DOOR_CLOSE = 0x00000266, SOUND_ISK_DOOR_SLAM = 0x00000267, // #stony #thud #heavy SOUND_USE_KEY = 0x00000269, // #metallic #rattle SOUND_LOCK_DROP = 0x0000026A, // #metallic #hollow #thud SOUND_LARGE_GATE_OPEN = 0x0000026B, // #metallic #blowing SOUND_LARGE_GATE_CLOSE = 0x0000026C, // #metallic #thud SOUND_METAL_CRASH = 0x00000270, // #unused #metallic #thud SOUND_LRAW_TIK_WATER = 0x00000271, // #water SOUND_LRAW_WATER_FLOWING_1 = 0x00000273, // #water #flowing SOUND_LRAW_WATER_FLOWING_2 = 0x00000274, // #water #flowing SOUND_LRAW_WATER_FLOWING_3 = 0x00000275, // #water #flowing SOUND_LRAW_WATER_FLOWING_4 = 0x00000276, // #water #flowing SOUND_GOOMBARIO_HEADBONK = 0x00000281, // #descending #falling SOUND_TATTLE_WINDOW_OPEN = 0x00000282, SOUND_KOOPER_SHELL_KICK = 0x00000283, SOUND_KOOPER_SHELL_SWIRL = 0x00000284, SOUND_KOOPER_PICKUP = 0x00000286, SOUND_LRAW_BOMBETTE_FUSE = 0x00000287, SOUND_LAKILESTER_HURRICANE_WIND = 0x00000288, SOUND_WATT_CHARGE = 0x00000289, SOUND_WATT_POWER_SHOCK = 0x0000028A, SOUND_WATT_TURBO_CHARGE = 0x0000028B, SOUND_WATT_MEGA_DISCHARGE = 0x0000028C, SOUND_WATT_WHOOSH_SHOCK = 0x0000028D, // #unused SOUND_ROARING_FIRE = 0x0000028E, SOUND_FIRE_SHELL_LAUNCH = 0x0000028F, SOUND_DIZZY_SHELL_LAUNCH = 0x00000290, SOUND_BOW_SPOOK = 0x00000291, SOUND_BOOTLER_SPOOK = 0x00000292, SOUND_BOOTLER_HIDE = 0x00000293, SOUND_SUSHIE_DIVE = 0x00000294, SOUND_FLIGHT = 0x00000295, SOUND_SUSHIE_SQUIRT = 0x00000297, SOUND_SUSHIE_FOUNTAIN = 0x00000298, SOUND_DESTROY_WATER_BLOCK = 0x00000299, SOUND_SUSHIE_STEP = 0x0000029A, SOUND_TIDAL_WAVE_LEAP_A = 0x0000029B, SOUND_TIDAL_WAVE_LEAP_B = 0x0000029C, SOUND_TIDAL_WAVE_WATER = 0x0000029D, SOUND_SUSHIE_FLOP = 0x000002A0, SOUND_PLANT_FLOWERS = 0x000002A1, SOUND_FLOWER_GATE = 0x000002A2, SOUND_WOODEN_DOOR_SPINNING = 0x000002A3, SOUND_WOODEN_DOOR_WAVES = 0x000002A4, SOUND_RAVEN_LEAP_A = 0x000002A6, SOUND_RAVEN_LEAP_B = 0x000002A7, SOUND_LRAW_BOBOMB_FUSE = 0x000002A8, SOUND_TWINK_FLY_B = 0x000002AA, SOUND_PARAGOOMBA_DIVE = 0x000002C1, SOUND_HURT_PLANT_BITE = 0x000002C4, SOUND_SPIKE_SUMMON_SPINY = 0x000002C5, SOUND_SPIKE_THROW_SPINY = 0x000002C6, SOUND_SPINY_SPIN_UP = 0x000002C7, SOUND_BULLET_BILL_FIRE = 0x000002C8, SOUND_BULLET_BILL_MOTION = 0x000002C9, SOUND_DUPLIGHOST_STEP = 0x000002CA, SOUND_DUPLIGHOST_LEAP = 0x000002CB, SOUND_DUPLIGHOST_POWER_DOWN = 0x000002CC, // unused SOUND_SMOKE_BURST = 0x000002CD, SOUND_POKEY_THROW = 0x000002CE, SOUND_EMBER_JUMP = 0x000002CF, SOUND_EMBER_SPIT = 0x000002D0, SOUND_DRY_BONES_THROW = 0x000002D1, SOUND_DRY_BONES_COLLAPSE = 0x000002D2, SOUND_DRY_BONES_ARISE = 0x000002D3, SOUND_DRY_BONES_RATTLE = 0x000002D4, SOUND_DAYZEE_JUMP = 0x000002D5, SOUND_DAYZEE_STEP = 0x000002D6, SOUND_DAYZEE_SONG = 0x000002D7, SOUND_POWER_UP = 0x000002D8, SOUND_HYPER_CLEFT_LAND = 0x000002D9, SOUND_HYPER_CLEFT_CHARGE = 0x000002DA, SOUND_MAGIKOOPA_VANISH = 0x000002DB, SOUND_MAGIKOOPA_WAND_STRIKE = 0x000002DC, SOUND_MAGIKOOPA_POWER_UP = 0x000002DD, SOUND_SUMMON_CRYSTAL_BITS = 0x000002DE, // #windy #chimes SOUND_SUMMON_CRYSTAL_CLONES = 0x000002DF, SOUND_CRYSTAL_KING_ICE_BOLT = 0x000002E0, SOUND_SKY_GUY_BALLOON_POP = 0x000002E1, SOUND_GROOVE_GUY_TWIRL = 0x000002E2, SOUND_GROOVE_GUY_LEAP = 0x000002E3, SOUND_GROOVE_GUY_SPIN_DOWN = 0x000002E4, SOUND_CALL_FOR_BACKUP = 0x000002E5, SOUND_GROOVE_GUY_SUMMON = 0x000002E6, SOUND_SLINGSHOT_DRAW = 0x000002E7, SOUND_SLINGSHOT_FIRE = 0x000002E8, SOUND_HAMMER_BROS_THROW = 0x000002E9, SOUND_MONSTAR_CAST_SPELL = 0x000002EA, SOUND_LANTERN_GHOST_LIGHT = 0x000002EB, SOUND_POKEY_STEP = 0x000002EC, SOUND_POKEY_SMASH = 0x000002ED, SOUND_POKEY_REACH_DOWN = 0x000002EE, SOUND_ACTOR_HOP = 0x000002EF, SOUND_MAGIKOOPA_ELECTRIFY = 0x000002F0, SOUND_SNAP_AWAKE_A = 0x000002F1, SOUND_SNAP_AWAKE_B = 0x000002F2, SOUND_BUBBLE_BURST = 0x000002F3, SOUND_AI_ALERT_A = 0x000002F4, SOUND_AI_ALERT_B = 0x000002F5, SOUND_TWEESTER_LAUNCH = 0x000002F6, SOUND_SENTINEL_PICKUP = 0x000002F7, SOUND_GATHER_SMALL = 0x000002F8, SOUND_TOSS = 0x000002F9, SOUND_SPEAR_GUY_DANCE_1 = 0x000002FA, SOUND_SPEAR_GUY_DANCE_2 = 0x000002FB, SOUND_SPEAR_GUY_RIP_SKIRT = 0x000002FC, SOUND_ALBINO_DINO_STEP_B = 0x000002FD, SOUND_CLOSE_SHELL = 0x000002FF, SOUND_JR_TROOPA_NEW_POWER = 0x00000300, SOUND_FALL_QUICK = 0x00000301, SOUND_FALL_LONG = 0x00000302, SOUND_LARGE_FALL_QUICK = 0x00000303, SOUND_LARGE_FALL_LONG = 0x00000304, // unused SOUND_LONG_FLUTTER_FALL_A = 0x00000305, SOUND_LONG_FLUTTER_FALL_B = 0x00000306, SOUND_SPEAR_STAB = 0x00000309, SOUND_SPEAR_THROW = 0x0000030A, // #whoosh SOUND_ALBINO_DINO_STEP_A = 0x0000030B, SOUND_SHY_GUY_SCREAMS1 = 0x0000030C, SOUND_SHY_GUY_SCREAMS2 = 0x0000030D, SOUND_SHY_GUY_SCREAMS3 = 0x0000030E, SOUND_TOY_TANK_MOVE1 = 0x0000030F, SOUND_TOY_TANK_MOVE2 = 0x00000310, SOUND_AIM_SHELL_SHOT = 0x00000311, // #looping SOUND_AIM_SPINY_FLIP = 0x00000312, // #looping SOUND_TUBBA_GULP = 0x00000315, SOUND_FIRE_BAR_0_B = 0x00000316, SOUND_FIRE_BAR_1_B = 0x00000317, SOUND_FIRE_BAR_2_B = 0x00000318, SOUND_FIRE_BAR_3_B = 0x00000319, SOUND_FIRE_BAR_4_B = 0x0000031A, SOUND_FIRE_BAR_5_B = 0x0000031B, SOUND_FIRE_BAR_6_B = 0x0000031C, SOUND_FIRE_BAR_7_B = 0x0000031D, SOUND_FIRE_BAR_8_B = 0x0000031E, SOUND_FIRE_BAR_9_B = 0x0000031F, SOUND_BURROW_SURFACE = 0x00000321, SOUND_BURROW_DIG = 0x00000322, SOUND_MOLE_POP = 0x00000323, SOUND_MALLET_SWING = 0x00000327, SOUND_BLASTER_FIRE = 0x00000328, SOUND_CREEPY_LAUGH = 0x00000329, // #unused SOUND_SKID = 0x0000032B, SOUND_NPC_JUMP = 0x0000032C, SOUND_LOWER_NPC_JUMP = 0x0000032D, SOUND_LRAW_SENTINEL_ALARM = 0x0000032E, SOUND_SNORE_INHALE_A = 0x0000032F, SOUND_SNORE_INHALE_B = 0x00000330, SOUND_FUZZY_HOP_A = 0x00000331, SOUND_FUZZY_HOP_B = 0x00000332, SOUND_FUZZY_HOP_C = 0x00000333, SOUND_SNORE_EXHALE_A = 0x00000334, SOUND_SNORE_EXHALE_B = 0x00000335, SOUND_FIRE_BAR_0_A = 0x00000336, SOUND_FIRE_BAR_1_A = 0x00000337, SOUND_FIRE_BAR_2_A = 0x00000338, SOUND_FIRE_BAR_3_A = 0x00000339, SOUND_FIRE_BAR_4_A = 0x0000033A, SOUND_FIRE_BAR_5_A = 0x0000033B, SOUND_FIRE_BAR_6_A = 0x0000033C, SOUND_FIRE_BAR_7_A = 0x0000033D, SOUND_FIRE_BAR_8_A = 0x0000033E, SOUND_FIRE_BAR_9_A = 0x0000033F, SOUND_FIRE_BAR_DEAD = 0x00000340, SOUND_LRAW_CHARGE_METER = 0x00000341, SOUND_POKEY_SWAY = 0x00000342, // same as SOUND_POKEY_LEAN_BACK? SOUND_POKEY_WALK = 0x00000343, SOUND_POKEY_LEAN_FORWARD = 0x00000344, SOUND_POKEY_LEAN_BACK = 0x00000345, SOUND_POKEY_EMERGE_FROM_GROUND = 0x00000346, SOUND_LRAW_CHEERING = 0x00000349, SOUND_SHORT_CLAP = 0x0000034A, SOUND_MULTI_CLAP = 0x0000034B, // #unused SOUND_TOY_TANK_EXPLODE = 0x0000034E, // #explosion SOUND_SLOT_REELS = 0x00000350, // #unused SOUND_ACTOR_FLIGHT = 0x00000351, SOUND_KOOPA_BROS_SPINUP = 0x00000353, SOUND_KOOPA_BROS_TOWER_SPIN_1 = 0x00000354, SOUND_KOOPA_BROS_TOWER_SPIN_2 = 0x00000355, SOUND_KOOPA_BROS_TOWER_SPIN_3 = 0x00000356, SOUND_BZZAP_BUZZ = 0x00000357, // #looping SOUND_MINI_BZZAP_BUZZ = 0x00000358, SOUND_EMBER_FLY = 0x00000359, // #looping SOUND_HUFF_N_PUFF_FIRE_LIGHTNING = 0x0000035B, // #electric #boom #echoing SOUND_CHARGE_LIGHTNING = 0x0000035C, // #electric #ascending SOUND_HEAVY_WIND_LOOP = 0x0000035D, // #looping #windy SOUND_HEAVY_NPC_SWIPE = 0x0000035E, SOUND_BABY_BLOOPER_MOVE = 0x0000035F, SOUND_PUT_ON_CAP = 0x00000361, SOUND_BECOME_STONE = 0x00000362, SOUND_WINTERY_JINGLE = 0x00000363, SOUND_SHEEP_STAMPEDE = 0x00000364, SOUND_THUNDER_BOLT = 0x00000365, SOUND_LIGHTNING_STRIKE = 0x00000366, SOUND_FRIGHT_JAR = 0x00000367, SOUND_MYSTERY_REEL = 0x00000368, SOUND_HUSTLE_WHISTLE = 0x00000369, SOUND_SMALL_GLASS_BREAK = 0x00000369, // #unused SOUND_CRYSTAL_KING_DISAPPEAR = 0x0000036B, SOUND_LRAW_SHY_GUY_CROWD_1 = 0x0000036C, SOUND_LRAW_SHY_GUY_CROWD_2 = 0x0000036D, SOUND_MONSTAR_STAR_STORM = 0x0000036E, SOUND_TOY_TANK_FALL_APART = 0x0000036F, SOUND_KENT_C_SHELL_TOSS_LOOP = 0x00000370, // #looping SOUND_PLAYER_SPINNING = 0x00000371, SOUND_LIFE_SHROOM_CHIME = 0x00000372, SOUND_REVIVAL_MAGIC = 0x00000373, // #magic #chimes SOUND_PLAYER_REVIVE = 0x00000374, SOUND_REPEL_GEL_APPLY = 0x00000375, SOUND_REPEL_GEL_VANISH = 0x00000376, SOUND_PLANT_FIRE_FLOWER = 0x00000377, SOUND_RECOVERY_SHMMER = 0x00000378, SOUND_VOLT_SHROOM_APPLY = 0x00000379, SOUND_HIT_PLAYER_SHOCK = 0x0000037A, SOUND_HIT_SHOCK = 0x0000037B, SOUND_KOOPA_LAUNCH_SHELL = 0x0000037C, SOUND_LANTERN_GHOST_STEP = 0x0000037D, SOUND_TOY_TANK_STEP = 0x0000037E, SOUND_SHY_GUY_FLY = 0x00000380, SOUND_GOURMET_GUY_SHOCK_1 = 0x00000381, SOUND_GOURMET_GUY_SHOCK_2 = 0x00000382, SOUND_GOURMET_GUY_SHOCK_3 = 0x00000383, SOUND_GOURMET_GUY_RUN = 0x00000384, SOUND_GOURMET_GUY_LAUNCH = 0x00000385, SOUND_BIG_DRUM_A = 0x00000386, SOUND_BIG_DRUM_B = 0x00000387, SOUND_LRAW_OMO_SLOT_MACHINE = 0x00000388, SOUND_SAM_POND_CRACK_1 = 0x00000389, SOUND_SAM_POND_CRACK_2 = 0x0000038A, SOUND_SAM_POND_SHATTER = 0x0000038B, SOUND_SAM_SNOWMAN_JUMP = 0x0000038C, SOUND_SAM_SNOWMEN_RAISE_WALL = 0x0000038D, SOUND_SAM_SNOWMEN_OPEN_PASSAGE = 0x0000038E, SOUND_TOSS_PLAYER = 0x00000390, SOUND_LRAW_SPINNING_FLOWER = 0x00000391, SOUND_MUNCHLESIA_CHEW = 0x00000392, SOUND_MUNCHLESIA_SPIT = 0x00000393, SOUND_OVEN_TIMER_TICKING = 0x00000394, // #looping SOUND_GENERAL_WHISTLE = 0x00000395, SOUND_ICE_SHATTER = 0x00000396, SOUND_PENGUIN_WHISTLE = 0x00000397, // identical to SOUND_GENERAL_WHISTLE SOUND_DRAG_PLAYER = 0x00000398, // #looping #windy #scraping SOUND_SAM07_RAISE_FLOOR = 0x00000399, // #ascending SOUND_SAM07_LOWER_FLOOR = 0x0000039A, // #descending SOUND_SAM08_RAISE_FLOOR = 0x0000039B, // #ascending SOUND_SAM_STAIRS_ACTIVATE = 0x0000039C, SOUND_SAM_STAIRS_LOUD_THUD = 0x0000039D, SOUND_LRAW_SAM_STAIRS_RISE = 0x0000039E, SOUND_SAM_STAIRS_FINAL_THUD = 0x0000039F, SOUND_MIM_MUSHROOM_GLOW = 0x000003A0, SOUND_UNUSED_TAPPING_LOOP = 0x000003A1, // #looping SOUND_SHY_GUY_FLEE_LOOP = 0x000003A2, // #looping SOUND_LANTERN_GHOST_REVEAL_MORE_1 = 0x000003A3, SOUND_LANTERN_GHOST_REVEAL_MORE_2 = 0x000003A4, SOUND_LANTERN_GHOST_REVEAL_MORE_3 = 0x000003A5, SOUND_LANTERN_GHOST_REVEAL_MORE_4 = 0x000003A6, SOUND_LANTERN_GHOST_DARKEN_1 = 0x000003A7, SOUND_LANTERN_GHOST_DARKEN_2 = 0x000003A8, SOUND_LANTERN_GHOST_DARKEN_3 = 0x000003A9, SOUND_LANTERN_GHOST_DARKEN_4 = 0x000003AA, SOUND_PIRANHA_BREATH = 0x000003AB, SOUND_GOOMBA_BROS_STEP = 0x000003AC, SOUND_LRAW_FIGHTING = 0x000003AD, SOUND_TANK_BULB_SHATTER = 0x000003AE, SOUND_CRYSTAL_KING_INHALE = 0x000003AF, SOUND_HUFF_N_PUFF_INHALE = 0x000003B0, // #looping SOUND_PIRANHA_SPIN = 0x000003B1, SOUND_PIRANHA_CHOMP = 0x000003B2, SOUND_HUFF_N_PUFF_REAR_UP = 0x000003B3, SOUND_ACTOR_STEP_B = 0x000003B4, SOUND_FAKE_BOWSER_BLAST = 0x000003B5, // large blasting sound when the fake bowser robot is destroyed SOUND_SHY_GUY_STEP_A = 0x000003B6, SOUND_SHY_GUY_STEP_B = 0x000003B7, SOUND_MASTER_LEAP = 0x000003B9, SOUND_BUBBLE_DOWN = 0x000003BA, // #unused #descending SOUND_LAVA_PIRANHA_RECOVER = 0x000003BB, SOUND_LRAW_RUMBLE = 0x000003BC, SOUND_BOWSER_FIRE_BREATH_LOOP = 0x000003BD, // #looping #wind #rumble SOUND_FAKE_BOWSER_LONG_WALK = 0x000003BE, // #rattle SOUND_HUFF_N_PUFF_EMERGE = 0x000003C0, SOUND_LAVA_PIRANHA_INHALE = 0x000003C1, SOUND_LAVA_PIRANHA_SHRIVEL = 0x000003C2, // #unused SOUND_LAVA_PIRANHA_SPIT_FIRE = 0x000003C3, SOUND_LAVA_PIRANHA_FIRE_BREATH = 0x000003C4, SOUND_LAVA_PIRANHA_EMERGE = 0x000003C5, SOUND_LAVA_PIRANHA_DEFEAT = 0x000003C6, SOUND_LAVA_BUD_WITHER = 0x000003C7, SOUND_LAVA_PIRANHA_WITHER = 0x000003C8, SOUND_LAVA_BUD_SPIT_PETIT = 0x000003C9, SOUND_PETIT_PIRANHA_ASCEND = 0x000003CA, SOUND_PETIT_PIRANHA_DIVE = 0x000003CB, SOUND_LAVA_PIRANHA_WRITHE = 0x000003CC, SOUND_LAVA_PIRANHA_COLLAPSE = 0x000003CD, SOUND_PIRANHA_STEP = 0x000003CE, SOUND_LANTERN_GHOST_INHALE = 0x000003CF, SOUND_LANTERN_GHOST_BLOW = 0x000003D0, SOUND_HUFF_N_PUFF_FLY = 0x000003D1, SOUND_ELECTRIC_BUZZ = 0x000003D2, SOUND_HUFF_N_PUFF_LIGHTNING_BLAST = 0x000003D3, SOUND_OPEN_SHELL = 0x000003D4, SOUND_RUFF_PUFF_FLY_A = 0x000003D5, SOUND_RUFF_PUFF_FLY_B = 0x000003D6, SOUND_LIGHT_THROW = 0x000003D9, SOUND_SQUEEZE = 0x000003DB, SOUND_BLOOPER_MOVE = 0x000003DC, SOUND_BLOOPER_FALL = 0x000003DD, SOUND_BLOOPER_SQUIRT = 0x000003DE, SOUND_LEECH = 0x000003E0, SOUND_AI_FOUND_PLAYER_JUMP = 0x000003E1, SOUND_ACTOR_JUMP = 0x000003E2, SOUND_ACTOR_TRIP = 0x000003E3, SOUND_ACTOR_TWITCH = 0x000003E4, SOUND_ACTOR_DEATH = 0x000003E5, SOUND_BIG_POWER_UP = 0x000003E6, SOUND_LARGE_ACTOR_JUMP = 0x000003E7, SOUND_MOLE_THROW = 0x000003E8, SOUND_KOOPA_BROS_LAND = 0x000003E9, SOUND_FAKE_BOWSER_STEP = 0x000003EA, SOUND_SMALL_CROWD_WALK = 0x000003EB, SOUND_LARGE_CROWD_WALK = 0x000003EC, SOUND_MASTER_SMACK = 0x000003ED, // #electric #impact SOUND_MASTER_PUNCH = 0x000003EE, SOUND_BOWSER_CHARGE_LIGHTNING = 0x000003EF, SOUND_DANGER = 0x000003F1, SOUND_PERIL = 0x000003F2, SOUND_DING = 0x000003F3, SOUND_LULLABY = 0x000003F4, SOUND_BUBBLES_RISING = 0x000003F5, // unused SOUND_DRIP = 0x000003F6, STONE_STONE_CHOMP_STEP = 0x000003F9, SOUND_THROW = 0x000003FA, SOUND_PLAYER_COLLAPSE = 0x000003FB, SOUND_LUCKY = 0x000003FC, SOUND_GOOMBARIO_GATHERING = SOUND_ID_UNK | 0x00000003, SOUND_PARAKARRY_PREDIVE = SOUND_ID_UNK | 0x00000004, SOUND_PARAKARRY_DIVE = SOUND_ID_UNK | 0x00000005, SOUND_PARAKARRY_SHELL_SHOT = SOUND_ID_UNK | 0x00000006, SOUND_PARAKARRY_FLAP = SOUND_ID_UNK | 0x00000009, SOUND_PARAKARRY_AIR_RAID_1 = SOUND_ID_UNK | 0x0000000A, // #whoosh SOUND_PARAKARRY_AIR_RAID_2 = SOUND_ID_UNK | 0x0000000B, // #whoosh #echoing SOUND_KOOPER_SHELL_SPINUP = SOUND_ID_UNK | 0x0000000C, SOUND_GOOMBARIO_JUMP = SOUND_ID_UNK | 0x0000000D, SOUND_BOW_VANISH = SOUND_ID_UNK | 0x0000000E, SOUND_BOW_APPEAR = SOUND_ID_UNK | 0x0000000F, SOUND_EGG_MISSILE_BLAST = SOUND_ID_UNK | 0x00000010, SOUND_WATT_REPEL_DARKNESS = SOUND_ID_UNK | 0x00000011, SOUND_WATT_RESUME_DARKNESS = SOUND_ID_UNK | 0x00000012, SOUND_SUSHIE_EMBARK = SOUND_ID_UNK | 0x00000013, SOUND_SUSHIE_RIDE_IDLE = SOUND_ID_UNK | 0x00000014, SOUND_SUSHIE_RIDE_MOVING = SOUND_ID_UNK | 0x00000015, SOUND_BOMBETTE_BLAST_LV1 = SOUND_ID_UNK | 0x00000016, SOUND_BOMBETTE_BLAST_LV2 = SOUND_ID_UNK | 0x00000017, SOUND_BOMBETTE_BLAST_LV3 = SOUND_ID_UNK | 0x00000018, SOUND_BOW_SMACK = SOUND_ID_UNK | 0x00000019, SOUND_BOW_FAN_SMACK = SOUND_ID_UNK | 0x0000001A, SOUND_LAKILESTER_THROW_SPINY_A = SOUND_ID_UNK | 0x0000001B, SOUND_LAKILESTER_THROW_SPINY_B = SOUND_ID_UNK | 0x0000001C, SOUND_LAKILESTER_MAKE_CLOUD_NINE = SOUND_ID_UNK | 0x0000001D, SOUND_LAKILESTER_HURRICANE_INHALE = SOUND_ID_UNK | 0x0000001E, SOUND_LAKILESTER_HURRICANE_EXHALE = SOUND_ID_UNK | 0x0000001F, SOUND_BOMBETTE_BODY_SLAM = SOUND_ID_UNK | 0x00000020, SOUND_SHELL_SPIN = SOUND_ID_UNK | 0x00000021, SOUND_FAN_SMACK_HIT = SOUND_ID_UNK | 0x00000022, // #windy SOUND_FAN_SMACK_END = SOUND_ID_UNK | 0x00000023, // #windy SOUND_WATT_MEGA_CHARGE_WAVE = SOUND_ID_UNK | 0x00000024, SOUND_DIZZY_SHELL = SOUND_ID_UNK | 0x00000026, SOUND_SHUFFLE_CARD_A = SOUND_ID_UNK | 0x0000002A, SOUND_SHUFFLE_CARD_B = SOUND_ID_UNK | 0x0000002B, SOUND_FIRE_FLOWER_A = SOUND_ID_UNK | 0x0000002C, SOUND_FIRE_FLOWER_B = SOUND_ID_UNK | 0x0000002D, SOUND_SNOWMAN_DOLL_JUMP = SOUND_ID_UNK | 0x0000002E, SOUND_NOISE_RUSH = SOUND_ID_UNK | 0x0000002F, // unused SOUND_POW_BLOCK = SOUND_ID_UNK | 0x00000030, SOUND_INFLICT_SLEEP = SOUND_ID_UNK | 0x00000031, SOUND_INFLICT_STATUS = SOUND_ID_UNK | 0x00000032, SOUND_DIZZY_DIAL = SOUND_ID_UNK | 0x00000033, SOUND_SUSHIE_BELLY_FLOP = SOUND_ID_UNK | 0x00000034, SOUND_CREATE_WATER_BLOCK = SOUND_ID_UNK | 0x00000035, SOUND_WHALE_OPEN_MOUTH = SOUND_ID_UNK | 0x00000036, SOUND_WHALE_CLOSE_MOUTH = SOUND_ID_UNK | 0x00000037, SOUND_TUBBA_SNORE_INHALE = SOUND_ID_UNK | 0x00000038, SOUND_TUBBA_SNORE_EXHALE = SOUND_ID_UNK | 0x00000039, SOUND_KPA_BRIDGE_COLLAPSE_A = SOUND_ID_UNK | 0x0000003A, SOUND_KPA_BRIDGE_COLLAPSE_B = SOUND_ID_UNK | 0x0000003B, SOUND_KPA_ARENA_EXPLODING = SOUND_ID_UNK | 0x0000003C, SOUND_OBK_STAIRS_DROP = SOUND_ID_UNK | 0x0000003D, SOUND_SHY_GUY_OUCH = SOUND_ID_UNK | 0x0000003E, SOUND_SHY_GUY_RUN_AWAY = SOUND_ID_UNK | 0x0000003F, SOUND_KPA_FLIP_BRIDGE_PANEL = SOUND_ID_UNK | 0x00000040, SOUND_STAR_SPIRIT_APPEAR_A = SOUND_ID_UNK | 0x00000041, SOUND_STAR_SPIRIT_APPEAR_B = SOUND_ID_UNK | 0x00000042, SOUND_STAR_SPIRIT_CAST_A = SOUND_ID_UNK | 0x00000043, SOUND_STAR_SPIRIT_CAST_B = SOUND_ID_UNK | 0x00000044, SOUND_STAR_SPIRIT_DEPART_1 = SOUND_ID_UNK | 0x00000045, SOUND_STAR_SPIRIT_DEPART_2 = SOUND_ID_UNK | 0x00000046, SOUND_STAR_SPIRIT_DEPART_3 = SOUND_ID_UNK | 0x00000047, SOUND_DARK_TOAD_DISPEL = SOUND_ID_UNK | 0x00000049, SOUND_OPEN_MAGIC_CHEST = SOUND_ID_UNK | 0x0000004A, SOUND_CLOSE_MAGIC_CHEST = SOUND_ID_UNK | 0x0000004B, SOUND_QUICK_HINGE = SOUND_ID_UNK | 0x0000004C, // unused SOUND_FLO_MOVE_PILLAR = SOUND_ID_UNK | 0x0000004D, SOUND_WISH_ASCENDING = SOUND_ID_UNK | 0x00000051, SOUND_UP_AND_AWAY_SEND_AWAY = SOUND_ID_UNK | 0x00000052, SOUND_STAR_POWER_RECOVERY = SOUND_ID_UNK | 0x00000053, SOUND_START_RECOVERY = SOUND_ID_UNK | 0x00000055, SOUND_RECOVER = SOUND_ID_UNK | 0x00000056, SOUND_FLOWERS_LIGHT_GIGGLE = SOUND_ID_UNK | 0x00000059, SOUND_FLOWERS_SAD_GIGGLE = SOUND_ID_UNK | 0x0000005A, SOUND_FLOWERS_LAUGH = SOUND_ID_UNK | 0x0000005B, SOUND_FLOWERS_WITHER = SOUND_ID_UNK | 0x0000005C, SOUND_FLOWERS_GROW = SOUND_ID_UNK | 0x0000005D, SOUND_ROCK_LAUGHTER = SOUND_ID_UNK | 0x0000005E, SOUND_TREE_LAUGHTER = SOUND_ID_UNK | 0x0000005F, SOUND_IMPISH_LAUGH = SOUND_ID_UNK | 0x00000060, SOUND_CHAIN_CHOMP_BITE = SOUND_ID_UNK | 0x00000061, SOUND_CHAIN_CHOMP_THUD = SOUND_ID_UNK | 0x00000062, SOUND_CHAIN_RATTLE = SOUND_ID_UNK | 0x00000063, SOUND_SHY_STACK_SQUISH = SOUND_ID_UNK | 0x00000064, SOUND_STILT_GUY_UNFOLD = SOUND_ID_UNK | 0x00000065, SOUND_STILT_GUY_STEP = SOUND_ID_UNK | 0x00000066, SOUND_STILTS_FALL = SOUND_ID_UNK | 0x00000067, // #woody SOUND_TANK_BULB_FIRE = SOUND_ID_UNK | 0x00000069, // #electric SOUND_TOY_TANK_OPEN_HATCH = SOUND_ID_UNK | 0x0000006A, SOUND_TOY_TANK_CLOSE_HATCH = SOUND_ID_UNK | 0x0000006B, SOUND_WOODEN_BLOCK = SOUND_ID_UNK | 0x0000006C, // #unused SOUND_RECOVER_HEART = SOUND_ID_UNK | 0x0000006D, // #magic SOUND_FUZZY_RUMBLE = SOUND_ID_UNK | 0x0000006E, SOUND_FUZZY_SHAKE = SOUND_ID_UNK | 0x0000006F, SOUND_FUZZY_DIVIDE = SOUND_ID_UNK | 0x00000070, SOUND_UP_AND_AWAY_CAPTURE = SOUND_ID_UNK | 0x00000071, SOUND_YOSHI = SOUND_ID_UNK | 0x00000072, SOUND_HIT_WHACKA = SOUND_ID_UNK | 0x00000073, SOUND_MAGIC_ASCENDING = SOUND_ID_UNK | 0x00000074, // #magic #ascending SOUND_MAGIC_DESCENDING = SOUND_ID_UNK | 0x00000075, // #magic #descending SOUND_BOMB_BLAST = SOUND_ID_UNK | 0x00000076, SOUND_BULLET_BILL_EXPLODE_A = SOUND_ID_UNK | 0x00000078, SOUND_BULLET_BILL_EXPLODE_B = SOUND_ID_UNK | 0x00000079, SOUND_KAMMY_SUMMON_MAGIC = SOUND_ID_UNK | 0x0000007A, SOUND_KAMMY_SUMMON_BLOCK = SOUND_ID_UNK | 0x0000007B, SOUND_KAMMY_RAISE_OBJECT = SOUND_ID_UNK | 0x0000007C, SOUND_KAMMY_LOWER_OBJECT = SOUND_ID_UNK | 0x0000007D, SOUND_TWINK_ATTACK = SOUND_ID_UNK | 0x0000007E, SOUND_TWINK_FLY_A = SOUND_ID_UNK | 0x0000007F, SOUND_QUICK_PLAYER_JUMP = SOUND_ID_UNK | 0x00000081, SOUND_JUMP_8BIT_MARIO = SOUND_ID_UNK | 0x00000082, SOUND_STAR_BOX_LAUNCHER = SOUND_ID_UNK | 0x00000085, SOUND_SPRING = SOUND_ID_UNK | 0x00000086, SOUND_ZIPLINE_FINISH = SOUND_ID_UNK | 0x00000087, SOUND_PUSH_BLOCK = SOUND_ID_UNK | 0x00000088, SOUND_PULL_VINE = SOUND_ID_UNK | 0x00000089, SOUND_FLOOR_SWITCH_DEPRESS = SOUND_ID_UNK | 0x0000008A, SOUND_FLOOR_SWITCH_ACTIVATE = SOUND_ID_UNK | 0x0000008B, SOUND_NO_DAMGE = SOUND_ID_UNK | 0x0000008C, SOUND_USE_ITEM = SOUND_ID_UNK | 0x0000008D, SOUND_GROW = SOUND_ID_UNK | 0x0000008E, SOUND_CHARGE_UP = SOUND_ID_UNK | 0x0000008F, SOUND_OPEN_TRAPDOOR = SOUND_ID_UNK | 0x00000091, SOUND_BREAK_FLOOR = SOUND_ID_UNK | 0x00000092, SOUND_SPIKES_EXTEND = SOUND_ID_UNK | 0x00000093, SOUND_JUMP_SCARE = SOUND_ID_UNK | 0x00000094, SOUND_EAT_OR_DRINK = SOUND_ID_UNK | 0x00000095, SOUND_SPIT_OUT = SOUND_ID_UNK | 0x00000096, SOUND_GLASS_SHATTER = SOUND_ID_UNK | 0x00000097, SOUND_VANISH_IN_SMOKE = SOUND_ID_UNK | 0x00000098, SOUND_HEART_PLANT = SOUND_ID_UNK | 0x00000099, SOUND_HURT_PLANT_SHRIEK = SOUND_ID_UNK | 0x0000009A, SOUND_MUNCHLESIA_SUCTION = SOUND_ID_UNK | 0x0000009B, SOUND_JAN_LOG_LAND = SOUND_ID_UNK | 0x0000009D, SOUND_JAN_LOG_SPLIT = SOUND_ID_UNK | 0x0000009E, SOUND_SEPARATE_BUSHES = SOUND_ID_UNK | 0x0000009F, SOUND_LARGE_NPC_IMPACT = SOUND_ID_UNK | 0x000000A0, SOUND_STARSHIP_BOOST = SOUND_ID_UNK | 0x000000A1, SOUND_IWA_SLIDE_GATE = SOUND_ID_UNK | 0x000000A2, SOUND_CREAKY_WINDOW_OPEN = SOUND_ID_UNK | 0x000000A3, SOUND_CREAKY_WINDOW_CLOSE = SOUND_ID_UNK | 0x000000A4, SOUND_TRAIN_DOOR_OPEN = SOUND_ID_UNK | 0x000000A5, SOUND_TRAIN_DOOR_CLOSE = SOUND_ID_UNK | 0x000000A6, SOUND_TURN_MECHANISM = SOUND_ID_UNK | 0x000000A7, SOUND_CAPSULE_OPEN = SOUND_ID_UNK | 0x000000A8, SOUND_FLIP_PANEL = SOUND_ID_UNK | 0x000000AB, SOUND_CLOSE_PANEL = SOUND_ID_UNK | 0x000000AC, SOUND_WATER_SPLASH = SOUND_ID_UNK | 0x000000AD, SOUND_BREAK_CRATE = SOUND_ID_UNK | 0x000000AE, // #boing SOUND_HOLLOW_RISING = SOUND_ID_UNK | 0x000000AF, // #unused SOUND_HOLLOW_FALLING = SOUND_ID_UNK | 0x000000B0, // #unused SOUND_PIRANHA_SPIN_1 = SOUND_ID_UNK | 0x000000B1, SOUND_PIRANHA_SPIN_2 = SOUND_ID_UNK | 0x000000B2, SOUND_PIRANHA_TENSE = SOUND_ID_UNK | 0x000000B3, SOUND_HEAVY_NPC_STEP_B = SOUND_ID_UNK | 0x000000B4, SOUND_HUFF_N_PUFF_JIGGLE = SOUND_ID_UNK | 0x000000B6, SOUND_HUFF_N_PUFF_WOBBLE = SOUND_ID_UNK | 0x000000B7, SOUND_GHOST_TRANSFORM = SOUND_ID_UNK | 0x000000B8, SOUND_JR_TROOPA_TRANSFORM = SOUND_ID_UNK | 0x000000B9, SOUND_ACTOR_STEP_A = SOUND_ID_UNK | 0x000000BA, SOUND_MASTER_FLUTTER = SOUND_ID_UNK | 0x000000BB, SOUND_MASTER_KICK = SOUND_ID_UNK | 0x000000BC, SOUND_MASTER_STANCE_CHANGE = SOUND_ID_UNK | 0x000000BD, SOUND_MASTER_FLIP = SOUND_ID_UNK | 0x000000BE, SOUND_LAVA_BUD_RECOVER = SOUND_ID_UNK | 0x000000BF, SOUND_SMALL_NPC_STEP = SOUND_ID_UNK | 0x000000C1, SOUND_BANDIT_STEAL = SOUND_ID_UNK | 0x000000C2, SOUND_DISAPPOINTED = SOUND_ID_UNK | 0x000000C3, SOUND_CLUBBA_STEP = SOUND_ID_UNK | 0x000000C4, SOUND_CLUBBA_SWING = SOUND_ID_UNK | 0x000000C5, SOUND_MBUSH_STEP = SOUND_ID_UNK | 0x000000C6, SOUND_TUBBA_HEART_JUMP = SOUND_ID_UNK | 0x000000C8, SOUND_MBUSH_LEAP = SOUND_ID_UNK | 0x000000C9, SOUND_BZZAP_STING = SOUND_ID_UNK | 0x000000CA, SOUND_MINI_BZZAP_STING = SOUND_ID_UNK | 0x000000CB, SOUND_BZZAP_CALL_SWARM = SOUND_ID_UNK | 0x000000CC, SOUND_BONY_BEETLE_STEP = SOUND_ID_UNK | 0x000000CD, SOUND_BONY_BEETLE_EXTEND_SPIKES = SOUND_ID_UNK | 0x000000CE, SOUND_BONY_BEETLE_RETRACT_SPIKES = SOUND_ID_UNK | 0x000000CF, SOUND_CLEFT_STEP = SOUND_ID_UNK | 0x000000D0, SOUND_CLEFT_TACKLE = SOUND_ID_UNK | 0x000000D1, SOUND_LAKITU_THROW_SPINY = SOUND_ID_UNK | 0x000000D2, SOUND_SHELL_TOSS = SOUND_ID_UNK | 0x000000D3, SOUND_SPELL_CAST1 = SOUND_ID_UNK | 0x000000D4, SOUND_SPELL_CAST2 = SOUND_ID_UNK | 0x000000D5, SOUND_SPELL_CAST3 = SOUND_ID_UNK | 0x000000D6, SOUND_SPELL_CAST4 = SOUND_ID_UNK | 0x000000D7, SOUND_SPELL_CAST5 = SOUND_ID_UNK | 0x000000D8, // unused SOUND_FUZZIPEDE_MOTION = SOUND_ID_UNK | 0x000000D9, SOUND_FUZZIPEDE_LEAP = SOUND_ID_UNK | 0x000000DA, // #boing #spring #bounce SOUND_FUZZIPEDE_STRIKE = SOUND_ID_UNK | 0x000000DB, // #boing #spring SOUND_COMMAND_LOSS = SOUND_ID_UNK | 0x000000DC, SOUND_GOOMBA_STEP = SOUND_ID_UNK | 0x000000DD, SOUND_PIRANHA_BITE = SOUND_ID_UNK | 0x000000DE, SOUND_PARAGOOMBA_FLY = SOUND_ID_UNK | 0x000000DF, SOUND_PARAGOOMBA_PREDIVE = SOUND_ID_UNK | 0x000000E0, SOUND_TUTANKOOPA_MAGIC = SOUND_ID_UNK | 0x000000E1, SOUND_JR_TOOPA_JUMP = SOUND_ID_UNK | 0x000000E2, SOUND_ACTOR_WITHER = SOUND_ID_UNK | 0x000000E3, SOUND_ACTOR_COLLAPSE = SOUND_ID_UNK | 0x000000E4, SOUND_KNOCKOUT_CHIRPING = SOUND_ID_UNK | 0x000000E5, // #bird #chirping SOUND_TUTANKOOPA_LEVITATE = SOUND_ID_UNK | 0x000000E6, SOUND_SPOOKY_LEVITATE = SOUND_ID_UNK | 0x000000E7, SOUND_ILLUSION_DISSOLVE = SOUND_ID_UNK | 0x000000E8, SOUND_HEAVY_NPC_FALLING = SOUND_ID_UNK | 0x000000E9, // #falling SOUND_HEAVY_NPC_LANDING = SOUND_ID_UNK | 0x000000EA, // #echoing #thud #impact SOUND_TUTANKOOPA_DEBRIS_FALL = SOUND_ID_UNK | 0x000000EB, // #falling SOUND_HEAVY_NPC_STEP_A = SOUND_ID_UNK | 0x000000EC, SOUND_GOOMBA_KING_SPIN = SOUND_ID_UNK | 0x000000ED, SOUND_GULPIT_LICK = SOUND_ID_UNK | 0x000000EE, SOUND_BUZZAR_FLAP = SOUND_ID_UNK | 0x000000EF, SOUND_BUZZAR_WHIRLWIND = SOUND_ID_UNK | 0x000000F0, // #windy SOUND_BUZZAR_WINDUP = SOUND_ID_UNK | 0x000000F1, SOUND_BUZZAR_DIVE = SOUND_ID_UNK | 0x000000F2, SOUND_SMALL_LENS_FLARE = SOUND_ID_UNK | 0x000000F3, SOUND_BUZZAR_THROW = SOUND_ID_UNK | 0x000000F4, SOUND_BUZZAR_GRAB = SOUND_ID_UNK | 0x000000F5, SOUND_HEAVY_NPC_STEP_C = SOUND_ID_UNK | 0x000000F6, SOUND_TUBBAS_HEART_CHARGE = SOUND_ID_UNK | 0x000000F7, SOUND_TUBBAS_HEART_SWARM_ATTACK = SOUND_ID_UNK | 0x000000F9, SOUND_TUBBAS_HEART_SWARM_DISPERSE = SOUND_ID_UNK | 0x000000FB, SOUND_TUBBAS_HEART_SWARM_VANISH = SOUND_ID_UNK | 0x000000FC, SOUND_FAKE_BOWSER_SWING = SOUND_ID_UNK | 0x000000FD, SOUND_FAKE_BOWSER_STRIKE = SOUND_ID_UNK | 0x000000FE, SOUND_FILE_MENU_MOVE_CURSOR = SOUND_ID_UNK | 0x00000101, SOUND_CREATE_FILE_MOVE_CURSOR = SOUND_ID_UNK | 0x00000102, SOUND_CREATE_FILE_SET_CHARACTER = SOUND_ID_UNK | 0x00000103, SOUND_CREATE_FILE_BACKSPACE = SOUND_ID_UNK | 0x00000104, SOUND_CREATE_FILE_CHANGE_CHARSET = SOUND_ID_UNK | 0x00000105, SOUND_INFLICT_CHILL_OUT = SOUND_ID_UNK | 0x00000106, SOUND_INFLICT_KO = SOUND_ID_UNK | 0x00000107, SOUND_SPAWN_BLOCK = SOUND_ID_UNK | 0x00000108, SOUND_D_DOWN_HIT_1 = SOUND_ID_UNK | 0x0000010A, SOUND_D_DOWN_HIT_2 = SOUND_ID_UNK | 0x0000010B, SOUND_D_DOWN_HIT_3 = SOUND_ID_UNK | 0x0000010C, SOUND_SPIN = SOUND_ID_UNK | 0x00000111, SOUND_SPEEDY_SPIN = SOUND_ID_UNK | 0x00000112, SOUND_SPIN_ATTACK = SOUND_ID_UNK | 0x00000113, SOUND_SPEEDY_SPIN_ATTACK = SOUND_ID_UNK | 0x00000114, SOUND_HAMMER_SWING_1 = SOUND_ID_UNK | 0x00000115, SOUND_HAMMER_SWING_2 = SOUND_ID_UNK | 0x00000116, SOUND_HAMMER_SWING_3 = SOUND_ID_UNK | 0x00000117, SOUND_HAMMER_STRIKE_1 = SOUND_ID_UNK | 0x00000118, SOUND_HAMMER_STRIKE_2 = SOUND_ID_UNK | 0x00000119, SOUND_HAMMER_STRIKE_3 = SOUND_ID_UNK | 0x0000011A, SOUND_HAMMER_QUAKE_1 = SOUND_ID_UNK | 0x0000011B, SOUND_HAMMER_QUAKE_2 = SOUND_ID_UNK | 0x0000011C, SOUND_HAMMER_QUAKE_3 = SOUND_ID_UNK | 0x0000011D, SOUND_SPIN_SMASH_1 = SOUND_ID_UNK | 0x0000011E, SOUND_SPIN_SMASH_2 = SOUND_ID_UNK | 0x0000011F, SOUND_SPIN_SMASH_3 = SOUND_ID_UNK | 0x00000120, SOUND_BOWSER_STAR_ROD_USE = SOUND_ID_UNK | 0x00000121, SOUND_BOWSER_STAR_ROD_DRAIN_WAVE = SOUND_ID_UNK | 0x00000122, SOUND_BOWSER_STAR_ROD_GATHER = SOUND_ID_UNK | 0x00000123, SOUND_BOWSER_STAR_ROD_SHOCKWAVE = SOUND_ID_UNK | 0x00000124, SOUND_BOWSER_STAR_ROD_ENCHANT = SOUND_ID_UNK | 0x00000125, SOUND_BOWSER_CAST_RECOVER = SOUND_ID_UNK | 0x00000126, SOUND_BOWSER_LIGHTNING = SOUND_ID_UNK | 0x00000127, SOUND_BOWSER_POWER_DOWN = SOUND_ID_UNK | 0x00000128, SOUND_BOWSER_COLLAPSE = SOUND_ID_UNK | 0x00000129, SOUND_OBK_CHANDELIER_RELEASE = SOUND_ID_UNK | 0x0000012A, SOUND_OBK_CHANDELIER_STOP = SOUND_ID_UNK | 0x0000012B, SOUND_OBK_CHANDELIER_RETRACT = SOUND_ID_UNK | 0x0000012C, SOUND_RELEASE_ENERGY = SOUND_ID_UNK | 0x0000012D, SOUND_GATHER_ENERGY = SOUND_ID_UNK | 0x0000012E, // looping sounds SOUND_LOOP_BOMBETTE_FUSE = 0x80000000, SOUND_LOOP_BOBOMB_FUSE = 0x80000001, SOUND_LOOP_ISK_FLIP_STAIRS = 0x80000002, SOUND_LOOP_ISK_LOWER_STAIRS = 0x80000003, SOUND_LOOP_TRD_02_LOWER_STAIRS = 0x80000004, SOUND_LOOP_TRD_04_LOWER_STAIRS = 0x80000005, SOUND_LOOP_TRD_FLOWING_WATER = 0x80000006, SOUND_LOOP_TRD_RAISE_STAIRS = 0x80000007, SOUND_LOOP_CHEERING = 0x80000008, SOUND_LOOP_IWA10_FLOW1 = 0x80000009, SOUND_LOOP_IWA_UNUSED_FLOW3 = 0x8000000A, // #unused SOUND_LOOP_IWA00_FLOW3 = 0x8000000B, SOUND_LOOP_IWA00_FLOW2 = 0x8000000C, SOUND_LOOP_IWA01_FLOW1 = 0x8000000D, SOUND_LOOP_IWA01_FLOW2 = 0x8000000E, SOUND_LOOP_OBK_LOWER_CHAIN = 0x8000000F, SOUND_LOOP_MOVE_STATUE = 0x80000010, SOUND_LOOP_SENTINEL_ALARM = 0x80000011, SOUND_LOOP_QUIZ_TICKING = 0x80000012, // #unused SOUND_LOOP_AUDIENCE_MURMUR = 0x80000013, // #unused SOUND_LOOP_TOYBOX_TRAIN_GEAR = 0x80000014, // #unused SOUND_LOOP_OMO_SLOT_MACHINE = 0x80000015, SOUND_LOOP_OMO_ROTATING_WHEEL = 0x80000016, SOUND_LOOP_JAN_BEACH_WAVES = 0x80000017, SOUND_LOOP_MOVE_LARGE_STATUE = 0x80000018, SOUND_LOOP_ZIPLINE_RIDE = 0x80000019, SOUND_LOOP_ZIPLINE_RETURN = 0x8000001A, SOUND_LOOP_TROMP_ROLL = 0x8000001B, SOUND_LOOP_JAN_SMALL_GEYSER = 0x8000001C, SOUND_LOOP_JAN_LARGE_GEYSER = 0x8000001D, SOUND_LOOP_JAN_CONSTRUCTION = 0x8000001E, SOUND_LOOP_NOTHING_1F = 0x8000001F, // #unused #nodata SOUND_LOOP_NOTHING_20 = 0x80000020, // #unused #nodata SOUND_LOOP_FLO_WATER_FLOW_1 = 0x80000021, SOUND_LOOP_FLO_WATER_FLOW_2 = 0x80000022, SOUND_LOOP_BUBBLE_DRIFT = 0x80000023, SOUND_LOOP_FLO_RELEASE_FOUNTAIN = 0x80000024, SOUND_LOOP_PUFF_PUFF_MACHINE = 0x80000025, SOUND_LOOP_NOTHING_26 = 0x80000026, // #unused #nodata SOUND_LOOP_TIK01_WATER = 0x80000027, SOUND_LOOP_TIK02_WATER = 0x80000028, SOUND_LOOP_TIK02_FLOW2 = 0x80000029, SOUND_LOOP_TIK02_FLOW3 = 0x8000002A, SOUND_LOOP_TIK03_WATER = 0x8000002B, SOUND_LOOP_TIK03_FLOW1 = 0x8000002C, SOUND_LOOP_TIK05_WATER = 0x8000002D, SOUND_LOOP_TIK05_FLOW1 = 0x8000002E, SOUND_LOOP_TIK06_WATER = 0x8000002F, SOUND_LOOP_TIK06_FLOW2 = 0x80000030, SOUND_LOOP_TIK06_FLOW3 = 0x80000031, SOUND_LOOP_TIK06_FLOW4 = 0x80000032, SOUND_LOOP_TIK08_WATER = 0x80000033, SOUND_LOOP_TIK08_FLOW1 = 0x80000034, SOUND_LOOP_TIK09_WATER = 0x80000035, SOUND_LOOP_TIK09_FLOW2 = 0x80000036, SOUND_LOOP_TIK09_FLOW4 = 0x80000037, SOUND_LOOP_TIK09_FLOW3 = 0x80000038, SOUND_LOOP_TIK10_WATER = 0x80000039, SOUND_LOOP_TIK_UNUSED1_WATER = 0x8000003A, // #unused SOUND_LOOP_TIK_UNUSED2_WATER = 0x8000003B, // #unused SOUND_LOOP_TIK_UNUSED3_WATER = 0x8000003C, // #unused SOUND_LOOP_TIK_UNUSED3_FLOW4 = 0x8000003D, // #unused SOUND_LOOP_TIK_UNUSED3_FLOW3 = 0x8000003E, // #unused SOUND_LOOP_TIK_UNUSED3_FLOW2 = 0x8000003F, // #unused SOUND_LOOP_SAM_STAIRS_RISE = 0x80000040, SOUND_LOOP_CHARGE_METER = 0x80000041, SOUND_LOOP_CRYSTAL_BALL_GLOW = 0x80000042, SOUND_LOOP_TIK18_WATER = 0x80000043, SOUND_LOOP_TIK19_WATER = 0x80000044, SOUND_LOOP_TIK19_FLOW3 = 0x80000045, SOUND_LOOP_TIK19_FLOW4 = 0x80000046, SOUND_LOOP_TIK20_WATER = 0x80000047, SOUND_LOOP_TIK23_WATER = 0x80000048, SOUND_LOOP_TIK24_WATER = 0x80000049, SOUND_LOOP_WINDMILL_EXT = 0x8000004A, SOUND_LOOP_WINDMILL_GEARS = 0x8000004B, SOUND_LOOP_SHY_GUY_CROWD_1 = 0x8000004C, SOUND_LOOP_SHY_GUY_CROWD_2 = 0x8000004D, SOUND_LOOP_FLIGHT = 0x8000004E, // #unused SOUND_LOOP_WHALE_GEYSER = 0x8000004F, SOUND_LOOP_FLO_FILL_WATER_POOL = 0x80000050, SOUND_LOOP_KPA_CHAIN_DRIVE = 0x80000051, SOUND_LOOP_KPA_FILL_WATER = 0x80000052, SOUND_LOOP_KPA_DRAIN_WATER = 0x80000053, SOUND_LOOP_KPA_FLIP_BRIDGE_PANEL = 0x80000054, // #unused SOUND_LOOP_JR_TROOPA_SWIM = 0x80000055, SOUND_LOOP_KKJ_RUMBLING = 0x80000056, SOUND_LOOP_OSR_RUMBLING = 0x80000057, SOUND_LOOP_MAC_HARBOR_WATER = 0x80000058, SOUND_LOOP_OSR_FOUNTAIN_INTACT = 0x80000059, SOUND_LOOP_OSR_FOUNTAIN_BROKEN = 0x8000005A, SOUND_LOOP_NOK_WATER = 0x8000005B, SOUND_LOOP_TRD_WATER_EXT = 0x8000005C, SOUND_LOOP_DGB_COLLAPSE = 0x8000005D, SOUND_LOOP_SBK_RUINS_RISING = 0x8000005E, SOUND_LOOP_SBK_RUINS_WHIRLWIND = 0x8000005F, SOUND_LOOP_SBK_RUINS_RISING_DISTANT = 0x80000060, SOUND_LOOP_SBK_OASIS_WATER = 0x80000061, SOUND_LOOP_62 = 0x80000062, // unused, no data SOUND_LOOP_STAR_SANCTUARY_FAR = 0x80000063, SOUND_LOOP_STAR_SANCTUARY_NEAR = 0x80000064, SOUND_LOOP_STAR_SANCTUARY_INSIDE = 0x80000065, SOUND_LOOP_BOWSER_PROPELLER = 0x80000066, SOUND_LOOP_STAR_ORB_RISING = 0x80000067, SOUND_LOOP_USE_STAR_BEAM = 0x80000068, SOUND_LOOP_USE_PEACH_BEAM = 0x80000069, SOUND_LOOP_SPINNING_FLOWER = 0x8000006A, // doesn't loop SOUND_LOOP_RUMBLE = 0x8000006B, SOUND_LOOP_FIGHTING = 0x8000006C, SOUND_LOOP_KPA_ARENA_TURN_ON = 0x8000006D, // unused SOUND_LOOP_KPA_ARENA_ACTIVE = 0x8000006E, // unused // exit doors SOUND_DOOR_OPEN = 0x90000000, SOUND_DOOR_CLOSE = 0x90000001, // room doors SOUND_ROOM_DOOR_OPEN = 0xA0000000, SOUND_ROOM_DOOR_CLOSE = 0xA0000001, // alternating sounds SOUND_SEQ_FIRE_BAR_0 = 0xB0000000, SOUND_SEQ_FIRE_BAR_1 = 0xB0000001, SOUND_SEQ_FIRE_BAR_2 = 0xB0000002, SOUND_SEQ_FIRE_BAR_3 = 0xB0000003, SOUND_SEQ_FIRE_BAR_4 = 0xB0000004, SOUND_SEQ_FIRE_BAR_5 = 0xB0000005, SOUND_SEQ_FIRE_BAR_6 = 0xB0000006, SOUND_SEQ_FIRE_BAR_7 = 0xB0000007, SOUND_SEQ_FIRE_BAR_8 = 0xB0000008, SOUND_SEQ_FIRE_BAR_9 = 0xB0000009, SOUND_SEQ_FIRE_BAR_DEAD = 0xB000000A, SOUND_SEQ_AI_ALERT = 0xB000000B, SOUND_SEQ_SNORE_INHALE = 0xB000000C, SOUND_SEQ_SNORE_EXHALE = 0xB000000D, SOUND_SEQ_SNAP_AWAKE = 0xB000000E, SOUND_SEQ_BOO_VANISH = 0xB000000F, SOUND_SEQ_BOO_APPEAR = 0xB0000010, SOUND_SEQ_WINDOW_OPEN = 0xB0000011, SOUND_SEQ_WINDOW_CLOSE = 0xB0000012, SOUND_SEQ_RAVEN_LEAP = 0xB0000013, SOUND_SEQ_RAVEN_FALL = 0xB0000014, SOUND_SEQ_SHOOTING_STAR_FALL = 0xB0000015, SOUND_SEQ_SHOOTING_STAR_BOUNCE = 0xB0000016, SOUND_SEQ_FUZZY_HOP = 0xB0000017, SOUND_SEQ_BULLET_BILL_EXPLODE = 0xB0000018, SOUND_SEQ_LUIGI_STEP = 0xB0000019, SOUND_SEQ_TRAIN_CHUG = 0xB000001A, SOUND_SEQ_FINALE_BRIDGE_COLLAPSE = 0xB000001B, SOUND_SEQ_FINALE_EXPLOSION = 0xB000001C, SOUND_SEQ_SHUFFLE_CARD = 0xB000001D, SOUND_SEQ_STAR_SPIRIT_APPEAR = 0xB000001E, SOUND_SEQ_STAR_SPIRIT_CAST = 0xB000001F, SOUND_SEQ_UNUSED_EXPLODE = 0xB0000020, SOUND_SEQ_SHY_GUY_STEP = 0xB0000021, }; enum SoundSpatializationFlags { SOUND_SPACE_MODE_MASK = 0x0000FFFF, SOUND_SPACE_DEFAULT = 0x00000000, SOUND_SPACE_WITH_DEPTH = 0x00000001, SOUND_SPACE_FULL = 0x00000002, SOUND_SPACE_PARAMS_MASK = 0xFFFF0000, SOUND_PARAM_MUTE = 0x00010000, SOUND_PARAM_CLIP_OFFSCREEN_ANY = 0x00020000, SOUND_PARAM_CLIP_OFFSCREEN_X = 0x00040000, SOUND_PARAM_CLIP_OFFSCREEN_Y = 0x00080000, SOUND_PARAM_MOST_QUIET = 0x00100000, SOUND_PARAM_MORE_QUIET = 0x00200000, SOUND_PARAM_QUIET = 0x00400000, }; enum SoundTriggers { SOUND_TRIGGER_CHANGE_SOUND = 1, SOUND_TRIGGER_CHANGE_VOLUME = 2, }; typedef enum AuResult { AU_RESULT_OK = 0, AU_ERROR_1 = 1, AU_AMBIENCE_ERROR_1 = 1, AU_ERROR_SONG_NOT_PLAYING = 2, // player not found for songName AU_AMBIENCE_ERROR_2 = 2, AU_ERROR_NULL_SONG_NAME = 3, // songName is NULL AU_AMBIENCE_ERROR_3 = 3, AU_ERROR_INVALID_SONG_DURATION = 4, // duration out of bounds: (250,10000) AU_ERROR_6 = 6, AU_ERROR_7 = 7, AU_ERROR_11 = 11, AU_ERROR_SBN_INDEX_OUT_OF_RANGE = 101, AU_ERROR_SBN_FORMAT_MISMATCH = 102, AU_ERROR_151 = 151, AU_ERROR_201 = 201 } AuResult; typedef enum AuFileFormat { AU_FMT_BGM = 0x10, AU_FMT_SEF = 0x20, AU_FMT_BK = 0x30, AU_FMT_PER = 0x40, AU_FMT_PRG = 0x40, AU_FMT_MSEQ = 0x40 } AuFileFormat; enum { MUSIC_PROXIMITY_FAR, MUSIC_PROXIMITY_NEAR, MUSIC_PROXIMITY_FULL }; typedef enum MusicTrackVols { TRACK_VOLS_0 = 0, TRACK_VOLS_1 = 1, TRACK_VOLS_2 = 2, TRACK_VOLS_3 = 3, TRACK_VOLS_KPA_OUTSIDE = 4, TRACK_VOLS_KPA_1 = 5, TRACK_VOLS_KPA_2 = 6, TRACK_VOLS_KPA_3 = 7 } MusicTrackVols; enum Cams { CAM_DEFAULT = 0, CAM_BATTLE = 1, CAM_TATTLE = 2, CAM_HUD = 3, }; enum CamShakeModes { CAM_SHAKE_CONSTANT_VERTICAL = 0, CAM_SHAKE_ANGULAR_HORIZONTAL = 1, CAM_SHAKE_DECAYING_VERTICAL = 2, }; // for use with SetBattleCamParam enum BasicCameraParams { CAM_PARAM_SKIP_RECALC = 1, CAM_PARAM_BOOM_LENGTH = 2, CAM_PARAM_FOV_SCALE = 3, CAM_PARAM_BOOM_PITCH = 4, CAM_PARAM_BOOM_YAW = 5, CAM_PARAM_BOOM_Y_OFFSET = 6, CAM_PARAM_UNK_7 = 7, CAM_PARAM_ZOOM_PERCENT = 8, }; #include "item_enum.h" // used for chest and give item events enum GotItemType { ITEM_TYPE_CONSUMABLE = 0, ITEM_TYPE_KEY = 1, ITEM_TYPE_BADGE = 2, ITEM_TYPE_STAR_PIECE = 3, }; enum ItemTypeFlags { ITEM_TYPE_FLAG_WORLD_USABLE = 0x0001, ITEM_TYPE_FLAG_BATTLE_USABLE = 0x0002, ITEM_TYPE_FLAG_CONSUMABLE = 0x0004, ITEM_TYPE_FLAG_KEY = 0x0008, ITEM_TYPE_FLAG_GEAR = 0x0020, ITEM_TYPE_FLAG_BADGE = 0x0040, ITEM_TYPE_FLAG_FOOD_OR_DRINK = 0x0080, ITEM_TYPE_FLAG_USE_DRINK_ANIMATION = 0x0100, ITEM_TYPE_FLAG_ENTITY_COLLECTABLE = 0x0200, ITEM_TYPE_FLAG_ENTITY_FULLSIZE = 0x1000, }; // both items and moves use these flags to determine what type of targets are eligible // they are used during the construction of target lists and during the select target battle state enum TargetFlags { TARGET_FLAG_SELECT_ONE = 0x00000001, // player selects a single target TARGET_FLAG_2 = 0x00000002, TARGET_FLAG_GROUND = 0x00000004, // only allow targets on the ground (row = 0) TARGET_FLAG_PLAYER = 0x00000008, // allow the player as a target, prevents enemies from being targets TARGET_FLAG_NOT_HIGH = 0x00000010, // only allow targets in the first two rows (no moves use this) TARGET_FLAG_NOT_FLYING = 0x00000020, // reject targets which have ACTOR_FLAG_FLYING TARGET_FLAG_NOT_GROUND = 0x00000040, // reject targets on the ground (row = 0) TARGET_FLAG_80 = 0x00000080, // jump, headbonk, belly flop (not read) TARGET_FLAG_PARTNER = 0x00000100, // allow the partner as a target, prevents enemies from being targets TARGET_FLAG_AIRLIFT = 0x00000400, // special case for air lift, only rejects targets on the ceiling TARGET_FLAG_JUMP_LIKE = 0x00000800, // jump, headbonk, belly flop, ... and jump charge TARGET_FLAG_SMASH_LIKE = 0x00001000, // smash moves TARGET_FLAG_NOT_BEHIND = 0x00002000, // hammer, bombette body slam, kooper shell toss TARGET_FLAG_NOT_BELOW = 0x00004000, // reject all targets below other targets TARGET_FLAG_PRIMARY_ONLY = 0x00008000, // rejects all targets without ACTOR_PART_FLAG_PRIMARY_TARGET TARGET_FLAG_ALLOW_TARGET_ONLY = 0x00010000, // allow targets which have ACTOR_FLAG_TARGET_ONLY TARGET_FLAG_TATTLE = 0x00020000, // special case for tattle, only rejects targets with ACTOR_FLAG_NO_TATTLE TARGET_FLAG_NO_CEILING = 0x00040000, // rejects targets on the ceiling (those with ACTOR_FLAG_UPSIDE_DOWN) TARGET_FLAG_DIR_RIGHT = 0x00100000, // directional filter used with CountTargets (bugged, unused) TARGET_FLAG_DIR_LEFT = 0x00200000, // directional filter used with CountTargets (bugged, unused) TARGET_FLAG_DIR_BELOW = 0x00400000, // directional filter used with CountTargets (bugged, unused) TARGET_FLAG_DIR_ABOVE = 0x00800000, // directional filter used with CountTargets (bugged, unused) TARGET_FLAG_OVERRIDE = 0x80000000, // skip choosing a target }; enum ActorPartTargetFlags { ACTOR_PART_TARGET_NO_JUMP = 0x01, // prevent any jump attacks from targeting ACTOR_PART_TARGET_NO_SMASH = 0x02, // prevent any smash attacks from targeting ACTOR_PART_TARGET_NO_DAMAGE = 0x04, // exempts from damage or status infliction }; enum AmbientSounds { AMBIENT_SPOOKY = 0, AMBIENT_WIND = 1, AMBIENT_BEACH = 2, AMBIENT_JUNGLE = 3, AMBIENT_LAVA_1 = 4, AMBIENT_LAVA_2 = 5, AMBIENT_SILENCE = 6, AMBIENT_LAVA_3 = 7, AMBIENT_LAVA_4 = 8, AMBIENT_LAVA_5 = 9, AMBIENT_LAVA_6 = 10, AMBIENT_LAVA_7 = 11, AMBIENT_BIRDS = 12, AMBIENT_SEA = 13, AMBIENT_RADIO = 16, // radio songs for nok // the following 4 IDs are reserved for additional radio songs, // and no more are expected to follow after that // see: au_ambient_load }; enum EncounterOutcomes { OUTCOME_PLAYER_WON = 0, OUTCOME_PLAYER_LOST = 1, OUTCOME_PLAYER_FLED = 2, OUTCOME_ENEMY_FLED = 3, OUTCOME_SKIP = 4, }; enum MerleeSpellType { MERLEE_SPELL_NONE = 0, MERLEE_SPELL_ATK_BOOST = 1, MERLEE_SPELL_DEF_BOOST = 2, MERLEE_SPELL_EXP_BOOST = 3, MERLEE_SPELL_COIN_BOOST = 4, }; enum NpcDecorationIDs { NPC_DECORATION_NONE = 0x00000000, NPC_DECORATION_BOWSER_AURA = 0x00000001, NPC_DECORATION_SWEAT = 0x00000002, NPC_DECORATION_SEEING_STARS = 0x00000003, NPC_DECORATION_WHITE_GLOW_FRONT = 0x00000004, NPC_DECORATION_WHITE_GLOW_BEHIND = 0x00000005, NPC_DECORATION_CHARGED = 0x00000006, }; enum NpcPaletteAdjustments { NPC_PAL_ADJUST_NONE = 0, NPC_PAL_ADJUST_WATT_IDLE = 1, NPC_PAL_ADJUST_BLEND_PALETTES_UNIFORM_INTERVALS = 2, NPC_PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS = 3, NPC_PAL_ADJUST_BLEND_DOUBLE_PALETTES = 4, }; enum SpeechFlags { SPEECH_FLAG_10 = 0x010, SPEECH_FLAG_HAS_OFFSET = 0x100, SPEECH_FLAG_200 = 0x200, // different facing orientations for speaker and listener SPEECH_ORIENTATION_MASK = 0xF, SPEECH_FACE_SPEAKER_ONLY = 4, SPEECH_FACE_AWAY_FROM = 3, SPEECH_FACE_LIKE_SPEAKER = 2, SPEECH_FACE_LIKE_LISTENER = 1, SPEECH_FACE_EACH_OTHER = 0, }; typedef enum HitResult { HIT_RESULT_BACKFIRE = -1, HIT_RESULT_HIT = 0, HIT_RESULT_NICE = 1, HIT_RESULT_NO_DAMAGE = 2, HIT_RESULT_NICE_NO_DAMAGE = 3, HIT_RESULT_LANDED_ON_SPIKE = 4, HIT_RESULT_LUCKY = 5, HIT_RESULT_MISS = 6, HIT_RESULT_HIT_STATIC = 7, HIT_RESULT_IMMUNE = 8, HIT_RESULT_10 = 10, } HitResult; typedef enum ActionResult { ACTION_RESULT_NONE = 127, ACTION_RESULT_METER_BELOW_HALF = -4, // certain mashing comamnds fail with this value ACTION_RESULT_METER_NOT_ENOUGH = -2, // certain mashing comamnds fail with this value ACTION_RESULT_EARLY = -1, // timing commands too early fail with this value ACTION_RESULT_FAIL = 0, // simple failure to complete action command ACTION_RESULT_SUCCESS = 1, } ActionResult; typedef enum BlockResult { BLOCK_RESULT_NONE = 127, BLOCK_RESULT_EARLY = -1, BLOCK_RESULT_FAIL = 0, BLOCK_RESULT_SUCCESS = 1, } BlockResult; enum ActionRatings { ACTION_RATING_NICE = 0, ///< sets nice hits = 1 ACTION_RATING_MISS = 1, ///< clears nice hits ACTION_RATING_LUCKY = 2, ///< clears nice hits ACTION_RATING_SUPER = 3, ///< sets nice hits = 2 ACTION_RATING_NICE_NO_COMBO = 4, ///< clears nice hits ACTION_RATING_NICE_SUPER_COMBO = 5 ///< 'Nice' but becomes 'Super' if nice hits > 2 }; enum DamageSources { DMG_SRC_DEFAULT = 0, DMG_SRC_LEECH = 1, // used by Baby Blooper, but not Fuzzy DMG_SRC_SPIN_SMASH = 2, DMG_SRC_D_DOWN_POUND = 3, DMG_SRC_D_DOWN_JUMP = 4, DMG_SRC_TUTORIAL_GOOMBARIO = 5, DMG_SRC_SHELL_TOSS = 6, DMG_SRC_POWER_SHELL = 7, DMG_SRC_DIZZY_SHELL = 8, DMG_SRC_FIRE_SHELL = 9, DMG_SRC_NEXT_SLAP_LEFT = 10, DMG_SRC_NEXT_SLAP_RIGHT = 11, DMG_SRC_LAST_SLAP_LEFT = 12, DMG_SRC_LAST_SLAP_RIGHT = 13, DMG_SRC_NEXT_FAN_SMACK_LEFT = 14, DMG_SRC_NEXT_FAN_SMACK_RIGHT = 15, DMG_SRC_LAST_FAN_SMACK_LEFT = 16, DMG_SRC_LAST_FAN_SMACK_RIGHT = 17, DMG_SRC_SPOOK = 18, DMG_SRC_ELECTRO_DASH = 19, DMG_SRC_HURRICANE = 20, DMG_SRC_FRIGHT_JAR = 21, DMG_SRC_POW_BLOCK = 22, DMG_SRC_TUBBA_SMASH = 23, DMG_SRC_CRUSH = 24, DMG_SRC_CRUSH_PARTNER = 25, DMG_SRC_INK_BLAST = 26, }; enum PartnerRank { PARTNER_RANK_NORMAL = 0, PARTNER_RANK_SUPER = 1, PARTNER_RANK_ULTRA = 2, }; enum Iters { ITER_FIRST = -1, ITER_NEXT = 0, ITER_PREV = 1, ITER_LAST = 10, // return values ITER_HAS_MORE = 0, ITER_NO_MORE = -1, }; enum ActorSoundIDs { ACTOR_SOUND_WALK = 0x00000000, ACTOR_SOUND_FLY = 0x00000001, ACTOR_SOUND_JUMP = 0x00000002, ACTOR_SOUND_HURT = 0x00000003, ACTOR_SOUND_WALK_INCREMENT = 0x00000004, ACTOR_SOUND_FLY_INCREMENT = 0x00000005, }; enum ActorDecorationIDs { ACTOR_DECORATION_NONE = 0x00000000, ACTOR_DECORATION_GOLDEN_FLAMES = 0x00000001, ACTOR_DECORATION_SWEAT = 0x00000002, ACTOR_DECORATION_SEEING_STARS = 0x00000003, ACTOR_DECORATION_RED_FLAMES = 0x00000004, ACTOR_DECORATION_GREY_SMOKE_TRAIL = 0x00000005, ACTOR_DECORATION_FIRE_SMOKE_TRAIL = 0x00000006, ACTOR_DECORATION_WHIRLWIND = 0x00000007, ACTOR_DECORATION_STEAM_EMITTER = 0x00000008, ACTOR_DECORATION_SPARKLES = 0x00000009, ACTOR_DECORATION_BOWSER_AURA = 0x0000000A, ACTOR_DECORATION_RADIAL_STAR_EMITTER = 0x0000000B, }; enum Phases { PHASE_EXECUTE_ACTION = 0, PHASE_FIRST_STRIKE = 1, PHASE_RUN_AWAY_START = 3, PHASE_DEATH = 4, PHASE_CELEBRATE = 5, PHASE_USE_DEFEND = 6, PHASE_RUN_AWAY_FAIL = 7, PHASE_USE_LIFE_SHROOM = 8, PHASE_PLAYER_BEGIN = 10, PHASE_ENEMY_END = 11, PHASE_ENEMY_BEGIN = 12, PHASE_PLAYER_END = 13, PHASE_MERLEE_ATTACK_BONUS = 20, PHASE_MERLEE_DEFENSE_BONUS = 21, PHASE_MERLEE_EXP_BONUS = 22, PHASE_PLAYER_HAPPY = 30, }; enum ActorClasses { ACTOR_CLASS_PLAYER = 0x000, ACTOR_CLASS_PARTNER = 0x100, ACTOR_CLASS_ENEMY = 0x200, ACTOR_CLASS_MASK = 0x700, }; enum ActorIDs { ACTOR_SELF = 0xFFFFFF81, ACTOR_PLAYER = 0x00000000, ACTOR_PARTNER = 0x00000100, ACTOR_ENEMY0 = 0x00000200, ACTOR_ENEMY1 = 0x00000201, ACTOR_ENEMY2 = 0x00000202, ACTOR_ENEMY3 = 0x00000203, ACTOR_ENEMY4 = 0x00000204, ACTOR_ENEMY5 = 0x00000205, ACTOR_ENEMY6 = 0x00000206, ACTOR_ENEMY7 = 0x00000207, ACTOR_ENEMY8 = 0x00000208, ACTOR_ENEMY9 = 0x00000209, ACTOR_ENEMY10 = 0x0000020A, ACTOR_ENEMY11 = 0x0000020B, ACTOR_ENEMY12 = 0x0000020C, ACTOR_ENEMY13 = 0x0000020D, ACTOR_ENEMY14 = 0x0000020E, ACTOR_ENEMY15 = 0x0000020F, ACTOR_ENEMY16 = 0x00000210, ACTOR_ENEMY17 = 0x00000211, ACTOR_ENEMY18 = 0x00000212, ACTOR_ENEMY19 = 0x00000213, ACTOR_ENEMY20 = 0x00000214, ACTOR_ENEMY21 = 0x00000215, ACTOR_ENEMY22 = 0x00000216, ACTOR_ENEMY23 = 0x00000217, }; enum Elements { ELEMENT_END = 0x00000000, ELEMENT_NORMAL = 0x00000001, ELEMENT_FIRE = 0x00000002, ELEMENT_WATER = 0x00000003, ELEMENT_ICE = 0x00000004, ELEMENT_MYSTERY = 0x00000005, ELEMENT_MAGIC = 0x00000007, ELEMENT_SMASH = 0x00000008, ELEMENT_JUMP = 0x00000009, ELEMENT_COSMIC = 0x0000000A, ELEMENT_BLAST = 0x0000000B, ELEMENT_SHOCK = 0x0000000C, ELEMENT_QUAKE = 0x0000000D, ELEMENT_THROW = 0x0000000F, }; enum Events { EVENT_HIT_COMBO = 0x00000009, EVENT_HIT = 0x0000000A, EVENT_SPIN_SMASH_HIT = 0x0000000B, EVENT_FALL_TRIGGER = 0x0000000C, EVENT_FLIP_TRIGGER = 0x0000000D, EVENT_BURN_HIT = 0x0000000E, EVENT_15 = 0x0000000F, // FLAME_HIT? EVENT_SPIN_SMASH_LAUNCH_HIT = 0x00000011, EVENT_SHELL_CRACK_HIT = 0x00000012, EVENT_STAR_BEAM = 0x00000013, EVENT_PEACH_BEAM = 0x00000014, EVENT_POWER_BOUNCE_HIT = 0x00000015, EVENT_BLOW_AWAY = 0x00000016, EVENT_ZERO_DAMAGE = 0x00000017, EVENT_18 = 0x00000018, EVENT_IMMUNE = 0x00000019, EVENT_BLOCK = 0x0000001A, EVENT_SPIKE_TAUNT = 0x0000001B, EVENT_BURN_TAUNT = 0x0000001C, EVENT_INVUNERABLE_TAUNT = 0x0000001D, EVENT_1E = 0x0000001E, EVENT_AIR_LIFT_FAILED = 0x0000001F, EVENT_DEATH = 0x00000020, EVENT_SPIN_SMASH_DEATH = 0x00000021, EVENT_EXPLODE_TRIGGER = 0x00000022, EVENT_23 = 0x00000023, EVENT_BURN_DEATH = 0x00000024, EVENT_SPIN_SMASH_LAUNCH_DEATH = 0x00000025, EVENT_SHOCK_DEATH = 0x00000026, EVENT_SPIKE_DEATH = 0x00000027, EVENT_POWER_BOUNCE_DEATH = 0x00000028, EVENT_FIRE_DEATH = 0x00000029, // burn death copy? EVENT_SPIKE_CONTACT = 0x0000002A, EVENT_BURN_CONTACT = 0x0000002C, EVENT_SHOCK_HIT = 0x0000002F, EVENT_30 = 0x00000030, EVENT_RECOVER_STATUS = 0x00000031, EVENT_32 = 0x00000032, EVENT_33 = 0x00000033, EVENT_RECOVER_FROM_KO = 0x00000034, EVENT_END_FIRST_STRIKE = 0x00000035, EVENT_LUCKY = 0x00000037, EVENT_BEGIN_FIRST_STRIKE = 0x00000038, EVENT_SCARE_AWAY = 0x00000039, EVENT_BEGIN_AIR_LIFT = 0x0000003A, EVENT_UP_AND_AWAY = 0x0000003D, EVENT_PUT_PARTNER_AWAY = 0x0000003E, EVENT_RECEIVE_BUFF = 0x0000003F, EVENT_LIFE_SHROOM_PROC = 0x00000040, EVENT_REVIVE = 0x00000041, EVENT_66 = 0x00000042, }; enum HitSounds { HIT_SOUND_MISS = 0, HIT_SOUND_BONES = 1, HIT_SOUND_NORMAL = 2, HIT_SOUND_FIRE = 3, HIT_SOUND_ICE = 4, HIT_SOUND_SHOCK = 5, }; // Player.debuff // Partner.debuff enum StatusKeys { STATUS_END = 0x00000000, STATUS_KEY_NORMAL = 0x00000001, STATUS_KEY_DEFAULT = 0x00000002, STATUS_KEY_FEAR = 0x00000003, STATUS_KEY_DIZZY = 0x00000004, STATUS_KEY_PARALYZE = 0x00000005, STATUS_KEY_SLEEP = 0x00000006, STATUS_KEY_FROZEN = 0x00000007, STATUS_KEY_STOP = 0x00000008, STATUS_KEY_POISON = 0x00000009, STATUS_KEY_SHRINK = 0x0000000A, STATUS_KEY_STATIC = 0x0000000B, STATUS_KEY_STONE = 0x0000000C, STATUS_KEY_DAZE = 0x0000000D, STATUS_KEY_TRANSPARENT = 0x0000000E, STATUS_KEY_KO = 0x0000000F, STATUS_KEY_BERSERK = 0x00000010, STATUS_KEY_11 = 0x00000011, STATUS_KEY_INACTIVE = 0x00000012, STATUS_KEY_INACTIVE_BERSERK = 0x00000013, STATUS_KEY_14 = 0x00000014, // probably STATUS_KEY_INACTIVE_FROZEN STATUS_KEY_INACTIVE_SLEEP = 0x00000015, STATUS_KEY_INACTIVE_WEARY = 0x00000016, STATUS_KEY_17 = 0x00000017, STATUS_KEY_INACTIVE_DIZZY = 0x00000018, STATUS_KEY_HUSTLE = 0x00000019, STATUS_KEY_DANGER = 0x0000001A, STATUS_KEY_1B = 0x0000001B, STATUS_KEY_THINKING = 0x0000001C, STATUS_KEY_WEARY = 0x0000001D, STATUS_KEY_1E = 0x0000001E, STATUS_TURN_MOD_DEFAULT = 0x0000001F, STATUS_TURN_MOD_SLEEP = 0x00000020, STATUS_TURN_MOD_STATIC = 0x00000021, STATUS_TURN_MOD_FROZEN = 0x00000022, STATUS_TURN_MOD_FEAR = 0x00000023, STATUS_TURN_MOD_DIZZY = 0x00000024, STATUS_TURN_MOD_POISON = 0x00000025, STATUS_TURN_MOD_PARALYZE = 0x00000026, STATUS_TURN_MOD_SHRINK = 0x00000027, STATUS_TURN_MOD_STONE = 0x00000028, STATUS_TURN_MOD_STOP = 0x00000029, }; enum ActorPaletteAdjustments { ACTOR_PAL_ADJUST_NONE = 0, ACTOR_PAL_ADJUST_SLEEP = 3, ACTOR_PAL_ADJUST_STATIC = 4, ACTOR_PAL_ADJUST_FEAR = 5, // darker ACTOR_PAL_ADJUST_POISON = 6, ACTOR_PAL_ADJUST_PARALYZE = 7, ACTOR_PAL_ADJUST_BERSERK = 8, ACTOR_PAL_ADJUST_WATT_IDLE = 9, ACTOR_PAL_ADJUST_WATT_ATTACK = 10, ACTOR_PAL_ADJUST_PLAYER_DEBUFF = 12, ACTOR_PAL_ADJUST_PLAYER_POISON = 13, ACTOR_PAL_ADJUST_BLEND_PALETTES_UNIFORM_INTERVALS = 14, ACTOR_PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS = 15, ACTOR_PAL_ADJUST_BLEND_PALSETS = 16, }; enum GlowPaletteModes { GLOW_PAL_OFF = 0, GLOW_PAL_ON = 11, }; enum ActorPartFlashState { FLASH_MODE_LIGHT = 0, FLASH_MODE_MEDIUM = 1, FLASH_MODE_HEAVY = 2, FLASH_MODE_DISPOSE = 3, }; enum FlashPaletteModes { FLASH_PAL_OFF = 0, FLASH_PAL_ON = -1, }; enum DoorSwing { DOOR_SWING_IN = -1, DOOR_SWING_OUT = 1, }; enum VisibilityGroup { VIS_GROUP_0 = 0, VIS_GROUP_1 = 1, VIS_GROUP_2 = 2, VIS_GROUP_3 = 3, VIS_GROUP_4 = 4, VIS_GROUP_5 = 5, VIS_GROUP_6 = 6, VIS_GROUP_7 = 7, }; enum ItemSpawnModes { ITEM_SPAWN_MODE_KEY = 0x00000000, ITEM_SPAWN_MODE_DECORATION = 0x00000001, ITEM_SPAWN_MODE_INVISIBLE = 0x00000002, ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS = 0x00000003, ITEM_SPAWN_MODE_BATTLE_REWARD = 0x00000004, ITEM_SPAWN_MODE_TOSS_NEVER_VANISH = 0x00000005, ITEM_SPAWN_MODE_TOSS = 0x00000006, ITEM_SPAWN_MODE_TOSS_SPAWN_ONCE = 0x00000007, ITEM_SPAWN_MODE_TOSS_SPAWN_ONCE_NEVER_VANISH = 0x00000008, ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS_NEVER_VANISH = 0x00000009, ITEM_SPAWN_MODE_ITEM_BLOCK_ITEM = 0x0000000A, ITEM_SPAWN_MODE_ITEM_BLOCK_BADGE = 0x0000000B, ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS = 0x0000000C, ITEM_SPAWN_MODE_FALL_NEVER_VANISH = 0x0000000D, ITEM_SPAWN_MODE_FALL = 0x0000000E, ITEM_SPAWN_MODE_FALL_SPAWN_ONCE = 0x0000000F, ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS = 0x00000010, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH = 0x00000011, ITEM_SPAWN_MODE_FIXED = 0x00000012, ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS_NEVER_VANISH = 0x00000013, ITEM_SPAWN_MODE_ITEM_BLOCK_SPAWN_ALWAYS = 0x00000014, ITEM_SPAWN_MODE_ITEM_BLOCK_COIN = 0x00000015, ITEM_SPAWN_MODE_TOSS_HIGHER_NEVER_VANISH = 0x00000016, ITEM_SPAWN_MODE_TOSS_FADE1 = 0x00000017, ITEM_SPAWN_MODE_TOSS_FADE2 = 0x00000018, ITEM_SPAWN_MODE_TOSS_FADE3 = 0x00000019, ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS_SMALL = 0x0000001A, ITEM_SPAWN_MODE_UNKNOWN_1B = 0x0000001B, ITEM_SPAWN_AT_PLAYER = 0x0000001C, }; enum Locations { LOCATION_TOAD_TOWN = 0x01, LOCATION_TOAD_TOWN_TUNNELS = 0x02, LOCATION_KOOPA_BROS_FORTRESS = 0x07, LOCATION_MT_RUGGED = 0x08, LOCATION_DRY_DRY_OUTPOST = 0x09, LOCATION_DRY_DRY_DESERT = 0x0A, LOCATION_DRY_DRY_RUINS = 0x0B, LOCATION_FOREVER_FOREST = 0x0C, LOCATION_BOOS_MANSION = 0x0D, LOCATION_TUBBAS_MANOR = 0x0F, LOCATION_SHY_GUYS_TOYBOX = 0x10, LOCATION_MT_LAVALAVA = 0x12, LOCATION_CRYSTAL_PALACE = 0x15, LOCATION_BOWSERS_CASTLE = 0x16, LOCATION_TESTING = 0x17, LOCATION_NONE = 0x18, LOCATION_PEACH_CASTLE_GROUNDS = 0x19, LOCATION_PEACHS_CASTLE = 0x1A, LOCATION_SHOOTING_STAR_SUMMIT = 0x1B, LOCATION_STAR_WAY = 0x1C, LOCATION_STAR_HAVEN = 0x1D, LOCATION_GOOMBA_VILLAGE = 0x1E, LOCATION_GOOMBA_ROAD = 0x1F, LOCATION_PLEASANT_PATH = 0x20, LOCATION_KOOPA_VILLAGE = 0x21, LOCATION_GUSTY_GULCH = 0x22, LOCATION_WINDY_MILL = 0x23, LOCATION_JADE_JUNGLE = 0x24, LOCATION_YOSHIS_VILLAGE = 0x25, LOCATION_FLOWER_FIELDS = 0x26, LOCATION_CLOUDY_CLIMB = 0x27, LOCATION_SHIVER_CITY = 0x28, LOCATION_SHIVER_SNOWFIELD = 0x29, LOCATION_STARBORN_VALLEY = 0x2A, LOCATION_SHIVER_MOUNTAIN = 0x2B, LOCATION_MARIOS_HOUSE = 0x2C, }; typedef enum ScreenTransition { TRANSITION_STANDARD = 0, // fade to/from black TRANSITION_TOY_TRAIN = 1, // similar to TRANSITION_TOY_TRAIN, but fade applies to whole screen TRANSITION_END_DEMO_SCENE_BLACK = 2, // rapidly fade to black TRANSITION_END_DEMO_SCENE_WHITE = 3, // slow fade to white -> rapid fade in from white TRANSITION_BEGIN_OR_END_GAME = 4, // slow fade to/from black TRANSITION_OUTRO_END_SCENE = 5, // slow fade to/from black TRANSITION_BEGIN_OR_END_CHAPTER = 6, // white fade in/out; standard transition for entering kmr_22 (Begin Chapter) or leaving kmr_23 (End of Chapter) TRANSITION_SLOW_FADE_TO_WHITE = 7, // slow fade to/from white TRANSITION_ENTER_WORLD = 8, // black Mario stencil in/out TRANSITION_MARIO_WHITE = 9, // white Mario stencil -> white fade in; used in post ch5 scene, fading to Save and Continue? screen TRANSITION_MARIO_BLACK = 10, // black Mario stencil -> black fade in; used after Goombaria finds Mario and he wakes up in the inn TRANSITION_AFTER_SAVE_PROMPT = 11, // white fade out -> white star stencil TRANSITION_END_PEACH_INTERLUDE = 12, // white star stencil -> white Mario stencil TRANSITION_PEACH_CAPTURED = 13, // black star stencil -> black fade in TRANSITION_GET_STAR_CARD = 14, // used for entering kmr_23 (Get Star Card / End Chapter) TRANSITION_END_CHAPTER_INTERRUPTED = 15, // white fade out -> white Mario stencil; used in kzn_19 for Ch5 TRANSITION_SLOW_BLUR_MOTION = 16, // unused? } ScreenTransition; enum ScreenLayer { SCREEN_LAYER_FRONT = 0, SCREEN_LAYER_BACK = 1, }; typedef enum ScreenOverlayType { OVERLAY_NONE = -1, OVERLAY_SCREEN_COLOR = 0, OVERLAY_VIEWPORT_COLOR = 1, OVERLAY_TYPE_2 = 2, OVERLAY_VIEWPORT_SPOTLIGHT = 3, OVERLAY_VIEWPORT_MARIO = 4, OVERLAY_VIEWPORT_STAR = 5, OVERLAY_SCREEN_SPOTLIGHT = 6, OVERLAY_SCREEN_MARIO = 7, OVERLAY_SCREEN_STAR = 8, OVERLAY_TYPE_9 = 9, OVERLAY_START_BATTLE = 10, OVERLAY_WORLD_DARKNESS = 11, OVERLAY_BLUR = 12, OVERLAY_BATTLE_DARKNESS = 13, OVERLAY_INTRO_1 = 14, OVERLAY_INTRO_2 = 15, } ScreenOverlayType; enum DoorSounds { DOOR_SOUNDS_BASIC = 0, DOOR_SOUNDS_METAL = 1, DOOR_SOUNDS_LARGE = 2, DOOR_SOUNDS_CREAKY = 3, DOOR_SOUNDS_GATE = 4, DOOR_SOUNDS_DOOR = 5, DOOR_SOUNDS_UNUSED = 6, }; #include "sprite/sprite_shading_profiles.h" enum LightSourceFlags { LIGHT_SOURCE_DISABLED = 0, LIGHT_SOURCE_ENABLED = 1, LIGHT_SOURCE_LINEAR_FALLOFF = 4, LIGHT_SOURCE_QUADRATIC_FALLOFF = 8, }; enum ActionStates { ACTION_STATE_IDLE = 0x00000000, ACTION_STATE_WALK = 0x00000001, ACTION_STATE_RUN = 0x00000002, // all states above are considered locomotion states ACTION_STATE_JUMP = 0x00000003, ACTION_STATE_BOUNCE = 0x00000004, ///< Used with Kooper ACTION_STATE_HOP = 0x00000005, ///< Released A before apex of jump ACTION_STATE_LAUNCH = 0x00000006, ///< Shy Guy Toybox jack-in-the-boxes ACTION_STATE_LANDING_ON_SWITCH = 0x00000007, ///< Small red/blue ! switches ACTION_STATE_FALLING = 0x00000008, ACTION_STATE_STEP_DOWN = 0x00000009, ACTION_STATE_LAND = 0x0000000A, ACTION_STATE_STEP_DOWN_LAND = 0x0000000B, // Following action states prohibit movement (see set_action_state()) ACTION_STATE_TALK = 0x0000000C, ///< Reading signs doesn't count ACTION_STATE_SPIN_JUMP = 0x0000000D, ACTION_STATE_SPIN_POUND = 0x0000000E, ACTION_STATE_TORNADO_JUMP = 0x0000000F, ACTION_STATE_TORNADO_POUND = 0x00000010, ACTION_STATE_SLIDING = 0x00000011, ACTION_STATE_HAMMER = 0x00000012, ACTION_STATE_13 = 0x00000013, ACTION_STATE_PUSHING_BLOCK = 0x00000014, ACTION_STATE_HIT_FIRE = 0x00000015, ///< Causes Mario to fly up and take damage. Used for fire bars. ACTION_STATE_KNOCKBACK = 0x00000016, // some kind of knockback, does no damage ACTION_STATE_HIT_LAVA = 0x00000017, ACTION_STATE_STEP_UP_PEACH = 0x00000018, ACTION_STATE_USE_SNEAKY_PARASOL = 0x00000019, ACTION_STATE_SPIN = 0x0000001A, ACTION_STATE_ENEMY_FIRST_STRIKE = 0x0000001B, ACTION_STATE_RAISE_ARMS = 0x0000001C, ACTION_STATE_USE_SPINNING_FLOWER = 0x0000001D, ACTION_STATE_USE_MUNCHLESIA = 0x0000001E, ///< Set by the jan_09 squishy flower entity; throws the player in the air. ACTION_STATE_USE_TWEESTER = 0x0000001F, ACTION_STATE_BOUNCE_OFF_SWITCH = 0x00000020, ///< Small red/blue ! switches ACTION_STATE_RIDE = 0x00000021, ACTION_STATE_STEP_UP = 0x00000022, ACTION_STATE_23 = 0x00000023, ACTION_STATE_24 = 0x00000024, ACTION_STATE_INVALID_25 = 0x00000025, ACTION_STATE_USE_SPRING = 0x00000026, }; enum JumpSubstate { JUMP_SUBSTATE_0 = 0, JUMP_SUBSTATE_1 = 1, }; enum TweesterPartnerStates { TWEESTER_PARTNER_INIT = 0, TWEESTER_PARTNER_ATTRACT = 1, TWEESTER_PARTNER_HOLD = 2, TWEESTER_PARTNER_RELEASE = 3, }; enum LandOnSwitchSubstate { LANDING_ON_SWITCH_SUBSTATE_0 = 0, LANDING_ON_SWITCH_SUBSTATE_1 = 1, LANDING_ON_SWITCH_SUBSTATE_2 = 2, }; enum PeachFlags { PEACH_FLAG_IS_PEACH = 0x01, PEACH_FLAG_DISGUISED = 0x02, PEACH_FLAG_HAS_PARASOL = 0x04, PEACH_FLAG_BLOCK_NEXT_DISGUISE = 0x08, // next attempt to copy an NPC with parasol will fail PEACH_FLAG_DEPRESSED = 0x10 }; enum PeachBakingItems { PEACH_BAKING_NONE = 0, PEACH_BAKING_CREAM = 1, PEACH_BAKING_STRAWBERRY = 2, PEACH_BAKING_BUTTER = 3, PEACH_BAKING_CLEANSER = 4, PEACH_BAKING_WATER = 5, PEACH_BAKING_MILK = 6, PEACH_BAKING_FLOUR = 7, PEACH_BAKING_EGG = 8, PEACH_BAKING_COMPLETE_CAKE = 9, PEACH_BAKING_CAKE_BOWL = 10, PEACH_BAKING_CAKE_MIXED = 11, PEACH_BAKING_CAKE_PAN = 12, PEACH_BAKING_CAKE_BATTER = 13, PEACH_BAKING_CAKE_BARE = 14, PEACH_BAKING_SALT = 15, PEACH_BAKING_SUGAR = 16, PEACH_BAKING_CAKE_WITH_ICING = 17, PEACH_BAKING_CAKE_WITH_BERRIES = 18, }; enum PeachDisguises { PEACH_DISGUISE_NONE = 0, PEACH_DISGUISE_KOOPATROL = 1, PEACH_DISGUISE_HAMMER_BROS = 2, PEACH_DISGUISE_CLUBBA = 3, }; // Requires decimals enum NpcIDs { NPC_SELF = -1, NPC_PLAYER = -2, NPC_PARTNER = -4, NPC_BTL_MERLEE = -10, NPC_BTL_COMPANION = 0, // used for Peach in intro Bowser fight and Kolorado in Lava Piranha fight NPC_BTL_SPIRIT = 100, }; enum ShadowType { SHADOW_VARYING_CIRCLE = 0, SHADOW_VARYING_SQUARE = 1, SHADOW_FIXED_CIRCLE = 2, SHADOW_FIXED_SQUARE = 3, SHADOW_VARYING_ALT_CIRCLE = 4, // unused? SHADOW_FIXED_ALT_CIRCLE = 5, // unused? }; enum EntityTypes { ENTITY_TYPE_SHADOW = 0x01, ENTITY_TYPE_2 = 0x02, ENTITY_TYPE_PADLOCK = 0x03, ENTITY_TYPE_PADLOCK_RED_FRAME = 0x04, ENTITY_TYPE_PADLOCK_RED_FACE = 0x05, ENTITY_TYPE_PADLOCK_BLUE_FACE = 0x06, ENTITY_TYPE_BLUE_SWITCH = 0x07, ENTITY_TYPE_RED_SWITCH = 0x08, ENTITY_TYPE_HUGE_BLUE_SWITCH = 0x09, ENTITY_TYPE_GREEN_STOMP_SWITCH = 0x0A, ENTITY_TYPE_MULTI_TRIGGER_BLOCK = 0x0B, ENTITY_TYPE_PUSH_BLOCK = 0x0C, ENTITY_TYPE_BRICK_BLOCK = 0x0D, ENTITY_TYPE_MULTI_COIN_BRICK = 0x0E, ENTITY_TYPE_YELLOW_BLOCK = 0x0F, ENTITY_TYPE_SINGLE_TRIGGER_BLOCK = 0x10, ENTITY_TYPE_HIDDEN_YELLOW_BLOCK = 0x11, ENTITY_TYPE_HIDDEN_RED_BLOCK = 0x12, ENTITY_TYPE_INACTIVE_BLOCK = 0x13, ENTITY_TYPE_RED_BLOCK = 0x14, ENTITY_TYPE_HAMMER1_BLOCK = 0x15, ENTITY_TYPE_HAMMER2_BLOCK = 0x16, ENTITY_TYPE_HAMMER3_BLOCK = 0x17, ENTITY_TYPE_HAMMER1_BLOCK_TINY = 0x18, ENTITY_TYPE_HAMMER2_BLOCK_TINY = 0x19, ENTITY_TYPE_HAMMER3_BLOCK_TINY = 0x1A, ENTITY_TYPE_HEALING_BLOCK = 0x1B, ENTITY_TYPE_1C = 0x1C, ENTITY_TYPE_1D = 0x1D, ENTITY_TYPE_1E = 0x1E, ENTITY_TYPE_HEALING_BLOCK_FRAME = 0x1F, ENTITY_TYPE_SAVE_POINT = 0x20, ENTITY_TYPE_POW_BLOCK = 0x21, ENTITY_TYPE_SUPER_BLOCK = 0x22, ENTITY_TYPE_ULTRA_BLOCK = 0x23, ENTITY_TYPE_WOODEN_CRATE = 0x24, ENTITY_TYPE_BOARDED_FLOOR = 0x25, ENTITY_TYPE_BOMBABLE_ROCK = 0x26, ENTITY_TYPE_BLUE_WARP_PIPE = 0x2B, ENTITY_TYPE_SIMPLE_SPRING = 0x2E, ENTITY_TYPE_SCRIPT_SPRING = 0x2F, ENTITY_TYPE_HIDDEN_PANEL = 0x30, ENTITY_TYPE_STAR_BOX_LAUNCHER = 0x31, ENTITY_TYPE_CHEST = 0x32, ENTITY_TYPE_SIGNPOST = 0x33, ENTITY_TYPE_RED_ARROW_SIGNS = 0x34, ENTITY_TYPE_BELLBELL_PLANT = 0x35, ENTITY_TYPE_TRUMPET_PLANT = 0x36, ENTITY_TYPE_MUNCHLESIA = 0x37, ENTITY_TYPE_CYMBAL_PLANT = 0x38, ENTITY_TYPE_PINK_FLOWER = 0x39, ENTITY_TYPE_SPINNING_FLOWER = 0x3A, ENTITY_TYPE_3B = 0x3B, ENTITY_TYPE_TWEESTER = 0x3C, ENTITY_TYPE_HEALING_BLOCK_CONTENT = 0x3F, ENTITY_TYPE_SUPER_BLOCK_HIT_EFFECT = 0x41, ENTITY_TYPE_ULTRA_BLOCK_HIT_EFFECT = 0x42, ENTITY_TYPE_RESET_MUNCHLESIA = 0x43, ENTITY_TYPE_MUNCHLESIA_GRAB = 0x44, ENTITY_TYPE_MUNCHLESIA_ENVELOP = 0x45, ENTITY_TYPE_MUNCHLESIA_BEGIN_CHEW = 0x46, ENTITY_TYPE_MUNCHLESIA_CHEWING = 0x47, ENTITY_TYPE_MUNCHLESIA_SPIT_OUT = 0x48, ENTITY_TYPE_MUNCHLESIA_RESET1 = 0x49, ENTITY_TYPE_MUNCHLESIA_RESET2 = 0x4A }; // Entity enum EntityFlags { ENTITY_FLAG_HIDDEN = 0x00000001, ENTITY_FLAG_DRAW_IF_CLOSE_HIDE_MODE1 = 0x00000002, ENTITY_FLAG_HAS_DYNAMIC_SHADOW = 0x00000004, ENTITY_FLAG_HAS_ANIMATED_MODEL = 0x00000008, ENTITY_FLAG_SKIP_UPDATE_TRANSFORM_MATRIX = 0x00000010, ENTITY_FLAG_DISABLE_COLLISION = 0x00000020, ENTITY_FLAG_CONTINUOUS_COLLISION = 0x00000040, ENTITY_FLAG_80 = 0x00000080, ENTITY_FLAG_HAS_SHADOW = 0x00000100, ENTITY_FLAG_FIXED_SHADOW_SIZE = 0x00000200, ENTITY_FLAG_400 = 0x00000400, ENTITY_FLAG_CIRCULAR_SHADOW = 0x00000800, ENTITY_FLAG_SHOWS_INSPECT_PROMPT = 0x00001000, ENTITY_FLAG_ALWAYS_FACE_CAMERA = 0x00002000, ENTITY_FLAG_4000 = 0x00004000, ENTITY_FLAG_8000 = 0x00008000, ENTITY_FLAG_DETECTED_COLLISION = 0x00010000, ENTITY_FLAG_PARTNER_COLLISION = 0x00020000, ENTITY_FLAG_DRAW_IF_CLOSE_HIDE_MODE2 = 0x00040000, ENTITY_FLAG_IGNORE_DISTANCE_CULLING = 0x00080000, ENTITY_FLAG_USED = 0x00100000, ENTITY_FLAG_200000 = 0x00200000, ENTITY_FLAG_SHADOW_POS_DIRTY = 0x00400000, ENTITY_FLAG_DARK_SHADOW = 0x00800000, ENTITY_FLAG_BOUND_SCRIPT_DIRTY = 0x01000000, ENTITY_FLAG_2000000 = 0x02000000, ENTITY_FLAG_PENDING_FULL_DELETE = 0x04000000, ENTITY_FLAG_8000000 = 0x08000000, ENTITY_FLAG_FADING_AWAY = 0x10000000, ENTITY_FLAG_PENDING_INSTANCE_DELETE = 0x20000000, ENTITY_FLAG_SKIP_UPDATE = 0x40000000, ENTITY_FLAG_CREATED = 0x80000000, }; enum EntityCollisionFlags { ENTITY_COLLISION_PLAYER_TOUCH_FLOOR = 0x00000001, ENTITY_COLLISION_FLAG_02 = 0x00000002, ENTITY_COLLISION_PLAYER_TOUCH_CEILING = 0x00000004, ENTITY_COLLISION_PLAYER_TOUCH_WALL = 0x00000008, ENTITY_COLLISION_PLAYER_PUSHING_AGAINST = 0x00000010, ENTITY_COLLISION_FLAG_20 = 0x00000020, ENTITY_COLLISION_PLAYER_HAMMER = 0x00000040, ENTITY_COLLISION_PARTNER = 0x00000080, ENTITY_COLLISION_PLAYER_LAST_FLOOR = 0x00000100 }; enum EntityHideMode { ENTITY_HIDE_MODE_0 = 0, ENTITY_HIDE_MODE_1 = 1, ENTITY_HIDE_MODE_2 = 2, }; typedef enum PushGridOccupant { PUSH_GRID_EMPTY = 0, PUSH_GRID_BLOCK = 1, PUSH_GRID_OBSTRUCTION = 2, PUSH_GRID_OUT_OF_BOUNDS = 3 } PushGridOccupant; enum TriggerFlags { TRIGGER_ACTIVE = 0x00000001, TRIGGER_ACTIVATED = 0x00000002, TRIGGER_FORCE_ACTIVATE = 0x00000010, 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_FLAG_2000 = 0x00002000, TRIGGER_FLAG_4000 = 0x00004000, TRIGGER_FLAG_8000 = 0x00008000, TRIGGER_GAME_FLAG_SET = 0x00010000, TRIGGER_AREA_FLAG_SET = 0x00020000, TRIGGER_CEILING_TOUCH = 0x00040000, TRIGGER_FLOOR_ABOVE = 0x00080000, TRIGGER_POINT_BOMB = 0x00100000, TRIGGER_SCRIPT_BOUND = 0x01000000 }; enum ItemEntityFlags { ITEM_ENTITY_FLAG_CAM0 = 0x00000001, ITEM_ENTITY_FLAG_CAM1 = 0x00000002, ITEM_ENTITY_FLAG_CAM2 = 0x00000004, ITEM_ENTITY_FLAG_CAM3 = 0x00000008, ITEM_ENTITY_FLAG_10 = 0x00000010, ITEM_ENTITY_FLAG_HIDDEN = 0x00000040, // do not render; player cant pickup ITEM_ENTITY_FLAG_JUST_SPAWNED = 0x00000080, ITEM_ENTITY_FLAG_AUTO_COLLECT = 0x00000100, ITEM_ENTITY_FLAG_NEVER_VANISH = 0x00000200, ITEM_ENTITY_FLAG_SAVE_ON_TOUCH = 0x00000400, // sets bound game flag when the item is touched ITEM_ENTITY_FLAG_SAVE_ON_INIT = 0x00000800, ITEM_ENTITY_FLAG_1000 = 0x00001000, ITEM_ENTITY_FLAG_NO_GRAVITY = 0x00002000, ITEM_ENTITY_RESIZABLE = 0x00004000, ITEM_ENTITY_FLAG_8000 = 0x00008000, ITEM_ENTITY_FLAG_TOSS_LOWER = 0x00010000, ITEM_ENTITY_FLAG_ODD_SPAWN_PARITY = 0x00020000, // every other item entity spawned will have this set ITEM_ENTITY_FLAG_FULLSIZE = 0x00040000, ITEM_ENTITY_FLAG_TRANSPARENT = 0x00080000, ITEM_ENTITY_FLAG_INVISIBLE = 0x00100000, // spawned with ITEM_SPAWN_MODE_INVISIBLE ITEM_ENTITY_FLAG_CANT_COLLECT = 0x00200000, ITEM_ENTITY_FLAG_400000 = 0x00400000, ITEM_ENTITY_FLAG_800000 = 0x00800000, ITEM_ENTITY_FLAG_TOSS_HIGHER = 0x01000000, ITEM_ENTITY_FLAG_2000000 = 0x02000000, ITEM_ENTITY_FLAG_4000000 = 0x04000000, ITEM_ENTITY_FLAG_HIDING = 0x08000000, ITEM_ENTITY_FLAG_NO_MOTION = 0x10000000, ITEM_ENTITY_FLAG_DONE_FALLING = 0x20000000, ITEM_ENTITY_FLAG_ANGLE_RELATIVE_VELOCITY = 0x40000000, ITEM_ENTITY_FLAG_SAVE_ON_RECEIPT = 0x80000000, // sets bound game flag only when the item is placed in player inventory }; // governs item behavior after spawning until being picked up enum ItemPhysicsStates { ITEM_PHYSICS_STATE_INIT = 0x0, ITEM_PHYSICS_STATE_ALIVE = 0x1, // ITEM_PHYSICS_STATE_DEAD = 0x2, // item is vanished or fallen out of the world ITEM_PHYSICS_STATE_TOUCH = 0x3, // player has touched the item ITEM_PHYSICS_STATE_04 = 0x4, ITEM_PHYSICS_STATE_PICKUP = 0xA, // item will begin pickup, physics state is invalid after this }; // governs the process of picking up an item enum ItemPickupStates { // these states comprise the typical progression for item pickup ITEM_PICKUP_STATE_INIT = 0x0, ITEM_PICKUP_STATE_AWAIT_VALID_STATE = 0x1, ITEM_PICKUP_STATE_SHOW_GOT_ITEM = 0x2, ITEM_PICKUP_STATE_HIDE_GOT_ITEM = 0x3, // wait for window closing animations to finish ITEM_PICKUP_STATE_DONE = 0x9, // next three states are used for tutorials which trigger on item pickup ITEM_PICKUP_STATE_CHECK_TUTORIALS = 0x4, ITEM_PICKUP_STATE_SHOW_TUTORIAL = 0x5, ITEM_PICKUP_STATE_AWAIT_TUTORIAL = 0x6, // remaining states occur when inventory is full and an item needs to be throw away ITEM_PICKUP_STATE_SHOW_TOO_MANY = 0xA, // show 'cant carry more items'; open throw away popup on state exit ITEM_PICKUP_STATE_HIDE_TOO_MANY = 0xB, // wait for window closing animations to finish ITEM_PICKUP_STATE_AWAIT_THROW_AWAY = 0xC, // choosing ITEM_PICKUP_STATE_SHOW_THREW_AWAY = 0xD, // you threw away X window ITEM_PICKUP_STATE_HIDE_THREW_AWAY = 0xE, // wait for window closing animations to finish ITEM_PICKUP_STATE_THROW_AWAY_DONE = 0xF, }; enum ItemPickupFlags { ITEM_PICKUP_FLAG_NO_SOUND = 0x01, ITEM_PICKUP_FLAG_NO_ANIMS = 0x02, ITEM_PICKUP_FLAG_UNKNOWN = 0x04, ITEM_PICKUP_FLAG_1_COIN = 0x10, ITEM_PICKUP_FLAG_3_STAR_PIECES = 0x20, ITEM_PICKUP_FLAG_UNIQUE = 0x40, }; // Worker enum WorkerFlags { WORKER_FLAG_1 = 0x00000001, WORKER_FLAG_SKIP_DRAW_UNTIL_UPDATE = 0x00000002, WORKER_FLAG_FRONT_UI = 0x00000004, WORKER_FLAG_BACK_UI = 0x00000008, }; 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, BUTTON_STICK_UP = 0x00010000, BUTTON_STICK_DOWN = 0x00020000, BUTTON_STICK_LEFT = 0x00040000, BUTTON_STICK_RIGHT = 0x00080000, }; enum PlayerBuffs { PLAYER_BUFF_ALL = 0xFFFFFFFF, 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, }; enum StatusFlags { STATUS_FLAG_SLEEP = 0x00001000, STATUS_FLAG_STATIC = 0x00002000, STATUS_FLAG_FROZEN = 0x00004000, STATUS_FLAG_FEAR = 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_400000 = 0x00400000, 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, STATUS_FLAG_80000000 = 0x80000000, }; // general combination of flags for checking if an enemy is immobilized #define STATUS_FLAGS_IMMOBILIZED \ (STATUS_FLAG_SLEEP \ | STATUS_FLAG_FROZEN \ | STATUS_FLAG_FEAR \ | STATUS_FLAG_PARALYZE \ | STATUS_FLAG_DIZZY \ | STATUS_FLAG_STONE \ | STATUS_FLAG_STOP) // common set of flags used in checks throughout Dojo fights #define STATUS_FLAGS_DOJO \ (STATUS_FLAG_SLEEP \ | STATUS_FLAG_PARALYZE \ | STATUS_FLAG_DIZZY \ | STATUS_FLAG_STONE \ | STATUS_FLAG_STOP) enum DamageTypes { DAMAGE_TYPE_FIRE = 0x00000002, DAMAGE_TYPE_WATER = 0x00000004, DAMAGE_TYPE_ICE = 0x00000008, DAMAGE_TYPE_MAGIC = 0x00000010, DAMAGE_TYPE_SHOCK = 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_FEAR = 0x00001000, DAMAGE_TYPE_DEATH = 0x00002000, DAMAGE_TYPE_4000 = 0x00004000, DAMAGE_TYPE_AIR_LIFT = 0x00008000, DAMAGE_TYPE_SPINY_SURGE = 0x00010000, DAMAGE_TYPE_SHELL_CRACK = 0x00020000, DAMAGE_TYPE_THROW = 0x00040000, DAMAGE_TYPE_POWER_BOUNCE = 0x00100000, DAMAGE_TYPE_QUAKE_HAMMER = 0x00200000, DAMAGE_TYPE_REMOVE_BUFFS = 0x00400000, DAMAGE_TYPE_PEACH_BEAM = 0x00800000, DAMAGE_TYPE_MULTI_BOUNCE = 0x01000000, DAMAGE_TYPE_UNBLOCKABLE = 0x02000000, DAMAGE_TYPE_SPIN_SMASH = 0x04000000, DAMAGE_TYPE_IGNORE_DEFENSE = 0x08000000, DAMAGE_TYPE_NO_CONTACT = 0x10000000, DAMAGE_TYPE_MULTIPLE_POPUPS = 0x20000000, // part of an attack that hits multiple opponents DAMAGE_TYPE_STATUS_ALWAYS_HITS = 0x40000000, DAMAGE_TYPE_TRIGGER_LUCKY = 0x80000000, }; enum PartnerIDs { PARTNER_NONE = 0x00000000, PARTNER_GOOMBARIO = 0x00000001, PARTNER_KOOPER = 0x00000002, PARTNER_BOMBETTE = 0x00000003, PARTNER_PARAKARRY = 0x00000004, PARTNER_GOOMPA = 0x00000005, PARTNER_WATT = 0x00000006, PARTNER_SUSHIE = 0x00000007, PARTNER_LAKILESTER = 0x00000008, PARTNER_BOW = 0x00000009, PARTNER_GOOMBARIA = 0x0000000A, PARTNER_TWINK = 0x0000000B, }; enum EventSupressFlags { SUPPRESS_EVENT_SPIKY_TOP = 0x1, SUPPRESS_EVENT_EXPLODE_CONTACT = 0x2, SUPPRESS_EVENT_SPIKY_FRONT = 0x4, SUPPRESS_EVENT_SHOCK_CONTACT = 0x8, SUPPRESS_EVENT_BURN_CONTACT = 0x10, SUPPRESS_EVENT_ALT_SPIKY = 0x80, SUPPRESS_EVENT_FLAG_200 = 0x200, // unused? SUPPRESS_EVENT_ALL = 0xFFFF, SUPPRESS_EVENT_FLAG_10000 = 0x10000, // usage is a bug? }; // combination used for hammer-based attacks #define SUPPRESS_EVENTS_HAMMER \ SUPPRESS_EVENT_SPIKY_TOP \ | SUPPRESS_EVENT_SHOCK_CONTACT \ | SUPPRESS_EVENT_BURN_CONTACT // combination used for mostly for kooper's attacks #define SUPPRESS_EVENTS_KOOPER_TEST \ SUPPRESS_EVENT_SPIKY_FRONT \ | SUPPRESS_EVENT_BURN_CONTACT // combination used for mostly for kooper's attacks #define SUPPRESS_EVENTS_KOOPER_DAMAGE \ SUPPRESS_EVENT_SPIKY_TOP \ | SUPPRESS_EVENT_EXPLODE_CONTACT \ | SUPPRESS_EVENT_SPIKY_FRONT \ | SUPPRESS_EVENT_SHOCK_CONTACT \ | SUPPRESS_EVENT_BURN_CONTACT \ | SUPPRESS_EVENT_ALT_SPIKY enum PartnerActions { PARTNER_ACTION_NONE = 0, // generic state PARTNER_ACTION_USE = 1, // generic state PARTNER_ACTION_KOOPER_GATHER = 1, PARTNER_ACTION_KOOPER_TOSS = 2, PARTNER_ACTION_BOMBETTE_1 = 1, PARTNER_ACTION_BOMBETTE_2 = 2, PARTNER_ACTION_BOMBETTE_3 = 3, PARTNER_ACTION_PARAKARRY_HOVER = 1, PARTNER_ACTION_WATT_SHINE = 1, PARTNER_ACTION_LAKILESTER_1 = 1, }; enum PartnerStates { PARTNER_CMD_NONE = 0, PARTNER_CMD_INIT = 1, PARTNER_CMD_INSTA_SWITCH = 2, // skips put away / take out scripts. assumes valid current partner. PARTNER_CMD_SWITCH = 3, // assumes valid current partner. PARTNER_CMD_PUT_AWAY = 4, // switches to null partner. PARTNER_CMD_INSTA_PUT_AWAY = 5, PARTNER_CMD_TAKE_OUT = 6, // assumes no current partner. PARTNER_CMD_INSTA_TAKE_OUT = 7, PARTNER_CMD_USE_ABILITY = 8, PARTNER_CMD_RESET = 9, PARTNER_CMD_ABORT = 10, }; /// @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 NpcPalSwapState { NPC_PALSWAP_HOLDING_A = 0, NPC_PALSWAP_FROM_A_TO_B = 1, NPC_PALSWAP_HOLDING_B = 2, NPC_PALSWAP_FROM_B_TO_A = 3, }; enum NpcFlags { NPC_FLAG_ENABLED = 0x00000001, // Does nothing aside from making npc->flags != 0 NPC_FLAG_INVISIBLE = 0x00000002, // NPC will not be drawn or cause surface effects while moving NPC_FLAG_INACTIVE = 0x00000004, // NPC will not render, move, or have collisions with other NPCs. They may still be interacted with. NPC_FLAG_FLYING = 0x00000008, NPC_FLAG_HAS_SHADOW = 0x00000010, // Set by default and by enable_npc_shadow NPC_FLAG_NO_SHADOW_RAYCAST = 0x00000020, // Shadows are tied to NPC position instead of raycasting below the NPC NPC_FLAG_IGNORE_WORLD_COLLISION = 0x00000040, NPC_FLAG_UPSIDE_DOWN = 0x00000080, // Render NPCs upside-down NPC_FLAG_IGNORE_PLAYER_COLLISION = 0x00000100, NPC_FLAG_GRAVITY = 0x00000200, // Enables gravity. Does nothing if NPC_FLAG_JUMPING is set. NPC_FLAG_DONT_UPDATE_SHADOW_Y = 0x00000400, // When shadow raycasting is off, only X and Z update as NPC moves NPC_FLAG_JUMPING = 0x00000800, NPC_FLAG_GROUNDED = 0x00001000, // Touching the ground NPC_FLAG_COLLDING_WITH_WORLD = 0x00002000, // Colliding with world in front or to the sides of the NPC NPC_FLAG_COLLDING_FORWARD_WITH_WORLD = 0x00004000, // Colliding with world directly in front of NPC NPC_FLAG_IGNORE_ENTITY_COLLISION = 0x00008000, NPC_FLAG_DIRTY_SHADOW = 0x00010000, // Set if shadow is dirty (needs to be repositioned etc.) NPC_FLAG_REFLECT_WALL = 0x00020000, // Mirror rendering across z=0 NPC_FLAG_IGNORE_CAMERA_FOR_YAW = 0x00040000, // Do not adjust renderYaw to face the camera 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_FLIP_INSTANTLY = 0x00200000, // Flip instantly when changing facing direction NPC_FLAG_TOUCHES_GROUND = 0x00400000, // Can cause effects to play when touching special surface types NPC_FLAG_HIDING = 0x00800000, NPC_FLAG_HAS_NO_SPRITE = 0x01000000, NPC_FLAG_COLLIDING_WITH_NPC = 0x02000000, NPC_FLAG_PARTNER = 0x04000000, NPC_FLAG_WORLD_COLLISION_DIRTY = 0x08000000, NPC_FLAG_USE_INSPECT_ICON = 0x10000000, // Approaching this NPC will cause a red ! to appear. NPC_FLAG_RAYCAST_TO_INTERACT = 0x20000000, // Intended to require a line of sight raycast before conversations can be triggered. Seems bugged. NPC_FLAG_NO_ANIMS_LOADED = 0x40000000, // Npc has no animations loaded NPC_FLAG_SUSPENDED = 0x80000000, }; enum PlayerStatusFlags { PS_FLAG_AIRBORNE = 0x0000000E, PS_FLAG_HAS_REFLECTION = 0x00000001, PS_FLAG_JUMPING = 0x00000002, PS_FLAG_FALLING = 0x00000004, PS_FLAG_FLYING = 0x00000008, PS_FLAG_SLIDING = 0x00000010, /* Paused either via the start menu, or through another menu that causes a pause (like the item menu) */ PS_FLAG_PAUSED = 0x00000020, PS_FLAG_NO_CHANGE_PARTNER = 0x00000040, PS_FLAG_NO_PARTNER_USAGE = 0x00000080, /* Prevents opening menus that would require a game-time pause (start menu, item menu, etc) */ PS_FLAG_PAUSE_DISABLED = 0x00000100, /* Doing either a spin jump or a tornado jump */ PS_FLAG_SPECIAL_JUMP = 0x00000200, /* Landing from either a spin jump or a tornado jump */ PS_FLAG_SPECIAL_LAND = 0x00000400, /* Burning from touching a fire hazard of some kind */ PS_FLAG_HIT_FIRE = 0x00000800, PS_FLAG_NO_STATIC_COLLISION = 0x00001000, PS_FLAG_INPUT_DISABLED = 0x00002000, /* Indicates that Mario's lateral movement is currently commandeered by a cutscene or script */ PS_FLAG_CUTSCENE_MOVEMENT = 0x00004000, /* Either outta sight with Bow, or temporarily damage boosted - makes Mario ignore fire bars */ PS_FLAG_HAZARD_INVINCIBILITY = 0x00008000, /* Spinning either through pressing Z or the tornado jump - causes a ghost trail to render */ PS_FLAG_SPINNING = 0x00020000, /* Slows Mario's physics and animations to half speed - responsible for the dramatic slowdown when starting an encounter by jumping on an enemy. Also stops Mario from successfully completing a hammer. */ PS_FLAG_ENTERING_BATTLE = 0x00040000, /* Occurs after hitting a heart block - temporarily prevents encounters from starting */ PS_FLAG_ARMS_RAISED = 0x00080000, /* Stops Mario's sprite yaw from being adjusted, usually so a cutscene can do it instead. */ PS_FLAG_ROTATION_LOCKED = 0x00100000, /* Forces Mario's sprite to either face exactly left or right, without transitioning. */ PS_FLAG_NO_FLIPPING = 0x00200000, /* Prevents Mario from moving laterally */ PS_FLAG_MOVEMENT_LOCKED = 0x00400000, //TODO misnamed /* Stops Mario from air steering or using a special jump during a scripted fall */ PS_FLAG_SCRIPTED_FALL = 0x00800000, /* Not fully sure about this one, but appears to mark the frame that the check for what to hammer occurs */ PS_FLAG_HAMMER_CHECK = 0x01000000, PS_FLAG_HAS_CONVERSATION_NPC = 0x02000000, PS_FLAG_CAMERA_DOESNT_FOLLOW = 0x04000000, /* Mario just interacted with something (usually cleared on the same frame) */ PS_FLAG_INTERACTED = 0x08000000, /* Makes Mario face forwards, used when talking to NPCs, or when on Lakilester */ PS_FLAG_FACE_FORWARD = 0x10000000, /* Freezes physics and animations - is usually reset at the start of a frame so often does nothing */ PS_FLAG_TIME_STOPPED = 0x20000000, /* Indicates that Mario needs his sprite redrawn */ PS_FLAG_SPRITE_REDRAW = 0x40000000, PS_FLAG_ACTION_STATE_CHANGED = 0x80000000, }; /// @see PlayerStatus::animFlags enum PlayerStatusAnimFlags { /* Whether Mario is in the process of using Watt (but isn't necessarily holding them yet) */ PA_FLAG_USING_WATT = 0x00000001, /* Whether Watt is actually in Mario's hands at the moment */ PA_FLAG_WATT_IN_HANDS = 0x00000002, PA_FLAG_INTERRUPT_USE_PARTNER = 0x00000004, ///< forces actions with bow, parakarry, watt, and lakilester to end (sushie not tested) PA_FLAG_FORCE_USE_PARTNER = 0x00000008, ///< triggers partner use when set PA_FLAG_INTERACT_PROMPT_AVAILABLE = 0x00000010, ///< ! prompt PA_FLAG_SPEECH_PROMPT_AVAILABLE = 0x00000020, ///< (...) prompt PA_FLAG_PULSE_STONE_VISIBLE = 0x00000040, ///< The pulse stone icon is being shown PA_FLAG_USING_PULSE_STONE = 0x00000080, PA_FLAG_ISPY_VISIBLE = 0x00000100, ///< The I Spy icon is being shown PA_FLAG_RAISED_ARMS = 0x00000200, ///< Sets action state to ACTION_STATE_RAISE_ARMS on idle PA_FLAG_SHIVERING = 0x00000400, PA_FLAG_OPENED_HIDDEN_PANEL = 0x00000800, PA_FLAG_USING_PEACH_PHYSICS = 0x00001000, PA_FLAG_INVISIBLE = 0x00002000, PA_FLAG_8BIT_MARIO = 0x00004000, PA_FLAG_NPC_COLLIDED = 0x00008000, PA_FLAG_SPINNING = 0x00010000, /* Began an encounter by spinning into an enemy with the Dizzy Attack badge on */ PA_FLAG_DIZZY_ATTACK_ENCOUNTER = 0x00020000, PA_FLAG_INTERRUPT_SPIN = 0x00040000, /* When Mario is in a transition to a new map, either through a loading zone or pipe */ PA_FLAG_CHANGING_MAP = 0x00100000, /* Occurs after PA_FLAG_FORCE_USE_PARTNER. Some partners - namely Bow and Lakilester, unset this immediately. Not sure why - seems like it might contribute to being unable to *stop* using your partner during a cutscene. */ PA_FLAG_PARTNER_USAGE_FORCED = 0x00200000, PA_FLAG_RIDING_PARTNER = 0x00400000, PA_FLAG_ABORT_PUSHING_BLOCK = 0x00800000, /* Changes how Mario is rendered. Seems to be intended to make Mario's depth render properly when using Bow behind a switch (two translucent objects on top of eachother), but it doesn't actually work. */ PA_FLAG_MAP_HAS_SWITCH = 0x01000000, /* Usually, if Mario falls for too long, he eventually gets reset to his last safe position. This prevents that. Used by some scripts. */ PA_FLAG_NO_OOB_RESPAWN = 0x10000000, /* This allows dismounting from Lakilester, even if in a precarious situation (like over spikes, lava, or water). */ PA_FLAG_DISMOUNTING_ALLOWED = 0x20000000, /* This flag is set when partner usage was interrupted by a script, and it prevents menu sounds (like the error sound) from playing for script-initiated player actions */ PA_FLAG_FORCED_PARTNER_ABILITY_END = 0x40000000, /* This one's really weird. Seems to have something to do with the direction Mario is facing, but I'm not sure what it's actually supposed to be achieving. */ PA_FLAG_80000000 = 0x80000000, }; enum PopupType { POPUP_MENU_USE_ITEM = 0x0, POPUP_MENU_SWITCH_PARTNER = 0x1, POPUP_MENU_THROW_AWAY_ITEM = 0x2, POPUP_MENU_TRADE_FOR_BADGE = 0x3, POPUP_MENU_UPGRADE_PARTNER = 0x4, POPUP_MENU_SELL_ITEM = 0x5, POPUP_MENU_CHECK_ITEM = 0x6, POPUP_MENU_CLAIM_ITEM = 0x7, POPUP_MENU_READ_LETTER = 0x8, POPUP_MENU_TAKE_FROM_CHEST = 0x9, POPUP_MENU_READ_DIARY_PAGE = 0xA, POPUP_MENU_READ_POSTCARD = 0xB, POPUP_MENU_USEKEY = 0xC, POPUP_MENU_POST_OFFICE = 0xD, POPUP_MENU_DOUBLE_DIP = 100, POPUP_MENU_TRIPLE_DIP = 200, }; enum PopupState { POPUP_STATE_INIT = 0, POPUP_STATE_CHOOSING = 1, POPUP_STATE_10 = 10, POPUP_STATE_11 = 11, POPUP_STATE_20 = 20, POPUP_STATE_ALREADY_HAVE_PARTNER_BEGIN = 30, POPUP_STATE_ALREADY_HAVE_PARTNER_SHOW = 31, POPUP_STATE_ALREADY_HAVE_PARTNER_AWAIT = 32, POPUP_STATE_CANCEL_DIP = 100, POPUP_STATE_CANCEL_DIP_AWAIT_CHOICE = 101, POPUP_STATE_CANCEL_DIP_ACCEPT = 102, POPUP_STATE_CANCEL_DIP_DECLINE = 103, POPUP_STATE_104 = 104, POPUP_STATE_105 = 105, POPUP_STATE_CHOSE_WORLD = -1, POPUP_STATE_CHOSE_BATTLE = -2, POPUP_STATE_MINUS_3 = -3, POPUP_STATE_MINUS_4 = -4, POPUP_STATE_MINUS_5 = -5, POPUP_STATE_CHOSE_SWAP = -6, POPUP_STATE_MINUS_7 = -7, POPUP_STATE_MINUS_8 = -8, }; enum PopupResult { POPUP_RESULT_INVALID = -1, POPUP_RESULT_SWAP_MENU = -2, POPUP_RESULT_CHOOSING = 0, POPUP_RESULT_CANCEL = 255, }; enum WindowPriority { WINDOW_PRIORITY_0 = 0, WINDOW_PRIORITY_1 = 1, WINDOW_PRIORITY_10 = 10, WINDOW_PRIORITY_19 = 19, WINDOW_PRIORITY_20 = 20, WINDOW_PRIORITY_21 = 21, WINDOW_PRIORITY_64 = 64, }; enum RenderModeIndex { // RM1 modes RENDER_MODE_IDX_00 = 0x00, RENDER_MODE_IDX_01 = 0x01, RENDER_MODE_IDX_02 = 0x02, RENDER_MODE_IDX_03 = 0x03, RENDER_MODE_IDX_04 = 0x04, RENDER_MODE_IDX_05 = 0x05, RENDER_MODE_IDX_06 = 0x06, RENDER_MODE_IDX_07 = 0x07, RENDER_MODE_IDX_08 = 0x08, RENDER_MODE_IDX_09 = 0x09, RENDER_MODE_IDX_0A = 0x0A, RENDER_MODE_IDX_0B = 0x0B, RENDER_MODE_IDX_0C = 0x0C, RENDER_MODE_IDX_0D = 0x0D, RENDER_MODE_IDX_0E = 0x0E, RENDER_MODE_IDX_0F = 0x0F, // RM2 modes RENDER_MODE_IDX_10 = 0x10, RENDER_MODE_IDX_11 = 0x11, RENDER_MODE_IDX_12 = 0x12, RENDER_MODE_IDX_13 = 0x13, RENDER_MODE_IDX_14 = 0x14, RENDER_MODE_IDX_15 = 0x15, RENDER_MODE_IDX_16 = 0x16, RENDER_MODE_IDX_17 = 0x17, RENDER_MODE_IDX_18 = 0x18, RENDER_MODE_IDX_19 = 0x19, RENDER_MODE_IDX_1A = 0x1A, RENDER_MODE_IDX_1B = 0x1B, RENDER_MODE_IDX_1C = 0x1C, RENDER_MODE_IDX_1D = 0x1D, RENDER_MODE_IDX_1E = 0x1E, // RM3 modes RENDER_MODE_IDX_1F = 0x1F, RENDER_MODE_IDX_20 = 0x20, RENDER_MODE_IDX_21 = 0x21, RENDER_MODE_IDX_22 = 0x22, RENDER_MODE_IDX_23 = 0x23, RENDER_MODE_IDX_24 = 0x24, RENDER_MODE_IDX_25 = 0x25, RENDER_MODE_IDX_26 = 0x26, RENDER_MODE_IDX_27 = 0x27, RENDER_MODE_IDX_28 = 0x28, RENDER_MODE_IDX_29 = 0x29, RENDER_MODE_IDX_2A = 0x2A, RENDER_MODE_IDX_2B = 0x2B, RENDER_MODE_IDX_2C = 0x2C, RENDER_MODE_IDX_2D = 0x2D, RENDER_MODE_IDX_2E = 0x2E, RENDER_MODE_IDX_2F = 0x2F, RENDER_MODE_IDX_30 = 0x30, RENDER_MODE_IDX_31 = 0x31, RENDER_MODE_IDX_32 = 0x32, RENDER_MODE_IDX_33 = 0x33, RENDER_MODE_IDX_34 = 0x34, RENDER_MODE_IDX_35 = 0x35, RENDER_MODE_IDX_36 = 0x36, // cloud render modes RENDER_MODE_IDX_37 = 0x37, RENDER_MODE_IDX_38 = 0x38, RENDER_MODE_IDX_39 = 0x39, RENDER_MODE_IDX_3A = 0x3A, RENDER_MODE_IDX_3B = 0x3B, RENDER_MODE_IDX_3C = 0x3C, }; // predefined configurations for RDP geometry and render modes // though these are called "render modes", they do not strictly correspond to the RDP render modes (as supplied to gDPSetRenderMode) enum RenderMode { // opaque render modes RENDER_MODE_SURF_SOLID_AA_ZB_LAYER0 = 0x00, RENDER_MODE_SURFACE_OPA = 0x01, RENDER_MODE_02_UNUSED = 0x02, RENDER_MODE_SURFACE_OPA_NO_AA = 0x03, RENDER_MODE_SURFACE_OPA_NO_ZB = 0x04, RENDER_MODE_DECAL_OPA = 0x05, RENDER_MODE_06_UNUSED = 0x06, RENDER_MODE_DECAL_OPA_NO_AA = 0x07, RENDER_MODE_08_UNUSED = 0x08, RENDER_MODE_INTERSECTING_OPA = 0x09, RENDER_MODE_0A_UNUSED = 0x0A, RENDER_MODE_0B_UNUSED = 0x0B, RENDER_MODE_0C_UNUSED = 0x0C, RENDER_MODE_ALPHATEST = 0x0D, RENDER_MODE_0E_UNUSED = 0x0E, RENDER_MODE_ALPHATEST_ONESIDED = 0x0F, RENDER_MODE_ALPHATEST_NO_ZB = 0x10, RENDER_MODES_LAST_OPAQUE = RENDER_MODE_ALPHATEST_NO_ZB, // translucent render modes RENDER_MODE_SURFACE_XLU_LAYER1 = 0x11, RENDER_MODE_12_UNUSED = 0x12, RENDER_MODE_SURFACE_XLU_NO_AA = 0x13, RENDER_MODE_SURFACE_XLU_NO_ZB = 0x14, RENDER_MODE_SURFACE_XLU_ZB_ZUPD = 0x15, RENDER_MODE_SURFACE_XLU_LAYER2 = 0x16, RENDER_MODE_17_UNUSED = 0x17, RENDER_MODE_18_UNUSED = 0x18, RENDER_MODE_19_UNUSED = 0x19, RENDER_MODE_DECAL_XLU = 0x1A, RENDER_MODE_1B_UNUSED = 0x1B, RENDER_MODE_DECAL_XLU_NO_AA = 0x1C, RENDER_MODE_1D_UNUSED = 0x1D, RENDER_MODE_DECAL_XLU_AHEAD = 0x1E, // special case RENDER_MODE_DECAL_XLU for rendering in front of others RENDER_MODE_1F_UNUSED = 0x1F, RENDER_MODE_SHADOW = 0x20, RENDER_MODE_21_UNUSED = 0x21, RENDER_MODE_SURFACE_XLU_LAYER3 = 0x22, RENDER_MODE_23_UNUSED = 0x23, RENDER_MODE_24_UNUSED = 0x24, RENDER_MODE_25_UNUSED = 0x25, RENDER_MODE_INTERSECTING_XLU = 0x26, RENDER_MODE_27_UNUSED = 0x27, // unusual render modes RENDER_MODE_PASS_THROUGH = 0x28, // no render mode is set, only geometry modes are initialized RENDER_MODE_SURFACE_XLU_AA_ZB_ZUPD = 0x29, RENDER_MODE_SURFACE_OPA_NO_ZB_BEHIND = 0x2A, RENDER_MODE_ALPHATEST_NO_ZB_BEHIND = 0x2B, RENDER_MODE_SURFACE_XLU_NO_ZB_BEHIND = 0x2C, RENDER_MODE_CLOUD_NO_ZCMP = 0x2D, RENDER_MODE_CLOUD = 0x2E, RENDER_MODE_CLOUD_NO_ZB = 0x2F, }; enum RenderTaskFlags { RENDER_TASK_FLAG_ENABLED = 0x01, RENDER_TASK_FLAG_REFLECT_FLOOR = 0x02, RENDER_TASK_FLAG_20 = 0x20, }; // same as ActorPartFlags, kept separate for clarity enum ActorFlags { ACTOR_FLAG_INVISIBLE = 0x00000001, ///< Actor is not rendered. ACTOR_FLAG_NO_SHADOW = 0x00000004, ///< Hide shadow. ACTOR_FLAG_LOW_PRIORITY_TARGET = 0x00000010, // only usable with ACTOR_FLAG_TARGET_ONLY, treats the target's sort position as off-stage to the right ACTOR_FLAG_MINOR_TARGET = 0x00000040, // ignored by moves using TARGET_FLAG_PRIMARY_ONLY (unused) ACTOR_FLAG_NO_TATTLE = 0x00000080, ACTOR_FLAG_FLYING = 0x00000200, ///< Quake Hammer can't hit. ACTOR_FLAG_FLIPPED = 0x00000400, ///< Actor has been flipped over. ACTOR_FLAG_UPSIDE_DOWN = 0x00000800, ///< HP bar offset below actor (e.g. Swooper when upside-down). ACTOR_FLAG_TYPE_CHANGED = 0x00001000, ///< Indicates actors type has changed, triggers recheck for if HP bar should be shown based on tattle status. ACTOR_FLAG_DAMAGE_IMMUNE = 0x00002000, // prevents hits from items, chill out, and up & away ACTOR_FLAG_TARGET_ONLY = 0x00004000, ///< Battle ends even if undefeated. No turn. ACTOR_FLAG_HALF_HEIGHT = 0x00008000, ACTOR_FLAG_SKIP_TURN = 0x00010000, ACTOR_FLAG_NO_HEALTH_BAR = 0x00040000, // Health bar is not shown for this actor type ACTOR_FLAG_HEALTH_BAR_HIDDEN = 0x00080000, // Health bar is temporarily hidden ACTOR_FLAG_NO_ATTACK = 0x00200000, ///< Skip attack turn. ACTOR_FLAG_NO_DMG_APPLY = 0x00400000, ///< Damage is not applied to actor HP. ACTOR_FLAG_NO_DMG_POPUP = 0x02000000, ///< Hide damage popup. ACTOR_FLAG_USING_IDLE_ANIM = 0x04000000, ACTOR_FLAG_SHOW_STATUS_ICONS = 0x08000000, ACTOR_FLAG_BLUR_ENABLED = 0x10000000, ACTOR_FLAG_NO_INACTIVE_ANIM = 0x20000000, // only used for player Actor }; // same as ActorFlags, kept separate for clarity enum ActorPartFlags { ACTOR_PART_FLAG_INVISIBLE = 0x00000001, ACTOR_PART_FLAG_NO_DECORATIONS = 0x00000002, ACTOR_PART_FLAG_NO_SHADOW = 0x00000004, ACTOR_PART_FLAG_DEFAULT_TARGET = 0x00000008, // Part will be the default selected target for player. ACTOR_PART_FLAG_IGNORE_BELOW_CHECK = 0x00000020, // ignore below check while targeting ACTOR_PART_FLAG_MINOR_TARGET = 0x00000040, // ignored by moves using TARGET_FLAG_PRIMARY_ONLY (unused) ACTOR_PART_FLAG_NO_TATTLE = 0x00000080, ACTOR_PART_FLAG_TRANSPARENT = 0x00000100, ACTOR_PART_FLAG_DAMAGE_IMMUNE = 0x00002000, ///< electrified Plays extra hurt SFX? ACTOR_PART_FLAG_TARGET_ONLY = 0x00004000, // Has no effect on ActorPart. Use the ACTOR_FLAG on Actor instead. ACTOR_PART_FLAG_NO_TARGET = 0x00020000, ///< Cannot be targeted. ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION = 0x00100000, ACTOR_PART_FLAG_PRIMARY_TARGET = 0x00800000, // Multi-target attacks will target this part of an Actor with multiple parts. ACTOR_PART_FLAG_HAS_PAL_EFFECT = 0x01000000, ACTOR_PART_FLAG_NO_STATUS_ANIMS = 0x20000000, // Do not update idle animation based on Actor status ACTOR_PART_FLAG_SKIP_SHOCK_EFFECT = 0x40000000, // Do not apply a shock effect to this ActorPart when its Actor is shocked ACTOR_PART_FLAG_SKIP_MOVEMENT_ALLOC = 0x80000000, // Do not allocate ActorPartMovement for this ActorPart }; enum ActorEventFlags { ACTOR_EVENT_FLAGS_NONE = 0x00000000, ACTOR_EVENT_FLAG_FIREY = 0x00000002, ///< Player takes burn damage upon contact. ACTOR_EVENT_FLAG_ICY = 0x00000008, ///< No known effect, but is used. ACTOR_EVENT_FLAG_SPIKY_TOP = 0x00000010, ///< Player takes spike damage from jump attacks. ACTOR_EVENT_FLAG_ILLUSORY = 0x00000020, ///< Player attacks pass through and miss. ACTOR_EVENT_FLAG_ELECTRIFIED = 0x00000080, ///< Player takes shock damage upon contact. ACTOR_EVENT_FLAG_MONSTAR = 0x00000100, ///< Set by Monstar, but has no effect ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION = 0x00000200, ///< Blast and fire attacks trigger an explosion. ACTOR_EVENT_FLAG_FIRE_EXPLODE = 0x00000400, ///< Fire attacks trigger an explosion, used only by bullet/bombshell bills. ACTOR_EVENT_FLAG_BURIED = 0x00000800, ///< Actor can only by hit by quake-element attacks. ACTOR_EVENT_FLAG_FLIPABLE = 0x00001000, ///< Actor can be flipped; triggered by jump and quake attacks. ACTOR_EVENT_FLAG_EXTREME_DEFENSE = 0x00002000, ///< Actor has 127 extra defense during damage calculation, unaffected by IGNORE_DEFENSE. ACTOR_EVENT_FLAG_GROUNDABLE = 0x00004000, ///< Actor can be knocked down from flight; triggered by jump attacks. ACTOR_EVENT_FLAG_EXPLODE_ON_CONTACT = 0x00008000, ///< Attacks that contact will trigger an explosion. ACTOR_EVENT_FLAG_SPIKY_FRONT = 0x00010000, ///< Player takes spike damage from hammer attacks. ACTOR_EVENT_FLAG_ENCHANTED = 0x00040000, ///< Actor glows and listens for the Star Beam event. ACTOR_EVENT_FLAG_STAR_ROD_ENCHANTED = 0x00080000, ///< Actor glows and listens for Star Beam and Peach Beam events. ACTOR_EVENT_FLAG_POWER_BOUNCE = 0x00100000, ///< Actor listens for Power Bounce events. ACTOR_EVENT_FLAG_ALT_SPIKY = 0x00200000, ///< Additional spiky quality associated with Pokeys and Spinies ACTOR_EVENT_FLAG_ATTACK_CHARGED = 0x00400000, ///< Actor has charged an attack that can be removed with Star Beam. ACTOR_EVENT_FLAG_RIDING_BROOMSTICK = 0x00800000, ///< Actor is on Magikoopa Broomstick, effect seems to be redundant. }; enum PartnerWishAnims { PARTNER_WISH_ANIM_WALK = 0, PARTNER_WISH_ANIM_PRAY = 1, PARTNER_WISH_ANIM_UNUSED = 2, PARTNER_WISH_ANIM_RETURN = 3, PARTNER_WISH_ANIM_IDLE = 4, }; enum PartnerAnimIndices { PARTNER_ANIM_INDEX_STILL = 0x0, PARTNER_ANIM_INDEX_WALK = 0x1, PARTNER_ANIM_INDEX_JUMP = 0x2, PARTNER_ANIM_INDEX_FALL = 0x3, PARTNER_ANIM_INDEX_FLY = 0x4, PARTNER_ANIM_INDEX_IDLE = 0x5, PARTNER_ANIM_INDEX_RUN = 0x6, PARTNER_ANIM_INDEX_TALK = 0x7, PARTNER_ANIM_INDEX_HURT = 0x8, }; enum AnyPartnerAnims { PARTNER_ANIM_STILL = 0x101, PARTNER_ANIM_WALK = 0x102, PARTNER_ANIM_JUMP = 0x103, PARTNER_ANIM_FALL = 0x104, PARTNER_ANIM_FLY = 0x105, PARTNER_ANIM_IDLE = 0x106, PARTNER_ANIM_RUN = 0x107, PARTNER_ANIM_TALK = 0x108, PARTNER_ANIM_HURT = 0x109, }; enum EnemyAnimIndices { ENEMY_ANIM_INDEX_IDLE = 0, ENEMY_ANIM_INDEX_WALK = 1, ENEMY_ANIM_INDEX_RUN = 2, ENEMY_ANIM_INDEX_CHASE = 3, ENEMY_ANIM_INDEX_JUMP = 4, ENEMY_ANIM_INDEX_05 = 5, ENEMY_ANIM_INDEX_DEATH = 6, ENEMY_ANIM_INDEX_HIT = 7, ENEMY_ANIM_INDEX_MELEE_PRE = 8, ENEMY_ANIM_INDEX_MELEE_HIT = 9, }; enum AnyEnemyAnims { ENEMY_ANIM_IDLE = 0x201, ENEMY_ANIM_WALK = 0x202, ENEMY_ANIM_RUN = 0x203, ENEMY_ANIM_CHASE = 0x204, ENEMY_ANIM_JUMP = 0x205, ENEMY_ANIM_5 = 0x206, ENEMY_ANIM_DEATH = 0x207, ENEMY_ANIM_HIT = 0x208, ENEMY_ANIM_8 = 0x209, ENEMY_ANIM_9 = 0x20A, ENEMY_ANIM_A = 0x20B, ENEMY_ANIM_B = 0x20C, ENEMY_ANIM_C = 0x20D, ENEMY_ANIM_D = 0x20E, ENEMY_ANIM_E = 0x20F, ENEMY_ANIM_F = 0x210, }; enum FirstStrikeType { FIRST_STRIKE_NONE = 0, FIRST_STRIKE_PLAYER = 1, FIRST_STRIKE_ENEMY = 2, }; enum TimeFreezeMode { TIME_FREEZE_NONE = 0, TIME_FREEZE_PARTIAL = 1, TIME_FREEZE_FULL = 2, TIME_FREEZE_POPUP_MENU = 3, TIME_FREEZE_EXIT = 4, }; enum ActionCommand { ACTION_COMMAND_NONE = 0x00000000, ACTION_COMMAND_JUMP = 0x00000001, ACTION_COMMAND_SMASH = 0x00000002, ACTION_COMMAND_FLEE = 0x00000003, ACTION_COMMAND_BREAK_FREE = 0x00000004, ACTION_COMMAND_WHIRLWIND = 0x00000005, ACTION_COMMAND_STOP_LEECH = 0x00000006, ACTION_COMMAND_UNUSED_FLEE = 0x00000007, ACTION_COMMAND_DIZZY_SHELL = 0x00000008, ACTION_COMMAND_FIRE_SHELL = 0x00000009, ACTION_COMMAND_UNUSED_MASH_A = 0x0000000A, ACTION_COMMAND_BOMB = 0x0000000B, ACTION_COMMAND_BODY_SLAM = 0x0000000C, ACTION_COMMAND_AIR_LIFT = 0x0000000D, ACTION_COMMAND_AIR_RAID = 0x0000000E, ACTION_COMMAND_SQUIRT = 0x0000000F, ACTION_COMMAND_POWER_SHOCK = 0x00000010, ACTION_COMMAND_MEGA_SHOCK = 0x00000011, ACTION_COMMAND_SMACK = 0x00000012, ACTION_COMMAND_SPINY_SURGE = 0x00000013, ACTION_COMMAND_HURRICANE = 0x00000014, ACTION_COMMAND_SPOOK = 0x00000015, ACTION_COMMAND_THREE_CHANCES = 0x00000016, ACTION_COMMAND_TIDAL_WAVE = 0x00000017, }; enum HazardType { HAZARD_TYPE_NONE = 0, HAZARD_TYPE_LAVA = 1, HAZARD_TYPE_SPIKES = 2, HAZARD_TYPE_FIRE_BAR = 3, }; enum DamageIntensityRange { DAMAGE_INTENSITY_LIGHT = 0, // 0-3 DAMAGE_INTENSITY_MEDIUM = 1, // 4-6 DAMAGE_INTENSITY_HEAVY = 2, // 7-9 DAMAGE_INTENSITY_EXTREME = 3, // 10+ DAMAGE_INTENSITY_UNUSED = 4, // unused }; enum EffectInstanceFlags { FX_INSTANCE_FLAG_ENABLED = 0x00000001, FX_INSTANCE_FLAG_BATTLE = 0x00000004, // effect was created during battle FX_INSTANCE_FLAG_HAS_UPDATED = 0x00000008, // has run update at least once FX_INSTANCE_FLAG_DISMISS = 0x00000010, // effect should perform cleanup and self-delete }; enum EffectSharedDataFlags { FX_SHARED_DATA_LOADED = 0x00000001, FX_SHARED_DATA_CAN_FREE = 0x00000002, }; #include "move_enum.h" enum GameContext { CONTEXT_WORLD = 0, CONTEXT_BATTLE = 1, CONTEXT_PAUSE = 2, }; enum DemoState { DEMO_STATE_NONE = 0, DEMO_STATE_ACTIVE = 1, DEMO_STATE_CHANGE_MAP = 2, DEMO_STATE_4 = 4, DEMO_STATE_DONE = 5, }; enum DemoFlags { DEMO_BTL_FLAG_ENABLED = 0x01, DEMO_BTL_FLAG_PARTNER_ACTING = 0x02, DEMO_BTL_FLAG_ENEMY_ACTING = 0x04, DEMO_BTL_FLAG_10 = 0x10, DEMO_BTL_FLAG_20 = 0x20, DEMO_BTL_FLAG_40 = 0x40, }; enum IntroParts { INTRO_PART_0 = 0, INTRO_PART_1 = 1, INTRO_PART_5 = 5, INTRO_PART_100 = 100, INTRO_PART_NONE = -1, }; enum MapLoadType { LOAD_FROM_MAP = 0, LOAD_FROM_FILE_SELECT = 1, }; enum BattleStatusFlags1 { BS_FLAGS1_ACTORS_VISIBLE = 0x00000001, BS_FLAGS1_MENU_OPEN = 0x00000002, BS_FLAGS1_TATTLE_OPEN = 0x00000004, BS_FLAGS1_SHOW_PLAYER_DECORATIONS = 0x00000008, // enables effects for Frozen, Water Block, and Cloud Nine to appear and follow the player // Enables attack bonuses like Power Plus and Merlee ATK boost. // Almost always used with TestTarget functions when not called with DAMAGE_TYPE_TRIGGER_LUCKY. BS_FLAGS1_INCLUDE_POWER_UPS = 0x00000010, // Current hit may trigger special events on the target (other than hit/death/immune) // These include FLIP_TRIGGER, FALL_TRIGGER, BURN_HIT, SPIN_SMASH_HIT, etc. // This has no bearing on contact hazard events which affect the attacker like SPIKE_CONTACT or BURN_CONTACT. BS_FLAGS1_TRIGGER_EVENTS = 0x00000020, BS_FLAGS1_NICE_HIT = 0x00000040, BS_FLAGS1_NO_RATING = 0x00000080, // prevents 'Nice!' or 'Super!' messages from appearing BS_FLAGS1_EXECUTING_MOVE = 0x00000100, BS_FLAGS1_SUPER_HIT = 0x00000200, // only works for partners and items, NOT player hits BS_FLAGS1_FORCE_IMMUNE_HIT = 0x00000800, BS_FLAGS1_AUTO_SUCCEED_ACTION = 0x00001000, BS_FLAGS1_2000 = 0x00002000, BS_FLAGS1_4000 = 0x00004000, BS_FLAGS1_FREE_ACTION_COMMAND = 0x00008000, BS_FLAGS1_10000 = 0x00010000, BS_FLAGS1_DISABLE_CELEBRATION = 0x00020000, BS_FLAGS1_BATTLE_FLED = 0x00040000, // used both when the player flees sucessfully or an enemy flees BS_FLAGS1_PARTNER_ACTING = 0x00080000, BS_FLAGS1_PLAYER_IN_BACK = 0x00100000, BS_FLAGS1_YIELD_TURN = 0x00200000, // moves end either when their script is finished or this flag is set by calling YieldTurn BS_FLAGS1_PLAYER_DEFENDING = 0x00400000, BS_FLAGS1_NO_GAME_OVER = 0x00800000, // don’t game over on loss BS_FLAGS1_STAR_POINTS_DROPPED = 0x01000000, BS_FLAGS1_TUTORIAL_BATTLE = 0x02000000, // prevent player from swapping to/from partner BS_FLAGS1_HUSTLED = 0x04000000, BS_FLAGS1_SORT_ENEMIES_BY_POSX = 0x08000000, // enemy turn order ignores priority; sorts bases on x position instead BS_FLAGS1_HAMMER_CHARGED = 0x10000000, BS_FLAGS1_JUMP_CHARGED = 0x20000000, BS_FLAGS1_GOOMBARIO_CHARGED = 0x40000000, BS_FLAGS1_ATK_BLOCKED = 0x80000000, }; enum BattleStatusFlags2 { BS_FLAGS2_AWARDING_STAR_POINTS = 0x00000001, // star points move to the center of the screen BS_FLAGS2_PLAYER_TURN_USED = 0x00000002, // set after player has used their action for this turn BS_FLAGS2_PARTNER_TURN_USED = 0x00000004, // set after partner has used their action for this turn BS_FLAGS2_OVERRIDE_INACTIVE_PLAYER = 0x00000008, // override inactive player animations and effects BS_FLAGS2_OVERRIDE_INACTIVE_PARTNER = 0x00000010, // override inactive partner animations and effects BS_FLAGS2_CANT_FLEE = 0x00000020, BS_FLAGS2_PEACH_BATTLE = 0x00000040, BS_FLAGS2_STORED_TURBO_CHARGE_TURN = 0x00000100, // prevents turbo charge turns from decrementing on begin player turn BS_FLAGS2_DOING_JUMP_TUTORIAL = 0x00000200, BS_FLAGS2_FINAL_BOWSER_PART_1 = 0x00000400, // no other use for this flag, purpose unknown BS_FLAGS2_NO_TARGET_AVAILABLE = 0x00001000, BS_FLAGS2_IGNORE_DARKNESS = 0x00004000, BS_FLAGS2_HIDE_BUFF_COUNTERS = 0x00010000, // hide turn counters for partner buffs (Cloud Nine, Water Block, etc) BS_FLAGS2_NO_PLAYER_PAL_ADJUST = 0x00100000, BS_FLAGS2_IS_FIRST_STRIKE = 0x01000000, BS_FLAGS2_DONT_STOP_MUSIC = 0x02000000, // don't stop playing the current song when the battle ends BS_FLAGS2_HAS_DRAINED_HP = 0x04000000, BS_FLAGS2_HAS_RUSH = 0x08000000, BS_FLAGS2_DROP_WHACKA_BUMP = 0x10000000, }; enum BattleStatusReflectionFlags { BS_REFLECT_FLOOR = 1, }; enum BattleStates { BATTLE_STATE_NEGATIVE_1 = -1, BATTLE_STATE_0 = 0, BATTLE_STATE_NORMAL_START = 1, BATTLE_STATE_FIRST_STRIKE = 2, BATTLE_STATE_PARTNER_FIRST_STRIKE = 3, BATTLE_STATE_ENEMY_FIRST_STRIKE = 4, BATTLE_STATE_BEGIN_TURN = 5, BATTLE_STATE_END_TURN = 6, BATTLE_STATE_BEGIN_PLAYER_TURN = 7, BATTLE_STATE_BEGIN_PARTNER_TURN = 8, BATTLE_STATE_9 = 9, // can be reached from BATTLE_STATE_PARTNER_MOVE if partner == NULL BATTLE_STATE_SWITCH_TO_PLAYER = 10, BATTLE_STATE_SWITCH_TO_PARTNER = 11, BATTLE_STATE_PREPARE_MENU = 12, BATTLE_STATE_PLAYER_MENU = 13, BATTLE_STATE_PARTNER_MENU = 14, BATTLE_STATE_PEACH_MENU = 15, BATTLE_STATE_TWINK_MENU = 16, BATTLE_STATE_SELECT_TARGET = 17, BATTLE_STATE_PLAYER_MOVE = 18, BATTLE_STATE_PARTNER_MOVE = 19, BATTLE_STATE_NEXT_ENEMY = 20, BATTLE_STATE_ENEMY_MOVE = 21, BATTLE_STATE_END_PLAYER_TURN = 22, BATTLE_STATE_END_PARTNER_TURN = 23, BATTLE_STATE_RUN_AWAY = 24, BATTLE_STATE_DEFEND = 25, BATTLE_STATE_VICTORY = 26, BATTLE_STATE_DEFEAT = 27, BATTLE_STATE_28 = 28, BATTLE_STATE_CHANGE_PARTNER = 29, BATTLE_STATE_END_TRAINING_BATTLE = 30, BATTLE_STATE_31 = 31, BATTLE_STATE_END_BATTLE = 32, BATTLE_STATE_CELEBRATION = 33, BATTLE_STATE_34 = 34, BATTLE_STATE_END_DEMO_BATTLE = 35, }; enum BattleSubStates { // shared BTL_SUBSTATE_INIT = 0, // BATTLE_STATE_NORMAL_START BTL_SUBSTATE_NORMAL_START_INIT = 0, // loads assets, initializes state, and runs OnBattleInit script BTL_SUBSTATE_NORMAL_START_CREATE_ENEMIES = 1, BTL_SUBSTATE_NORMAL_START_CHECK_FIRST_STRIKE = 4, // wait for actor scripts to finish BTL_SUBSTATE_NORMAL_START_FADE_IN = 7, BTL_SUBSTATE_NORMAL_START_DONE = 8, // BATTLE_STATE_FIRST_STRIKE BTL_SUBSTATE_FIRST_STRIKE_INIT = 0, BTL_SUBSTATE_FIRST_STRIKE_AWAIT_ENEMY_READY = 1, BTL_SUBSTATE_FIRST_STRIKE_AWAIT_SCRIPTS = 2, BTL_SUBSTATE_FIRST_STRIKE_AWAIT_ENEMY_DONE = 3, // BATTLE_STATE_PARTNER_FIRST_STRIKE BTL_SUBSTATE_PARTNER_FIRST_STRIKE_INIT = 0, BTL_SUBSTATE_PARTNER_FIRST_STRIKE_AWAIT_ENEMY_READY = 1, BTL_SUBSTATE_PARTNER_FIRST_STRIKE_AWAIT_SCRIPTS = 2, BTL_SUBSTATE_PARTNER_FIRST_STRIKE_AWAIT_ENEMY_DONE = 3, // BATTLE_STATE_ENEMY_FIRST_STRIKE BTL_SUBSTATE_ENEMY_FIRST_STRIKE_INIT = 0, BTL_SUBSTATE_ENEMY_FIRST_STRIKE_AWAIT_SCRIPTS = 2, // BATTLE_STATE_BEGIN_TURN BTL_SUBSTATE_BEGIN_TURN_INIT = 0, BTL_SUBSTATE_BEGIN_TURN_AWAIT_ENEMY_SCRIPTS = 5, BTL_SUBSTATE_BEGIN_TURN_AWAIT_ENEMY_DEATH = 10, // BATTLE_STATE_END_TURN BTL_SUBSTATE_END_TURN_INIT = 0, BTL_SUBSTATE_END_TURN_CHECK_FOR_SWAP = 1, BTL_SUBSTATE_END_TURN_AWAIT_SCRIPTS = 2, BTL_SUBSTATE_END_TURN_BEGIN_NEXT = 3, BTL_SUBSTATE_END_TURN_UNUSED_4 = 4, BTL_SUBSTATE_END_TURN_PERFORM_SWAP = 11, BTL_SUBSTATE_END_TURN_START_SCRIPTS = 12, // BATTLE_STATE_BEGIN_PLAYER_TURN BTL_SUBSTATE_BEGIN_PLAYER_TURN_INIT = 0, BTL_SUBSTATE_BEGIN_PLAYER_TURN_TRY_COMMAND_RECOVER = 1, BTL_SUBSTATE_BEGIN_PLAYER_TURN_AWAIT_WATER_BLOCK = 2, BTL_SUBSTATE_BEGIN_PLAYER_TURN_CHECK_WATER_BLOCK = 10, BTL_SUBSTATE_BEGIN_PLAYER_TURN_CHECK_CLOUD_NINE = 11, BTL_SUBSTATE_BEGIN_PLAYER_TURN_AWAIT_CLOUD_NINE = 12, BTL_SUBSTATE_BEGIN_PLAYER_TURN_CHECK_TURBO_CHARGE = 15, BTL_SUBSTATE_BEGIN_PLAYER_TURN_AWAIT_TURBO_CHARGE = 16, BTL_SUBSTATE_BEGIN_PLAYER_TURN_AWAIT_OUTTA_SIGHT = 20, BTL_SUBSTATE_BEGIN_PLAYER_TURN_TRY_STATUS_DAMAGE = 21, BTL_SUBSTATE_BEGIN_PLAYER_TURN_TRY_STATUS_RECOVER = 22, BTL_SUBSTATE_BEGIN_PLAYER_TURN_END_DELAY = 30, BTL_SUBSTATE_BEGIN_PLAYER_TURN_RESET_STATE = 100, // BATTLE_STATE_BEGIN_PARTNER_TURN BTL_SUBSTATE_BEGIN_PARTNER_TURN_INIT = 0, BTL_SUBSTATE_BEGIN_PARTNER_TURN_AWAIT_RECOVER_DONE = 1, BTL_SUBSTATE_BEGIN_PARTNER_TURN_EXEC_TURN_SCRIPT = 8, BTL_SUBSTATE_BEGIN_PARTNER_TURN_AWAIT_TURN_SCRIPT = 9, BTL_SUBSTATE_BEGIN_PARTNER_TURN_END_DELAY = 10, BTL_SUBSTATE_BEGIN_PARTNER_TURN_RESET_STATE = 100, // BATTLE_STATE_9 BTL_SUBSTATE_9_INIT = 0, BTL_SUBSTATE_9_1 = 1, BTL_SUBSTATE_9_2 = 2, BTL_SUBSTATE_9_3 = 3, BTL_SUBSTATE_9_4 = 4, BTL_SUBSTATE_9_5 = 5, BTL_SUBSTATE_9_6 = 6, BTL_SUBSTATE_9_7 = 7, // BATTLE_STATE_SWITCH_TO_PLAYER // BATTLE_STATE_SWITCH_TO_PARTNER // BATTLE_STATE_PREPARE_MENU BATTLE_SUBSTATE_PREPARE_MENU_DIPPING = 70, // BATTLE_STATE_PLAYER_MENU // BATTLE_STATE_PARTNER_MENU // BATTLE_STATE_PEACH_MENU BTL_SUBSTATE_PEACH_MENU_INIT = 0, BTL_SUBSTATE_PEACH_MENU_CHOOSE_CATEGORY = 1, BTL_SUBSTATE_PEACH_MENU_CHOOSE_TARGET = 2, BTL_SUBSTATE_PEACH_MENU_UNUSED_3 = 3, BTL_SUBSTATE_PEACH_MENU_TARGET_CANCEL = 4, BTL_SUBSTATE_PEACH_MENU_TARGET_CHOSEN = 5, BTL_SUBSTATE_PEACH_MENU_UNUSED_6 = 6, BTL_SUBSTATE_PEACH_MENU_UNUSED_7 = 7, BTL_SUBSTATE_PEACH_MENU_SHOW_CANT_SWITCH = 8, BTL_SUBSTATE_PEACH_MENU_AWAIT_CANT_SWITCH_POPUP = 9, BTL_SUBSTATE_PEACH_MENU_PERFORM_SWAP = 10, BTL_SUBSTATE_PEACH_CREATE_MAIN_MENU = 11, // BATTLE_STATE_TWINK_MENU BTL_SUBSTATE_TWINK_MENU_INIT = 0, BTL_SUBSTATE_TWINK_MENU_CHOOSE_CATEGORY = 1, BTL_SUBSTATE_TWINK_MENU_CHOOSE_TARGET = 2, BTL_SUBSTATE_TWINK_MENU_UNUSED_3 = 3, BTL_SUBSTATE_TWINK_MENU_TARGET_CANCEL = 4, BTL_SUBSTATE_TWINK_MENU_TARGET_CHOSEN = 5, BTL_SUBSTATE_TWINK_MENU_UNUSED_6 = 6, BTL_SUBSTATE_TWINK_MENU_UNUSED_7 = 7, BTL_SUBSTATE_TWINK_MENU_SHOW_CANT_SWITCH = 8, BTL_SUBSTATE_TWINK_MENU_AWAIT_CANT_SWITCH_POPUP = 9, BTL_SUBSTATE_TWINK_MENU_PERFORM_SWAP = 10, BTL_SUBSTATE_TWINK_MENU_CREATE_MAIN_MENU = 11, // BATTLE_STATE_SELECT_TARGET BTL_SUBSTATE_SELECT_TARGET_INIT = 0, BTL_SUBSTATE_SELECT_TARGET_CHOOSE = 1, BTL_SUBSTATE_SELECT_TARGET_DONE = 2, BTL_SUBSTATE_SELECT_TARGET_CANCEL = 10, // BATTLE_STATE_PLAYER_MOVE BTL_SUBSTATE_PLAYER_MOVE_INIT = 0, BTL_SUBSTATE_PLAYER_MOVE_BEGIN_SHOW_TIP = 1, BTL_SUBSTATE_PLAYER_MOVE_SHOW_TIP_DELAY = 2, BTL_SUBSTATE_PLAYER_MOVE_EXECUTE_MOVE = 3, BTL_SUBSTATE_PLAYER_MOVE_HANDLE_RESULTS = 4, BTL_SUBSTATE_PLAYER_MOVE_AWAIT_ENEMY_STATUS_POPUP = 11, BTL_SUBSTATE_PLAYER_MOVE_POST_ENEMY_STATUS_POPUP = 12, BTL_SUBSTATE_PLAYER_MOVE_CHECK_PLAYER_STATUS = 20, BTL_SUBSTATE_PLAYER_MOVE_AWAIT_PLAYER_STATUS_POPUP = 21, BTL_SUBSTATE_PLAYER_MOVE_POST_PLAYER_STATUS_POPUP = 22, BTL_SUBSTATE_PLAYER_MOVE_AWAIT_DONE = 30, // BATTLE_STATE_PARTNER_MOVE BTL_SUBSTATE_PARTNER_MOVE_INIT = 0, BTL_SUBSTATE_PARTNER_MOVE_EXECUTE_MOVE = 2, BTL_SUBSTATE_PARTNER_MOVE_HANDLE_RESULTS = 3, BTL_SUBSTATE_PARTNER_MOVE_AWAIT_PARTNER_STATUS_POPUP = 11, BTL_SUBSTATE_PARTNER_MOVE_POST_PARTNER_STATUS_POPUP = 12, BTL_SUBSTATE_PARTNER_MOVE_CHECK_ENEMY_STATUS = 20, BTL_SUBSTATE_PARTNER_MOVE_AWAIT_ENEMY_STATUS_POPUP = 21, BTL_SUBSTATE_PARTNER_MOVE_POST_ENEMY_STATUS_POPUP = 22, BTL_SUBSTATE_PARTNER_MOVE_DONE = 30, // BATTLE_STATE_NEXT_ENEMY BTL_SUBSTATE_NEXT_ENEMY_INIT = 0, BTL_SUBSTATE_NEXT_ENEMY_UNUSED_1 = 1, BTL_SUBSTATE_NEXT_ENEMY_DONE = 2, // enemy has been found // BATTLE_STATE_ENEMY_MOVE BTL_SUBSTATE_ENEMY_MOVE_EXECUTE = 0, BTL_SUBSTATE_ENEMY_MOVE_UNUSED_1 = 1, BTL_SUBSTATE_ENEMY_MOVE_AWAIT_SCRIPTS = 2, BTL_SUBSTATE_ENEMY_MOVE_AWAIT_PLAYER_POPUP_DONE = 11, // wait for popups regarding player status to finish BTL_SUBSTATE_ENEMY_MOVE_POST_PLAYER_POPUP_DELAY = 12, // a brief delay after the popup vanishes BTL_SUBSTATE_ENEMY_MOVE_CHECK_PARTNER = 20, BTL_SUBSTATE_ENEMY_MOVE_AWAIT_PARTNER_POPUP_DONE = 21, // wait for popups regarding partner status to finish BTL_SUBSTATE_ENEMY_MOVE_POST_PARTNER_POPUP_DELAY = 22, // a brief delay after the popup vanishes BTL_SUBSTATE_ENEMY_MOVE_DONE = 30, // BATTLE_STATE_END_PLAYER_TURN BTL_SUBSTATE_END_PLAYER_TURN_CHECK_HAPPY = 0, BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_HAPPY = 5, BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_SWAP = 6, BTL_SUBSTATE_END_PLAYER_TURN_DONE = 10, // BATTLE_STATE_END_PARTNER_TURN // BATTLE_STATE_RUN_AWAY BTL_SUBSTATE_RUN_AWAY_EXEC_SCRIPT = 0, BTL_SUBSTATE_RUN_AWAY_AWAIT_SCRIPT = 2, BTL_SUBSTATE_RUN_AWAY_EXEC_POST_FAILURE = 3, BTL_SUBSTATE_RUN_AWAY_AWAIT_POST_FAILURE = 4, BTL_SUBSTATE_RUN_AWAY_GIVE_STAR_POINTS = 10, BTL_SUBSTATE_RUN_AWAY_DONE = 11, // BATTLE_STATE_DEFEND BTL_SUBSTATE_DEFEND_INIT = 0, BTL_SUBSTATE_DEFEND_AWAIT_SCRIPT = 1, // BATTLE_STATE_VICTORY BTL_SUBSTATE_VICTORY_CHECK_OUTTA_SIGHT = 0, BTL_SUBSTATE_VICTORY_AWAIT_OUTTA_SIGHT = 1, BTL_SUBSTATE_VICTORY_CHECK_MERLEE = 2, BTL_SUBSTATE_VICTORY_AWAIT_MERLEE = 3, BTL_SUBSTATE_VICTORY_DONE = 4, BTL_SUBSTATE_VICTORY_RECOVER_STATUS = 5, BTL_SUBSTATE_VICTORY_AWAIT_RECOVER_KO = 10, BTL_SUBSTATE_VICTORY_CHECK_SWAP = 11, BTL_SUBSTATE_VICTORY_AWAIT_SWAP = 12, // BATTLE_STATE_DEFEAT BTL_SUBSTATE_DEFEAT_INIT = 0, BTL_SUBSTATE_DEFEAT_CHECK_LIFE_SHROOM = 1, BTL_SUBSTATE_DEFEAT_AWAIT_LIFE_SHROOM = 2, BTL_SUBSTATE_DEFEAT_DONE = 10, // BATTLE_STATE_28 // BATTLE_STATE_CHANGE_PARTNER BTL_SUBSTATE_CHANGE_PARTNER_INIT = 0, BTL_SUBSTATE_CHANGE_PARTNER_EXEC_PUT_AWAY = 2, BTL_SUBSTATE_CHANGE_PARTNER_LOAD_NEW_PARTNER = 3, BTL_SUBSTATE_CHANGE_PARTNER_EXEC_BRING_OUT = 4, BTL_SUBSTATE_CHANGE_PARTNER_EXEC_PHASE = 5, BTL_SUBSTATE_CHANGE_PARTNER_AWAIT_PHASE = 6, BTL_SUBSTATE_CHANGE_PARTNER_DONE = 7, // BATTLE_STATE_END_TRAINING_BATTLE BTL_SUBSTATE_END_TRAINING_INIT = 0, BTL_SUBSTATE_END_TRAINING_AWAIT_RECOVERING = 10, BTL_SUBSTATE_END_TRAINING_CHECK_OUTTA_SIGHT = 11, BTL_SUBSTATE_END_TRAINING_AWAIT_OUTTA_SIGHT = 12, BTL_SUBSTATE_END_TRAINING_RESET_CAM = 13, BTL_SUBSTATE_END_TRAINING_DONE = 14, // BATTLE_STATE_31 // BATTLE_STATE_END_BATTLE BTL_SUBSTATE_END_BATTLE_INIT = 0, BTL_SUBSTATE_END_BATTLE_FADE_OUT = 1, BTL_SUBSTATE_END_BATTLE_EXEC_STAGE_SCRIPT = 2, BTL_SUBSTATE_END_BATTLE_AWAIT_STAGE_SCRIPT = 3, BTL_SUBSTATE_END_BATTLE_CLEANUP = 4, // BATTLE_STATE_CELEBRATION BTL_SUBSTATE_CELEBRATE_INIT = 0, BTL_SUBSTATE_CELEBRATE_LOAD_STAR_POINTS = 1, BTL_SUBSTATE_CELEBRATE_TALLY_STAR_POINTS = 2, BTL_SUBSTATE_CELEBRATE_POST_STAR_POINTS = 3, BTL_SUBSTATE_CELEBRATE_LEVEL_UP_LOAD = 4, BTL_SUBSTATE_CELEBRATE_LEVEL_UP_BEGIN = 5, BTL_SUBSTATE_CELEBRATE_LEVEL_UP_CREATE_HUD = 6, BTL_SUBSTATE_CELEBRATE_LEVEL_UP_SHOW_HUD = 7, BTL_SUBSTATE_CELEBRATE_LEVEL_UP_CHOOSE = 8, BTL_SUBSTATE_CELEBRATE_LEVEL_UP_UPGRADE = 9, BTL_SUBSTATE_CELEBRATE_LEVEL_UP_FADE_OUT = 10, BTL_SUBSTATE_CELEBRATE_LEVEL_UP_DESTROY_HUD = 11, BTL_SUBSTATE_CELEBRATE_LEVEL_UP_INVALID = 15, BTL_SUBSTATE_CELEBRATE_LEVEL_UP_INVALID_DELAY = 16, BTL_SUBSTATE_CELEBRATE_SKIPPABLE_END_DELAY = 20, BTL_SUBSTATE_CELEBRATE_WALK_AWAY = 21, BTL_SUBSTATE_CELEBRATE_DONE = 22, // BATTLE_STATE_34 // BATTLE_STATE_END_DEMO_BATTLE BTL_SUBSTATE_END_DEMO_BATTLE_INIT = 0, BTL_SUBSTATE_END_DEMO_BATTLE_FADE_OUT = 1, BTL_SUBSTATE_END_DEMO_BATTLE_EXEC_STAGE_SCRIPT = 2, BTL_SUBSTATE_END_DEMO_BATTLE_AWAIT_STAGE_SCRIPT = 3, BTL_SUBSTATE_END_DEMO_BATTLE_CLEANUP = 4, }; // used with BATTLE_STATE_PLAYER_MENU enum BattlePlayerMenuSubstates { BTL_SUBSTATE_PLAYER_MENU_INIT = 0, // Main menu BTL_SUBSTATE_PLAYER_MENU_CHOOSE_CATEGORY = 1, BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_2 = 2, BTL_SUBSTATE_PLAYER_MENU_MOVE_CHOOSE_TARGET = 3, BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_4 = 4, BTL_SUBSTATE_PLAYER_MENU_MOVE_TARGET_CANCEL = 5, BTL_SUBSTATE_PLAYER_MENU_MOVE_TARGET_CHOSEN = 6, BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_7 = 7, BTL_SUBSTATE_PLAYER_MENU_MAIN_SHOW_CANT_SWAP = 8, BTL_SUBSTATE_PLAYER_MENU_MAIN_AWAIT_CANT_SWAP = 9, BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_10 = 10, BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_11 = 11, BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_12 = 12, BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_13 = 13, BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_14 = 14, // Unknown BTL_SUBSTATE_PLAYER_MENU_UNKNOWN_1 = 20, BTL_SUBSTATE_PLAYER_MENU_DIPPING_CHOOSE_TARGET = 21, BTL_SUBSTATE_PLAYER_MENU_UNKNOWN_3 = 22, BTL_SUBSTATE_PLAYER_MENU_UNKNOWN_4 = 23, BTL_SUBSTATE_PLAYER_MENU_DIPPING_TARGET_CANCEL = 24, BTL_SUBSTATE_PLAYER_MENU_DIPPING_TARGET_CHOSEN = 25, // Change Member BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_1 = 30, BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_2 = 31, BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_3 = 32, BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_4 = 33, BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_5 = 34, BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_6 = 35, BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_7 = 36, // Items BTL_SUBSTATE_PLAYER_MENU_ITEMS_1 = 40, BTL_SUBSTATE_PLAYER_MENU_ITEMS_2 = 41, BTL_SUBSTATE_PLAYER_MENU_ITEMS_3 = 42, BTL_SUBSTATE_PLAYER_MENU_ITEMS_4 = 43, BTL_SUBSTATE_PLAYER_MENU_ITEMS_5 = 44, BTL_SUBSTATE_PLAYER_MENU_ITEMS_6 = 45, // Star Spirits BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_1 = 60, BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_2 = 61, BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_3 = 62, BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_4 = 63, BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_5 = 64, BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_6 = 65, BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_7 = 66, // additional item use from Double/Triple dip BTL_SUBSTATE_PLAYER_MENU_DIPPING_1 = 70, BTL_SUBSTATE_PLAYER_MENU_DIPPING_2 = 71, BTL_SUBSTATE_PLAYER_MENU_DIPPING_3 = 72, BTL_SUBSTATE_PLAYER_MENU_DIPPING_4 = 73, BTL_SUBSTATE_PLAYER_MENU_DIPPING_5 = 74, BTL_SUBSTATE_PLAYER_MENU_DIPPING_6 = 75, // Berserker BTL_SUBSTATE_PLAYER_MENU_BERSERKER_CHOOSE = 100, // Strategies BTL_SUBSTATE_PLAYER_MENU_BUILD_STRATEGIES = 200, BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_2 = 201, BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_3 = 202, BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_4 = 203, BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_5 = 204, BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_6 = 205, BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_8 = 207, // initialize BTL_SUBSTATE_PLAYER_MENU_PERFORM_SWAP = 300, BTL_SUBSTATE_PLAYER_MENU_CREATE_MAIN_MENU = 302, }; enum BattlePartnerMenuSubstates { BTL_SUBSTATE_PARTNER_MENU_NONE = 0, // Main menu BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_1 = 2, BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_2 = 3, BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_3 = 4, BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_4 = 5, BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_5 = 6, BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_6 = 7, BTL_SUBSTATE_PARTNER_MENU_MAIN_SHOW_CANT_SWAP = 8, BTL_SUBSTATE_PARTNER_MENU_MAIN_AWAIT_CANT_SWAP = 9, // Abilities BTL_SUBSTATE_PARTNER_MENU_ABILITIES_1 = 10, BTL_SUBSTATE_PARTNER_MENU_ABILITIES_2 = 11, BTL_SUBSTATE_PARTNER_MENU_ABILITIES_3 = 12, BTL_SUBSTATE_PARTNER_MENU_ABILITIES_4 = 13, BTL_SUBSTATE_PARTNER_MENU_ABILITIES_5 = 14, BTL_SUBSTATE_PARTNER_MENU_ABILITIES_6 = 15, BTL_SUBSTATE_PARTNER_MENU_ABILITIES_7 = 16, // Unknown, referenced only in btl_state_draw_partner_menu BTL_SUBSTATE_PARTNER_MENU_UNKNOWN_1 = 20, BTL_SUBSTATE_PARTNER_MENU_UNKNOWN_2 = 21, BTL_SUBSTATE_PARTNER_MENU_UNKNOWN_3 = 22, BTL_SUBSTATE_PARTNER_MENU_UNKNOWN_4 = 23, BTL_SUBSTATE_PARTNER_MENU_UNKNOWN_5 = 24, // Change Partner BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_1 = 30, BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_2 = 31, BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_3 = 32, BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_4 = 33, BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_5 = 34, BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_6 = 35, BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_7 = 36, // Items BTL_SUBSTATE_PARTNER_MENU_ITEMS_1 = 40, BTL_SUBSTATE_PARTNER_MENU_ITEMS_2 = 41, BTL_SUBSTATE_PARTNER_MENU_ITEMS_3 = 42, BTL_SUBSTATE_PARTNER_MENU_ITEMS_4 = 43, BTL_SUBSTATE_PARTNER_MENU_ITEMS_5 = 44, BTL_SUBSTATE_PARTNER_MENU_ITEMS_6 = 45, // Switch partner (unused) BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_1 = 50, BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_2 = 51, BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_3 = 52, BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_4 = 53, BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_5 = 54, BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_6 = 55, BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_7 = 56, // Focus BTL_SUBSTATE_PARTNER_MENU_FOCUS_1 = 60, BTL_SUBSTATE_PARTNER_MENU_FOCUS_2 = 61, BTL_SUBSTATE_PARTNER_MENU_FOCUS_3 = 62, BTL_SUBSTATE_PARTNER_MENU_FOCUS_4 = 63, BTL_SUBSTATE_PARTNER_MENU_FOCUS_5 = 64, BTL_SUBSTATE_PARTNER_MENU_FOCUS_6 = 65, // Strategies BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_1 = 200, BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_2 = 201, BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_3 = 202, BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_4 = 203, BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_5 = 204, BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_6 = 205, // initialize BTL_SUBSTATE_PARTNER_MENU_12D = 301, BTL_SUBSTATE_PARTNER_MENU_INIT_MENU = 302, }; enum BattleMessages { BTL_MSG_MERLEE_ATK_UP = 0x00, BTL_MSG_MERLEE_DEF_UP = 0x01, BTL_MSG_MERLEE_EXP_UP = 0x02, BTL_MSG_MERLEE_DONE = 0x03, BTL_MSG_CHARGE_HAMMER = 0x04, BTL_MSG_CHARGE_HAMMER_MORE = 0x05, BTL_MSG_CHARGE_JUMP = 0x06, BTL_MSG_CHARGE_JUMP_MORE = 0x07, BTL_MSG_CANT_CHARGE = 0x08, BTL_MSG_ENEMY_MISSED = 0x09, BTL_MSG_PLAYER_DAZED = 0x0A, BTL_MSG_PLAYER_ASLEEP = 0x0B, BTL_MSG_PLAYER_FROZEN = 0x0C, BTL_MSG_PLAYER_POISONED = 0x0D, BTL_MSG_PLAYER_SHRUNK = 0x0E, BTL_MSG_PLAYER_PARALYZED = 0x0F, BTL_MSG_PLAYER_CHARGED = 0x10, BTL_MSG_PLAYER_TRANSPARENT = 0x11, BTL_MSG_ENEMY_DAZED = 0x12, BTL_MSG_ENEMY_ASLEEP = 0x13, BTL_MSG_ENEMY_FROZEN = 0x14, BTL_MSG_ENEMY_POISONED = 0x15, BTL_MSG_ENEMY_SHRUNK = 0x16, BTL_MSG_ENEMY_PARALYZED = 0x17, BTL_MSG_ENEMY_ELECTRIFIED = 0x18, BTL_MSG_ENEMY_CANT_MOVE = 0x19, BTL_MSG_STAR_POWER_RECHARGED = 0x1A, BTL_MSG_STAR_POWER_MAXED = 0x1B, BTL_MSG_STAR_POWER_FILLED = 0x1C, BTL_MSG_ATTACK_UP = 0x1D, BTL_MSG_DEFENCE_UP = 0x1E, BTL_MSG_HEAL_ONE = 0x1F, BTL_MSG_HEAL_ALL = 0x20, BTL_MSG_ENEMY_TRANSPARENT = 0x21, BTL_MSG_ENEMY_CHARGED = 0x22, BTL_MSG_PARTNER_INJURED = 0x23, BTL_MSG_CHARGE_GOOMBARIO = 0x24, BTL_MSG_CHARGE_GOOMBARIO_MORE = 0x25, BTL_MSG_WATER_BLOCK_BEGIN = 0x26, BTL_MSG_WATER_BLOCK_END = 0x27, BTL_MSG_CLOUD_NINE_BEGIN = 0x28, BTL_MSG_CLOUD_NINE_END = 0x29, BTL_MSG_TURBO_CHARGE_BEGIN = 0x2A, BTL_MSG_TURBO_CHARGE_END = 0x2B, BTL_MSG_CHILL_OUT_BEGIN = 0x2C, BTL_MSG_UNUSED_CLOUD_NINE = 0x2D, BTL_MSG_FIRST_ACTION_TIP = 0x2E, BTL_MSG_ACTION_TIP_PRESS_BEFORE_LANDING = 0x2E, // jump moves, Sky Dive BTL_MSG_ACTION_TIP_HOLD_LEFT_TIMED = 0x2F, // hammer moves, Belly Flop, Shell Toss BTL_MSG_ACTION_TIP_PRESS_BEFORE_STRIKE = 0x30, // Headbonk and Multibonk BTL_MSG_ACTION_TIP_MASH_BUTTON = 0x31, // Dizzy Shell, Power Shock, Air Lift, Bombette's moves BTL_MSG_ACTION_TIP_MASH_LEFT = 0x32, // Fire Shell, Air Raid, Spiny Surge, Bow's moves BTL_MSG_ACTION_TIP_HOLD_LEFT_AIM = 0x33, // Shell Shot BTL_MSG_ACTION_TIP_UNUSED_1 = 0x34, // unused BTL_MSG_ACTION_TIP_UNUSED_2 = 0x35, // unused BTL_MSG_ACTION_TIP_PRESS_BUTTONS_SHOWN = 0x36, // Tidal Wave BTL_MSG_ACTION_TIP_NOT_USED_1 = 0x37, // unused, special message BTL_MSG_ACTION_TIP_PRESS_WITH_TIMING = 0x38, // Turbo Charge, Water Block, Cloud Nine BTL_MSG_ACTION_TIP_NOT_USED_2 = 0x39, // unused, special message BTL_MSG_ACTION_TIP_MASH_BOTH = 0x3A, // Mega Shock and Hurricane BTL_MSG_ACTION_TIP_UNUSED_3 = 0x3B, // unused BTL_MSG_ACTION_TIP_HOLD_THEN_TAP = 0x3C, // Squirt BTL_MSG_ACTION_TIP_HOLD_THEN_RELEASE = 0x3D, // Body Slam and Electro Dash BTL_MSG_ACTION_TIP_MOVE_TO_AIM = 0x3E, // Spiny Flip BTL_MSG_ACTION_TIP_UNUSED_4 = 0x3F, // unused BTL_MSG_ACTION_TIP_BREAK_FREE = 0x40, // unused BTL_MSG_ACTION_TIP_REDUCE_DAMAGE = 0x41, // unused BTL_MSG_ACTION_TIP_NOT_USED_3 = 0x42, // Earthquake Jump BTL_MSG_LAST_ACTION_TIP = 0x42, BTL_MSG_NO_JUMP_TARGET = 0x43, BTL_MSG_NO_HAMMER_TARGET = 0x44, BTL_MSG_NO_ITEM_TARGET = 0x45, BTL_MSG_46 = 0x46, BTL_MSG_47 = 0x47, BTL_MSG_CANT_SELECT_NOW = 0x48, BTL_MSG_HAMMER_DISABLED_1 = 0x49, BTL_MSG_HAMMER_DISABLED_2 = 0x4A, BTL_MSG_HAMMER_DISABLED_3 = 0x4B, BTL_MSG_JUMP_DISABLED_1 = 0x4C, BTL_MSG_JUMP_DISABLED_2 = 0x4D, BTL_MSG_JUMP_DISABLED_3 = 0x4E, BTL_MSG_ITEMS_DISABLED = 0x4F, BTL_MSG_CANT_SWITCH = 0x50, BTL_MSG_CANT_MOVE = 0x51, BTL_MSG_CANT_SWITCH_UNUSED = 0x52, BTL_MSG_CANT_MOVE_UNUSED = 0x53, BTL_MSG_CANT_SELECT_NOW_ALT = 0x54, }; // states after INIT are different for each type of battle message enum BattleMessageStates { // generic INIT state shared by all message types BTL_MSG_STATE_INIT = 0, // states for popup messages like BTL_MSG_MERLEE_ATK_UP or BTL_MSG_ENEMY_ASLEEP BTL_MSG_STATE_POPUP_PRE_DELAY = 1, BTL_MSG_STATE_POPUP_DELAY = 2, BTL_MSG_STATE_POPUP_POST_DELAY = 3, BTL_MSG_STATE_POPUP_DISPOSE = 4, // states for action tip messages BTL_MSG_STATE_ACTION_TIP_DELAY = 1, BTL_MSG_STATE_ACTION_TIP_DISPOSE = 2, // states for error messages like BTL_MSG_NO_JUMP_TARGET or BTL_MSG_CANT_SELECT_NOW BTL_MSG_STATE_ERROR_PRE_DELAY = 1, BTL_MSG_STATE_ERROR_DELAY = 2, BTL_MSG_STATE_ERROR_POST_DELAY = 3, BTL_MSG_STATE_ERROR_DISPOSE = 4, // states for command disable notifications like BTL_MSG_ITEMS_DISABLED BTL_MSG_STATE_DISABLED_DELAY = 1, }; // BattleMenuState enum BattleMenuStates { BTL_MENU_STATE_OPENED_SUBMENU = -1, BTL_MENU_STATE_CREATE = 0, BTL_MENU_STATE_UNK_1 = 1, BTL_MENU_STATE_ACCEPT_INPUT = 2, BTL_MENU_STATE_UNK_A = 10, BTL_MENU_STATE_UNK_B = 11, BTL_MENU_STATE_UNK_14 = 20, BTL_MENU_STATE_UNK_1E = 30, BTL_MENU_STATE_SHOW_DISABLED_POPUP = 100, BTL_MENU_STATE_AWAIT_DISABLED_POPUP = 101, }; enum BattleMoveSubmenuStates { BTL_SUBMENU_MOVES_STATE_UNK_NEGATIVE_TWO = -2, // go back BTL_SUBMENU_MOVES_STATE_UNK_NEGATIVE_ONE = -1, BTL_SUBMENU_MOVES_STATE_UNK_0 = 0, BTL_SUBMENU_MOVES_STATE_UNK_1 = 1, BTL_SUBMENU_MOVES_STATE_UNK_A = 10, BTL_SUBMENU_MOVES_STATE_UNK_B = 11, BTL_SUBMENU_MOVES_STATE_UNK_14 = 20, BTL_SUBMENU_MOVES_STATE_UNK_1E = 30, BTL_SUBMENU_MOVES_STATE_UNK_28 = 40, BTL_SUBMENU_MOVES_STATE_UNK_29 = 41, BTL_SUBMENU_MOVES_STATE_UNK_2A = 42, }; enum BattleStratsSubmenuStates { BTL_SUBMENU_STRATS_STATE_CANCEL = -2, // go back BTL_SUBMENU_STRATS_STATE_SELECT = -1, // approve choice BTL_SUBMENU_STRATS_STATE_INIT = 0, BTL_SUBMENU_STRATS_STATE_CHOOSE = 1, BTL_SUBMENU_STRATS_STATE_UNK_10 = 10, BTL_SUBMENU_STRATS_STATE_UNK_11 = 11, BTL_SUBMENU_STRATS_STATE_UNK_20 = 20, BTL_SUBMENU_STRATS_STATE_UNK_30 = 30, BTL_SUBMENU_STRATS_STATE_ERROR_INIT = 40, BTL_SUBMENU_STRATS_STATE_ERROR_SHOW = 41, BTL_SUBMENU_STRATS_STATE_ERROR_DONE = 42, }; enum BattleMenuIndex { BTL_MENU_IDX_MAIN = 0, BTL_MENU_IDX_JUMP = 1, BTL_MENU_IDX_SMASH = 2, BTL_MENU_IDX_ITEMS = 3, BTL_MENU_IDX_DIP = 4, BTL_MENU_IDX_PARTNER = 5, BTL_MENU_IDX_STAR_POWER = 6, BTL_MENU_IDX_STRATEGY = 7, // partners only BTL_MENU_IDX_ABILITY = 1, BTL_MENU_IDX_PARTNER_ITEM = 4, }; enum BattleMenuTypes { BTL_MENU_TYPE_INVALID = -1, BTL_MENU_TYPE_JUMP = 0, BTL_MENU_TYPE_SMASH = 1, BTL_MENU_TYPE_ITEMS = 2, BTL_MENU_TYPE_RUN_AWAY = 3, BTL_MENU_TYPE_DEFEND = 4, BTL_MENU_TYPE_CHANGE_PARTNER = 5, BTL_MENU_TYPE_ABILITY = 6, BTL_MENU_TYPE_STRATEGIES = 7, BTL_MENU_TYPE_STAR_POWERS = 8, BTL_MENU_TYPE_DO_NOTHING = 9, BTL_MENU_TYPE_ACT_LATER = 10, BTL_MENU_TYPE_PARTNER_FOCUS = 11, }; enum BattleMenuDisableFlags { BTL_MENU_ENABLED_JUMP = 1 << BTL_MENU_TYPE_JUMP, BTL_MENU_ENABLED_SMASH = 1 << BTL_MENU_TYPE_SMASH, BTL_MENU_ENABLED_ITEMS = 1 << BTL_MENU_TYPE_ITEMS, BTL_MENU_ENABLED_ABILITIES = 1 << BTL_MENU_TYPE_ABILITY, BTL_MENU_ENABLED_STRATEGIES = 1 << BTL_MENU_TYPE_STRATEGIES, BTL_MENU_ENABLED_STAR_POWERS = 1 << BTL_MENU_TYPE_STAR_POWERS, BTL_MENU_ENABLED_PARTNER_FOCUS = 1 << BTL_MENU_TYPE_PARTNER_FOCUS, }; enum BattleRumbleModes { BTL_RUMBLE_STOP = 0, BTL_RUMBLE_LONG = 1, BTL_RUMBLE_HIT_MIN = 2, BTL_RUMBLE_HIT_LIGHT = 3, BTL_RUMBLE_HIT_HEAVY = 4, BTL_RUMBLE_HIT_EXTREME = 5, BTL_RUMBLE_HIT_MAX = 6, BTL_RUMBLE_PLAYER_MIN = 7, BTL_RUMBLE_PLAYER_LIGHT = 8, BTL_RUMBLE_PLAYER_HEAVY = 9, BTL_RUMBLE_PLAYER_EXTREME = 10, BTL_RUMBLE_PLAYER_MAX = 11, }; enum DebugEnemyContactModes { DEBUG_CONTACT_NONE = 0, // contact with enemies behaves normally DEBUG_CONTACT_CANT_TOUCH = 1, // enemies pass through the player and cannot start battles DEBUG_CONTACT_DIE_ON_TOUCH = 2, // enemies die on contact in the overworld DEBUG_CONTACT_DIE_IN_BATTLE = 3, // all enemies wll die during BATTLE_STATE_BEGIN_TURN DEBUG_CONTACT_AUTO_FLEE = 4, // the player flees during BATTLE_STATE_BEGIN_TURN }; enum DebugScriptstModes { DEBUG_SCRIPTS_NONE = 0, DEBUG_SCRIPTS_NO_UPDATE = 1, DEBUG_SCRIPTS_BLOCK_FUNC_DONE = 2, }; enum DebuffTypes { DEBUFF_TYPE_SLEEP = 0x00001000, DEBUFF_TYPE_STATIC = 0x00002000, DEBUFF_TYPE_FROZEN = 0x00004000, DEBUFF_TYPE_PARALYZED = 0x00010000, DEBUFF_TYPE_POISON = 0x00020000, DEBUFF_TYPE_DIZZY = 0x00040000, DEBUFF_TYPE_SHRINK = 0x00080000, DEBUFF_TYPE_STONE = 0x00100000, DEBUFF_TYPE_STOP = 0x00200000, DEBUFF_TYPE_DAZE = 0x01000000, DEBUFF_TYPE_INVISIBLE = 0x04000000, }; enum PlayerBasicJump { PLAYER_BASIC_JUMP_0 = 0, PLAYER_BASIC_JUMP_1 = 1, PLAYER_BASIC_JUMP_2 = 2, PLAYER_BASIC_JUMP_3 = 3, PLAYER_BASIC_JUMP_4 = 4, }; enum PlayerSuperJump { PLAYER_SUPER_JUMP_0 = 0, PLAYER_SUPER_JUMP_1 = 1, PLAYER_SUPER_JUMP_2 = 2, PLAYER_SUPER_JUMP_3 = 3, PLAYER_SUPER_JUMP_4 = 4, PLAYER_SUPER_JUMP_5 = 5, PLAYER_SUPER_JUMP_6 = 6, }; enum PlayerUltraJump { PLAYER_ULTRA_JUMP_0 = 0, PLAYER_ULTRA_JUMP_1 = 1, PLAYER_ULTRA_JUMP_2 = 2, PLAYER_ULTRA_JUMP_3 = 3, PLAYER_ULTRA_JUMP_4 = 4, }; enum GlobalOverrides { GLOBAL_OVERRIDES_DISABLE_RENDER_WORLD = 0x00000002, GLOBAL_OVERRIDES_DISABLE_DRAW_FRAME = 0x00000008, GLOBAL_OVERRIDES_MESSAGES_OVER_FRONTUI = 0x00000010, GLOBAL_OVERRIDES_SOFT_RESET = 0x00000020, // unused but functional GLOBAL_OVERRIDES_40 = 0x00000040, GLOBAL_OVERRIDES_ENABLE_FLOOR_REFLECTION = 0x00000080, GLOBAL_OVERRIDES_DISABLE_BATTLES = 0x00000100, GLOBAL_OVERRIDES_200 = 0x00000200, GLOBAL_OVERRIDES_400 = 0x00000400, GLOBAL_OVERRIDES_800 = 0x00000800, GLOBAL_OVERRIDES_PREV_DISABLE_BATTLES = 0x00001000, GLOBAL_OVERRIDES_PREV_200 = 0x00002000, GLOBAL_OVERRIDES_PREV_400 = 0x00004000, GLOBAL_OVERRIDES_PREV_800 = 0x00008000, GLOBAL_OVERRIDES_WINDOWS_OVER_CURTAINS = 0x00010000, GLOBAL_OVERRIDES_DONT_RESUME_SONG_AFTER_BATTLE = 0x00020000, GLOBAL_OVERRIDES_DISABLE_MENUS = 0x00040000, GLOBAL_OVERRIDES_MESSAGES_OVER_CURTAINS = 0x00100000, GLOBAL_OVERRIDES_CANT_PICK_UP_ITEMS = 0x00200000, }; #define MODEL_FLAGS_MASK_FFF0 (\ MODEL_FLAG_USES_CUSTOM_GFX \ | MODEL_FLAG_20 \ | MODEL_FLAG_IGNORE_FOG \ | MODEL_FLAG_HAS_LOCAL_VERTEX_COPY \ | MODEL_FLAG_BILLBOARD \ | MODEL_FLAG_DO_BOUNDS_CULLING \ | MODEL_FLAG_HAS_TRANSFORM \ | MODEL_FLAG_HAS_TEX_PANNER \ | MODEL_FLAG_MATRIX_DIRTY \ | MODEL_FLAG_IGNORE_MATRIX \ | MODEL_FLAG_UNUSED_4000 \ | MODEL_FLAG_UNUSED_8000) enum ModelFlags { MODEL_FLAG_VALID = 0x0001, MODEL_FLAG_HIDDEN = 0x0002, MODEL_FLAG_INACTIVE = 0x0004, MODEL_FLAG_TRANSFORM_GROUP_MEMBER = 0x0008, MODEL_FLAG_USES_CUSTOM_GFX = 0x0010, MODEL_FLAG_20 = 0x0020, MODEL_FLAG_IGNORE_FOG = 0x0040, MODEL_FLAG_HAS_LOCAL_VERTEX_COPY = 0x0080, MODEL_FLAG_BILLBOARD = 0x0100, // rotate to face the camera MODEL_FLAG_DO_BOUNDS_CULLING = 0x0200, MODEL_FLAG_HAS_TRANSFORM = 0x0400, MODEL_FLAG_HAS_TEX_PANNER = 0x0800, MODEL_FLAG_MATRIX_DIRTY = 0x1000, // transform matrix changed and combined matrix needs to be recalculated MODEL_FLAG_IGNORE_MATRIX = 0x2000, // set until dirty combined matrix has been recalculated MODEL_FLAG_UNUSED_4000 = 0x4000, MODEL_FLAG_UNUSED_8000 = 0x8000, }; enum ModelGroupVisibility { MODEL_GROUP_HIDDEN = 0, MODEL_GROUP_VISIBLE = 1, MODEL_GROUP_OTHERS_HIDDEN = 2, MODEL_GROUP_OTHERS_VISIBLE = 3, }; enum TintMode { ENV_TINT_UNCHANGED = -1, // no additional tint is applied (model is still be affected by world fog) ENV_TINT_NONE = 0, // additional fog which 'shrouds' the world during certain scenes ENV_TINT_SHROUD = 1, // adds depth-based tint using fog, overriding the world fog for affected models ENV_TINT_DEPTH = 2, // this mode remaps each color channel range from [0, 255] -> [min, max], // setting a new white point and black point for the scene. // the new max values are stored in PRIMITIVE and the new min values in ENV ENV_TINT_REMAP = 3, }; enum TexPanner { //select pan unit TEX_PANNER_0 = 0x0, TEX_PANNER_1 = 0x1, TEX_PANNER_2 = 0x2, TEX_PANNER_3 = 0x3, TEX_PANNER_4 = 0x4, TEX_PANNER_5 = 0x5, TEX_PANNER_6 = 0x6, TEX_PANNER_7 = 0x7, TEX_PANNER_8 = 0x8, TEX_PANNER_9 = 0x9, TEX_PANNER_A = 0xA, TEX_PANNER_B = 0xB, TEX_PANNER_C = 0xC, TEX_PANNER_D = 0xD, TEX_PANNER_E = 0xE, TEX_PANNER_F = 0xF, // select texture component TEX_PANNER_MAIN = 0, TEX_PANNER_AUX = 1, }; enum CustomGfxUnit { CUSTOM_GFX_NONE = -1, CUSTOM_GFX_0 = 0x00, CUSTOM_GFX_1 = 0x01, CUSTOM_GFX_2 = 0x02, CUSTOM_GFX_3 = 0x03, CUSTOM_GFX_4 = 0x04, CUSTOM_GFX_5 = 0x05, CUSTOM_GFX_6 = 0x06, CUSTOM_GFX_7 = 0x07, CUSTOM_GFX_8 = 0x08, CUSTOM_GFX_9 = 0x09, CUSTOM_GFX_A = 0x0A, CUSTOM_GFX_B = 0x0B, CUSTOM_GFX_C = 0x0C, CUSTOM_GFX_D = 0x0D, CUSTOM_GFX_E = 0x0E, CUSTOM_GFX_F = 0x0F, }; enum CopiedVtxUnit { VTX_COPY_0 = 0x0, VTX_COPY_1 = 0x1, VTX_COPY_2 = 0x2, VTX_COPY_3 = 0x3, VTX_COPY_4 = 0x4, VTX_COPY_5 = 0x5, VTX_COPY_6 = 0x6, VTX_COPY_7 = 0x7, VTX_COPY_8 = 0x8, VTX_COPY_9 = 0x9, VTX_COPY_A = 0xA, VTX_COPY_B = 0xB, VTX_COPY_C = 0xC, VTX_COPY_D = 0xD, VTX_COPY_E = 0xE, VTX_COPY_F = 0xF, }; enum ModelAnimUnit { MDL_ANIMATOR_0 = 0x0, MDL_ANIMATOR_1 = 0x1, MDL_ANIMATOR_2 = 0x2, MDL_ANIMATOR_3 = 0x3, MDL_ANIMATOR_4 = 0x4, MDL_ANIMATOR_5 = 0x5, MDL_ANIMATOR_6 = 0x6, MDL_ANIMATOR_7 = 0x7, MDL_ANIMATOR_8 = 0x8, MDL_ANIMATOR_9 = 0x9, MDL_ANIMATOR_A = 0xA, MDL_ANIMATOR_B = 0xB, MDL_ANIMATOR_C = 0xC, MDL_ANIMATOR_D = 0xD, MDL_ANIMATOR_E = 0xE, MDL_ANIMATOR_F = 0xF, }; enum MapRoomFlags { ROOM_FLAGS_VISGROUP_MASK = 0xF000, ROOM_FLAGS_MASK = 0x0F00, ROOM_FLAGS_DOOR_TYPE_MASK = 0x00FF, ROOM_DOOR_RIGHT_HINGE_OPENS_OUT = 0, // left --> center (hinge on right) ROOM_DOOR_RIGHT_HINGE_OPENS_IN = 1, // center --> left ROOM_DOOR_LEFT_HINGE_OPENS_OUT = 2, // right --> center (hinge on left) ROOM_DOOR_LEFT_HINGE_OPENS_IN = 3, // center --> right ROOM_DOOR_STRAIGHT_THROUGH = 4, // center --> center ROOM_LARGE_DOOR_RIGHT_HINGE_OPENS_OUT = 5, // deep left --> center (hinge on right) ROOM_LARGE_DOOR_RIGHT_HINGE_OPENS_IN = 6, // center --> deep left ROOM_LARGE_DOOR_LEFT_HINGE_OPENS_OUT = 7, // deep right --> center (hinge on left) ROOM_FLAG_CUSTOM_ANIM_OPEN_DOOR = 0x100, ROOM_FLAG_CUSTOM_ANIM_WALL_ROT = 0x200, ROOM_FLAG_CUSTOM_ANIM_DROP_DOOR = 0x400, ROOM_FLAG_EXIT_DOOR_DROPS = 0x800, // for internal use }; enum MapRoomNotifications { // dispatched to listener script during interactions with the room door ROOM_UPDATE_ENTER_BEGIN = 0, ROOM_UPDATE_ENTER_DONE = 1, ROOM_UPDATE_EXIT_BEGIN = 2, ROOM_UPDATE_EXIT_END = 3, // when handling ROOM_UPDATE_ENTER_BEGIN, listener may return this to cancel the door opening. useful for locked doors. ROOM_UPDATE_REQUEST_CANCEL = -1, // anim move door updates ROOM_MOVE_DOOR_ENTER_OPEN = 0, ROOM_MOVE_DOOR_ENTER_CLOSE = 1, ROOM_MOVE_DOOR_EXIT_OPEN = 2, ROOM_MOVE_DOOR_EXIT_CLOSE = 3, // anim move walls update ROOM_MOVE_WALL_OPEN = 0, ROOM_MOVE_WALL_1 = 1, // unused ROOM_MOVE_WALL_2 = 2, // unused ROOM_MOVE_WALL_CLOSE = 3, // anim drop droor updates ROOM_DROP_DOOR_ENTER = 0, ROOM_DROP_DOOR_1 = 1, // unused ROOM_DROP_DOOR_2 = 2, // unused ROOM_DROP_DOOR_EXIT = 3, }; enum EnemyFlags { ENEMY_FLAG_PASSIVE = 0x00000001, // Not hostile; collision does not trigger battle ENEMY_FLAG_UNUSED_2 = 0x00000002, // Unused ENEMY_FLAG_DO_NOT_KILL = 0x00000004, // Enemy will not be killed after being defeated in battle ENEMY_FLAG_ENABLE_HIT_SCRIPT = 0x00000008, ENEMY_FLAG_FLED = 0x00000010, ENEMY_FLAG_DISABLE_AI = 0x00000020, // Disable movement AI and collision (idle animation plays) ENEMY_FLAG_PROJECTILE = 0x00000040, ENEMY_FLAG_DONT_UPDATE_SHADOW_Y = 0x00000080, ENEMY_FLAG_IGNORE_WORLD_COLLISION = 0x00000100, ENEMY_FLAG_IGNORE_PLAYER_COLLISION = 0x00000200, ENEMY_FLAG_IGNORE_ENTITY_COLLISION = 0x00000400, ENEMY_FLAG_FLYING = 0x00000800, // Corresponds with NPC_FLAG_FLYING, name seems incorrect? ENEMY_FLAG_GRAVITY = 0x00001000, ENEMY_FLAG_NO_SHADOW_RAYCAST = 0x00002000, ENEMY_FLAG_HAS_NO_SPRITE = 0x00004000, ENEMY_FLAG_USE_INSPECT_ICON = 0x00008000, // Corresponds with NPC_FLAG_USE_INSPECT_ICON ENEMY_FLAG_RAYCAST_TO_INTERACT = 0x00010000, // Intended to require a line of sight raycast before conversations can be triggered. Seems bugged. Corresponds with NPC_FLAG_RAYCAST_TO_INTERACT ENEMY_FLAG_USE_PLAYER_SPRITE = 0x00020000, // Used for Peach NPCs ENEMY_FLAG_NO_DELAY_AFTER_FLEE = 0x00040000, ENEMY_FLAG_DONT_SUSPEND_SCRIPTS = 0x00080000, // Do not suspend ai/aux scripts when aiSuspendTime != 0 ENEMY_FLAG_SKIP_BATTLE = 0x00100000, ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN = 0x00200000, ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER = 0x00400000, ENEMY_FLAG_NO_DROPS = 0x00800000, // Do not drop hearts, flowers, or coins on defeat ENEMY_FLAG_IGNORE_TOUCH = 0x01000000, ENEMY_FLAG_IGNORE_JUMP = 0x02000000, ENEMY_FLAG_IGNORE_HAMMER = 0x04000000, ENEMY_FLAG_CANT_INTERACT = 0x08000000, // Makes passive NPCs non-interactable. Hostile NPCs are always non-interactible. ENEMY_FLAG_IGNORE_PARTNER = 0x10000000, ENEMY_FLAG_IGNORE_SPIN = 0x20000000, ENEMY_FLAG_BEGIN_WITH_CHASING = 0x40000000, // Starts in state AI_STATE_CHASE_INIT instead of AI_STATE_WANDER_INIT on spawn or AI resume ENEMY_FLAG_SUSPENDED = 0x80000000, }; #define BASE_PASSIVE_FLAGS \ ( ENEMY_FLAG_PASSIVE \ | ENEMY_FLAG_IGNORE_WORLD_COLLISION \ | ENEMY_FLAG_IGNORE_ENTITY_COLLISION \ | ENEMY_FLAG_FLYING \ ) #define COMMON_PASSIVE_FLAGS \ ( BASE_PASSIVE_FLAGS \ | ENEMY_FLAG_ENABLE_HIT_SCRIPT \ ) // used with enemy->aiFlags enum EnemyAIFlags { AI_FLAG_1 = 0x00000001, AI_FLAG_CANT_DETECT_PLAYER = 0x00000002, AI_FLAG_SUSPEND = 0x00000004, AI_FLAG_SKIP_EMOTE_AFTER_FLEE = 0x00000008, AI_FLAG_SKIP_IDLE_ANIM_AFTER_FLEE = 0x00000010, AI_FLAG_OUTSIDE_TERRITORY = 0x00000020, AI_FLAG_NEEDS_HEADING = 0x00000040, AI_FLAG_80 = 0x00000080, }; enum EnemyAIStates { // basic states AI_STATE_WANDER_INIT = 0, AI_STATE_WANDER = 1, AI_STATE_PATROL_INIT = 0, AI_STATE_PATROL = 1, AI_STATE_HOP_INIT = 0, AI_STATE_HOP = 1, AI_STATE_LOITER_INIT = 2, AI_STATE_LOITER = 3, AI_STATE_LOITER_POST = 4, AI_STATE_ALERT_INIT = 10, AI_STATE_ALERT = 11, AI_STATE_CHASE_INIT = 12, AI_STATE_CHASE = 13, AI_STATE_LOSE_PLAYER = 14, AI_STATE_PATROL_15 = 15, AI_RETURN_HOME_INIT = 40, AI_RETURN_HOME = 41, AI_STATE_SUSPEND = 99, // melee hitboxes AI_STATE_MELEE_HITBOX_INIT = 30, AI_STATE_MELEE_HITBOX_PRE = 31, AI_STATE_MELEE_HITBOX_ACTIVE = 32, AI_STATE_MELEE_HITBOX_MISS = 33, // projectile hitboxes AI_STATE_PROJECTILE_HITBOX_30 = 30, AI_STATE_PROJECTILE_HITBOX_31 = 31, AI_STATE_PROJECTILE_HITBOX_32 = 32, AI_STATE_PROJECTILE_HITBOX_33 = 33, }; enum EnemyActionFlags { AI_ACTION_JUMP_WHEN_SEE_PLAYER = 0x01, AI_ACTION_02 = 0x02, AI_ACTION_04 = 0x04, AI_ACTION_08 = 0x08, AI_ACTION_LOOK_AROUND_DURING_LOITER = 0x10, AI_ACTION_20 = 0x20 }; enum EnemyDetectFlags { AI_DETECT_SIGHT = 0x01, AI_DETECT_SENSITIVE_MOTION = 0x02, AI_DETECT_FLAG_8 = 0x08, }; enum TerritoryFlags { AI_TERRITORY_IGNORE_HIDING = 0x01, // bow and sushi dont prevent enemy detection AI_TERRITORY_IGNORE_ELEVATION = 0x02, // vertical size of detection volume is ignored }; enum PiranhaPlantStates { AI_STATE_PIRANHA_PLANT_00 = 0, AI_STATE_PIRANHA_PLANT_01 = 1, AI_STATE_PIRANHA_PLANT_10 = 10, AI_STATE_PIRANHA_PLANT_11 = 11, AI_STATE_PIRANHA_PLANT_12 = 12, AI_STATE_PIRANHA_PLANT_13 = 13, AI_STATE_PIRANHA_PLANT_14 = 14, AI_STATE_PIRANHA_PLANT_SUSPEND = 99 }; enum MeleeHitboxAttackStates { MELEE_HITBOX_STATE_NONE = 0, MELEE_HITBOX_STATE_INIT = 1, MELEE_HITBOX_STATE_PRE = 2, MELEE_HITBOX_STATE_ACTIVE = 3, // hitbox is active MELEE_HITBOX_STATE_POST = 4 }; enum ProjectileHitboxAttackStates { PROJECTILE_HITBOX_STATE_NONE = 0, PROJECTILE_HITBOX_STATE_INIT = 1, PROJECTILE_HITBOX_STATE_PRE = 2, PROJECTILE_HITBOX_STATE_ACTIVE = 3, // hitbox is active PROJECTILE_HITBOX_STATE_POST = 4, PROJECTILE_HITBOX_STATE_DONE = 100 }; enum MusicSettingsFlags { MUSIC_SETTINGS_FLAG_1 = 0x00000001, MUSIC_SETTINGS_FLAG_ENABLE_PROXIMITY_MIX = 0x00000002, MUSIC_SETTINGS_FLAG_4 = 0x00000004, MUSIC_SETTINGS_FLAG_8 = 0x00000008, MUSIC_SETTINGS_FLAG_10 = 0x00000010, MUSIC_SETTINGS_FLAG_20 = 0x00000020, }; // the lower byte of ColliderFlags enum SurfaceType { SURFACE_TYPE_DEFAULT = 0, SURFACE_TYPE_WATER = 1, SURFACE_TYPE_SPIKES = 2, SURFACE_TYPE_LAVA = 3, SURFACE_TYPE_DOCK_WALL = 4, SURFACE_TYPE_SLIDE = 5, SURFACE_TYPE_FLOWERS = 6, SURFACE_TYPE_CLOUD = 7, ///< used with clouds in flo_19 and flo_21 SURFACE_TYPE_SNOW = 8, SURFACE_TYPE_HEDGES = 9, ///< used within hedge maze in flo_11 SURFACE_TYPE_INVALID = -1, }; typedef enum SurfaceInteractMode { SURFACE_INTERACT_WALK = 0, SURFACE_INTERACT_RUN = 1, SURFACE_INTERACT_LAND = 2, } SurfaceInteractMode; // flags that can be set on colliders // passed into collision queries to selectively ignore certain types of objects or colliders enum ColliderFlags { COLLIDER_FLAGS_UPPER_MASK = 0x7FFFFE00, // map data dumper needs this to be first COLLIDER_FLAGS_SURFACE_TYPE_MASK = 0x000000FF, COLLIDER_FLAG_SAFE_FLOOR = 0x00000100, COLLIDER_FLAG_IGNORE_SHELL = 0x00008000, // colliders marked with this flag are not solid for shells COLLIDER_FLAG_IGNORE_PLAYER = 0x00010000, // colliders marked with this flag are not solid for player or partners COLLIDER_FLAG_IGNORE_NPC = 0x00020000, // colliders marked with this flag are not solid for npcs or item entities COLLISION_IGNORE_ENTITIES = 0x00040000, // used for collision queries, not set for colliders COLLIDER_FLAG_DOCK_WALL = 0x00080000, COLLISION_ONLY_ENTITIES = 0x00100000, // used for collision queries, not set for colliders COLLIDER_FLAG_HAS_MODEL_PARENT = 0x80000000 }; enum ColliderFlagsModifyMode { MODIFY_COLLIDER_FLAGS_SET_BITS = 0, MODIFY_COLLIDER_FLAGS_CLEAR_BITS = 1, MODIFY_COLLIDER_FLAGS_SET_VALUE = 2, MODIFY_COLLIDER_FLAGS_SET_SURFACE = 3, }; enum PlayerCollisionTests { PLAYER_COLLISION_0 = 0, PLAYER_COLLISION_1 = 1, PLAYER_COLLISION_2 = 2, PLAYER_COLLISION_HAMMER = 3, PLAYER_COLLISION_4 = 4, }; enum CameraFlags { CAMERA_FLAG_INITIALIZED = 0x00000001, CAMERA_FLAG_DISABLED = 0x00000002, CAMERA_FLAG_LEAD_PLAYER = 0x00000004, CAMERA_FLAG_SHAKING = 0x00000008, CAMERA_FLAG_ORTHO = 0x00000010, CAMERA_FLAG_NO_DRAW = 0x00000080, CAMERA_FLAG_RENDER_ENTITIES = 0x00000200, CAMERA_FLAG_RENDER_MODELS = 0x00000400, CAMERA_FLAG_SUPRESS_LEADING = 0x00001000, }; enum CameraMoveFlags { CAMERA_MOVE_IGNORE_PLAYER_Y = 0x00000001, CAMERA_MOVE_NO_INTERP_Y = 0x00000002, CAMERA_MOVE_ACCEL_INTERP_Y = 0x00000004, }; enum CameraUpdateMode { // simple camera based on lookAt_eye and lookAt_obj with no blending or interpolation // control this camera by directly setting these positions // has no other control parameters CAM_UPDATE_MINIMAL = 0, // this camera uses a set of control parameters to calculate its target lookAt_obj and lookAt_eye positions, // then interpolates current positions toward those targets, moving up to half the remaining distance each frame // the ultimate target is given by lookAt_obj_target // mostly used for CAM_HUD CAM_UPDATE_INTERP_POS = 2, // this camera samples camera zones below its targetPos and derives control parameters from their settings, // interpolating its control parameters when changing zones. these control parameters determine the camera // position and orientation just like other camera modes. // note that this code does NOT directly reference the player position in any manner, it is only concerned // with the camera's targetPos, which must be assigned elsewhere. // this is the camera used during world gameplay CAM_UPDATE_FROM_ZONE = 3, // this camera uses a set of control parameters to calculate its lookAt_obj and lookAt_eye positions, // which are only updated if skipRecalc = FALSE // the ultimate target is given by lookAt_obj_target, with an offset given by targetPos (?!) // in practice, this is used for CAM_BATTLE and CAM_TATTLE, with skipRecalc almost always set to FALSE CAM_UPDATE_NO_INTERP = 6, // this camera tracks lookAt_obj_target in a circular region centered on targetPos. the camera does not update // unless lookAt_obj_target is greater than a minimum distance from targetPos to prevent wild movements. CAM_UPDATE_UNUSED_RADIAL = 1, // this camera tracks targetPos, clamped within the rectangular region given by +/- xLimit and +/- zLimit // y-position is drawn from lookAt_obj_target // does not use easing or interpolation CAM_UPDATE_UNUSED_CONFINED = 4, // this camera tracks player position and adds basic 'leading' in the x-direction only // camera yaw is fixed at zero and the lead direction is determined by player world yaw // thus, this only works for '2D' style maps where left is -x and right is +x CAM_UPDATE_UNUSED_LEADING = 5, // this mode is completely unused in vanilla; it doesn't even have a case in update_cameras // seems to be based on CAM_UPDATE_NO_INTERP (the one used for battle cam) // tracks a point 400 units ahead of player position in the z-direction and 60 units above // defaults to a relatively short boom length and no pitch angle, resulting in a head-on direct view // CAM_UPDATE_UNUSED_AHEAD, }; enum CameraControlType { // Camera follows the player, using a fixed yaw position. // Uses: A/B as 2D points // Yaw is defined by the line segment AB // flag 0 = free forward movement (follow player) // flag 1 = lock forward movement (must intersect B) CAM_CONTROL_FIXED_ORIENTATION = 0, // Camera faces toward or away from a point with the player in the center of the frame. // Use a negative boom length to look away from a point. // flag 1 = Constrain to Fixed Radius CAM_CONTROL_LOOK_AT_POINT = 1, // Camera is contrained to a point along the line segment BC. // Use these near exits to stop camera movement. // Uses: A/B/C as 2D points // The target position is found by projecting player position onto BC along a line orthogonal to AB. // If posA == posB, AB is ignored and the projection axis will be along a line orthogonal to BC with // the resulting position being the closest point on BC to the player. // flag 1 = Freeze Camera Position CAM_CONTROL_CONSTRAIN_TO_LINE = 2, // Follows the player using whatever yaw value the camera initially possessed. CAM_CONTROL_FOLLOW_PLAYER = 3, // Both position and yaw are fixed. CAM_CONTROL_FIXED_POS_AND_ORIENTATION = 4, // Look Toward Point, Constrain to Line // flag 1 = Freeze Target at Point CAM_CONTROL_LOOK_AT_POINT_CONSTAIN_TO_LINE = 5, // Camera position is contrained to a line segment, with yaw perpendicular to the line segment. // flag 1 = Disable Forward Motion CAM_CONTROL_CONSTAIN_BETWEEN_POINTS = 6, }; enum BattleCamPreset { BTL_CAM_RESET = 0x00, BTL_CAM_INTERRUPT = 0x01, // forces camera motion to end BTL_CAM_DEFAULT = 0x02, // wide shot of the entire arena BTL_CAM_VIEW_ENEMIES = 0x03, // broad focus on enemy side of the field BTL_CAM_RETURN_HOME = 0x04, BTL_CAM_ACTOR_TARGET_MIDPOINT = 0x05, // focus on midpoint between subject actor and its target BTL_CAM_ACTOR_PART = 0x06, // unused BTL_CAM_ACTOR_GOAL_SIMPLE = 0x07, BTL_CAM_ACTOR_SIMPLE = 0x08, // same as BTL_CAM_ACTOR, but does not change boom pitch, yaw, or y-offset BTL_CAM_SLOW_DEFAULT = 0x09, // unused, same as BTL_CAM_DEFAULT but takes 4x as long BTL_CAM_MIDPOINT_CLOSE = 0x0A, BTL_CAM_MIDPOINT_NORMAL = 0x0B, BTL_CAM_MIDPOINT_FAR = 0x0C, // unused BTL_CAM_ACTOR_CLOSE = 0x0D, // focus on a targeted actor, closer than normal BTL_CAM_ACTOR = 0x0E, // focus on a targeted actor using typical distance BTL_CAM_ACTOR_FAR = 0x0F, // focus on a targeted actor, further away than normal BTL_CAM_ACTOR_GOAL_NEAR = 0x10, // unused, focus on a targeted actor's goal, closer than normal BTL_CAM_ACTOR_GOAL = 0x11, // unused, focus on a targeted actor's goal, using typical distance BTL_CAM_ACTOR_GOAL_FAR = 0x12, // unused, focus on a targeted actor's goal, further away than normal BTL_CAM_REPOSITION = 0x13, // generic reposition, lerp to target parameters over the next 20 frames BTL_CAM_FOLLOW_ACTOR_Y = 0x14, // unused BTL_CAM_FOLLOW_ACTOR_POS = 0x15, // unused BTL_CAM_PLAYER_ENTRY = 0x16, BTL_CAM_VICTORY = 0x17, // closeup on party while star points are tallied BTL_CAM_PLAYER_DIES = 0x18, // closeup on player dying BTL_CAM_PLAYER_FLEE = 0x19, // closeup on player while running away BTL_CAM_PLAYER_ATTACK_APPROACH = 0x1A, BTL_CAM_PLAYER_PRE_JUMP_FINISH = 0x1B, BTL_CAM_PLAYER_PRE_ULTRA_JUMP_FINISH = 0x1C, BTL_CAM_PLAYER_MISTAKE = 0x1D, // player missed a jump or hammer acion command BTL_CAM_PLAYER_HIT_SPIKE = 0x1E, // player hurt via spike contact BTL_CAM_PLAYER_HIT_HAZARD = 0x1F, // player hurt via burn or shock contact BTL_CAM_PLAYER_CHARGE_UP = 0x20, BTL_CAM_PLAYER_STATUS_AFFLICTED = 0x21, BTL_CAM_PLAYER_JUMP_MIDAIR = 0x22, // move through the air with the player mid-jump BTL_CAM_PLAYER_JUMP_FINISH = 0x23, // after a sucessful action command BTL_CAM_PLAYER_JUMP_FINISH_CLOSE = 0x24, // unused BTL_CAM_PLAYER_SUPER_JUMP_MIDAIR = 0x25, // alternate BTL_CAM_PLAYER_JUMP_MIDAIR associated with an unused script for Super Jump BTL_CAM_PLAYER_ULTRA_JUMP_MIDAIR = 0x26, // alternate BTL_CAM_PLAYER_JUMP_MIDAIR associated with an unused script for Ultra Jump BTL_CAM_PLAYER_UNUSED_ULTRA_JUMP = 0x27, // unused camera for followup hit of unused script for Ultra Jump BTL_CAM_PLAYER_MULTIBOUNCE = 0x28, BTL_CAM_PRESET_UNUSED_29 = 0x29, // unused BTL_CAM_PRESET_UNUSED_2A = 0x2A, // unused BTL_CAM_PLAYER_AIM_HAMMER = 0x2B, BTL_CAM_PLAYER_HAMMER_STRIKE = 0x2C, BTL_CAM_PRESET_UNUSED_2D = 0x2D, // unused, alterative to BTL_CAM_PLAYER_HAMMER_QUAKE BTL_CAM_PLAYER_HAMMER_QUAKE = 0x2E, // slowly pan over the enemy side BTL_CAM_PARTNER_APPROACH = 0x2F, // used by Goombario and Watt (power shock only) BTL_CAM_CLOSER_PARTNER_APPROACH = 0x30, BTL_CAM_PRESET_UNUSED_31 = 0x31, // unused BTL_CAM_GOOMBARIO_BONK_FOLLOWUP_1 = 0x32, // goombario pre-jump 1 BTL_CAM_PARTNER_MISTAKE = 0x33, BTL_CAM_PARTNER_MIDAIR = 0x34, BTL_CAM_GOOMBARIO_BONK_FOLLOWUP_2 = 0x35, // goombario pre-jump 2 BTL_CAM_PARTNER_INJURED = 0x36, // closeup on partner after being injured BTL_CAM_PARTNER_GOOMPA = 0x37, // focus on Goompa speaking or Goombario charging BTL_CAM_PRESET_UNUSED_38 = 0x38, // unused BTL_CAM_PRESET_UNUSED_39 = 0x39, // unused BTL_CAM_PRESET_UNUSED_3A = 0x3A, // unused BTL_CAM_PARTNER_CLOSE_UP = 0x3B, // close focus on partner, used when kooper or sushie are charging an attack BTL_CAM_PRESET_UNUSED_3C = 0x3C, // unused BTL_CAM_PARTNER_HIT_SPIKE = 0x3D, // partner hurt via spike contact BTL_CAM_PARTNER_HIT_HAZARD = 0x3E, // partner hurt via burn or shock contact BTL_CAM_ENEMY_APPROACH = 0x3F, // (very common) BTL_CAM_PRESET_UNUSED_40 = 0x40, // unused BTL_CAM_SLOWER_DEFAULT = 0x41, // unused, same as BTL_CAM_DEFAULT but takes slightly longer BTL_CAM_ENEMY_DIVE = 0x42, // used just before contact from dive attacks (paragoomba, para jr troopa, etc) BTL_CAM_PRESET_UNUSED_43 = 0x43, // unused BTL_CAM_PRESET_UNUSED_44 = 0x44, // unused BTL_CAM_PLAYER_WISH = 0x45, // used for Focus and Star Spirit wishing BTL_CAM_PRESET_UNUSED_46 = 0x46, // unused BTL_CAM_PRESET_UNUSED_47 = 0x47, // unused BTL_CAM_PRESET_UNUSED_48 = 0x48, // unused BTL_CAM_STAR_SPIRIT = 0x49, }; enum BattleCamTargetAdjustX { BTL_CAM_XADJ_NONE = 0, // use actor X BTL_CAM_XADJ_AVG = 1, // use average }; enum BattleCamTargetAdjustY { BTL_CAM_YADJ_SLIGHT = -2, // target y position is weighted 75% actor and 25% target: BTL_CAM_YADJ_TARGET = -1, // use target Y BTL_CAM_YADJ_NONE = 0, // use actor Y BTL_CAM_YADJ_AVG = 1, // target y position is weighted 66% actor and 33% target: }; enum ModelAnimatorFlags { MODEL_ANIMATOR_FLAG_CAM_0 = 0x00000001, MODEL_ANIMATOR_FLAG_CAM_1 = 0x00000002, MODEL_ANIMATOR_FLAG_CAM_2 = 0x00000004, MODEL_ANIMATOR_FLAG_CAM_3 = 0x00000008, MODEL_ANIMATOR_FLAG_ENABLED = 0x00000010, MODEL_ANIMATOR_FLAG_20 = 0x00000020, MODEL_ANIMATOR_FLAG_UPDATE_PENDING = 0x00000040, MODEL_ANIMATOR_FLAG_HIDDEN = 0x00000080, MODEL_ANIMATOR_FLAG_FLIP_Z = 0x00000100, MODEL_ANIMATOR_FLAG_FLIP_Y = 0x00000200, MODEL_ANIMATOR_FLAG_FLIP_X = 0x00000400, MODEL_ANIMATOR_FLAG_800 = 0x00000800, MODEL_ANIMATOR_FLAG_HAS_MODEL = 0x00001000, MODEL_ANIMATOR_FLAG_2000 = 0x00002000, MODEL_ANIMATOR_FLAG_4000 = 0x00004000, MODEL_ANIMATOR_FLAG_MESH = 0x00008000, MODEL_ANIMATOR_FLAG_CULL_BACK = 0x00010000, MODEL_ANIMATOR_FLAG_NO_FLIP = 0x00020000, MODEL_ANIMATOR_FLAG_FREEZE_ANIMATION = 0x00040000, MODEL_ANIMATOR_FLAG_80000 = 0x00080000, MODEL_ANIMATOR_FLAG_100000 = 0x00100000, MODEL_ANIMATOR_FLAG_200000 = 0x00200000, MODEL_ANIMATOR_FLAG_400000 = 0x00400000, MODEL_ANIMATOR_FLAG_800000 = 0x00800000, MODEL_ANIMATOR_FLAG_1000000 = 0x01000000, MODEL_ANIMATOR_FLAG_2000000 = 0x02000000, MODEL_ANIMATOR_FLAG_4000000 = 0x04000000, MODEL_ANIMATOR_FLAG_8000000 = 0x08000000, MODEL_ANIMATOR_FLAG_10000000 = 0x10000000, MODEL_ANIMATOR_FLAG_20000000 = 0x20000000, MODEL_ANIMATOR_FLAG_40000000 = 0x40000000, MODEL_ANIMATOR_FLAG_80000000 = 0x80000000, }; enum ShopFlags { SHOP_FLAG_SHOWING_ITEM_INFO = 0x1, SHOP_FLAG_INTERACT_SCRIPT_RUNNING = 0x8, }; enum { SHOP_MSG_BUY_CONFIRM = 0x00, SHOP_MSG_NOT_ENOUGH_COINS = 0x01, SHOP_MSG_NOT_ENOUGH_ROOM = 0x02, SHOP_MSG_BUY_THANK_YOU = 0x03, SHOP_MSG_GREETING = 0x04, SHOP_MSG_INSTRUCTIONS = 0x05, SHOP_MSG_NOTHING_TO_SELL = 0x06, SHOP_MSG_SELL_WHICH = 0x07, SHOP_MSG_SELL_CONFIRM = 0x08, SHOP_MSG_SELL_CANCEL = 0x09, SHOP_MSG_SELL_MORE = 0x0A, SHOP_MSG_SELL_THANKS = 0x0B, SHOP_MSG_NOTHING_TO_CHECK = 0x0C, SHOP_MSG_NO_CHECK_ROOM = 0x0D, SHOP_MSG_CHECK_WHICH = 0x0E, SHOP_MSG_CHECK_ACCEPTED = 0x0F, SHOP_MSG_CHECK_MORE = 0x10, SHOP_MSG_NOTHING_TO_CLAIM = 0x11, SHOP_MSG_NO_CLAIM_ROOM = 0x12, SHOP_MSG_CLAIM_WHICH = 0x13, SHOP_MSG_CLAIM_ACCEPTED = 0x14, SHOP_MSG_CLAIM_MORE = 0x15, SHOP_MSG_FAREWELL = 0x16, }; enum { SHOP_BUY_RESULT_NOT_ENOUGH_COINS = 0, SHOP_BUY_RESULT_OK = 1, SHOP_BUY_RESULT_2 = 2, SHOP_BUY_RESULT_CANCEL = 3, SHOP_BUY_RESULT_4 = 4, SHOP_BUY_RESULT_NOT_ENOUGH_ROOM = 5, }; enum EncounterFlags { ENCOUNTER_FLAG_NONE = 0x00000000, ENCOUNTER_FLAG_THUMBS_UP = 0x00000001, ///< Mario will do a 'thumbs up' animation after winning ENCOUNTER_FLAG_CANT_SKIP_WIN_DELAY = 0x00000002, ENCOUNTER_FLAG_SKIP_FLEE_DROPS = 0x00000004, }; enum WindowFlags { WINDOW_FLAG_INITIALIZED = 0x00000001, WINDOW_FLAG_FPUPDATE_CHANGED = 0x00000002, WINDOW_FLAG_HIDDEN = 0x00000004, ///< Updated but not rendered WINDOW_FLAG_INITIAL_ANIMATION = 0x00000008, WINDOW_FLAG_HAS_CHILDREN = 0x00000010, WINDOW_FLAG_DISABLED = 0x00000020, ///< Not updated or rendered WINDOW_FLAG_40 = 0x00000040, }; enum DrawFlags { DRAW_FLAG_ROTSCALE = 0x00000001, DRAW_FLAG_ANIMATED_BACKGROUND = 0x00000002, DRAW_FLAG_NO_CLIP = 0x00000004, DRAW_FLAG_CULL_BACK = 0x00000008, }; enum EntityModelFlags { ENTITY_MODEL_FLAG_CAM0 = 0x00000001, ENTITY_MODEL_FLAG_CAM1 = 0x00000002, ENTITY_MODEL_FLAG_CAM2 = 0x00000004, ENTITY_MODEL_FLAG_CAM3 = 0x00000008, ENTITY_MODEL_FLAG_ENABLED = 0x00000010, ENTITY_MODEL_FLAG_HIDDEN = 0x00000020, ENTITY_MODEL_FLAG_40 = 0x00000040, ENTITY_MODEL_FLAG_80 = 0x00000080, ENTITY_MODEL_FLAG_100 = 0x00000100, ENTITY_MODEL_FLAG_REFLECT = 0x00000200, ENTITY_MODEL_FLAG_USE_IMAGE = 0x00000400, ENTITY_MODEL_FLAG_FOG_DISABLED = 0x00000800, ENTITY_MODEL_FLAG_1000 = 0x00001000, ENTITY_MODEL_FLAG_2000 = 0x00002000, ENTITY_MODEL_FLAG_4000 = 0x00004000, ENTITY_MODEL_FLAG_8000 = 0x00008000, ENTITY_MODEL_FLAG_10000 = 0x00010000, ENTITY_MODEL_FLAG_DISABLE_SCRIPT = 0x00020000, ENTITY_MODEL_FLAG_40000 = 0x00040000, ENTITY_MODEL_FLAG_80000 = 0x00080000, ENTITY_MODEL_FLAG_100000 = 0x00100000, ENTITY_MODEL_FLAG_200000 = 0x00200000, ENTITY_MODEL_FLAG_400000 = 0x00400000, ENTITY_MODEL_FLAG_800000 = 0x00800000, ENTITY_MODEL_FLAG_1000000 = 0x01000000, ENTITY_MODEL_FLAG_2000000 = 0x02000000, ENTITY_MODEL_FLAG_4000000 = 0x04000000, ENTITY_MODEL_FLAG_8000000 = 0x08000000, ENTITY_MODEL_FLAG_10000000 = 0x10000000, ENTITY_MODEL_FLAG_20000000 = 0x20000000, ENTITY_MODEL_FLAG_40000000 = 0x40000000, ENTITY_MODEL_FLAG_80000000 = 0x80000000, }; enum TempSetZoneEnabledFlags { TEMP_SET_ZONE_ENABLED_FLAG_1 = 0x00000001, TEMP_SET_ZONE_ENABLED_FLAG_2 = 0x00000002, TEMP_SET_ZONE_ENABLED_FLAG_4 = 0x00000004, TEMP_SET_ZONE_ENABLED_FLAG_8 = 0x00000008, TEMP_SET_ZONE_ENABLED_FLAG_10 = 0x00000010, TEMP_SET_ZONE_ENABLED_FLAG_20 = 0x00000020, TEMP_SET_ZONE_ENABLED_FLAG_40 = 0x00000040, TEMP_SET_ZONE_ENABLED_FLAG_80 = 0x00000080, TEMP_SET_ZONE_ENABLED_FLAG_100 = 0x00000100, TEMP_SET_ZONE_ENABLED_FLAG_200 = 0x00000200, TEMP_SET_ZONE_ENABLED_FLAG_400 = 0x00000400, TEMP_SET_ZONE_ENABLED_FLAG_800 = 0x00000800, TEMP_SET_ZONE_ENABLED_FLAG_1000 = 0x00001000, TEMP_SET_ZONE_ENABLED_FLAG_2000 = 0x00002000, TEMP_SET_ZONE_ENABLED_FLAG_4000 = 0x00004000, TEMP_SET_ZONE_ENABLED_FLAG_8000 = 0x00008000, TEMP_SET_ZONE_ENABLED_FLAG_10000 = 0x00010000, TEMP_SET_ZONE_ENABLED_FLAG_20000 = 0x00020000, TEMP_SET_ZONE_ENABLED_FLAG_40000 = 0x00040000, TEMP_SET_ZONE_ENABLED_FLAG_80000 = 0x00080000, TEMP_SET_ZONE_ENABLED_FLAG_100000 = 0x00100000, TEMP_SET_ZONE_ENABLED_FLAG_200000 = 0x00200000, TEMP_SET_ZONE_ENABLED_FLAG_400000 = 0x00400000, TEMP_SET_ZONE_ENABLED_FLAG_800000 = 0x00800000, TEMP_SET_ZONE_ENABLED_FLAG_1000000 = 0x01000000, TEMP_SET_ZONE_ENABLED_FLAG_2000000 = 0x02000000, TEMP_SET_ZONE_ENABLED_FLAG_4000000 = 0x04000000, TEMP_SET_ZONE_ENABLED_FLAG_8000000 = 0x08000000, TEMP_SET_ZONE_ENABLED_FLAG_10000000 = 0x10000000, TEMP_SET_ZONE_ENABLED_FLAG_20000000 = 0x20000000, TEMP_SET_ZONE_ENABLED_FLAG_40000000 = 0x40000000, TEMP_SET_ZONE_ENABLED_FLAG_80000000 = 0x80000000, }; enum ModelTransformGroupFlags { TRANSFORM_GROUP_FLAG_VALID = 0x00000001, TRANSFORM_GROUP_FLAG_HIDDEN = 0x00000002, // update, but do not render TRANSFORM_GROUP_FLAG_INACTIVE = 0x00000004, TRANSFORM_GROUP_FLAG_HAS_TRANSFORM = 0x00000400, TRANSFORM_GROUP_FLAG_MATRIX_DIRTY = 0x00001000, TRANSFORM_GROUP_FLAG_IGNORE_MATRIX = 0x00002000, // set until dirty matrix has been recalculated }; enum NpcDropFlags { NPC_DROP_FLAG_80 = 0x80, }; enum ImgFXStateFlags { IMGFX_FLAG_VALID = 0x00000001, IMGFX_FLAG_G_CULL_BACK = 0x00000002, IMGFX_FLAG_G_CULL_FRONT = 0x00000004, IMGFX_FLAG_8 = 0x00000008, IMGFX_FLAG_SKIP_GFX_SETUP = 0x00000010, IMGFX_FLAG_SKIP_TEX_SETUP = 0x00000020, IMGFX_FLAG_40 = 0x00000040, IMGFX_FLAG_LOOP_ANIM = 0x00000080, IMGFX_FLAG_REVERSE_ANIM = 0x00000100, // fold animation plays backwards (from end to start) IMGFX_FLAG_200 = 0x00000200, IMGFX_FLAG_400 = 0x00000400, IMGFX_FLAG_800 = 0x00000800, IMGFX_FLAG_ANIM_DONE = 0x00001000, IMGFX_FLAG_2000 = 0x00002000, IMGFX_FLAG_4000 = 0x00004000, IMGFX_FLAG_8000 = 0x00008000, IMGFX_FLAG_NO_FILTERING = 0x00010000, IMGFX_FLAG_20000 = 0x00020000, IMGFX_FLAG_40000 = 0x00040000, IMGFX_FLAG_80000 = 0x00080000, IMGFX_FLAG_100000 = 0x00100000, }; typedef enum ImgFXType { IMGFX_CLEAR = 0x0, IMGFX_UNK_1 = 0x1, // unused? IMGFX_UNK_2 = 0x2, // unused? IMGFX_RESET = 0x3, // after goomba 'sticker' ambush in kmr_09 unfurls. might be to force-terminate ANIM. IMGFX_SET_WAVY = 0x4, // Kolorado when injured and Sushie when underwater (* note: Sushie fold rendering is bugged and only occurs *before* going underwater) IMGFX_SET_ANIM = 0x5, IMGFX_SET_COLOR = 0x6, // modulate color (args: R, G, B) IMGFX_SET_ALPHA = 0x7, // modulate alpha (args: A) IMGFX_SET_TINT = 0x8, // modulate color+alpha (args: R, G, B, A) IMGFX_SET_WHITE_FADE = 0x9, IMGFX_SET_CREDITS_FADE = 0xA, IMGFX_COLOR_BUF_SET_MULTIPLY = 0xB, IMGFX_COLOR_BUF_SET_MODULATE = 0xC, // used for color cycling on Monstar's outline IMGFX_HOLOGRAM = 0xD, // ghostly star spirits and merlar (args: ???, staticAmt, ???, alphaAmt) IMGFX_FILL_COLOR = 0xE, // used to create boss silhouettes in chapter introduction sceens IMGFX_OVERLAY = 0xF, IMGFX_OVERLAY_XLU = 0x10, // unused? IMGFX_ALLOC_COLOR_BUF = 0x11, // (args: count) creates buffer to set color of 'count' vertices } ImgFXType; typedef enum ImgFXAnim { IMGFX_ANIM_SHOCK = 0x00, // used for Goombaria and Goompapa when Kammy drops the hammer block IMGFX_ANIM_SHIVER = 0x01, // used when Goombaria gives Mario a kiss IMGFX_ANIM_VERTICAL_PIPE_CURL = 0x02, // vertical pipe curl IMGFX_ANIM_HORIZONTAL_PIPE_CURL = 0x03, // horizontal pipe curl IMGFX_ANIM_STARTLE = 0x04, // used when Koopa Bros are surprised by Mario IMGFX_ANIM_FLUTTER_DOWN = 0x05, // player falling like paper IMGFX_ANIM_UNFURL = 0x06, // used by Goomba 'stickers' that ambush Mario in area_kmr IMGFX_ANIM_GET_IN_BED = 0x07, // Mario gets into bed IMGFX_ANIM_SPIRIT_CAPTURE = 0x08, // Eldstar being captured IMGFX_ANIM_UNUSED_1 = 0x09, // unused IMGFX_ANIM_UNUSED_2 = 0x0A, // unused IMGFX_ANIM_UNUSED_3 = 0x0B, // unused IMGFX_ANIM_TUTANKOOPA_GATHER = 0x0C, // tutankoopa 3 IMGFX_ANIM_TUTANKOOPA_SWIRL_2 = 0x0D, // tutankoopa 2 IMGFX_ANIM_TUTANKOOPA_SWIRL_1 = 0x0E, // tutankoopa 1 IMGFX_ANIM_SHUFFLE_CARDS = 0x0F, // merlee spell-casting card shuffle IMGFX_ANIM_FLIP_CARD_1 = 0x10, // merlee spell-casting card flip 1 IMGFX_ANIM_FLIP_CARD_2 = 0x11, // merlee spell-casting card flip 2 IMGFX_ANIM_FLIP_CARD_3 = 0x12, // merlee spell-casting card flip 3 IMGFX_ANIM_CYMBAL_CRUSH = 0x13, // used when Mario is crushed in a Cymbal Plant } ImgFXAnim; typedef enum ImgFXRenderType { IMGFX_RENDER_DEFAULT = 0x00, IMGFX_RENDER_MULTIPLY_RGB = 0x01, IMGFX_RENDER_MULTIPLY_ALPHA = 0x02, IMGFX_RENDER_MULTIPLY_RGBA = 0x03, IMGFX_RENDER_MODULATE_PRIM_RGB = 0x04, IMGFX_RENDER_MODULATE_PRIM_RGBA = 0x05, IMGFX_RENDER_MULTIPLY_SHADE_RGB = 0x06, IMGFX_RENDER_MULTIPLY_SHADE_ALPHA = 0x07, IMGFX_RENDER_MULTIPLY_SHADE_RGBA = 0x08, IMGFX_RENDER_MODULATE_SHADE_RGB = 0x09, IMGFX_RENDER_MODULATE_SHADE_RGBA = 0x0A, IMGFX_RENDER_ANIM = 0x0B, IMGFX_RENDER_HOLOGRAM = 0x0C, IMGFX_RENDER_COLOR_FILL = 0x0D, IMGFX_RENDER_OVERLAY_RGB = 0x0E, IMGFX_RENDER_OVERLAY_RGBA = 0x0F, IMGFX_RENDER_UNUSED = 0x10, } ImgFXRenderType; enum ImgFXRenderModeFlags { IMGFX_RENDER_NO_OVERRIDE = 1, }; typedef enum ImgFXMeshType { IMGFX_MESH_DEFAULT = 0x0, IMGFX_MESH_GRID_WAVY = 0x1, IMGFX_MESH_ANIMATED = 0x2, IMGFX_MESH_GRID_UNUSED = 0x3, IMGFX_MESH_STRIP = 0x4, } ImgFXMeshType; enum ImgFXHologramTypes { IMGFX_HOLOGRAM_NOISE = 0, IMGFX_HOLOGRAM_DITHER = 1, IMGFX_HOLOGRAM_THRESHOLD = 2, }; enum SpriteCompImgFXFlags { SPR_IMGFX_FLAG_10000000 = 0x10000000, SPR_IMGFX_FLAG_20000000 = 0x20000000, SPR_IMGFX_FLAG_40000000 = 0x40000000, SPR_IMGFX_FLAG_80000000 = 0x80000000, SPR_IMGFX_FLAG_ALL = 0xF0000000, }; enum SpriteShadingFlags { SPR_SHADING_FLAG_ENABLED = 1, SPR_SHADING_FLAG_SET_VIEWPORT = 2, // never set }; enum MoveType { MOVE_TYPE_NONE = 0, MOVE_TYPE_HAMMER = 1, MOVE_TYPE_JUMP = 2, MOVE_TYPE_3 = 3, MOVE_TYPE_ITEMS = 4, MOVE_TYPE_SWITCH = 5, MOVE_TYPE_6 = 6, MOVE_TYPE_ATTACK_UP = 7, MOVE_TYPE_DEFENSE_UP = 8, MOVE_TYPE_9 = 9, MOVE_TYPE_STAR_POWER = 10, MOVE_TYPE_PARTNER = 11 }; enum BattleMenuStatus { BATTLE_SUBMENU_STATUS_ENABLED = 1, BATTLE_SUBMENU_STATUS_NOT_ENOUGH_FP = 0, BATTLE_SUBMENU_STATUS_NO_TARGETS = -1, BATTLE_SUBMENU_STATUS_NO_TARGETS_2 = -2, // TODO: determine difference, probably uses a different error message }; enum DictionaryIndex { DICTIONARY_KEY = 0, DICTIONARY_VALUE = 1, DICTIONARY_SIZE, }; enum WindowID { WIN_NONE = -1, WIN_UNUSED_0 = 0, WIN_BTL_MOVES_MENU = 1, WIN_BTL_MOVES_TITLE = 2, WIN_BTL_MOVES_ICON = 3, WIN_BTL_SPIRITS_TITLE = 4, WIN_BTL_SPIRITS_ICON = 5, WIN_BTL_STRATS_MENU = 6, WIN_BTL_STRATS_TITLE = 7, WIN_BTL_DESC_BOX = 8, // strats and level up menus WIN_BTL_POPUP = 9, WIN_SHOP_ITEM_NAME = 10, WIN_SHOP_ITEM_DESC = 11, WIN_PICKUP_HEADER = 12, WIN_UNUSED_13 = 13, // unused WIN_POPUP_CONTENT = 14, WIN_POPUP_TITLE_A = 15, WIN_POPUP_COST = 16, WIN_POPUP_TITLE_B = 17, // brown box used for "Throw away an item" and certain popup titles WIN_PARTNER_COST = 18, WIN_POPUP_DESC = 19, WIN_CURRENCY_COUNTER = 20, WIN_POPUP_PROMPT = 21, WIN_PAUSE_MAIN = 22, WIN_PAUSE_DECRIPTION = 23, WIN_FILES_CURSOR = 23, // same as previous WIN_PAUSE_TUTORIAL = 24, WIN_FILES_COPYARROW = 24, // same as previous WIN_PAUSE_TAB_STATS = 25, WIN_PAUSE_TAB_BADGES = 26, WIN_PAUSE_TAB_ITEMS = 27, WIN_PAUSE_TAB_PARTY = 28, WIN_PAUSE_TAB_SPIRITS = 29, WIN_PAUSE_TAB_MAP = 30, WIN_PAUSE_STATS = 31, WIN_PAUSE_BADGES = 32, WIN_PAUSE_ITEMS = 33, WIN_PAUSE_PARTNERS = 34, WIN_PAUSE_PARTNERS_TITLE = 35, WIN_PAUSE_PARTNERS_MOVELIST = 36, WIN_PAUSE_PARTNERS_MOVELIST_TITLE = 37, WIN_PAUSE_PARTNERS_MOVELIST_FLOWER = 38, WIN_PAUSE_SPIRITS = 39, WIN_PAUSE_SPIRITS_TITLE = 40, WIN_PAUSE_MAP = 41, WIN_PAUSE_MAP_TITLE = 42, WIN_PAUSE_TAB_INVIS = 43, WIN_PAUSE_CURSOR = 44, WIN_FILES_MAIN = 44, // same as previous WIN_FILES_TITLE = 45, WIN_FILES_CONFIRM_PROMPT = 46, WIN_FILES_MESSAGE = 47, WIN_FILES_INPUT_FIELD = 48, WIN_FILES_INPUT_KEYBOARD = 49, WIN_FILES_CONFIRM_OPTIONS = 50, WIN_FILES_STEREO = 51, WIN_FILES_MONO = 52, WIN_FILES_OPTION_LEFT = 53, WIN_FILES_OPTION_CENTER = 54, WIN_FILES_OPTION_RIGHT = 55, WIN_FILES_SLOT1_BODY = 56, WIN_FILES_SLOT2_BODY = 57, WIN_FILES_SLOT3_BODY = 58, WIN_FILES_SLOT4_BODY = 59, WIN_FILES_SLOT1_TITLE = 60, WIN_FILES_SLOT2_TITLE = 61, WIN_FILES_SLOT3_TITLE = 62, WIN_FILES_SLOT4_TITLE = 63, }; enum SimpleWindowUpdateId { WINDOW_UPDATE_SHOW = 1, WINDOW_UPDATE_HIDE = 2, WINDOW_UPDATE_HIER_UPDATE = 3, WINDOW_UPDATE_DARKENED = 4, WINDOW_UPDATE_TRANSPARENT = 5, WINDOW_UPDATE_OPAQUE = 6, WINDOW_UPDATE_SHOW_TRANSPARENT = 7, WINDOW_UPDATE_SHOW_DARKENED = 8, WINDOW_UPDATE_9 = 9, }; enum WindowGroupId { WINDOW_GROUP_ALL = 0, WINDOW_GROUP_BATTLE = 1, WINDOW_GROUP_PAUSE = 2, WINDOW_GROUP_FILES = 3, }; enum RushFlags { RUSH_FLAG_NONE = 0, RUSH_FLAG_MEGA = 1, RUSH_FLAG_POWER = 2, }; enum FileMenuMessages { /* 0 */ FILE_MESSAGE_NONE, /* 1 */ FILE_MESSAGE_SELECT_FILE_TO_START, // Select file to start:[End] /* 2 */ FILE_MESSAGE_SELECT_FILE_TO_DELETE, // Select file to delete:[End] #if !VERSION_PAL /* 3 */ FILE_MESSAGE_SELECT_FILE_TO_SAVE, // Select file to save[End] #endif /* 4 */ FILE_MESSAGE_COPY_WHICH_FILE, // Copy which file?[End] /* 5 */ FILE_MESSAGE_COPY_TO_WHICH_FILE, // Copy to which file?[End] /* 6 */ FILE_MESSAGE_NEW, // NEW[End] /* 7 */ FILE_MESSAGE_LEVEL, // Level[End] /* 8 */ FILE_MESSAGE_PLAY_TIME, // Play Time[End] /* 9 */ FILE_MESSAGE_DELETE_FILE, // Delete File[End] /* 10 */ FILE_MESSAGE_CANCEL, // Cancel[End] /* 11 */ FILE_MESSAGE_COPY_FILE, // Copy File[End] /* 12 */ FILE_MESSAGE_FIRST_PLAY, // First Play[End] /* 13 */ FILE_MESSAGE_PERIOD_13, // .[End] /* 14 */ FILE_MESSAGE_YES, // Yes[End] /* 15 */ FILE_MESSAGE_NO, // No[End] /* 16 */ FILE_MESSAGE_DELETE, // Delete[End] #if !VERSION_PAL /* 17 */ FILE_MESSAGE_OVERRIDE_TO_NEW_DATA, // Override to New Data[End] /* 18 */ FILE_MESSAGE_SAVE_OK, // Save OK?[End] #endif /* 19 */ FILE_MESSAGE_FILE_NAME_IS, // File name is :[End] /* 20 */ FILE_MESSAGE_PERIOD_20, // .[End] /* 21 */ FILE_MESSAGE_OK, // OK?[End] /* 22 */ FILE_MESSAGE_FILE_22, // File[End] #if VERSION_PAL FILE_MESSAGE_PAL_FILE_20, // File[End] / Dat.[End] / Fich.[End] #endif /* 23 */ FILE_MESSAGE_WILL_BE_DELETED, // will be deleted.[End] /* 24 */ FILE_MESSAGE_OK_TO_COPY_TO_THIS_FILE, // OK to copy to this file?[End] /* 25 */ FILE_MESSAGE_START_GAME_WITH, // Start game with[End] #if VERSION_PAL FILE_MESSAGE_PAL_QUESTION_24, // ?[End] / beginnen?[End] #endif /* 26 */ FILE_MESSAGE_FILE_26, // File[End] /* 27 */ FILE_MESSAGE_HAS_BEEN_DELETED, // has been deleted.[End] /* 28 */ FILE_MESSAGE_28, // [End] /* 29 */ FILE_MESSAGE_COPY_FROM, // Copy from[End] /* 30 */ FILE_MESSAGE_TO, // to[End] #if VERSION_PAL FILE_MESSAGE_PAL_PERIOD_30, // .[End] / kopieren.[End] #endif /* 31 */ FILE_MESSAGE_HAS_BEEN_CREATED, // has been created.[End] #if VERSION_PAL FILE_MESSAGE_PAL_ARTICLE, // [End] / Le[End] / El[End] #endif /* 32 */ FILE_MESSAGE_ENTER_A_FILE_NAME, // Enter a file name![End] /* 33 */ FILE_MESSAGE_QUESTION, // ?[End] /* 34 */ FILE_MESSAGE_PERIOD_34, // .[End] #if VERSION_PAL FILE_MESSAGE_PAL_FILENUM_1, FILE_MESSAGE_PAL_FILENUM_2, FILE_MESSAGE_PAL_FILENUM_3, FILE_MESSAGE_PAL_FILENUM_4, #endif }; // specifically used with draw_msg, not to be confused with MsgStyles enum DrawMsgStyleFlags { DRAW_MSG_STYLE_MENU = 1, // slightly higher baseline with smaller fullspace widths DRAW_MSG_STYLE_WAVY = 2, DRAW_MSG_STYLE_RAINBOW = 4, DRAW_MSG_STYLE_DROP_SHADOW = 8, }; // used with draw_number enum DrawNumberStyleFlags { DRAW_NUMBER_STYLE_ALIGN_RIGHT = 1, ///< drawn to the left of posX DRAW_NUMBER_STYLE_MONOSPACE = 2, DRAW_NUMBER_STYLE_MONOSPACE_RIGHT = 3, // combination of MONOSPACE and ALIGN_RIGHT DRAW_NUMBER_STYLE_DROP_SHADOW = 4, }; enum DrawNumberCharsets { DRAW_NUMBER_CHARSET_NORMAL = 0, DRAW_NUMBER_CHARSET_THIN = 1, }; enum MsgPalettes { MSG_PAL_WHITE = 0x00, MSG_PAL_TEAL = 0x01, MSG_PAL_BLUE = 0x02, MSG_PAL_GREEN = 0x03, MSG_PAL_LIME = 0x04, MSG_PAL_YELLOW = 0x05, MSG_PAL_ORANGE = 0x06, MSG_PAL_RED = 0x07, MSG_PAL_PURPLE = 0x08, MSG_PAL_PINK = 0x09, MSG_PAL_STANDARD = 0x0A, MSG_PAL_0B = 0x0B, MSG_PAL_0C = 0x0C, MSG_PAL_0D = 0x0D, MSG_PAL_0E = 0x0E, MSG_PAL_0F = 0x0F, MSG_PAL_10 = 0x10, MSG_PAL_11 = 0x11, MSG_PAL_12 = 0x12, MSG_PAL_13 = 0x13, MSG_PAL_14 = 0x14, MSG_PAL_15 = 0x15, MSG_PAL_16 = 0x16, MSG_PAL_17 = 0x17, MSG_PAL_18 = 0x18, MSG_PAL_19 = 0x19, MSG_PAL_1A = 0x1A, MSG_PAL_1B = 0x1B, MSG_PAL_1C = 0x1C, MSG_PAL_1D = 0x1D, MSG_PAL_1E = 0x1E, MSG_PAL_1F = 0x1F, MSG_PAL_20 = 0x20, MSG_PAL_21 = 0x21, MSG_PAL_22 = 0x22, MSG_PAL_23 = 0x23, MSG_PAL_24 = 0x24, MSG_PAL_25 = 0x25, MSG_PAL_26 = 0x26, MSG_PAL_27 = 0x27, MSG_PAL_28 = 0x28, MSG_PAL_29 = 0x29, MSG_PAL_2A = 0x2A, MSG_PAL_2B = 0x2B, MSG_PAL_2C = 0x2C, MSG_PAL_2D = 0x2D, MSG_PAL_2E = 0x2E, MSG_PAL_2F = 0x2F, MSG_PAL_30 = 0x30, MSG_PAL_31 = 0x31, MSG_PAL_32 = 0x32, MSG_PAL_33 = 0x33, MSG_PAL_34 = 0x34, MSG_PAL_35 = 0x35, MSG_PAL_36 = 0x36, MSG_PAL_37 = 0x37, MSG_PAL_38 = 0x38, MSG_PAL_39 = 0x39, MSG_PAL_3A = 0x3A, MSG_PAL_3B = 0x3B, MSG_PAL_3C = 0x3C, MSG_PAL_3D = 0x3D, MSG_PAL_3E = 0x3E, MSG_PAL_3F = 0x3F, MSG_PAL_40 = 0x40, MSG_PAL_41 = 0x41, MSG_PAL_42 = 0x42, MSG_PAL_43 = 0x43, MSG_PAL_44 = 0x44, MSG_PAL_45 = 0x45, MSG_PAL_46 = 0x46, MSG_PAL_47 = 0x47, MSG_PAL_48 = 0x48, MSG_PAL_49 = 0x49, MSG_PAL_4A = 0x4A, MSG_PAL_4B = 0x4B, MSG_PAL_4C = 0x4C, MSG_PAL_4D = 0x4D, MSG_PAL_4E = 0x4E, MSG_PAL_4F = 0x4F, MSG_PAL_50 = 0x50 }; enum MsgChars { #if VERSION_JP // Variant 0 - Hiragana, Katakana, Numeric, Fullwidth Symbols MSG_CHAR_HIRAGANA_A = 0x00, MSG_CHAR_HIRAGANA_I = 0x01, MSG_CHAR_HIRAGANA_U = 0x02, MSG_CHAR_HIRAGANA_E = 0x03, MSG_CHAR_HIRAGANA_O = 0x04, MSG_CHAR_HIRAGANA_KA = 0x05, MSG_CHAR_HIRAGANA_KI = 0x06, MSG_CHAR_HIRAGANA_KU = 0x07, MSG_CHAR_HIRAGANA_KE = 0x08, MSG_CHAR_HIRAGANA_KO = 0x09, MSG_CHAR_HIRAGANA_SA = 0x0A, MSG_CHAR_HIRAGANA_SI = 0x0B, MSG_CHAR_HIRAGANA_SU = 0x0C, MSG_CHAR_HIRAGANA_SE = 0x0D, MSG_CHAR_HIRAGANA_SO = 0x0E, MSG_CHAR_HIRAGANA_TA = 0x0F, MSG_CHAR_HIRAGANA_TI = 0x10, MSG_CHAR_HIRAGANA_TU = 0x11, MSG_CHAR_HIRAGANA_TE = 0x12, MSG_CHAR_HIRAGANA_TO = 0x13, MSG_CHAR_HIRAGANA_NA = 0x14, MSG_CHAR_HIRAGANA_NI = 0x15, MSG_CHAR_HIRAGANA_NU = 0x16, MSG_CHAR_HIRAGANA_NE = 0x17, MSG_CHAR_HIRAGANA_NO = 0x18, MSG_CHAR_HIRAGANA_HA = 0x19, MSG_CHAR_HIRAGANA_HI = 0x1A, MSG_CHAR_HIRAGANA_HU = 0x1B, MSG_CHAR_HIRAGANA_HE = 0x1C, MSG_CHAR_HIRAGANA_HO = 0x1D, MSG_CHAR_HIRAGANA_MA = 0x1E, MSG_CHAR_HIRAGANA_MI = 0x1F, MSG_CHAR_HIRAGANA_MU = 0x20, MSG_CHAR_HIRAGANA_ME = 0x21, MSG_CHAR_HIRAGANA_MO = 0x22, MSG_CHAR_HIRAGANA_YA = 0x23, MSG_CHAR_HIRAGANA_YU = 0x24, MSG_CHAR_HIRAGANA_YO = 0x25, MSG_CHAR_HIRAGANA_RA = 0x26, MSG_CHAR_HIRAGANA_RI = 0x27, MSG_CHAR_HIRAGANA_RU = 0x28, MSG_CHAR_HIRAGANA_RE = 0x29, MSG_CHAR_HIRAGANA_RO = 0x2A, MSG_CHAR_HIRAGANA_WA = 0x2B, MSG_CHAR_HIRAGANA_WO = 0x2C, MSG_CHAR_HIRAGANA_N = 0x2D, MSG_CHAR_HIRAGANA_VU = 0x2E, MSG_CHAR_HIRAGANA_GA = 0x2F, MSG_CHAR_HIRAGANA_GI = 0x30, MSG_CHAR_HIRAGANA_GU = 0x31, MSG_CHAR_HIRAGANA_GE = 0x32, MSG_CHAR_HIRAGANA_GO = 0x33, MSG_CHAR_HIRAGANA_ZA = 0x34, MSG_CHAR_HIRAGANA_ZI = 0x35, MSG_CHAR_HIRAGANA_ZU = 0x36, MSG_CHAR_HIRAGANA_ZE = 0x37, MSG_CHAR_HIRAGANA_ZO = 0x38, MSG_CHAR_HIRAGANA_DA = 0x39, MSG_CHAR_HIRAGANA_DI = 0x3A, MSG_CHAR_HIRAGANA_DU = 0x3B, MSG_CHAR_HIRAGANA_DE = 0x3C, MSG_CHAR_HIRAGANA_DO = 0x3D, MSG_CHAR_HIRAGANA_BA = 0x3E, MSG_CHAR_HIRAGANA_BI = 0x3F, MSG_CHAR_HIRAGANA_BU = 0x40, MSG_CHAR_HIRAGANA_BE = 0x41, MSG_CHAR_HIRAGANA_BO = 0x42, MSG_CHAR_HIRAGANA_PA = 0x43, MSG_CHAR_HIRAGANA_PI = 0x44, MSG_CHAR_HIRAGANA_PU = 0x45, MSG_CHAR_HIRAGANA_PE = 0x46, MSG_CHAR_HIRAGANA_PO = 0x47, MSG_CHAR_HIRAGANA_SMALL_A = 0x48, MSG_CHAR_HIRAGANA_SMALL_I = 0x49, MSG_CHAR_HIRAGANA_SMALL_U = 0x4A, MSG_CHAR_HIRAGANA_SMALL_E = 0x4B, MSG_CHAR_HIRAGANA_SMALL_O = 0x4C, MSG_CHAR_HIRAGANA_SMALL_TU = 0x4D, MSG_CHAR_HIRAGANA_SMALL_YA = 0x4E, MSG_CHAR_HIRAGANA_SMALL_YU = 0x4F, MSG_CHAR_HIRAGANA_SMALL_YO = 0x50, MSG_CHAR_KATAKANA_A = 0x51, MSG_CHAR_KATAKANA_I = 0x52, MSG_CHAR_KATAKANA_U = 0x53, MSG_CHAR_KATAKANA_E = 0x54, MSG_CHAR_KATAKANA_O = 0x55, MSG_CHAR_KATAKANA_KA = 0x56, MSG_CHAR_KATAKANA_KI = 0x57, MSG_CHAR_KATAKANA_KU = 0x58, MSG_CHAR_KATAKANA_KE = 0x59, MSG_CHAR_KATAKANA_KO = 0x5A, MSG_CHAR_KATAKANA_SA = 0x5B, MSG_CHAR_KATAKANA_SI = 0x5C, MSG_CHAR_KATAKANA_SU = 0x5D, MSG_CHAR_KATAKANA_SE = 0x5E, MSG_CHAR_KATAKANA_SO = 0x5F, MSG_CHAR_KATAKANA_TA = 0x60, MSG_CHAR_KATAKANA_TI = 0x61, MSG_CHAR_KATAKANA_TU = 0x62, MSG_CHAR_KATAKANA_TE = 0x63, MSG_CHAR_KATAKANA_TO = 0x64, MSG_CHAR_KATAKANA_NA = 0x65, MSG_CHAR_KATAKANA_NI = 0x66, MSG_CHAR_KATAKANA_NU = 0x67, MSG_CHAR_KATAKANA_NE = 0x68, MSG_CHAR_KATAKANA_NO = 0x69, MSG_CHAR_KATAKANA_HA = 0x6A, MSG_CHAR_KATAKANA_HI = 0x6B, MSG_CHAR_KATAKANA_HU = 0x6C, MSG_CHAR_KATAKANA_HE = 0x6D, MSG_CHAR_KATAKANA_HO = 0x6E, MSG_CHAR_KATAKANA_MA = 0x6F, MSG_CHAR_KATAKANA_MI = 0x70, MSG_CHAR_KATAKANA_MU = 0x71, MSG_CHAR_KATAKANA_ME = 0x72, MSG_CHAR_KATAKANA_MO = 0x73, MSG_CHAR_KATAKANA_YA = 0x74, MSG_CHAR_KATAKANA_YU = 0x75, MSG_CHAR_KATAKANA_YO = 0x76, MSG_CHAR_KATAKANA_RA = 0x77, MSG_CHAR_KATAKANA_RI = 0x78, MSG_CHAR_KATAKANA_RU = 0x79, MSG_CHAR_KATAKANA_RE = 0x7A, MSG_CHAR_KATAKANA_RO = 0x7B, MSG_CHAR_KATAKANA_WA = 0x7C, MSG_CHAR_KATAKANA_WO = 0x7D, MSG_CHAR_KATAKANA_N = 0x7E, MSG_CHAR_KATAKANA_VU = 0x7F, MSG_CHAR_KATAKANA_GA = 0x80, MSG_CHAR_KATAKANA_GI = 0x81, MSG_CHAR_KATAKANA_GU = 0x82, MSG_CHAR_KATAKANA_GE = 0x83, MSG_CHAR_KATAKANA_GO = 0x84, MSG_CHAR_KATAKANA_ZA = 0x85, MSG_CHAR_KATAKANA_ZI = 0x86, MSG_CHAR_KATAKANA_ZU = 0x87, MSG_CHAR_KATAKANA_ZE = 0x88, MSG_CHAR_KATAKANA_ZO = 0x89, MSG_CHAR_KATAKANA_DA = 0x8A, MSG_CHAR_KATAKANA_DI = 0x8B, MSG_CHAR_KATAKANA_DU = 0x8C, MSG_CHAR_KATAKANA_DE = 0x8D, MSG_CHAR_KATAKANA_DO = 0x8E, MSG_CHAR_KATAKANA_BA = 0x8F, MSG_CHAR_KATAKANA_BI = 0x90, MSG_CHAR_KATAKANA_BU = 0x91, MSG_CHAR_KATAKANA_BE = 0x92, MSG_CHAR_KATAKANA_BO = 0x93, MSG_CHAR_KATAKANA_PA = 0x94, MSG_CHAR_KATAKANA_PI = 0x95, MSG_CHAR_KATAKANA_PU = 0x96, MSG_CHAR_KATAKANA_PE = 0x97, MSG_CHAR_KATAKANA_PO = 0x98, MSG_CHAR_KATAKANA_SMALL_A = 0x99, MSG_CHAR_KATAKANA_SMALL_I = 0x9A, MSG_CHAR_KATAKANA_SMALL_U = 0x9B, MSG_CHAR_KATAKANA_SMALL_E = 0x9C, MSG_CHAR_KATAKANA_SMALL_O = 0x9D, MSG_CHAR_KATAKANA_SMALL_TU = 0x9E, MSG_CHAR_KATAKANA_SMALL_YA = 0x9F, MSG_CHAR_KATAKANA_SMALL_YU = 0xA0, MSG_CHAR_KATAKANA_SMALL_YO = 0xA1, MSG_CHAR_PROLONGED_SOUND = 0xA2, MSG_CHAR_TILDE = 0xA3, MSG_CHAR_LONGDASH_0 = 0xA4, MSG_CHAR_LONGDASH_1 = 0xA5, MSG_CHAR_LONGDASH_2 = 0xA6, MSG_CHAR_DIGIT_0 = 0xA7, MSG_CHAR_DIGIT_1 = 0xA8, MSG_CHAR_DIGIT_2 = 0xA9, MSG_CHAR_DIGIT_3 = 0xAA, MSG_CHAR_DIGIT_4 = 0xAB, MSG_CHAR_DIGIT_5 = 0xAC, MSG_CHAR_DIGIT_6 = 0xAD, MSG_CHAR_DIGIT_7 = 0xAE, MSG_CHAR_DIGIT_8 = 0xAF, MSG_CHAR_DIGIT_9 = 0xB0, MSG_CHAR_UP = 0xB1, MSG_CHAR_DOWN = 0xB2, MSG_CHAR_LEFT = 0xB3, MSG_CHAR_RIGHT = 0xB4, MSG_CHAR_EXCLAMATION = 0xB5, MSG_CHAR_QUESTION = 0xB6, MSG_CHAR_PLUS = 0xB7, MSG_CHAR_MINUS = 0xB8, MSG_CHAR_FORWARDSLASH = 0xB9, MSG_CHAR_PERIOD = 0xBA, MSG_CHAR_AND = 0xBB, MSG_CHAR_HASH = 0xBC, MSG_CHAR_HEART = 0xBD, MSG_CHAR_STAR = 0xBE, MSG_CHAR_LPAREN = 0xBF, MSG_CHAR_RPAREN = 0xC0, MSG_CHAR_TLBRACKET = 0xC1, MSG_CHAR_BRBRACKET = 0xC2, MSG_CHAR_MIDDLE_DOT = 0xC3, MSG_CHAR_HIRAGANA_SMALL_N = 0xC4, MSG_CHAR_KATAKANA_SMALL_N = 0xC5, MSG_CHAR_KANJI_C6 = 0xC6, MSG_CHAR_KANJI_C7 = 0xC7, // Variant 1 - Latin Alphabet MSG_CHAR_UPPER_A = 0x00, MSG_CHAR_UPPER_B = 0x01, MSG_CHAR_UPPER_C = 0x02, MSG_CHAR_UPPER_D = 0x03, MSG_CHAR_UPPER_E = 0x04, MSG_CHAR_UPPER_F = 0x05, MSG_CHAR_UPPER_G = 0x06, MSG_CHAR_UPPER_H = 0x07, MSG_CHAR_UPPER_I = 0x08, MSG_CHAR_UPPER_J = 0x09, MSG_CHAR_UPPER_K = 0x0A, MSG_CHAR_UPPER_L = 0x0B, MSG_CHAR_UPPER_M = 0x0C, MSG_CHAR_UPPER_N = 0x0D, MSG_CHAR_UPPER_O = 0x0E, MSG_CHAR_UPPER_P = 0x0F, MSG_CHAR_UPPER_Q = 0x10, MSG_CHAR_UPPER_R = 0x11, MSG_CHAR_UPPER_S = 0x12, MSG_CHAR_UPPER_T = 0x13, MSG_CHAR_UPPER_U = 0x14, MSG_CHAR_UPPER_V = 0x15, MSG_CHAR_UPPER_W = 0x16, MSG_CHAR_UPPER_X = 0x17, MSG_CHAR_UPPER_Y = 0x18, MSG_CHAR_UPPER_Z = 0x19, MSG_CHAR_LOWER_Z = 0x1A, // Variant 2 - Kanji (Chinese) characters MSG_CHAR_KANJI_00 = 0x00, MSG_CHAR_KANJI_01 = 0x01, MSG_CHAR_KANJI_02 = 0x02, MSG_CHAR_KANJI_03 = 0x03, MSG_CHAR_KANJI_04 = 0x04, MSG_CHAR_KANJI_05 = 0x05, MSG_CHAR_KANJI_06 = 0x06, MSG_CHAR_KANJI_07 = 0x07, MSG_CHAR_KANJI_08 = 0x08, MSG_CHAR_KANJI_09 = 0x09, MSG_CHAR_KANJI_0A = 0x0A, MSG_CHAR_KANJI_0B = 0x0B, MSG_CHAR_KANJI_0C = 0x0C, MSG_CHAR_KANJI_0D = 0x0D, MSG_CHAR_KANJI_0E = 0x0E, MSG_CHAR_KANJI_0F = 0x0F, MSG_CHAR_KANJI_10 = 0x10, MSG_CHAR_KANJI_11 = 0x11, MSG_CHAR_KANJI_12 = 0x12, MSG_CHAR_KANJI_13 = 0x13, MSG_CHAR_KANJI_14 = 0x14, MSG_CHAR_KANJI_15 = 0x15, MSG_CHAR_KANJI_16 = 0x16, MSG_CHAR_KANJI_17 = 0x17, MSG_CHAR_KANJI_18 = 0x18, MSG_CHAR_KANJI_19 = 0x19, MSG_CHAR_KANJI_1A = 0x1A, MSG_CHAR_KANJI_1B = 0x1B, MSG_CHAR_KANJI_1C = 0x1C, MSG_CHAR_KANJI_1D = 0x1D, MSG_CHAR_KANJI_1E = 0x1E, MSG_CHAR_KANJI_1F = 0x1F, MSG_CHAR_KANJI_20 = 0x20, MSG_CHAR_KANJI_21 = 0x21, MSG_CHAR_KANJI_22 = 0x22, MSG_CHAR_KANJI_23 = 0x23, MSG_CHAR_KANJI_24 = 0x24, MSG_CHAR_KANJI_25 = 0x25, MSG_CHAR_KANJI_26 = 0x26, MSG_CHAR_KANJI_27 = 0x27, MSG_CHAR_KANJI_28 = 0x28, MSG_CHAR_KANJI_29 = 0x29, MSG_CHAR_KANJI_2A = 0x2A, MSG_CHAR_KANJI_2B = 0x2B, MSG_CHAR_KANJI_2C = 0x2C, MSG_CHAR_KANJI_2D = 0x2D, MSG_CHAR_KANJI_2E = 0x2E, MSG_CHAR_KANJI_2F = 0x2F, MSG_CHAR_KANJI_30 = 0x30, MSG_CHAR_KANJI_31 = 0x31, MSG_CHAR_KANJI_32 = 0x32, MSG_CHAR_KANJI_33 = 0x33, MSG_CHAR_KANJI_34 = 0x34, MSG_CHAR_KANJI_35 = 0x35, MSG_CHAR_KANJI_36 = 0x36, MSG_CHAR_KANJI_37 = 0x37, MSG_CHAR_KANJI_38 = 0x38, MSG_CHAR_KANJI_39 = 0x39, MSG_CHAR_KANJI_3A = 0x3A, MSG_CHAR_KANJI_3B = 0x3B, MSG_CHAR_KANJI_3C = 0x3C, MSG_CHAR_KANJI_3D = 0x3D, MSG_CHAR_KANJI_3E = 0x3E, MSG_CHAR_KANJI_3F = 0x3F, MSG_CHAR_KANJI_40 = 0x40, MSG_CHAR_KANJI_41 = 0x41, MSG_CHAR_KANJI_42 = 0x42, MSG_CHAR_KANJI_43 = 0x43, MSG_CHAR_KANJI_44 = 0x44, MSG_CHAR_KANJI_45 = 0x45, MSG_CHAR_KANJI_46 = 0x46, MSG_CHAR_KANJI_47 = 0x47, MSG_CHAR_KANJI_48 = 0x48, MSG_CHAR_KANJI_49 = 0x49, MSG_CHAR_KANJI_4A = 0x4A, MSG_CHAR_KANJI_4B = 0x4B, MSG_CHAR_KANJI_4C = 0x4C, MSG_CHAR_KANJI_4D = 0x4D, MSG_CHAR_KANJI_4E = 0x4E, MSG_CHAR_KANJI_4F = 0x4F, MSG_CHAR_KANJI_50 = 0x50, MSG_CHAR_KANJI_51 = 0x51, MSG_CHAR_KANJI_52 = 0x52, MSG_CHAR_KANJI_53 = 0x53, MSG_CHAR_KANJI_54 = 0x54, MSG_CHAR_KANJI_55 = 0x55, MSG_CHAR_KANJI_56 = 0x56, MSG_CHAR_KANJI_57 = 0x57, MSG_CHAR_KANJI_58 = 0x58, MSG_CHAR_KANJI_59 = 0x59, MSG_CHAR_KANJI_5A = 0x5A, MSG_CHAR_KANJI_5B = 0x5B, MSG_CHAR_KANJI_5C = 0x5C, MSG_CHAR_KANJI_5D = 0x5D, MSG_CHAR_KANJI_5E = 0x5E, MSG_CHAR_KANJI_5F = 0x5F, MSG_CHAR_KANJI_60 = 0x60, MSG_CHAR_CIRCLE = 0x61, MSG_CHAR_CROSS = 0x62, MSG_CHAR_KANJI_63 = 0x63, MSG_CHAR_KANJI_64 = 0x64, MSG_CHAR_KANJI_65 = 0x65, MSG_CHAR_KANJI_66 = 0x66, MSG_CHAR_KANJI_67 = 0x67, MSG_CHAR_KANJI_68 = 0x68, MSG_CHAR_KANJI_69 = 0x69, MSG_CHAR_NOTE = 0x6A, MSG_CHAR_KANJI_6B = 0x6B, MSG_CHAR_KANJI_6C = 0x6C, MSG_CHAR_KANJI_6D = 0x6D, MSG_CHAR_KANJI_6E = 0x6E, MSG_CHAR_KANJI_6F = 0x6F, MSG_CHAR_KANJI_70 = 0x70, MSG_CHAR_KANJI_71 = 0x71, MSG_CHAR_KANJI_72 = 0x72, MSG_CHAR_KANJI_73 = 0x73, MSG_CHAR_KANJI_74 = 0x74, MSG_CHAR_KANJI_75 = 0x75, MSG_CHAR_KANJI_76 = 0x76, MSG_CHAR_KANJI_77 = 0x77, MSG_CHAR_LOWER_X = 0x78, // Variant 3 - N64 Button Icons MSG_CHAR_BUTTON_A = 0x00, MSG_CHAR_BUTTON_B = 0x01, MSG_CHAR_BUTTON_START = 0x02, MSG_CHAR_BUTTON_C_UP = 0x03, MSG_CHAR_BUTTON_C_DOWN = 0x04, MSG_CHAR_BUTTON_C_LEFT = 0x05, MSG_CHAR_BUTTON_C_RIGHT = 0x06, MSG_CHAR_BUTTON_Z = 0x07, MSG_CHAR_BUTTON_L = 0x08, MSG_CHAR_BUTTON_R = 0x09, #else MSG_CHAR_NOTE = 0x00, MSG_CHAR_EXCLAMTION = 0x01, MSG_CHAR_BACKSLASH = 0x02, MSG_CHAR_HASH = 0x03, MSG_CHAR_DOLLAR = 0x04, MSG_CHAR_PERCENT = 0x05, MSG_CHAR_AND = 0x06, MSG_CHAR_APOSTROPHE = 0x07, MSG_CHAR_LPAREN = 0x08, MSG_CHAR_RPAREN = 0x09, MSG_CHAR_TIMES = 0x0A, MSG_CHAR_PLUS = 0x0B, MSG_CHAR_COMMA = 0x0C, MSG_CHAR_MINUS = 0x0D, MSG_CHAR_PERIOD = 0x0E, MSG_CHAR_FORWARDSLASH = 0x0F, MSG_CHAR_DIGIT_0 = 0x10, MSG_CHAR_DIGIT_1 = 0x11, MSG_CHAR_DIGIT_2 = 0x12, MSG_CHAR_DIGIT_3 = 0x13, MSG_CHAR_DIGIT_4 = 0x14, MSG_CHAR_DIGIT_5 = 0x15, MSG_CHAR_DIGIT_6 = 0x16, MSG_CHAR_DIGIT_7 = 0x17, MSG_CHAR_DIGIT_8 = 0x18, MSG_CHAR_DIGIT_9 = 0x19, MSG_CHAR_COLON = 0x1A, MSG_CHAR_SEMICOLON = 0x1B, MSG_CHAR_LESS_THAN = 0x1C, MSG_CHAR_EQUAL = 0x1D, MSG_CHAR_GREATER_THAN = 0x1E, MSG_CHAR_QUESTION = 0x1F, MSG_CHAR_AT = 0x20, MSG_CHAR_UPPER_A = 0x21, MSG_CHAR_UPPER_B = 0x22, MSG_CHAR_UPPER_C = 0x23, MSG_CHAR_UPPER_D = 0x24, MSG_CHAR_UPPER_E = 0x25, MSG_CHAR_UPPER_F = 0x26, MSG_CHAR_UPPER_G = 0x27, MSG_CHAR_UPPER_H = 0x28, MSG_CHAR_UPPER_I = 0x29, MSG_CHAR_UPPER_J = 0x2A, MSG_CHAR_UPPER_K = 0x2B, MSG_CHAR_UPPER_L = 0x2C, MSG_CHAR_UPPER_M = 0x2D, MSG_CHAR_UPPER_N = 0x2E, MSG_CHAR_UPPER_O = 0x2F, MSG_CHAR_UPPER_P = 0x30, MSG_CHAR_UPPER_Q = 0x31, MSG_CHAR_UPPER_R = 0x32, MSG_CHAR_UPPER_S = 0x33, MSG_CHAR_UPPER_T = 0x34, MSG_CHAR_UPPER_U = 0x35, MSG_CHAR_UPPER_V = 0x36, MSG_CHAR_UPPER_W = 0x37, MSG_CHAR_UPPER_X = 0x38, MSG_CHAR_UPPER_Y = 0x39, MSG_CHAR_UPPER_Z = 0x3A, MSG_CHAR_LBRACKET = 0x3B, MSG_CHAR_YEN = 0x3C, MSG_CHAR_RBRACKET = 0x3D, MSG_CHAR_CARET = 0x3E, MSG_CHAR_UNDERSCORE = 0x3F, MSG_CHAR_BACKTICK = 0x40, MSG_CHAR_LOWER_A = 0x41, MSG_CHAR_LOWER_B = 0x42, MSG_CHAR_LOWER_C = 0x43, MSG_CHAR_LOWER_D = 0x44, MSG_CHAR_LOWER_E = 0x45, MSG_CHAR_LOWER_F = 0x46, MSG_CHAR_LOWER_G = 0x47, MSG_CHAR_LOWER_H = 0x48, MSG_CHAR_LOWER_I = 0x49, MSG_CHAR_LOWER_J = 0x4A, MSG_CHAR_LOWER_K = 0x4B, MSG_CHAR_LOWER_L = 0x4C, MSG_CHAR_LOWER_M = 0x4D, MSG_CHAR_LOWER_N = 0x4E, MSG_CHAR_LOWER_O = 0x4F, MSG_CHAR_LOWER_P = 0x50, MSG_CHAR_LOWER_Q = 0x51, MSG_CHAR_LOWER_R = 0x52, MSG_CHAR_LOWER_S = 0x53, MSG_CHAR_LOWER_T = 0x54, MSG_CHAR_LOWER_U = 0x55, MSG_CHAR_LOWER_V = 0x56, MSG_CHAR_LOWER_W = 0x57, MSG_CHAR_LOWER_X = 0x58, MSG_CHAR_LOWER_Y = 0x59, MSG_CHAR_LOWER_Z = 0x5A, MSG_CHAR_LCURLY = 0x5B, MSG_CHAR_PIPE = 0x5C, MSG_CHAR_RCURLY = 0x5D, MSG_CHAR_TILDA = 0x5E, MSG_CHAR_DEGREE = 0x5F, MSG_CHAR_UPPER_A_GRAVE = 0x60, MSG_CHAR_UPPER_A_ACUTE = 0x61, MSG_CHAR_UPPER_A_CIRCUMFLEX = 0x62, MSG_CHAR_UPPER_A_UMLAUT = 0x63, MSG_CHAR_UPPER_C_CEDILLA = 0x64, MSG_CHAR_UPPER_E_GRAVE = 0x65, MSG_CHAR_UPPER_E_ACUTE = 0x66, MSG_CHAR_UPPER_E_CIRCUMFLEX = 0x67, MSG_CHAR_UPPER_E_UMLAUT = 0x68, MSG_CHAR_UPPER_I_GRAVE = 0x69, MSG_CHAR_UPPER_I_ACUTE = 0x6A, MSG_CHAR_UPPER_I_CIRCUMFLEX = 0x6B, MSG_CHAR_UPPER_I_UMLAUT = 0x6C, MSG_CHAR_UPPER_N_TILDE = 0x6D, MSG_CHAR_UPPER_O_GRAVE = 0x6E, MSG_CHAR_UPPER_O_ACUTE = 0x6F, MSG_CHAR_UPPER_O_CIRCUMFLEX = 0x70, MSG_CHAR_UPPER_O_UMLAUT = 0x71, MSG_CHAR_UPPER_U_GRAVE = 0x72, MSG_CHAR_UPPER_U_ACUTE = 0x73, MSG_CHAR_UPPER_U_CIRCUMFLEX = 0x74, MSG_CHAR_UPPER_U_UMLAUT = 0x75, MSG_CHAR_SHARP_S = 0x76, MSG_CHAR_LOWER_A_GRAVE = 0x77, MSG_CHAR_LOWER_A_ACUTE = 0x78, MSG_CHAR_LOWER_A_CIRCUMFLEX = 0x79, MSG_CHAR_LOWER_A_UMLAUT = 0x7A, MSG_CHAR_LOWER_C_CEDILLA = 0x7B, MSG_CHAR_LOWER_E_GRAVE = 0x7C, MSG_CHAR_LOWER_E_ACUTE = 0x7D, MSG_CHAR_LOWER_E_CIRCUMFLEX = 0x7E, MSG_CHAR_LOWER_E_UMLAUT = 0x7F, MSG_CHAR_LOWER_I_GRAVE = 0x80, MSG_CHAR_LOWER_I_ACUTE = 0x81, MSG_CHAR_LOWER_I_CIRCUMFLEX = 0x82, MSG_CHAR_LOWER_I_UMLAUT = 0x83, MSG_CHAR_LOWER_N_TILDE = 0x84, MSG_CHAR_LOWER_O_GRAVE = 0x85, MSG_CHAR_LOWER_O_ACUTE = 0x86, MSG_CHAR_LOWER_O_CIRCUMFLEX = 0x87, MSG_CHAR_LOWER_O_UMLAUT = 0x88, MSG_CHAR_LOWER_U_GRAVE = 0x89, MSG_CHAR_LOWER_U_ACUTE = 0x8A, MSG_CHAR_LOWER_U_CIRCUMFLEX = 0x8B, MSG_CHAR_LOWER_U_UMLAUT = 0x8C, MSG_CHAR_INVERTED_EXCLAMTION = 0x8D, MSG_CHAR_INVERTED_QUESTION = 0x8E, MSG_CHAR_FEM_ORDINAL = 0x8F, MSG_CHAR_HEART = 0x90, MSG_CHAR_STAR = 0x91, MSG_CHAR_UP = 0x92, MSG_CHAR_DOWN = 0x93, MSG_CHAR_LEFT = 0x94, MSG_CHAR_RIGHT = 0x95, MSG_CHAR_CIRCLE = 0x96, MSG_CHAR_CROSS = 0x97, MSG_CHAR_BUTTON_A = 0x98, MSG_CHAR_BUTTON_B = 0x99, MSG_CHAR_BUTTON_L = 0x9A, MSG_CHAR_BUTTON_R = 0x9B, MSG_CHAR_BUTTON_Z = 0x9C, MSG_CHAR_BUTTON_C_UP = 0x9D, MSG_CHAR_BUTTON_C_DOWN = 0x9E, MSG_CHAR_BUTTON_C_LEFT = 0x9F, MSG_CHAR_BUTTON_C_RIGHT = 0xA0, MSG_CHAR_BUTTON_START = 0xA1, MSG_CHAR_DOUBLE_QUOTE_OPEN = 0xA2, MSG_CHAR_DOUBLE_QUOTE_CLOSE = 0xA3, MSG_CHAR_SINGLE_QUOTE_OPEN = 0xA4, MSG_CHAR_SINGLE_QUOTE_CLOSE = 0xA5, // 0xA6 to 0xEF are unused #endif #if VERSION_IQUE // All US characters are in the rom, but their range is used for multibyte characters MSG_CHAR_MULTIBYTE_FIRST = 0x5F, MSG_CHAR_MULTIBYTE_LAST = 0x8F, MSG_CHAR_ZH_START = 0xA6, MSG_CHAR_ZH_RANK = 0x33F, // 勋 MSG_CHAR_ZH_CHAPTER = 0x340, // 章 #endif MSG_CHAR_UNK_C3 = 0xC3, MSG_CHAR_MENU_SPACE = 0xC6, MSG_CHAR_MENU_USE_CHARSET_B = 0xC7, MSG_CHAR_MENU_USE_CHARSET_A = 0xC8, MSG_CHAR_MENU_BACK = 0xC9, MSG_CHAR_MENU_END = 0xCA, // special character codes used when reading from the source buffer MSG_CHAR_READ_ENDL = 0xF0, MSG_CHAR_READ_WAIT = 0xF1, MSG_CHAR_READ_PAUSE = 0xF2, MSG_CHAR_READ_VARIANT0 = 0xF3, MSG_CHAR_READ_VARIANT1 = 0xF4, MSG_CHAR_READ_VARIANT2 = 0xF5, MSG_CHAR_READ_VARIANT3 = 0xF6, MSG_CHAR_READ_SPACE = 0xF7, MSG_CHAR_READ_FULL_SPACE = 0xF8, MSG_CHAR_READ_HALF_SPACE = 0xF9, MSG_CHAR_READ_UNK_CHAR_FA = 0xFA, MSG_CHAR_READ_NEXT = 0xFB, MSG_CHAR_READ_STYLE = 0xFC, MSG_CHAR_READ_END = 0xFD, // 0xFE unused MSG_CHAR_READ_FUNCTION = 0xFF, // special character codes used when writing to the print buffer MSG_CONTROL_CHAR = 0xF0, MSG_CHAR_PRINT_ENDL = 0xF0, MSG_CHAR_PRINT_VARIANT0 = 0xF1, MSG_CHAR_PRINT_VARIANT1 = 0xF2, MSG_CHAR_PRINT_VARIANT2 = 0xF3, MSG_CHAR_PRINT_VARIANT3 = 0xF4, MSG_CHAR_PRINT_SPACE = 0xF5, MSG_CHAR_PRINT_FULL_SPACE = 0xF6, MSG_CHAR_PRINT_HALF_SPACE = 0xF7, MSG_CHAR_PRINT_STYLE = 0xF8, MSG_CHAR_PRINT_UNK_CHAR_FA = 0xF9, MSG_CHAR_PRINT_NEXT = 0xFA, MSG_CHAR_PRINT_END = 0xFB, // FC unused // FD unused // FE unused MSG_CHAR_PRINT_FUNCTION = 0xFF }; enum MsgFunctionCodes { // function codes used when reading from the source buffer MSG_READ_FUNC_FONT = 0x00, MSG_READ_FUNC_VARIANT = 0x01, MSG_READ_FUNC_SET_FRAME_PALETTE = 0x02, MSG_READ_FUNC_RESET_GFX = 0x03, MSG_READ_FUNC_YIELD = 0x04, MSG_READ_FUNC_COLOR = 0x05, MSG_READ_FUNC_NO_SKIP = 0x06, MSG_READ_FUNC_INPUT_OFF = 0x07, MSG_READ_FUNC_INPUT_ON = 0x08, MSG_READ_FUNC_DELAY_OFF = 0x09, MSG_READ_FUNC_DELAY_ON = 0x0A, MSG_READ_FUNC_SPACING = 0x0B, MSG_READ_FUNC_SCROLL = 0x0C, MSG_READ_FUNC_SIZE = 0x0D, MSG_READ_FUNC_SIZE_RESET = 0x0E, MSG_READ_FUNC_SPEED = 0x0F, MSG_READ_FUNC_SET_X = 0x10, MSG_READ_FUNC_SET_Y = 0x11, MSG_READ_FUNC_RIGHT = 0x12, MSG_READ_FUNC_DOWN = 0x13, MSG_READ_FUNC_UP = 0x14, MSG_READ_FUNC_INLINE_IMAGE = 0x15, MSG_READ_FUNC_ANIM_SPRITE = 0x16, MSG_READ_FUNC_ITEM_ICON = 0x17, MSG_READ_FUNC_IMAGE = 0x18, MSG_READ_FUNC_HIDE_IMAGE = 0x19, MSG_READ_FUNC_ANIM_DELAY = 0x1A, MSG_READ_FUNC_ANIM_LOOP = 0x1B, MSG_READ_FUNC_ANIM_DONE = 0x1C, MSG_READ_FUNC_SET_CURSOR = 0x1D, MSG_READ_FUNC_CURSOR = 0x1E, MSG_READ_FUNC_END_CHOICE = 0x1F, MSG_READ_FUNC_SET_CANCEL = 0x20, MSG_READ_FUNC_OPTION = 0x21, MSG_READ_FUNC_SAVE_POS = 0x22, MSG_READ_FUNC_RESTORE_POS = 0x23, MSG_READ_FUNC_SAVE_COLOR = 0x24, MSG_READ_FUNC_RESTORE_COLOR = 0x25, MSG_READ_FUNC_START_FX = 0x26, MSG_READ_FUNC_END_FX = 0x27, MSG_READ_FUNC_VAR = 0x28, MSG_READ_FUNC_CENTER_X = 0x29, MSG_READ_FUNC_SET_REWIND = 0x2A, MSG_READ_FUNC_ENABLE_CDOWN_NEXT = 0x2B, MSG_READ_FUNC_CUSTOM_VOICE = 0x2C, MSG_READ_FUNC_VOLUME = 0x2E, MSG_READ_FUNC_VOICE = 0x2F, // function codes used when writing to the print buffer MSG_PRINT_FUNC_FONT = 0x00, MSG_PRINT_FUNC_VARIANT = 0x01, MSG_PRINT_FUNC_SET_FRAME_PALETTE = 0x16, MSG_PRINT_RESET_GFX = 0x17, MSG_PRINT_FUNC_COLOR = 0x04, MSG_PRINT_FUNC_SPACING = 0x05, MSG_PRINT_FUNC_SCROLL = 0xFA, MSG_PRINT_FUNC_SIZE = 0x06, MSG_PRINT_FUNC_SIZE_RESET = 0x07, MSG_PRINT_FUNC_SET_X = 0x08, MSG_PRINT_FUNC_SET_Y = 0x09, MSG_PRINT_FUNC_RIGHT = 0x0A, MSG_PRINT_FUNC_DOWN = 0x0B, MSG_PRINT_FUNC_UP = 0x0C, MSG_PRINT_FUNC_INLINE_IMAGE = 0x0E, MSG_PRINT_FUNC_ANIM_SPRITE = 0x0F, MSG_PRINT_FUNC_ITEM_ICON = 0x10, MSG_PRINT_FUNC_ANIM_DELAY = 0x11, MSG_PRINT_FUNC_ANIM_LOOP = 0x12, MSG_PRINT_FUNC_ANIM_DONE = 0x13, MSG_PRINT_FUNC_CURSOR = 0x14, MSG_PRINT_FUNC_OPTION = 0x15, MSG_PRINT_FUNC_SAVE_POS = 0x18, MSG_PRINT_FUNC_RESTORE_POS = 0x19, MSG_PRINT_FUNC_SAVE_COLOR = 0x1A, MSG_PRINT_FUNC_RESTORE_COLOR = 0x1B, MSG_PRINT_FUNC_START_FX = 0x1C, MSG_PRINT_FUNC_END_FX = 0x1D, MSG_PRINT_FUNC_CENTER_X = 0x1E }; enum MsgEffectCodes { MSG_FX_SHAKE = 0x00, MSG_FX_WAVE = 0x01, MSG_FX_NOISE_OUTLINE = 0x02, MSG_FX_STATIC = 0x03, MSG_FX_BLUR = 0x05, MSG_FX_RAINBOW = 0x06, MSG_FX_DITHER_FADE = 0x07, MSG_FX_GLOBAL_WAVE = 0x08, MSG_FX_GLOBAL_RAINBOW = 0x09, MSG_FX_RISE_PRINT = 0x0A, MSG_FX_GROW_PRINT = 0x0B, MSG_FX_SIZE_JITTER = 0x0C, MSG_FX_SIZE_WAVE = 0x0D, MSG_FX_DROP_SHADOW = 0x0E }; enum MsgEffectFlags { MSG_FX_FLAG_SHAKE = 0x00001, MSG_FX_FLAG_WAVE = 0x00002, MSG_FX_FLAG_NOISE_OUTLINE = 0x00004, MSG_FX_FLAG_BLUR = 0x00020, MSG_FX_FLAG_RAINBOW = 0x00040, MSG_FX_FLAG_DITHER_FADE = 0x00080, MSG_FX_FLAG_GLOBAL_WAVE = 0x00200, MSG_FX_FLAG_GLOBAL_RAINBOW = 0x00400, MSG_FX_FLAG_RISE_PRINT = 0x00800, MSG_FX_FLAG_GROW_PRINT = 0x01000, MSG_FX_FLAG_SIZE_JITTER = 0x02000, MSG_FX_FLAG_SIZE_WAVE = 0x04000, MSG_FX_FLAG_DROP_SHADOW = 0x08000, MSG_FX_FLAG_STATIC = 0x10000 }; enum MsgStyles { MSG_STYLE_NONE = 0x0, MSG_STYLE_RIGHT = 0x1, MSG_STYLE_LEFT = 0x2, MSG_STYLE_CENTER = 0x3, MSG_STYLE_TATTLE = 0x4, MSG_STYLE_CHOICE = 0x5, MSG_STYLE_INSPECT = 0x6, MSG_STYLE_SIGN = 0x7, MSG_STYLE_LAMPPOST = 0x8, MSG_STYLE_POSTCARD = 0x9, MSG_STYLE_POPUP = 0xA, MSG_STYLE_B = 0xB, MSG_STYLE_UPGRADE = 0xC, MSG_STYLE_NARRATE = 0xD, MSG_STYLE_EPILOGUE = 0xE, MSG_STYLE_F = 0xF }; enum MsgFonts { MSG_FONT_NORMAL = 0, MSG_FONT_MENU = 1, MSG_FONT_2 = 2, MSG_FONT_TITLE = 3, MSG_FONT_SUBTITLE = 4, }; enum MsgVoices { MSG_VOICE_NORMAL = 0, MSG_VOICE_BOWSER = 1, MSG_VOICE_STAR = 2 }; enum MsgPrintModeFlags { MSG_PRINT_FLAG_1 = 0x001, MSG_PRINT_FLAG_2 = 0x002, MSG_PRINT_FLAG_10 = 0x010, MSG_PRINT_FLAG_20 = 0x020, MSG_PRINT_FLAG_40 = 0x040, MSG_PRINT_FLAG_80 = 0x080, MSG_PRINT_FLAG_100 = 0x100, }; enum MsgStateFlags { MSG_STATE_FLAG_1 = 0x000001, MSG_STATE_FLAG_2 = 0x000002, MSG_STATE_FLAG_4 = 0x000004, MSG_STATE_FLAG_10 = 0x000010, MSG_STATE_FLAG_20 = 0x000020, MSG_STATE_FLAG_40 = 0x000040, MSG_STATE_FLAG_SPEAKING = 0x000080, // determines animation of speaker (talk vs idle) MSG_STATE_FLAG_PRINT_QUICKLY = 0x000100, MSG_STATE_FLAG_400 = 0x000400, MSG_STATE_FLAG_800 = 0x000800, MSG_STATE_FLAG_1000 = 0x001000, MSG_STATE_FLAG_4000 = 0x004000, MSG_STATE_FLAG_8000 = 0x008000, MSG_STATE_FLAG_10000 = 0x010000, MSG_STATE_FLAG_20000 = 0x020000, MSG_STATE_FLAG_40000 = 0x040000, MSG_STATE_FLAG_80000 = 0x080000, MSG_STATE_FLAG_100000 = 0x100000, MSG_STATE_FLAG_800000 = 0x800000, }; enum MsgDelayFlags { MSG_DELAY_FLAG_1 = 0x000001, MSG_DELAY_FLAG_2 = 0x000002, MSG_DELAY_FLAG_4 = 0x000004, }; enum MsgWindowStates { MSG_WINDOW_STATE_DONE = 0x0, MSG_WINDOW_STATE_INIT = 0x1, MSG_WINDOW_STATE_OPENING = 0x2, MSG_WINDOW_STATE_CLOSING = 0x3, MSG_WINDOW_STATE_PRINTING = 0x4, MSG_WINDOW_STATE_WAITING = 0x5, MSG_WINDOW_STATE_SCROLLING = 0x6, MSG_WINDOW_STATE_WAITING_FOR_CHOICE = 0x7, MSG_WINDOW_STATE_SCROLLING_BACK = 0x8, MSG_WINDOW_STATE_VIEWING_PREV = 0x9, MSG_WINDOW_STATE_A = 0xA, MSG_WINDOW_STATE_B = 0xB, MSG_WINDOW_STATE_C = 0xC, MSG_WINDOW_STATE_D = 0xD, MSG_WINDOW_STATE_E = 0xE, }; enum BackgroundFlags { BACKGROUND_FLAG_TEXTURE = 0x01, BACKGROUND_FLAG_FOG = 0x02, BACKGROUND_RENDER_STATE_BEGIN_PAUSED = 0x10, BACKGROUND_RENDER_STATE_FILTER_PAUSED = 0x20, BACKGROUND_RENDER_STATE_SHOW_PAUSED = 0x30, BACKGROUND_RENDER_STATE_MASK = 0xF0, }; enum EncounterStates { ENCOUNTER_STATE_NONE = 0, ENCOUNTER_STATE_CREATE = 1, ENCOUNTER_STATE_NEUTRAL = 2, ENCOUNTER_STATE_PRE_BATTLE = 3, ENCOUNTER_STATE_CONVERSATION = 4, ENCOUNTER_STATE_POST_BATTLE = 5, }; enum EncounterCreateSubStates { ENCOUNTER_SUBSTATE_CREATE_INIT = 0, ENCOUNTER_SUBSTATE_CREATE_RUN_INIT_SCRIPT = 1, ENCOUNTER_SUBSTATE_CREATE_RUN_AI = 2, }; enum EncounterNeutralSubStates { ENCOUNTER_SUBSTATE_NEUTRAL = 0, }; enum EncounterPreBattleSubStates { ENCOUNTER_SUBSTATE_PRE_BATTLE_INIT = 0, ENCOUNTER_SUBSTATE_PRE_BATTLE_LOAD = 1, ENCOUNTER_SUBSTATE_PRE_BATTLE_AUTO_WIN = 2, ENCOUNTER_SUBSTATE_PRE_BATTLE_SKIP = 3, }; enum EncounterConversationSubStates { ENCOUNTER_SUBSTATE_CONVERSATION_INIT = 0, ENCOUNTER_SUBSTATE_CONVERSATION_END = 1, }; enum EncounterPostBattleSubStates { ENCOUNTER_SUBSTATE_POST_BATTLE_INIT = 0, ENCOUNTER_SUBSTATE_POST_BATTLE_WON_FADE_IN = 2, ENCOUNTER_SUBSTATE_POST_BATTLE_WON_KILL = 3, ENCOUNTER_SUBSTATE_POST_BATTLE_WON_RESUME = 4, ENCOUNTER_SUBSTATE_POST_BATTLE_WON_CHECK_MERLEE = 10, ENCOUNTER_SUBSTATE_POST_BATTLE_PLAY_NPC_DEFEAT = 11, ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_INIT = 100, ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_FADE_IN = 101, ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_RESUME = 102, ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_DELAY = 103, // delay before battle can be retriggered ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_INIT = 200, ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_FADE_IN = 201, ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_RESUME = 202, ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_DELAY = 203, ENCOUNTER_SUBSTATE_POST_BATTLE_SKIP = 300, ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_INIT = 400, ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_FADE_IN = 401, ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_RESUME = 402, }; enum PlayerSpriteSets { PLAYER_SPRITES_MARIO_WORLD = 0, PLAYER_SPRITES_MARIO_REFLECT_FLOOR = 1, PLAYER_SPRITES_COMBINED_EPILOGUE = 2, PLAYER_SPRITES_MARIO_PARADE = 3, PLAYER_SPRITES_PEACH_WORLD = 4, PLAYER_SPRITES_MARIO_BATTLE = 5, PLAYER_SPRITES_PEACH_BATTLE = 6, }; enum BattleDarknessMode { BTL_DARKNESS_MODE_0 = 0, BTL_DARKNESS_MODE_1 = 1, BTL_DARKNESS_MODE_2 = 2, BTL_DARKNESS_MODE_3 = 3, }; enum BattleDarknessState { BTL_DARKNESS_STATE_LOCKED = -2, BTL_DARKNESS_STATE_DARK = -1, BTL_DARKNESS_STATE_NONE = 0, BTL_DARKNESS_STATE_WATT_BASED = 1, }; enum WindowStyles { WINDOW_STYLE_0 = 0, WINDOW_STYLE_1 = 1, WINDOW_STYLE_2 = 2, WINDOW_STYLE_3 = 3, WINDOW_STYLE_4 = 4, WINDOW_STYLE_5 = 5, WINDOW_STYLE_6 = 6, WINDOW_STYLE_7 = 7, WINDOW_STYLE_8 = 8, WINDOW_STYLE_9 = 9, WINDOW_STYLE_10 = 10, WINDOW_STYLE_11 = 11, WINDOW_STYLE_12 = 12, WINDOW_STYLE_13 = 13, WINDOW_STYLE_14 = 14, WINDOW_STYLE_15 = 15, WINDOW_STYLE_16 = 16, WINDOW_STYLE_17 = 17, WINDOW_STYLE_18 = 18, WINDOW_STYLE_19 = 19, WINDOW_STYLE_20 = 20, WINDOW_STYLE_21 = 21, WINDOW_STYLE_22 = 22, WINDOW_STYLE_MAX = 22, }; // LANGUAGE_DEFAULT as 0 will be the first index into several arrays containing data based on the current language. // For non-PAL versions, this will be the first and only index. #define LANGUAGE_DEFAULT 0 enum Language { LANGUAGE_EN = 0, LANGUAGE_DE = 1, LANGUAGE_FR = 2, LANGUAGE_ES = 3, }; enum IdleScriptState { IDLE_SCRIPT_DISABLE = 0, IDLE_SCRIPT_ENABLE = 1, IDLE_SCRIPT_RESTART = -1, }; enum BlurState { ACTOR_BLUR_DISABLE = 0, ACTOR_BLUR_ENABLE = 1, ACTOR_BLUR_RESET = -1, }; #endif