papermario/include/enums.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

6431 lines
316 KiB
C
Raw Normal View History

2020-08-15 00:47:06 +02:00
#ifndef _ENUMS_H_
#define _ENUMS_H_
#include "ultra64.h"
2020-08-16 06:24:20 +02:00
#include "types.h"
#include "saved_byte_names.h"
#include "saved_flag_names.h"
2020-08-15 00:47:06 +02:00
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,
};
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
enum SoundOutputMode {
SOUND_OUT_MONO = 0,
SOUND_OUT_STEREO = 1,
};
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
2021-03-29 09:34:39 +02:00
enum Emotes {
EMOTE_EXCLAMATION = 0,
EMOTE_SHOCK = 1,
EMOTE_QUESTION = 2,
EMOTE_FRUSTRATION = 3,
EMOTE_ELLIPSIS = 4,
EMOTE_INVALID = 5,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
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)
};
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
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,
audio odyssey (#744) * first pass * seq cmd args retyping * some SEF commands * etc * couple more SND commands * more functions * checkpoint * five more * another one * more funcs + cleanup * reverted unnecessary unions * all SEF commands done * a bunch more * more! * morrrrrrre * almost done for now * 99% * 100 * few names and types * reorg * minor chnages * miscmiscmisc * yet more * another day another func * eth wip func_8004EC68 * some sym names * retyping sound mgr fields * minor renames * D_80078400 * bigger func * retypings * enhanced drum info * the evil is defeated * merged * prelim ambient sound func names * audio frame * checkpoint * renames * learnin bout sounds * latest * fix snd_load_BK_to_bank * func_80056FA4 * warnings * cosmetics * func_800522A8 * struct reorg * figured some stuff out * much more info * fx params * cleanin up * revert accidental changes to jp * more accidental jp changes reverted * misc names * small stuff * migrated all audio data * checkpoint * header reorg begins * audio public/private headers * fixed headers * fixin warnins * oops * 51 fixed * formatted binary data in 30450 * workwork * cleanup * misc * flip macro arg order * more names * audio event triggers * various * sfx player cleanup * start bgm player cleanup * names names names * priorities * merlow * misc enum vals * rocking chair * kmr_00 funcs * enough * restore delete jp file * func_80055EB4 * fix func name * addressed comments * demoted a couple variables from global * couple hidden panel things * credits mostly * credits dedupe in progress * jump table repair * 'finished' end dedupe Co-authored-by: HailSanta <Hail2Santa@gmail.com> Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2022-08-06 14:14:04 +02:00
};
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;
2021-03-29 09:34:39 +02:00
enum Cams {
CAM_DEFAULT = 0,
CAM_BATTLE = 1,
CAM_TATTLE = 2,
2024-09-23 20:42:15 +02:00
CAM_HUD = 3,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
enum CamShakeModes {
CAM_SHAKE_CONSTANT_VERTICAL = 0,
CAM_SHAKE_ANGULAR_HORIZONTAL = 1,
2024-09-23 20:42:15 +02:00
CAM_SHAKE_DECAYING_VERTICAL = 2,
};
// for use with SetBattleCamParam
2024-09-23 20:42:15 +02:00
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
};
2021-03-29 09:34:39 +02:00
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
audio odyssey (#744) * first pass * seq cmd args retyping * some SEF commands * etc * couple more SND commands * more functions * checkpoint * five more * another one * more funcs + cleanup * reverted unnecessary unions * all SEF commands done * a bunch more * more! * morrrrrrre * almost done for now * 99% * 100 * few names and types * reorg * minor chnages * miscmiscmisc * yet more * another day another func * eth wip func_8004EC68 * some sym names * retyping sound mgr fields * minor renames * D_80078400 * bigger func * retypings * enhanced drum info * the evil is defeated * merged * prelim ambient sound func names * audio frame * checkpoint * renames * learnin bout sounds * latest * fix snd_load_BK_to_bank * func_80056FA4 * warnings * cosmetics * func_800522A8 * struct reorg * figured some stuff out * much more info * fx params * cleanin up * revert accidental changes to jp * more accidental jp changes reverted * misc names * small stuff * migrated all audio data * checkpoint * header reorg begins * audio public/private headers * fixed headers * fixin warnins * oops * 51 fixed * formatted binary data in 30450 * workwork * cleanup * misc * flip macro arg order * more names * audio event triggers * various * sfx player cleanup * start bgm player cleanup * names names names * priorities * merlow * misc enum vals * rocking chair * kmr_00 funcs * enough * restore delete jp file * func_80055EB4 * fix func name * addressed comments * demoted a couple variables from global * couple hidden panel things * credits mostly * credits dedupe in progress * jump table repair * 'finished' end dedupe Co-authored-by: HailSanta <Hail2Santa@gmail.com> Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2022-08-06 14:14:04 +02:00
// the following 4 IDs are reserved for additional radio songs,
// and no more are expected to follow after that
// see: au_ambient_load
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
2021-03-29 09:34:39 +02:00
enum EncounterOutcomes {
OUTCOME_PLAYER_WON = 0,
OUTCOME_PLAYER_LOST = 1,
OUTCOME_PLAYER_FLED = 2,
OUTCOME_ENEMY_FLED = 3,
2024-10-08 05:15:38 +02:00
OUTCOME_SKIP = 4,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
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;
2020-08-15 00:47:06 +02:00
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,
};
2021-03-29 09:34:39 +02:00
enum Iters {
ITER_FIRST = -1,
ITER_NEXT = 0,
ITER_PREV = 1,
ITER_LAST = 10,
// return values
ITER_HAS_MORE = 0,
ITER_NO_MORE = -1,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
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,
};
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
enum ActorClasses {
ACTOR_CLASS_PLAYER = 0x000,
ACTOR_CLASS_PARTNER = 0x100,
ACTOR_CLASS_ENEMY = 0x200,
ACTOR_CLASS_MASK = 0x700,
};
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
// 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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
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,
};
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
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;
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
#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,
};
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
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
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
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
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
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,
};
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
STATUS_FLAG_DEFENSE_BOOST = 0x10000000,
STATUS_FLAG_CHILL_OUT = 0x20000000,
STATUS_FLAG_RIGHT_ON = 0x40000000,
STATUS_FLAG_80000000 = 0x80000000,
2021-03-29 09:34:39 +02:00
};
2020-08-15 00:47:06 +02:00
// 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)
2021-03-29 09:34:39 +02:00
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,
};
2021-03-29 09:34:39 +02:00
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,
2021-03-29 09:34:39 +02:00
};
2021-01-03 10:02:50 +01:00
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
2021-03-29 09:34:39 +02:00
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,
2024-10-08 05:15:38 +02:00
NPC_PALSWAP_FROM_B_TO_A = 3,
};
2021-04-03 19:21:49 +02:00
enum NpcFlags {
2024-10-08 05:15:38 +02:00
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
2024-10-08 05:15:38 +02:00
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,
2024-10-08 05:15:38 +02:00
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,
2021-04-03 19:21:49 +02:00
};
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,
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
};
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,
};
2024-10-08 05:15:38 +02:00
enum FirstStrikeType {
FIRST_STRIKE_NONE = 0,
FIRST_STRIKE_PLAYER = 1,
FIRST_STRIKE_ENEMY = 2,
};
enum TimeFreezeMode {
2024-10-08 05:15:38 +02:00
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"
2024-10-01 04:50:46 +02:00
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, // dont 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,
};
2022-03-10 10:55:38 +01:00
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,
2022-03-10 10:55:38 +01:00
};
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,
2023-01-05 20:43:31 +01:00
// 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,
2023-01-05 20:43:31 +01:00
// 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,
2023-01-05 20:43:31 +01:00
// 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,
2023-01-05 20:43:31 +01:00
// 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,
2023-01-05 20:43:31 +01:00
// 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,
2023-01-05 20:43:31 +01:00
// Berserker
BTL_SUBSTATE_PLAYER_MENU_BERSERKER_CHOOSE = 100,
2023-01-05 20:43:31 +01:00
// 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,
2023-01-05 20:43:31 +01:00
// initialize
BTL_SUBSTATE_PLAYER_MENU_PERFORM_SWAP = 300,
BTL_SUBSTATE_PLAYER_MENU_CREATE_MAIN_MENU = 302,
2023-01-05 20:43:31 +01:00
};
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,
};
2024-09-23 20:42:15 +02:00
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 \
2024-09-23 20:42:15 +02:00
| 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,
2024-09-23 20:42:15 +02:00
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
2024-10-08 05:15:38 +02:00
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,
2024-10-08 05:15:38 +02:00
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
2024-10-08 05:15:38 +02:00
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,
2024-10-08 05:15:38 +02:00
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,
};
2024-10-08 05:15:38 +02:00
#define BASE_PASSIVE_FLAGS \
( ENEMY_FLAG_PASSIVE \
| ENEMY_FLAG_IGNORE_WORLD_COLLISION \
| ENEMY_FLAG_IGNORE_ENTITY_COLLISION \
2024-10-08 05:15:38 +02:00
| ENEMY_FLAG_FLYING \
)
#define COMMON_PASSIVE_FLAGS \
( BASE_PASSIVE_FLAGS \
| ENEMY_FLAG_ENABLE_HIT_SCRIPT \
)
world AI (#701) * monty mole AI pt 1 * monty mole AI #2 * enum values for evt priority and flags * enemy ai flags * done monty mole + partner enums * removed union for partner action state * missed parter action states + cam move flags + entity collision bit * basic ai * piranha plant stuff * attack ahead * consistent hitbox names * idk * organized piranha plant * delete matches * start fuzzy * naming * bzzap pt 1 * bzzap 2 * bzzap names done * rename bzzap to flyingAI * complete flying names * done for today * file reorganizing * world AI * starting clubba dedupe * suggested changes * bullet bills * sentinel start * dedupe sentinel complete * sentinel AI done * melee ai organization * piranha plant dedupe * resolved some bad dead syms * patrol start * patrol AI almost done * enough * more ai work * clean up clubba ai enum * dedupe all clubbae * started cleft extraction * ready to dedupe cleft * dedupe one cleft * iwa_04 * iwa_01 * iwa_02 * ai state file reorganization * enemy anim enum * extracted shy guy * dedupe shy guy ai * shy guy patrol ai * done shy guy ai dedupe * added NON_MATCHING wrap * ai etc * more dead ai * most dead ai merged with living * lakitu etc * paratroopas * fix warnings * fix other warning * ParatroopaAI * lakituAI parameter fix * dead_flo_13 debug strings * misc map matches * flying magikoopa start * name npc field * lungeAI renamed to tackleAI * magikoopa ai foothold * extrated one magikoopa * starting clubba dedupe * addressed PR comments * consolidated magikoopa helper funcs * misc map stuff * flying magikoopa dedupe * zipline funcs * delete matched * grind out another 0.05% * started letter delivery dedupe * more delivery dedupe * special delivery * rest of letter delivery * slight delivery reorg * delivery func names * cleft doc start * name enemy field * more renamins * unk_28.f * changed field names to facilitate renaming * done cleft cleanup * hopping ai * cleanup some ai * name field + patrol reorg * filled out NpcAISettings fields * assembling ai includes * elimated state files * remove X32 for alertOffsetDist * removed other NpcAISettings union * new NpcAISettings for UnkAI_4 * stationary AI cleanup * smalls * 0 new warnings Co-authored-by: HailSanta <Hail2Santa@gmail.com> Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2022-04-29 06:32:16 +02:00
// used with enemy->aiFlags
enum EnemyAIFlags {
2024-10-01 04:50:46 +02:00
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,
};
world AI (#701) * monty mole AI pt 1 * monty mole AI #2 * enum values for evt priority and flags * enemy ai flags * done monty mole + partner enums * removed union for partner action state * missed parter action states + cam move flags + entity collision bit * basic ai * piranha plant stuff * attack ahead * consistent hitbox names * idk * organized piranha plant * delete matches * start fuzzy * naming * bzzap pt 1 * bzzap 2 * bzzap names done * rename bzzap to flyingAI * complete flying names * done for today * file reorganizing * world AI * starting clubba dedupe * suggested changes * bullet bills * sentinel start * dedupe sentinel complete * sentinel AI done * melee ai organization * piranha plant dedupe * resolved some bad dead syms * patrol start * patrol AI almost done * enough * more ai work * clean up clubba ai enum * dedupe all clubbae * started cleft extraction * ready to dedupe cleft * dedupe one cleft * iwa_04 * iwa_01 * iwa_02 * ai state file reorganization * enemy anim enum * extracted shy guy * dedupe shy guy ai * shy guy patrol ai * done shy guy ai dedupe * added NON_MATCHING wrap * ai etc * more dead ai * most dead ai merged with living * lakitu etc * paratroopas * fix warnings * fix other warning * ParatroopaAI * lakituAI parameter fix * dead_flo_13 debug strings * misc map matches * flying magikoopa start * name npc field * lungeAI renamed to tackleAI * magikoopa ai foothold * extrated one magikoopa * starting clubba dedupe * addressed PR comments * consolidated magikoopa helper funcs * misc map stuff * flying magikoopa dedupe * zipline funcs * delete matched * grind out another 0.05% * started letter delivery dedupe * more delivery dedupe * special delivery * rest of letter delivery * slight delivery reorg * delivery func names * cleft doc start * name enemy field * more renamins * unk_28.f * changed field names to facilitate renaming * done cleft cleanup * hopping ai * cleanup some ai * name field + patrol reorg * filled out NpcAISettings fields * assembling ai includes * elimated state files * remove X32 for alertOffsetDist * removed other NpcAISettings union * new NpcAISettings for UnkAI_4 * stationary AI cleanup * smalls * 0 new warnings Co-authored-by: HailSanta <Hail2Santa@gmail.com> Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2022-04-29 06:32:16 +02:00
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,
world AI (#701) * monty mole AI pt 1 * monty mole AI #2 * enum values for evt priority and flags * enemy ai flags * done monty mole + partner enums * removed union for partner action state * missed parter action states + cam move flags + entity collision bit * basic ai * piranha plant stuff * attack ahead * consistent hitbox names * idk * organized piranha plant * delete matches * start fuzzy * naming * bzzap pt 1 * bzzap 2 * bzzap names done * rename bzzap to flyingAI * complete flying names * done for today * file reorganizing * world AI * starting clubba dedupe * suggested changes * bullet bills * sentinel start * dedupe sentinel complete * sentinel AI done * melee ai organization * piranha plant dedupe * resolved some bad dead syms * patrol start * patrol AI almost done * enough * more ai work * clean up clubba ai enum * dedupe all clubbae * started cleft extraction * ready to dedupe cleft * dedupe one cleft * iwa_04 * iwa_01 * iwa_02 * ai state file reorganization * enemy anim enum * extracted shy guy * dedupe shy guy ai * shy guy patrol ai * done shy guy ai dedupe * added NON_MATCHING wrap * ai etc * more dead ai * most dead ai merged with living * lakitu etc * paratroopas * fix warnings * fix other warning * ParatroopaAI * lakituAI parameter fix * dead_flo_13 debug strings * misc map matches * flying magikoopa start * name npc field * lungeAI renamed to tackleAI * magikoopa ai foothold * extrated one magikoopa * starting clubba dedupe * addressed PR comments * consolidated magikoopa helper funcs * misc map stuff * flying magikoopa dedupe * zipline funcs * delete matched * grind out another 0.05% * started letter delivery dedupe * more delivery dedupe * special delivery * rest of letter delivery * slight delivery reorg * delivery func names * cleft doc start * name enemy field * more renamins * unk_28.f * changed field names to facilitate renaming * done cleft cleanup * hopping ai * cleanup some ai * name field + patrol reorg * filled out NpcAISettings fields * assembling ai includes * elimated state files * remove X32 for alertOffsetDist * removed other NpcAISettings union * new NpcAISettings for UnkAI_4 * stationary AI cleanup * smalls * 0 new warnings Co-authored-by: HailSanta <Hail2Santa@gmail.com> Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2022-04-29 06:32:16 +02:00
};
2024-10-01 04:50:46 +02:00
enum TerritoryFlags {
world AI (#701) * monty mole AI pt 1 * monty mole AI #2 * enum values for evt priority and flags * enemy ai flags * done monty mole + partner enums * removed union for partner action state * missed parter action states + cam move flags + entity collision bit * basic ai * piranha plant stuff * attack ahead * consistent hitbox names * idk * organized piranha plant * delete matches * start fuzzy * naming * bzzap pt 1 * bzzap 2 * bzzap names done * rename bzzap to flyingAI * complete flying names * done for today * file reorganizing * world AI * starting clubba dedupe * suggested changes * bullet bills * sentinel start * dedupe sentinel complete * sentinel AI done * melee ai organization * piranha plant dedupe * resolved some bad dead syms * patrol start * patrol AI almost done * enough * more ai work * clean up clubba ai enum * dedupe all clubbae * started cleft extraction * ready to dedupe cleft * dedupe one cleft * iwa_04 * iwa_01 * iwa_02 * ai state file reorganization * enemy anim enum * extracted shy guy * dedupe shy guy ai * shy guy patrol ai * done shy guy ai dedupe * added NON_MATCHING wrap * ai etc * more dead ai * most dead ai merged with living * lakitu etc * paratroopas * fix warnings * fix other warning * ParatroopaAI * lakituAI parameter fix * dead_flo_13 debug strings * misc map matches * flying magikoopa start * name npc field * lungeAI renamed to tackleAI * magikoopa ai foothold * extrated one magikoopa * starting clubba dedupe * addressed PR comments * consolidated magikoopa helper funcs * misc map stuff * flying magikoopa dedupe * zipline funcs * delete matched * grind out another 0.05% * started letter delivery dedupe * more delivery dedupe * special delivery * rest of letter delivery * slight delivery reorg * delivery func names * cleft doc start * name enemy field * more renamins * unk_28.f * changed field names to facilitate renaming * done cleft cleanup * hopping ai * cleanup some ai * name field + patrol reorg * filled out NpcAISettings fields * assembling ai includes * elimated state files * remove X32 for alertOffsetDist * removed other NpcAISettings union * new NpcAISettings for UnkAI_4 * stationary AI cleanup * smalls * 0 new warnings Co-authored-by: HailSanta <Hail2Santa@gmail.com> Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2022-04-29 06:32:16 +02:00
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,
2024-10-08 05:15:38 +02:00
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,
};
2024-09-23 20:42:15 +02:00
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,
2024-09-23 20:42:15 +02:00
// 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,
};
2024-09-23 20:42:15 +02:00
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,
};
2024-10-08 05:15:38 +02:00
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 {
2024-10-08 05:15:38 +02:00
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
};
2022-01-01 14:08:04 +01:00
enum DictionaryIndex {
DICTIONARY_KEY = 0,
DICTIONARY_VALUE = 1,
DICTIONARY_SIZE,
};
2024-10-24 02:18:00 +02:00
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,
2024-10-24 02:18:00 +02:00
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]
2024-11-09 04:19:32 +01:00
#if !VERSION_PAL
/* 17 */ FILE_MESSAGE_OVERRIDE_TO_NEW_DATA, // Override to New Data[End]
/* 18 */ FILE_MESSAGE_SAVE_OK, // Save OK?[End]
2024-11-09 04:19:32 +01:00
#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]
2024-11-09 04:19:32 +01:00
#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]
2024-11-09 04:19:32 +01:00
#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]
2024-11-09 04:19:32 +01:00
#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
2024-11-09 04:19:32 +01:00
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
2024-11-09 04:19:32 +01:00
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
2023-03-08 16:40:22 +01:00
#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,
2022-04-07 09:51:21 +02:00
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,
2022-04-07 09:51:21 +02:00
MSG_STATE_FLAG_40000 = 0x040000,
MSG_STATE_FLAG_80000 = 0x080000,
MSG_STATE_FLAG_100000 = 0x100000,
2022-04-07 09:51:21 +02:00
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 {
2024-10-08 05:15:38 +02:00
ENCOUNTER_SUBSTATE_CREATE_INIT = 0,
ENCOUNTER_SUBSTATE_CREATE_RUN_INIT_SCRIPT = 1,
ENCOUNTER_SUBSTATE_CREATE_RUN_AI = 2,
};
enum EncounterNeutralSubStates {
2024-10-08 05:15:38 +02:00
ENCOUNTER_SUBSTATE_NEUTRAL = 0,
};
enum EncounterPreBattleSubStates {
2024-10-08 05:15:38 +02:00
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 {
2024-10-08 05:15:38 +02:00
ENCOUNTER_SUBSTATE_CONVERSATION_INIT = 0,
ENCOUNTER_SUBSTATE_CONVERSATION_END = 1,
};
enum EncounterPostBattleSubStates {
2024-10-08 05:15:38 +02:00
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,
};
2020-08-15 00:47:06 +02:00
#endif