#ifndef _ENUMS_H_
#define _ENUMS_H_

#include "ultra64.h"
#include "types.h"
#include "saved_byte_names.h"
#include "saved_flag_names.h"

enum StoryProgress {
    STORY_INTRO                                 = -128,
    STORY_CH0_WAKE_UP                           = -127,
    STORY_CH0_MET_INNKEEPER                     = -126,
    STORY_UNUSED_FFFFFF83                       = -125,
    STORY_CH0_MET_GOOMPA                        = -124,
    STORY_CH0_GATE_CRUSHED                      = -123,
    STORY_CH0_FELL_OFF_CLIFF                    = -122,
    STORY_CH0_GOOMPA_JOINED_PARTY               = -121,
    STORY_CH0_LOOKING_FOR_HAMMER                = -120,
    STORY_CH0_FOUND_HAMMER                      = -119,
    STORY_CH0_DEFEATED_JR_TROOPA                = -118,
    STORY_CH0_LEFT_THE_PLAYGROUND               = -117,
    STORY_UNUSED_FFFFFF8C                       = -116,
    STORY_CH0_GOOMBARIO_JOINED_PARTY            = -115,
    STORY_CH0_SMASHED_GATE_BLOCK                = -114,
    STORY_CH0_DEFEATED_GOOMBA_BROS              = -113,
    STORY_CH0_DEFEATED_GOOMBA_KING              = -112,
    STORY_CH0_FOUND_GATEHOUSE_SWITCH            = -111,
    STORY_CH0_HIT_GATEHOUSE_SWITCH              = -110,
    STORY_CH0_OPENED_BRIDGE_TO_TOAD_TOWN        = -109,
    STORY_CH0_KAMMY_RETURNED_TO_BOWSER          = -108,
    STORY_CH0_ARRIVED_AT_TOAD_TOWN              = -107,
    STORY_CH0_MET_STAR_SPIRITS                  = -106,
    STORY_CH0_BEGAN_PEACH_MISSION               = -105,
    STORY_CH0_TWINK_GAVE_LUCKY_STAR             = -104,
    STORY_CH0_RETURNED_TO_TOAD_TOWN             = -103,
    STORY_CH1_SPOKE_WITH_MERLIN                 = -102,
    STORY_CH1_TOLD_MERLIN_ABOUT_DARK_TOADS      = -101,
    STORY_CH1_MERLIN_REVEALED_KOOPA_BROS        = -100,
    STORY_CH1_KNOCKED_SWITCH_FROM_TREE          = -99,
    STORY_CH1_MADE_FIRST_BRIDGE                 = -98,
    STORY_CH1_ARRIVED_AT_KOOPA_VILLAGE          = -97,
    STORY_CH1_PROMISED_TO_HELP_KOOPER           = -96,
    STORY_CH1_FUZZY_THIEF_LEFT_TOWN             = -95,
    STORY_CH1_FUZZY_THIEF_RAN_AWAY              = -94,
    STORY_CH1_FUZZY_THIEF_HID_IN_TREE           = -93,
    STORY_CH1_KOOPER_JOINED_PARTY               = -92,
    STORY_CH1_MADE_SECOND_BRIDGE                = -91,
    STORY_CH1_ARRIVED_AT_KOOPA_FORTRESS         = -90,
    STORY_CH1_SPOTTED_BY_KOOPA_BROS             = -89,
    STORY_CH1_KOOPA_BROS_HID_KEY                = -88,
    STORY_CH1_DEFEATED_BASEMENT_GUARD           = -87,
    STORY_CH1_LOWERED_FIRST_STAIRS              = -86,
    STORY_CH1_KOOPA_BROS_SET_TRAP               = -85,
    STORY_CH1_MARIO_ACTIVATED_TRAP              = -84,
    STORY_CH1_BOMBETTE_JOINED_PARTY             = -83,
    STORY_CH1_DEFEATED_DUNGEON_GUARDS           = -82,
    STORY_CH1_LOWERED_SECOND_STAIRS             = -81,
    STORY_CH1_RAISED_SUBMERGED_STAIRS           = -80,
    STORY_CH1_KOOPA_BROS_FIRING_BLASTERS        = -79,
    STORY_CH1_DEFEATED_KOOPA_BROS               = -78,
    STORY_CH1_STAR_SPIRIT_RESCUED               = -77,
    STORY_CH1_BEGAN_PEACH_MISSION               = -76,
    STORY_CH1_STAR_SPRIT_DEPARTED               = -75,
    STORY_CH1_DEFEATED_JR_TROOPA                = -74,
    STORY_CH1_RETURNED_TO_TOAD_TOWN             = -73,
    STORY_CH2_ARRIVED_AT_MT_RUGGED              = -72,
    STORY_CH2_SPOKE_WITH_PARAKARRY              = -71,
    STORY_CH2_PARAKARRY_JOINED_PARTY            = -70,
    STORY_CH2_ARRIVED_AT_DRY_DRY_DESERT         = -69,
    STORY_CH2_ARRIVED_AT_DRY_DRY_OUTPOST        = -68,
    STORY_CH2_SHADY_MOUSE_LEFT_SHOP             = -67,
    STORY_CH2_SPOKE_WITH_SHEEK                  = -66,
    STORY_CH2_SHADY_MOUSE_ENTERED_SHOP          = -65,
    STORY_CH2_BOUGHT_SECRET_ITEMS               = -64,
    STORY_CH2_GOT_PULSE_STONE                   = -63,
    STORY_CH2_UNCOVERED_DRY_DRY_RUINS           = -62,
    STORY_CH2_DRAINED_FIRST_SAND_ROOM           = -61,
    STORY_CH2_DRAINED_SECOND_SAND_ROOM          = -60,
    STORY_CH2_GOT_SUPER_HAMMER                  = -59,
    STORY_CH2_DRAINED_THIRD_SAND_ROOM           = -58,
    STORY_CH2_SOLVED_ARTIFACT_PUZZLE            = -57,
    STORY_CH2_DEFEATED_TUTANKOOPA               = -56,
    STORY_CH2_STAR_SPIRIT_RESCUED               = -55,
    STORY_CH2_BEGAN_PEACH_MISSION               = -54,
    STORY_CH2_STAR_SPRIT_DEPARTED               = -53,
    STORY_UNUSED_FFFFFFCC                       = -52,
    STORY_CH3_SAW_BOO_ENTER_FOREST              = -51,
    STORY_CH3_INVITED_TO_BOOS_MANSION           = -50,
    STORY_CH3_ALLOWED_INTO_FOREVER_FOREST       = -49,
    STORY_CH3_ARRIVED_AT_BOOS_MANSION           = -48,
    STORY_CH3_OPENED_BOOS_MANSION_GATE          = -47,
    STORY_CH3_ENTERED_BOOS_MANSION              = -46,
    STORY_CH3_TRIGGERED_DOOR_JUMP_SCARE         = -45,
    STORY_CH3_GOT_RECORD                        = -44,
    STORY_CH3_PLAYED_THE_RECORD                 = -43,
    STORY_CH3_GOT_WEIGHT                        = -42,
    STORY_CH3_WEIGHED_DOWN_CHANDELIER           = -41,
    STORY_CH3_GOT_SUPER_BOOTS                   = -40,
    STORY_CH3_HIT_HUGE_BLUE_SWITCH              = -39,
    STORY_CH3_GOT_BOO_PORTRAIT                  = -38,
    STORY_CH3_RESTORED_BOO_PORTRAIT             = -37,
    STORY_CH3_BOW_JOINED_PARTY                  = -36,
    STORY_CH3_UNLOCKED_GUSTY_GULCH              = -35,
    STORY_CH3_ARRIVED_AT_GHOST_TOWN             = -34,
    STORY_CH3_SAW_TUBBA_EAT_BOO                 = -33,
    STORY_CH3_ARRIVED_AT_TUBBAS_MANOR           = -32,
    STORY_UNUSED_FFFFFFE1                       = -31,
    STORY_CH3_TUBBA_BEGAN_NAPPING               = -30,
    STORY_CH3_TUBBA_WOKE_UP                     = -29,
    STORY_CH3_TUBBA_SMASHED_THE_BRIDGES         = -28,
    STORY_CH3_TUBBA_CHASED_MARIO_IN_HALL        = -27,
    STORY_CH3_TUBBA_CHASED_MARIO_IN_FOYER       = -26,
    STORY_CH3_ESCAPED_TUBBAS_MANOR              = -25,
    STORY_CH3_UNLOCKED_WINDY_MILL               = -24,
    STORY_CH3_WENT_DOWN_THE_WELL                = -23,
    STORY_CH3_HEART_FLED_FIRST_TUNNEL           = -22,
    STORY_UNUSED_FFFFFFEB                       = -21,
    STORY_UNUSED_FFFFFFEC                       = -20,
    STORY_CH3_HEART_FLED_SECOND_TUNNEL          = -19,
    STORY_CH3_HEART_ESCAPED_WELL                = -18,
    STORY_CH3_HEART_ESCAPED_WINDY_MILL          = -17,
    STORY_CH3_DEFEATED_TUBBA_BLUBBA             = -16,
    STORY_CH3_STAR_SPIRIT_RESCUED               = -15,
    STORY_CH3_BEGAN_PEACH_MISSION               = -14,
    STORY_CH3_STAR_SPRIT_DEPARTED               = -13,
    STORY_CH4_FRYING_PAN_STOLEN                 = -12,
    STORY_CH4_MET_WITH_TWINK                    = -11,
    STORY_CH4_FOUND_HIDDEN_DOOR                 = -10,
    STORY_CH4_ENTERED_THE_TOY_BOX               = -9,
    STORY_CH4_GOT_STOREROOM_KEY                 = -8,
    STORY_CH4_RETURNED_STOREROOM_KEY            = -7,
    STORY_CH4_GOT_TOY_TRAIN                     = -6,
    STORY_CH4_RETURNED_TOY_TRAIN                = -5,
    STORY_CH4_GOT_FRYING_PAN                    = -4,
    STORY_CH4_GOT_TAYCE_TS_CAKE                 = -3,
    STORY_CH4_GAVE_CAKE_TO_GOURMET_GUY          = -2,
    STORY_CH4_PULLED_SWITCH_SWITCH              = -1,
    STORY_CH4_SOLVED_COLOR_PUZZLE               = 0,
    STORY_CH4_DEFEATED_LANTERN_GHOST            = 1,
    STORY_CH4_WATT_JOINED_PARTY                 = 2,
    STORY_CH4_OPENED_GENERAL_GUY_ROOM           = 3,
    STORY_CH4_DEFEATED_GENERAL_GUY              = 4,
    STORY_CH4_STAR_SPIRIT_RESCUED               = 5,
    STORY_CH4_BEGAN_PEACH_MISSION               = 6,
    STORY_CH4_STAR_SPRIT_DEPARTED               = 7,
    STORY_CH5_WHALE_MOUTH_OPEN                  = 8,
    STORY_CH5_ENTERED_WHALE                     = 9,
    STORY_CH5_DEFEATED_FUZZIPEDE                = 10,
    STORY_CH5_REACHED_LAVA_LAVA_ISLAND          = 11,
    STORY_CH5_KOLORADO_ESCAPED_FUZZIES          = 12,
    STORY_CH5_KOLORADO_ESCAPED_SPEAR_GUYS       = 13,
    STORY_CH5_YOSHI_CHILDREN_ARE_MISSING        = 14,
    STORY_CH5_SUSHIE_JOINED_PARTY               = 15,
    STORY_CH5_ALL_YOSHI_CHILDREN_RESCUED        = 16,
    STORY_CH5_GOT_JADE_RAVEN                    = 17,
    STORY_CH5_MOVED_RAVEN_STATUE                = 18,
    STORY_CH5_DEFEATED_PIRANHAS_MINIBOSS        = 19,
    STORY_CH5_REACHED_RAFAELS_TREE              = 20,
    STORY_CH5_RAFAEL_LEFT_NEST                  = 21,
    STORY_CH5_RAFAEL_MOVED_ROOT                 = 22,
    STORY_CH5_RAFAEL_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_61                                    = 97,
};

enum KoopaKootFavors {
    KOOT_FAVOR_CH1_1        = 0,
    KOOT_FAVOR_CH1_2        = 1,
    KOOT_FAVOR_CH2_1        = 2,
    KOOT_FAVOR_CH2_2        = 3,
    KOOT_FAVOR_CH2_3        = 4,
    KOOT_FAVOR_CH3_1        = 5,
    KOOT_FAVOR_CH3_2        = 6,
    KOOT_FAVOR_CH3_3        = 7,
    KOOT_FAVOR_CH4_1        = 8,
    KOOT_FAVOR_CH4_2        = 9,
    KOOT_FAVOR_CH4_3        = 10,
    KOOT_FAVOR_CH5_1        = 11,
    KOOT_FAVOR_CH5_2        = 12,
    KOOT_FAVOR_CH5_3        = 13,
    KOOT_FAVOR_CH6_1        = 14,
    KOOT_FAVOR_CH6_2        = 15,
    KOOT_FAVOR_CH6_3        = 16,
    KOOT_FAVOR_CH7_1        = 17,
    KOOT_FAVOR_CH7_2        = 18,
    KOOT_FAVOR_CH7_3        = 19,
};

enum KoopaKootFavorStates {
    KOOT_FAVOR_STATE_0      = 0,
    KOOT_FAVOR_STATE_1      = 1,
    KOOT_FAVOR_STATE_2      = 2,
};

enum EncounterTriggers {
    ENCOUNTER_TRIGGER_NONE                            = 1,
    ENCOUNTER_TRIGGER_JUMP                            = 2,
    ENCOUNTER_TRIGGER_SPIN                            = 3,
    ENCOUNTER_TRIGGER_HAMMER                          = 4,
    ENCOUNTER_TRIGGER_CONVERSATION                    = 5,
    ENCOUNTER_TRIGGER_PARTNER                         = 6,
};

enum SoundOutputMode {
    SOUND_OUT_MONO                                    = 0,
    SOUND_OUT_STEREO                                  = 1,
};

enum SongIDs {
    SONG_TOAD_TOWN                  = 0x00000000,
    //SONG_GOOMBA_VILLAGE_COPY      = 0x00000001,
    SONG_NORMAL_BATTLE              = 0x00000002,
    SONG_SPECIAL_BATTLE             = 0x00000003,
    SONG_JR_TROOPA_BATTLE           = 0x00000004,
    SONG_FINAL_BOWSER_BATTLE        = 0x00000005,
    //SONG_GOOMBA_VILLAGE_COPY      = 0x00000006,
    SONG_GOOMBA_KING_BATTLE         = 0x00000007,
    SONG_KOOPA_BROS_BATTLE          = 0x00000008,
    SONG_FAKE_BOWSER_BATTLE         = 0x00000009,
    SONG_TUTANKOOPA_BATTLE          = 0x0000000A,
    SONG_TUBBA_BLUBBA_BATTLE        = 0x0000000B,
    SONG_GENERAL_GUY_BATTLE         = 0x0000000C,
    SONG_LAVA_PIRANHA_BATTLE        = 0x0000000D,
    SONG_HUFF_N_PUFF_BATTLE         = 0x0000000E,
    SONG_CRYSTAL_KING_BATTLE        = 0x0000000F,
    SONG_GOOMBA_VILLAGE             = 0x00000010,
    SONG_PLEASANT_PATH              = 0x00000011,
    SONG_FUZZY_ATTACK               = 0x00000012,
    SONG_KOOPA_VILLAGE              = 0x00000013,
    SONG_KOOPA_FORTRESS             = 0x00000014,
    SONG_DRY_DRY_OUTPOST            = 0x00000015,
    SONG_MT_RUGGED                  = 0x00000016,
    SONG_DRY_DRY_DESERT             = 0x00000017,
    SONG_DRY_DRY_RUINS              = 0x00000018,
    SONG_RUINS_BASEMENT             = 0x00000019,
    SONG_FOREVER_FOREST             = 0x0000001A,
    SONG_BOOS_MANSION               = 0x0000001B,
    SONG_CHEERFUL_BOOS_MANSION      = 0x0000001C,
    SONG_GUSTY_GULCH                = 0x0000001D,
    SONG_TUBBAS_MANOR               = 0x0000001E,
    SONG_TUBBA_ESCAPE               = 0x0000001F,
    SONG_SHY_GUY_TOYBOX             = 0x00000020,
    SONG_TOYBOX_TRAIN               = 0x00000021,
    SONG_CREEPY_TOYBOX              = 0x00000022,
    //SONG_GOOMBA_VILLAGE_COPY      = 0x00000023,
    SONG_JADE_JUNGLE                = 0x00000024,
    SONG_DEEP_JUNGLE                = 0x00000025,
    SONG_YOSHIS_VILLAGE             = 0x00000026,
    SONG_YOSHIS_PANIC               = 0x00000027,
    SONG_RAPHAEL_RAVEN              = 0x00000028,
    SONG_MT_LAVALAVA                = 0x00000029,
    SONG_VOLCANO_ESCAPE             = 0x0000002A,
    SONG_STAR_WAY_OPENS             = 0x0000002B,
    SONG_MASTER_BATTLE              = 0x0000002C,
    SONG_RADIO_ISLAND_SOUNDS        = 0x0000002D,
    SONG_RADIO_HOT_HITS             = 0x0000002E,
    SONG_RADIO_GOLDEN_OLDIES        = 0x0000002F,
    SONG_FLOWER_FIELDS_CLOUDY       = 0x00000030,
    SONG_FLOWER_FIELDS_SUNNY        = 0x00000031,
    SONG_CLOUDY_CLIMB               = 0x00000032,
    SONG_PUFF_PUFF_MACHINE          = 0x00000033,
    SONG_SUN_TOWER_CLOUDY           = 0x00000034,
    SONG_SUN_TOWER_SUNNY            = 0x00000035,
    //SONG_GOOMBA_VILLAGE_COPY      = 0x00000036,
    SONG_CRYSTAL_PALACE             = 0x00000037,
    SONG_SHIVER_CITY                = 0x00000038,
    SONG_PENGUIN_MYSTERY            = 0x00000039,
    SONG_SHIVER_SNOWFIELD           = 0x0000003A,
    SONG_SHIVER_MOUNTAIN            = 0x0000003B,
    SONG_STARBORN_VALLEY            = 0x0000003C,
    SONG_MERLAR_THEME               = 0x0000003D,
    SONG_MAIL_CALL                  = 0x0000003E,
    SONG_PEACHS_CASTLE_PARTY        = 0x0000003F,
    SONG_CHAPTER_END                = 0x00000040,
    SONG_CHAPTER_START              = 0x00000041,
    SONG_ITEM_UPGRADE               = 0x00000042,
    //SONG_GOOMBA_VILLAGE_COPY      = 0x00000043,
    SONG_PHONOGRAPH_MUSIC           = 0x00000044,
    SONG_TUTANKOOPA_THEME           = 0x00000045,
    SONG_KAMMY_KOOPA_THEME          = 0x00000046,
    SONG_JR_TROOPA_THEME            = 0x00000047,
    SONG_BULLET_BILL_ASSAULT        = 0x00000048,
    SONG_MONTY_MOLE_ASSAULT         = 0x00000049,
    SONG_SHY_GUY_INVASION           = 0x0000004A,
    SONG_TOAD_TOWN_TUNNELS          = 0x0000004B,
    SONG_WHALE_THEME                = 0x0000004C,
    SONG_FOREVER_FOREST_WARNING     = 0x0000004D,
    SONG_YOSHI_KIDS_FOUND           = 0x0000004E,
    SONG_UNUSED_FANFARE             = 0x0000004F,
    SONG_GOOMBA_KING_THEME          = 0x00000050,
    SONG_KOOPA_BROS_INTERLUDE       = 0x00000051,
    SONG_KOOPA_BROS_THEME           = 0x00000052,
    SONG_TUTANKOOPA_WARNING         = 0x00000053,
    SONG_TUTANKOOPA_REVEALED        = 0x00000054,
    SONG_TUBBA_BLUBBA_THEME         = 0x00000055,
    SONG_GENERAL_GUY_THEME          = 0x00000056,
    SONG_LAVA_PIRANHA_THEME         = 0x00000057,
    SONG_HUFF_N_PUFF_THEME          = 0x00000058,
    SONG_CRYSTAL_KING_THEME         = 0x00000059,
    SONG_BLOOPER_THEME              = 0x0000005A,
    SONG_MINIBOSS_BATTLE            = 0x0000005B,
    SONG_MONSTAR_THEME              = 0x0000005C,
    SONG_CLUB64                     = 0x0000005D,
    SONG_UNUSED_OPENING             = 0x0000005E,
    SONG_BOWSERS_CASTLE_FALLS       = 0x0000005F,
    SONG_STAR_HAVEN                 = 0x00000060,
    SONG_SHOOTING_STAR_SUMMIT       = 0x00000061,
    SONG_STARSHIP_THEME             = 0x00000062,
    SONG_STAR_SANCTUARY             = 0x00000063,
    SONG_BOWSERS_CASTLE             = 0x00000064,
    SONG_BOWSERS_CASTLE_CAVES       = 0x00000065,
    SONG_BOWSER_THEME               = 0x00000066,
    SONG_BOWSER_BATTLE              = 0x00000067,
    SONG_PEACH_WISHES               = 0x00000068,
    SONG_FILE_SELECT                = 0x00000069,
    SONG_MAIN_THEME                 = 0x0000006A,
    SONG_BOWSER_ATTACKS             = 0x0000006B,
    SONG_MARIO_FALLS                = 0x0000006C,
    SONG_PEACH_APPEARS              = 0x0000006D,
    SONG_THE_END                    = 0x0000006E,
    SONG_RECOVERED_STAR_ROD         = 0x0000006F,
    SONG_TWINK_THEME                = 0x00000070,
    SONG_STIRRING_CAKE              = 0x00000071,
    SONG_GOURMET_GUY_FREAKOUT       = 0x00000072,
    SONG_PRISONER_PEACH_THEME       = 0x00000073,
    SONG_PEACH_MISSION              = 0x00000074,
    SONG_PEACH_SNEAKING             = 0x00000075,
    SONG_PEACH_CAUGHT               = 0x00000076,
    SONG_PEACH_QUIZ_INTRO           = 0x00000077,
    SONG_STAR_SPIRIT_THEME          = 0x00000078,
    SONG_PENGUIN_WHODUNIT           = 0x00000079,
    SONG_PENGUIN_WAKES_UP           = 0x0000007A,
    SONG_MAGIC_BEANSTALK            = 0x0000007B,
    SONG_MERLEE_SPELL               = 0x0000007C,
    SONG_LAKILESTER_THEME           = 0x0000007D,
    SONG_GOOMBA_BROS_RETREAT        = 0x0000007E,
    SONG_SUNSHINE_RETURNS           = 0x0000007F,
    SONG_RIDING_THE_RAILS           = 0x00000080,
    SONG_RIDING_THE_WHALE           = 0x00000081,
    SONG_NEW_PARTNER                = 0x00000082,
    SONG_DRY_DRY_RUINS_APPEAR       = 0x00000083,
    SONG_CANDY_CANES                = 0x00000084,
    SONG_PLAYROOM                   = 0x00000085,
    SONG_MOUSTAFA_THEME             = 0x00000086,
    SONG_GAME_OVER                  = 0x00000087,
    SONG_TAKING_REST                = 0x00000088,
    SONG_FLOWER_NPC_THEME           = 0x00000089,
    SONG_FLOWER_GATE_APPEARS        = 0x0000008A,
    SONG_BATTLE_END                 = 0x0000008B,
    SONG_POP_DIVA_SONG              = 0x0000008C,
    SONG_BOO_MINIGAME               = 0x0000008D,
    SONG_LEVEL_UP                   = 0x0000008E,
    //SONG_GOOMBA_VILLAGE_COPY      = 0x0000008F,
    SONG_PARADE_DAY                 = 0x00000090,
    SONG_PARADE_NIGHT               = 0x00000091,
    //SONG_GOOMBA_VILLAGE_COPY      = 0x00000092,
    //SONG_GOOMBA_VILLAGE_COPY      = 0x00000093,
    SONG_MARIO_BROS_HOUSE           = 0x00000094,
    SONG_INTRO_STORY                = 0x00000095,
    SONG_NEW_PARTNER_JP             = 0x00000096,
};

enum Abilities {
    ABILITY_DODGE_MASTER            = 0x00000000,
    ABILITY_UNUSED                  = 0x00000001,
    ABILITY_SPIKE_SHIELD            = 0x00000002,
    ABILITY_FIRST_ATTACK            = 0x00000003,
    ABILITY_HP_PLUS                 = 0x00000004,
    ABILITY_DOUBLE_DIP              = 0x00000005,
    ABILITY_MYSTERY_SCROLL          = 0x00000006,
    ABILITY_FIRE_SHIELD             = 0x00000007,
    ABILITY_PRETTY_LUCKY            = 0x00000008,
    ABILITY_HP_DRAIN                = 0x00000009,
    ABILITY_ALL_OR_NOTHING          = 0x0000000A,
    ABILITY_SLOW_GO                 = 0x0000000B,
    ABILITY_FP_PLUS                 = 0x0000000C,
    ABILITY_ICE_POWER               = 0x0000000D,
    ABILITY_FEELING_FINE            = 0x0000000E,
    ABILITY_ATTACK_FX               = 0x0000000F,
    ABILITY_MONEY_MONEY             = 0x00000010,
    ABILITY_CHILL_OUT               = 0x00000011,
    ABILITY_HAPPY_HEART             = 0x00000012,
    ABILITY_ZAP_TAP                 = 0x00000013,
    ABILITY_MEGA_RUSH               = 0x00000014,
    ABILITY_BERSERKER               = 0x00000015,
    ABILITY_RIGHT_ON                = 0x00000016,
    ABILITY_RUNAWAY_PAY             = 0x00000017,
    ABILITY_FLOWER_SAVER            = 0x00000018,
    ABILITY_PAY_OFF                 = 0x00000019,
    ABILITY_QUICK_CHANGE            = 0x0000001A,
    ABILITY_DEFEND_PLUS             = 0x0000001B,
    ABILITY_POWER_PLUS              = 0x0000001C,
    ABILITY_REFUND                  = 0x0000001D,
    ABILITY_POWER_RUSH              = 0x0000001E,
    ABILITY_CRAZY_HEART             = 0x0000001F,
    ABILITY_LAST_STAND              = 0x00000020,
    ABILITY_CLOSE_CALL              = 0x00000021,
    ABILITY_P_UP_D_DOWN             = 0x00000022,
    ABILITY_LUCKY_DAY               = 0x00000023,
    ABILITY_MEGA_HP_DRAIN           = 0x00000024,
    ABILITY_P_DOWN_D_UP             = 0x00000025,
    ABILITY_FLOWER_FANATIC          = 0x00000026,
    ABILITY_SPEEDY_SPIN             = 0x00000027,
    ABILITY_SPIN_ATTACK             = 0x00000028,
    ABILITY_I_SPY                   = 0x00000029,
    ABILITY_BUMP_ATTACK             = 0x0000002A,
    ABILITY_HEART_FINDER            = 0x0000002B,
    ABILITY_FLOWER_FINDER           = 0x0000002C,
    ABILITY_DIZZY_ATTACK            = 0x0000002D,
    ABILITY_FINAL_GOOMPA            = 0x0000002E,
    ABILITY_FINAL_BOBOMB            = 0x0000002F,
    ABILITY_DEEP_FOCUS              = 0x00000030,
    ABILITY_SUPER_FOCUS             = 0x00000031,
    ABILITY_KAIDEN                  = 0x00000032,
    ABILITY_DAMAGE_DODGE            = 0x00000033,
    ABILITY_HAPPY_FLOWER            = 0x00000034,
    ABILITY_GROUP_FOCUS             = 0x00000035,
    ABILITY_PEEKABOO                = 0x00000036,
    ABILITY_HEALTHY_HEALTHY         = 0x00000037,
};

enum Emotes {
    EMOTE_EXCLAMATION        = 0,
    EMOTE_SHOCK              = 1,
    EMOTE_QUESTION           = 2,
    EMOTE_FRUSTRATION        = 3,
    EMOTE_ELLIPSIS           = 4,
    EMOTE_INVALID            = 5,
};

enum Emoters {
    EMOTER_PLAYER   = 0,
    EMOTER_NPC      = 1,
    EMOTER_POS      = 2,
};

enum EasingType {
    EASING_LINEAR                   = 0,
    EASING_QUADRATIC_IN             = 1,
    EASING_CUBIC_IN                 = 2,
    EASING_QUARTIC_IN               = 3,
    EASING_QUADRATIC_OUT            = 4,
    EASING_CUBIC_OUT                = 5,
    EASING_QUARTIC_OUT              = 6,
    EASING_COS_SLOW_OVERSHOOT       = 7,
    EASING_COS_FAST_OVERSHOOT       = 8,
    EASING_COS_BOUNCE               = 9,
    EASING_COS_IN_OUT               = 10,
    EASING_SIN_OUT                  = 11,
    EASING_COS_IN                   = 12,
};

enum SoundIDs {
    SOUND_0                         = 0x00000000,
    SOUND_1                         = 0x00000001,
    SOUND_2                         = 0x00000002,
    SOUND_3                         = 0x00000003,
    SOUND_4                         = 0x00000004,
    SOUND_MENU_BADGE_EQUIP          = 0x00000005,
    SOUND_MENU_BADGE_UNEQUIP        = 0x00000006,
    SOUND_MENU_START_TUTORIAL       = 0x00000009,
    SOUND_A                         = 0x0000000A,
    SOUND_B                         = 0x0000000B,
    SOUND_D                         = 0x0000000D,
    SOUND_E                         = 0x0000000E,
    SOUND_F                         = 0x0000000F,
    SOUND_10                        = 0x00000010,
    SOUND_11                        = 0x00000011,
    SOUND_12                        = 0x00000012,
    SOUND_14                        = 0x00000014,
    SOUND_21                        = 0x00000021,
    SOUND_22                        = 0x00000022,
    SOUND_23                        = 0x00000023,
    SOUND_24                        = 0x00000024,
    SOUND_25                        = 0x00000025,
    SOUND_26                        = 0x00000026,
    SOUND_27                        = 0x00000027,
    SOUND_28                        = 0x00000028,
    SOUND_29                        = 0x00000029,
    SOUND_2A                        = 0x0000002A,
    SOUND_2B                        = 0x0000002B,
    SOUND_2C                        = 0x0000002C,
    SOUND_2D                        = 0x0000002D,
    SOUND_2E                        = 0x0000002E,
    SOUND_2F                        = 0x0000002F,
    SOUND_30                        = 0x00000030,
    SOUND_33                        = 0x00000033,
    SOUND_34                        = 0x00000034,
    SOUND_35                        = 0x00000035,
    SOUND_36                        = 0x00000036,
    SOUND_37                        = 0x00000037,
    SOUND_38                        = 0x00000038,
    SOUND_39                        = 0x00000039,
    SOUND_3F                        = 0x0000003F,
    SOUND_40                        = 0x00000040,
    SOUND_41                        = 0x00000041,
    SOUND_42                        = 0x00000042,
    SOUND_43                        = 0x00000043,
    SOUND_44                        = 0x00000044,
    SOUND_JR_TROOPA_SPLASH          = 0x00000045,
    SOUND_JR_TROOPA_SWIM            = 0x00000046,
    SOUND_BOO_SPOOK                 = 0x00000047,
    SOUND_48                        = 0x00000048,
    SOUND_4A                        = 0x0000004A,
    SOUND_4C                        = 0x0000004C,
    SOUND_4D                        = 0x0000004D,
    SOUND_4E                        = 0x0000004E,
    SOUND_4F                        = 0x0000004F,
    SOUND_50                        = 0x00000050,
    SOUND_51                        = 0x00000051,
    SOUND_52                        = 0x00000052,
    SOUND_53                        = 0x00000053,
    SOUND_54                        = 0x00000054,
    SOUND_55                        = 0x00000055,
    SOUND_56                        = 0x00000056,
    SOUND_57                        = 0x00000057,
    SOUND_58                        = 0x00000058,
    SOUND_59                        = 0x00000059,
    SOUND_5A                        = 0x0000005A,
    SOUND_5B                        = 0x0000005B,
    SOUND_5C                        = 0x0000005C,
    SOUND_5D                        = 0x0000005D,
    SOUND_5E                        = 0x0000005E,
    SOUND_5F                        = 0x0000005F,
    SOUND_60                        = 0x00000060,
    SOUND_61                        = 0x00000061,
    SOUND_62                        = 0x00000062,
    SOUND_64                        = 0x00000064,
    SOUND_67                        = 0x00000067,
    SOUND_68                        = 0x00000068,
    SOUND_69                        = 0x00000069,
    SOUND_6A                        = 0x0000006A,
    SOUND_6B                        = 0x0000006B,
    SOUND_6C                        = 0x0000006C,
    SOUND_6D                        = 0x0000006D,
    SOUND_70                        = 0x00000070,
    SOUND_71                        = 0x00000071,
    SOUND_72                        = 0x00000072,
    SOUND_73                        = 0x00000073,
    SOUND_74                        = 0x00000074,
    SOUND_77                        = 0x00000077,
    SOUND_7D                        = 0x0000007D,
    SOUND_82                        = 0x00000082,
    SOUND_83                        = 0x00000083,
    SOUND_84                        = 0x00000084,
    SOUND_85                        = 0x00000085,
    SOUND_87                        = 0x00000087,
    SOUND_89                        = 0x00000089,
    SOUND_8A                        = 0x0000008A,
    SOUND_8B                        = 0x0000008B,
    SOUND_8C                        = 0x0000008C,
    SOUND_8D                        = 0x0000008D,
    SOUND_8E                        = 0x0000008E,
    SOUND_8F                        = 0x0000008F,
    SOUND_91                        = 0x00000091,
    SOUND_92                        = 0x00000092,
    SOUND_93                        = 0x00000093,
    SOUND_94                        = 0x00000094,
    SOUND_95                        = 0x00000095,
    SOUND_96                        = 0x00000096,
    SOUND_97                        = 0x00000097,
    SOUND_98                        = 0x00000098,
    SOUND_99                        = 0x00000099,
    SOUND_9B                        = 0x0000009B,
    SOUND_9D                        = 0x0000009D,
    SOUND_9E                        = 0x0000009E,
    SOUND_9F                        = 0x0000009F,
    SOUND_A0                        = 0x000000A0,
    SOUND_A1                        = 0x000000A1,
    SOUND_A2                        = 0x000000A2,
    SOUND_A3                        = 0x000000A3,
    SOUND_A4                        = 0x000000A4,
    SOUND_A5                        = 0x000000A5,
    SOUND_A6                        = 0x000000A6,
    SOUND_A7                        = 0x000000A7,
    SOUND_A8                        = 0x000000A8,
    SOUND_A9                        = 0x000000A9,
    SOUND_AA                        = 0x000000AA,
    SOUND_AB                        = 0x000000AB,
    SOUND_AC                        = 0x000000AC,
    SOUND_AD                        = 0x000000AD,
    SOUND_AE                        = 0x000000AE,
    SOUND_AF                        = 0x000000AF,
    SOUND_B0                        = 0x000000B0,
    SOUND_B1                        = 0x000000B1,
    SOUND_B2                        = 0x000000B2,
    SOUND_B4                        = 0x000000B4,
    SOUND_BOO_VANISH                = 0x000000C1,
    SOUND_C2                        = 0x000000C2,
    SOUND_BOO_APPEAR                = 0x000000C3,
    SOUND_C4                        = 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_CB                        = 0x000000CB,
    SOUND_CC                        = 0x000000CC,
    SOUND_CD                        = 0x000000CD,
    SOUND_CE                        = 0x000000CE,
    SOUND_D1                        = 0x000000D1,
    SOUND_D2                        = 0x000000D2,
    SOUND_D3                        = 0x000000D3,
    SOUND_D4                        = 0x000000D4,
    SOUND_D5                        = 0x000000D5,
    SOUND_D6                        = 0x000000D6,
    SOUND_D9                        = 0x000000D9,
    SOUND_DA                        = 0x000000DA,
    SOUND_DC                        = 0x000000DC,
    SOUND_DD                        = 0x000000DD,
    SOUND_DF                        = 0x000000DF,
    SOUND_E0                        = 0x000000E0,
    SOUND_HIT_PLAYER_NORMAL         = 0x000000E1,
    SOUND_HIT_PLAYER_FIRE           = 0x000000E2,
    SOUND_HIT_PLAYER_ICE            = 0x000000E3,
    SOUND_FROZEN_SHATTER            = 0x000000E7,
    SOUND_E8                        = 0x000000E8,
    SOUND_HIT_NORMAL                = 0x000000E9,
    SOUND_HIT_FIRE                  = 0x000000EA,
    SOUND_HIT_ICE                   = 0x000000EB,
    SOUND_F1                        = 0x000000F1,
    SOUND_F2                        = 0x000000F2,
    SOUND_F3                        = 0x000000F3,
    SOUND_F4                        = 0x000000F4,
    SOUND_F5                        = 0x000000F5,
    SOUND_F6                        = 0x000000F6,
    SOUND_F7                        = 0x000000F7,
    SOUND_F8                        = 0x000000F8,
    SOUND_F9                        = 0x000000F9,
    SOUND_FA                        = 0x000000FA,
    SOUND_FB                        = 0x000000FB,
    SOUND_FC                        = 0x000000FC,
    SOUND_FD                        = 0x000000FD,
    SOUND_FE                        = 0x000000FE,
    SOUND_FF                        = 0x000000FF,
    SOUND_100                       = 0x00000100,
    SOUND_108                       = 0x00000108,
    SOUND_10B                       = 0x0000010B,
    SOUND_IMMUNE                    = 0x0000010C,
    SOUND_HIT_BONES                 = 0x0000010D,
    SOUND_10E                       = 0x0000010E,
    SOUND_10F                       = 0x0000010F,
    SOUND_110                       = 0x00000110,
    SOUND_131                       = 0x00000131,
    SOUND_133                       = 0x00000133,
    SOUND_134                       = 0x00000134,
    SOUND_137                       = 0x00000137,
    SOUND_138                       = 0x00000138,
    SOUND_139                       = 0x00000139,
    SOUND_13D                       = 0x0000013D,
    SOUND_13E                       = 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_SOFT_LAND                 = 0x00000148,
    SOUND_149                       = 0x00000149,
    SOUND_14A                       = 0x0000014A,
    SOUND_LAND                      = 0x0000014B,
    SOUND_HIT_BLOCK                 = 0x0000014E,
    SOUND_14F                       = 0x0000014F,
    SOUND_150                       = 0x00000150,
    SOUND_151                       = 0x00000151,
    SOUND_152                       = 0x00000152,
    SOUND_SEARCH_BUSH               = 0x00000153,
    SOUND_156                       = 0x00000156,
    SOUND_158                       = 0x00000158,
    SOUND_15A                       = 0x0000015A,
    SOUND_15B                       = 0x0000015B,
    SOUND_15C                       = 0x0000015C,
    SOUND_15D                       = 0x0000015D,
    SOUND_15E                       = 0x0000015E,
    SOUND_160                       = 0x00000160,
    SOUND_161                       = 0x00000161,
    SOUND_162                       = 0x00000162,
    SOUND_ENTER_PIPE                = 0x00000163,
    SOUND_164                       = 0x00000164,
    SOUND_SMASH_GOOMNUT_TREE        = 0x00000165,
    SOUND_SHAKE_TREE                = 0x00000166,
    SOUND_167                       = 0x00000167,
    SOUND_168                       = 0x00000168,
    SOUND_DUST_OFF                  = 0x00000172,
    SOUND_173                       = 0x00000173,
    SOUND_174                       = 0x00000174,
    SOUND_175                       = 0x00000175,
    SOUND_176                       = 0x00000176,
    SOUND_179                       = 0x00000179,
    SOUND_17A                       = 0x0000017A,
    SOUND_17B                       = 0x0000017B,
    SOUND_17C                       = 0x0000017C,
    SOUND_17D                       = 0x0000017D,
    SOUND_17E                       = 0x0000017E,
    SOUND_17F                       = 0x0000017F,
    SOUND_180                       = 0x00000180,
    SOUND_181                       = 0x00000181,
    SOUND_182                       = 0x00000182,
    SOUND_183                       = 0x00000183,
    SOUND_185                       = 0x00000185,
    SOUND_186                       = 0x00000186,
    SOUND_187                       = 0x00000187,
    SOUND_188                       = 0x00000188,
    SOUND_189                       = 0x00000189,
    SOUND_18A                       = 0x0000018A,
    SOUND_18C                       = 0x0000018C,
    SOUND_18D                       = 0x0000018D,
    SOUND_18E                       = 0x0000018E,
    SOUND_190                       = 0x00000190,
    SOUND_191                       = 0x00000191,
    SOUND_193                       = 0x00000193,
    SOUND_194                       = 0x00000194,
    SOUND_197                       = 0x00000197,
    SOUND_198                       = 0x00000198,
    SOUND_199                       = 0x00000199,
    SOUND_19A                       = 0x0000019A,
    SOUND_19B                       = 0x0000019B,
    SOUND_19C                       = 0x0000019C,
    SOUND_19D                       = 0x0000019D,
    SOUND_19E                       = 0x0000019E,
    SOUND_19F                       = 0x0000019F,
    SOUND_1A0                       = 0x000001A0,
    SOUND_1A1                       = 0x000001A1,
    SOUND_1A2                       = 0x000001A2,
    SOUND_1A3                       = 0x000001A3,
    SOUND_1A4                       = 0x000001A4,
    SOUND_1A5                       = 0x000001A5,
    SOUND_1A6                       = 0x000001A6,
    SOUND_1A7                       = 0x000001A7,
    SOUND_1A8                       = 0x000001A8,
    SOUND_1A9                       = 0x000001A9,
    SOUND_1AA                       = 0x000001AA,
    SOUND_1AB                       = 0x000001AB,
    SOUND_1AC                       = 0x000001AC,
    SOUND_1AD                       = 0x000001AD,
    SOUND_1AE                       = 0x000001AE,
    SOUND_1AF                       = 0x000001AF,
    SOUND_1B1                       = 0x000001B1,
    SOUND_1B2                       = 0x000001B2,
    SOUND_1B3                       = 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_1CB                       = 0x000001CB,
    SOUND_1CC                       = 0x000001CC,
    SOUND_1CD                       = 0x000001CD,
    SOUND_1CE                       = 0x000001CE,
    SOUND_1CF                       = 0x000001CF,
    SOUND_1D0                       = 0x000001D0,
    SOUND_1D1                       = 0x000001D1,
    SOUND_1D2                       = 0x000001D2,
    SOUND_1D3                       = 0x000001D3,
    SOUND_1D4                       = 0x000001D4,
    SOUND_1D5                       = 0x000001D5,
    SOUND_CREAKY_ROCKING_CHAIR      = 0x000001D6,
    SOUND_1D8                       = 0x000001D8,
    SOUND_1D9                       = 0x000001D9,
    SOUND_1DA                       = 0x000001DA,
    SOUND_1DB                       = 0x000001DB,
    SOUND_1DC                       = 0x000001DC,
    SOUND_1DD                       = 0x000001DD,
    SOUND_1DE                       = 0x000001DE,
    SOUND_1DF                       = 0x000001DF,
    SOUND_1E0                       = 0x000001E0,
    SOUND_1E1                       = 0x000001E1,
    SOUND_1E2                       = 0x000001E2,
    SOUND_1E3                       = 0x000001E3,
    SOUND_1E4                       = 0x000001E4,
    SOUND_1E5                       = 0x000001E5,
    SOUND_1E6                       = 0x000001E6,
    SOUND_1E7                       = 0x000001E7,
    SOUND_1E8                       = 0x000001E8,
    SOUND_1E9                       = 0x000001E9,
    SOUND_1EA                       = 0x000001EA,
    SOUND_1EB                       = 0x000001EB,
    SOUND_1EC                       = 0x000001EC,
    SOUND_1ED                       = 0x000001ED,
    SOUND_1EE                       = 0x000001EE,
    SOUND_1EF                       = 0x000001EF,
    SOUND_1F0                       = 0x000001F0,
    SOUND_1F1                       = 0x000001F1,
    SOUND_1F2                       = 0x000001F2,
    SOUND_1F3                       = 0x000001F3,
    SOUND_1F4                       = 0x000001F4,
    SOUND_1F5                       = 0x000001F5,
    SOUND_1F9                       = 0x000001F9,
    SOUND_1FA                       = 0x000001FA,
    SOUND_1FB                       = 0x000001FB,
    SOUND_1FC                       = 0x000001FC,
    SOUND_1FD                       = 0x000001FD,
    SOUND_1FE                       = 0x000001FE,
    SOUND_1FF                       = 0x000001FF,
    SOUND_201                       = 0x00000201,
    SOUND_202                       = 0x00000202,
    SOUND_203                       = 0x00000203,
    SOUND_204                       = 0x00000204,
    SOUND_205                       = 0x00000205,
    SOUND_206                       = 0x00000206,
    SOUND_207                       = 0x00000207,
    SOUND_208                       = 0x00000208,
    SOUND_209                       = 0x00000209,
    SOUND_20A                       = 0x0000020A,
    SOUND_20C                       = 0x0000020C,
    SOUND_20D                       = 0x0000020D,
    SOUND_20E                       = 0x0000020E,
    SOUND_211                       = 0x00000211,
    SOUND_212                       = 0x00000212,
    SOUND_213                       = 0x00000213,
    SOUND_214                       = 0x00000214,
    SOUND_215                       = 0x00000215,
    SOUND_217                       = 0x00000217,
    SOUND_218                       = 0x00000218,
    SOUND_219                       = 0x00000219,
    SOUND_21A                       = 0x0000021A,
    SOUND_21B                       = 0x0000021B,
    SOUND_21C                       = 0x0000021C,
    SOUND_MENU_ERROR                = 0x0000021D,
    SOUND_221                       = 0x00000221,
    SOUND_222                       = 0x00000222,
    SOUND_223                       = 0x00000223,
    SOUND_225                       = 0x00000225,
    SOUND_226                       = 0x00000226,
    SOUND_227                       = 0x00000227,
    SOUND_228                       = 0x00000228,
    SOUND_229                       = 0x00000229,
    SOUND_22A                       = 0x0000022A,
    SOUND_22B                       = 0x0000022B,
    SOUND_22C                       = 0x0000022C,
    SOUND_22D                       = 0x0000022D,
    SOUND_22E                       = 0x0000022E,
    SOUND_22F                       = 0x0000022F,
    SOUND_230                       = 0x00000230,
    SOUND_231                       = 0x00000231,
    SOUND_233                       = 0x00000233,
    SOUND_234                       = 0x00000234,
    SOUND_235                       = 0x00000235,
    SOUND_236                       = 0x00000236,
    SOUND_237                       = 0x00000237,
    SOUND_238                       = 0x00000238,
    SOUND_23D                       = 0x0000023D,
    SOUND_241                       = 0x00000241,
    SOUND_242                       = 0x00000242,
    SOUND_244                       = 0x00000244,
    SOUND_245                       = 0x00000245,
    SOUND_246                       = 0x00000246,
    SOUND_247                       = 0x00000247,
    SOUND_248                       = 0x00000248,
    SOUND_249                       = 0x00000249,
    SOUND_24A                       = 0x0000024A,
    SOUND_24B                       = 0x0000024B,
    SOUND_259                       = 0x00000259,
    SOUND_25A                       = 0x0000025A,
    SOUND_25C                       = 0x0000025C,
    SOUND_25D                       = 0x0000025D,
    SOUND_261                       = 0x00000261,
    SOUND_262                       = 0x00000262,
    SOUND_263                       = 0x00000263,
    SOUND_265                       = 0x00000265,
    SOUND_266                       = 0x00000266,
    SOUND_267                       = 0x00000267,
    SOUND_269                       = 0x00000269,
    SOUND_26A                       = 0x0000026A,
    SOUND_26B                       = 0x0000026B,
    SOUND_26C                       = 0x0000026C,
    SOUND_271                       = 0x00000271,
    SOUND_273                       = 0x00000273,
    SOUND_274                       = 0x00000274,
    SOUND_275                       = 0x00000275,
    SOUND_276                       = 0x00000276,
    SOUND_281                       = 0x00000281,
    SOUND_282                       = 0x00000282,
    SOUND_283                       = 0x00000283,
    SOUND_284                       = 0x00000284,
    SOUND_286                       = 0x00000286,
    SOUND_287                       = 0x00000287,
    SOUND_288                       = 0x00000288,
    SOUND_289                       = 0x00000289,
    SOUND_28A                       = 0x0000028A,
    SOUND_28B                       = 0x0000028B,
    SOUND_28C                       = 0x0000028C,
    SOUND_28E                       = 0x0000028E,
    SOUND_28F                       = 0x0000028F,
    SOUND_290                       = 0x00000290,
    SOUND_BOW_SPOOK                 = 0x00000291,
    SOUND_292                       = 0x00000292,
    SOUND_293                       = 0x00000293,
    SOUND_294                       = 0x00000294,
    SOUND_295                       = 0x00000295,
    SOUND_297                       = 0x00000297,
    SOUND_298                       = 0x00000298,
    SOUND_299                       = 0x00000299,
    SOUND_29A                       = 0x0000029A,
    SOUND_29B                       = 0x0000029B,
    SOUND_29C                       = 0x0000029C,
    SOUND_29D                       = 0x0000029D,
    SOUND_2A0                       = 0x000002A0,
    SOUND_2A1                       = 0x000002A1,
    SOUND_2A2                       = 0x000002A2,
    SOUND_2A3                       = 0x000002A3,
    SOUND_2A4                       = 0x000002A4,
    SOUND_2A6                       = 0x000002A6,
    SOUND_2A7                       = 0x000002A7,
    SOUND_2A8                       = 0x000002A8,
    SOUND_2AA                       = 0x000002AA,
    SOUND_UNUSED_2C1                = 0x000002C1,
    SOUND_2C4                       = 0x000002C4,
    SOUND_2C5                       = 0x000002C5,
    SOUND_2C6                       = 0x000002C6,
    SOUND_2C7                       = 0x000002C7,
    SOUND_2C8                       = 0x000002C8,
    SOUND_2C9                       = 0x000002C9,
    SOUND_2CA                       = 0x000002CA,
    SOUND_2CB                       = 0x000002CB,
    SOUND_SMOKE_BURST               = 0x000002CD,
    SOUND_2CE                       = 0x000002CE,
    SOUND_2CF                       = 0x000002CF,
    SOUND_2D1                       = 0x000002D1,
    SOUND_2D2                       = 0x000002D2,
    SOUND_2D3                       = 0x000002D3,
    SOUND_2D4                       = 0x000002D4,
    SOUND_2D5                       = 0x000002D5,
    SOUND_2D6                       = 0x000002D6,
    SOUND_DAYZEE_SONG               = 0x000002D7,
    SOUND_POWER_UP                  = 0x000002D8,
    SOUND_2D9                       = 0x000002D9,
    SOUND_2DA                       = 0x000002DA,
    SOUND_2DB                       = 0x000002DB,
    SOUND_2DC                       = 0x000002DC,
    SOUND_2DD                       = 0x000002DD,
    SOUND_2DE                       = 0x000002DE,
    SOUND_2DF                       = 0x000002DF,
    SOUND_2E0                       = 0x000002E0,
    SOUND_2E1                       = 0x000002E1,
    SOUND_2E2                       = 0x000002E2,
    SOUND_2E3                       = 0x000002E3,
    SOUND_2E4                       = 0x000002E4,
    SOUND_2E5                       = 0x000002E5,
    SOUND_2E6                       = 0x000002E6,
    SOUND_2E7                       = 0x000002E7,
    SOUND_2E8                       = 0x000002E8,
    SOUND_2E9                       = 0x000002E9,
    SOUND_2EA                       = 0x000002EA,
    SOUND_2EB                       = 0x000002EB,
    SOUND_2EC                       = 0x000002EC,
    SOUND_2ED                       = 0x000002ED,
    SOUND_2EE                       = 0x000002EE,
    SOUND_2EF                       = 0x000002EF,
    SOUND_2F0                       = 0x000002F0,
    SOUND_2F1                       = 0x000002F1,
    SOUND_2F2                       = 0x000002F2,
    SOUND_2F3                       = 0x000002F3,
    SOUND_2F4                       = 0x000002F4,
    SOUND_2F5                       = 0x000002F5,
    SOUND_TWEESTER_LAUNCH           = 0x000002F6,
    SOUND_2F7                       = 0x000002F7,
    SOUND_2F8                       = 0x000002F8,
    SOUND_2F9                       = 0x000002F9,
    SOUND_2FA                       = 0x000002FA,
    SOUND_2FB                       = 0x000002FB,
    SOUND_2FC                       = 0x000002FC,
    SOUND_2FD                       = 0x000002FD,
    SOUND_CLOSE_SHELL               = 0x000002FF,
    SOUND_300                       = 0x00000300,
    SOUND_301                       = 0x00000301,
    SOUND_302                       = 0x00000302,
    SOUND_303                       = 0x00000303,
    SOUND_305                       = 0x00000305,
    SOUND_306                       = 0x00000306,
    SOUND_309                       = 0x00000309,
    SOUND_30A                       = 0x0000030A,
    SOUND_30B                       = 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_311                       = 0x00000311,
    SOUND_312                       = 0x00000312,
    SOUND_315                       = 0x00000315,
    SOUND_316                       = 0x00000316,
    SOUND_317                       = 0x00000317,
    SOUND_318                       = 0x00000318,
    SOUND_319                       = 0x00000319,
    SOUND_31A                       = 0x0000031A,
    SOUND_31B                       = 0x0000031B,
    SOUND_31C                       = 0x0000031C,
    SOUND_31D                       = 0x0000031D,
    SOUND_31E                       = 0x0000031E,
    SOUND_31F                       = 0x0000031F,
    SOUND_BURROW_SURFACE            = 0x00000321,
    SOUND_BURROW_DIG                = 0x00000322,
    SOUND_MOLE_POP                  = 0x00000323,
    SOUND_327                       = 0x00000327,
    SOUND_328                       = 0x00000328,
    SOUND_32B                       = 0x0000032B,
    SOUND_32C                       = 0x0000032C,
    SOUND_32E                       = 0x0000032E,
    SOUND_32F                       = 0x0000032F,
    SOUND_330                       = 0x00000330,
    SOUND_331                       = 0x00000331,
    SOUND_332                       = 0x00000332,
    SOUND_333                       = 0x00000333,
    SOUND_334                       = 0x00000334,
    SOUND_335                       = 0x00000335,
    SOUND_336                       = 0x00000336,
    SOUND_337                       = 0x00000337,
    SOUND_338                       = 0x00000338,
    SOUND_339                       = 0x00000339,
    SOUND_33A                       = 0x0000033A,
    SOUND_33B                       = 0x0000033B,
    SOUND_33C                       = 0x0000033C,
    SOUND_33D                       = 0x0000033D,
    SOUND_33E                       = 0x0000033E,
    SOUND_33F                       = 0x0000033F,
    SOUND_340                       = 0x00000340,
    SOUND_341                       = 0x00000341,
    SOUND_342                       = 0x00000342,
    SOUND_343                       = 0x00000343,
    SOUND_344                       = 0x00000344,
    SOUND_345                       = 0x00000345,
    SOUND_346                       = 0x00000346,
    SOUND_349                       = 0x00000349,
    SOUND_34A                       = 0x0000034A,
    SOUND_34E                       = 0x0000034E,
    SOUND_351                       = 0x00000351,
    SOUND_353                       = 0x00000353,
    SOUND_354                       = 0x00000354,
    SOUND_355                       = 0x00000355,
    SOUND_356                       = 0x00000356,
    SOUND_357                       = 0x00000357,
    SOUND_358                       = 0x00000358,
    SOUND_359                       = 0x00000359,
    SOUND_35B                       = 0x0000035B,
    SOUND_35C                       = 0x0000035C,
    SOUND_35D                       = 0x0000035D,
    SOUND_35E                       = 0x0000035E,
    SOUND_35F                       = 0x0000035F,
    SOUND_361                       = 0x00000361,
    SOUND_362                       = 0x00000362,
    SOUND_363                       = 0x00000363,
    SOUND_364                       = 0x00000364,
    SOUND_365                       = 0x00000365,
    SOUND_366                       = 0x00000366,
    SOUND_367                       = 0x00000367,
    SOUND_368                       = 0x00000368,
    SOUND_369                       = 0x00000369,
    SOUND_36B                       = 0x0000036B,
    SOUND_36C                       = 0x0000036C,
    SOUND_36D                       = 0x0000036D,
    SOUND_36E                       = 0x0000036E,
    SOUND_36F                       = 0x0000036F,
    SOUND_370                       = 0x00000370,
    SOUND_371                       = 0x00000371,
    SOUND_372                       = 0x00000372,
    SOUND_373                       = 0x00000373,
    SOUND_374                       = 0x00000374,
    SOUND_375                       = 0x00000375,
    SOUND_376                       = 0x00000376,
    SOUND_377                       = 0x00000377,
    SOUND_378                       = 0x00000378,
    SOUND_379                       = 0x00000379,
    SOUND_HIT_PLAYER_SHOCK          = 0x0000037A,
    SOUND_HIT_SHOCK                 = 0x0000037B,
    SOUND_37C                       = 0x0000037C,
    SOUND_37D                       = 0x0000037D,
    SOUND_37E                       = 0x0000037E,
    SOUND_380                       = 0x00000380,
    SOUND_381                       = 0x00000381,
    SOUND_382                       = 0x00000382,
    SOUND_383                       = 0x00000383,
    SOUND_384                       = 0x00000384,
    SOUND_385                       = 0x00000385,
    SOUND_386                       = 0x00000386,
    SOUND_387                       = 0x00000387,
    SOUND_388                       = 0x00000388,
    SOUND_389                       = 0x00000389,
    SOUND_38A                       = 0x0000038A,
    SOUND_38B                       = 0x0000038B,
    SOUND_38C                       = 0x0000038C,
    SOUND_38D                       = 0x0000038D,
    SOUND_38E                       = 0x0000038E,
    SOUND_390                       = 0x00000390,
    SOUND_391                       = 0x00000391,
    SOUND_392                       = 0x00000392,
    SOUND_393                       = 0x00000393,
    SOUND_394                       = 0x00000394,
    SOUND_GENERAL_WHISTLE           = 0x00000395,
    SOUND_396                       = 0x00000396,
    SOUND_397                       = 0x00000397,
    SOUND_398                       = 0x00000398,
    SOUND_399                       = 0x00000399,
    SOUND_39A                       = 0x0000039A,
    SOUND_39B                       = 0x0000039B,
    SOUND_39C                       = 0x0000039C,
    SOUND_39D                       = 0x0000039D,
    SOUND_39E                       = 0x0000039E,
    SOUND_39F                       = 0x0000039F,
    SOUND_3A0                       = 0x000003A0,
    SOUND_3A2                       = 0x000003A2,
    SOUND_3A3                       = 0x000003A3,
    SOUND_3A4                       = 0x000003A4,
    SOUND_3A5                       = 0x000003A5,
    SOUND_3A6                       = 0x000003A6,
    SOUND_3A7                       = 0x000003A7,
    SOUND_3A8                       = 0x000003A8,
    SOUND_3A9                       = 0x000003A9,
    SOUND_3AA                       = 0x000003AA,
    SOUND_3AB                       = 0x000003AB,
    SOUND_3AC                       = 0x000003AC,
    SOUND_3AD                       = 0x000003AD,
    SOUND_3AE                       = 0x000003AE,
    SOUND_3AF                       = 0x000003AF,
    SOUND_3B0                       = 0x000003B0,
    SOUND_3B1                       = 0x000003B1,
    SOUND_3B2                       = 0x000003B2,
    SOUND_3B3                       = 0x000003B3,
    SOUND_3B4                       = 0x000003B4,
    SOUND_3B5                       = 0x000003B5,
    SOUND_3B6                       = 0x000003B6,
    SOUND_3B7                       = 0x000003B7,
    SOUND_3B9                       = 0x000003B9,
    SOUND_3BB                       = 0x000003BB,
    SOUND_3BC                       = 0x000003BC,
    SOUND_3BD                       = 0x000003BD,
    SOUND_3BE                       = 0x000003BE,
    SOUND_3C0                       = 0x000003C0,
    SOUND_3C1                       = 0x000003C1,
    SOUND_3C3                       = 0x000003C3,
    SOUND_3C4                       = 0x000003C4,
    SOUND_3C5                       = 0x000003C5,
    SOUND_3C6                       = 0x000003C6,
    SOUND_3C7                       = 0x000003C7,
    SOUND_3C8                       = 0x000003C8,
    SOUND_3C9                       = 0x000003C9,
    SOUND_3CA                       = 0x000003CA,
    SOUND_3CB                       = 0x000003CB,
    SOUND_3CC                       = 0x000003CC,
    SOUND_3CD                       = 0x000003CD,
    SOUND_3CE                       = 0x000003CE,
    SOUND_3CF                       = 0x000003CF,
    SOUND_3D0                       = 0x000003D0,
    SOUND_3D1                       = 0x000003D1,
    SOUND_3D2                       = 0x000003D2,
    SOUND_3D3                       = 0x000003D3,
    SOUND_OPEN_SHELL                = 0x000003D4,
    SOUND_3D5                       = 0x000003D5,
    SOUND_3D6                       = 0x000003D6,
    SOUND_3D9                       = 0x000003D9,
    SOUND_3DB                       = 0x000003DB,
    SOUND_3DC                       = 0x000003DC,
    SOUND_3DD                       = 0x000003DD,
    SOUND_3DE                       = 0x000003DE,
    SOUND_3E0                       = 0x000003E0,
    SOUND_3E1                       = 0x000003E1,
    SOUND_JUMP_3E2                  = 0x000003E2,
    SOUND_MISS_JUMP                 = 0x000003E3,
    SOUND_3E4                       = 0x000003E4,
    SOUND_DEATH                     = 0x000003E5,
    SOUND_BIG_POWER_UP              = 0x000003E6,
    SOUND_3E7                       = 0x000003E7,
    SOUND_MOLE_THROW                = 0x000003E8,
    SOUND_3E9                       = 0x000003E9,
    SOUND_3EA                       = 0x000003EA,
    SOUND_3EB                       = 0x000003EB,
    SOUND_3EC                       = 0x000003EC,
    SOUND_3ED                       = 0x000003ED,
    SOUND_3EE                       = 0x000003EE,
    SOUND_3EF                       = 0x000003EF,
    SOUND_DANGER                    = 0x000003F1,
    SOUND_PERIL                     = 0x000003F2,
    SOUND_3F3                       = 0x000003F3,
    SOUND_3F4                       = 0x000003F4,
    SOUND_3F6                       = 0x000003F6,
    SOUND_3F9                       = 0x000003F9,
    SOUND_THROW                     = 0x000003FA,
    SOUND_3FB                       = 0x000003FB,
    SOUND_3FC                       = 0x000003FC,
    SOUND_2003                      = 0x00002003,
    SOUND_2004                      = 0x00002004,
    SOUND_2005                      = 0x00002005,
    SOUND_2006                      = 0x00002006,
    SOUND_2009                      = 0x00002009,
    SOUND_200A                      = 0x0000200A,
    SOUND_200B                      = 0x0000200B,
    SOUND_200C                      = 0x0000200C,
    SOUND_200D                      = 0x0000200D,
    SOUND_BOW_VANISH                = 0x0000200E,
    SOUND_BOW_APPEAR                = 0x0000200F,
    SOUND_2010                      = 0x00002010,
    SOUND_WATT_REPEL_DARKNESS       = 0x00002011,
    SOUND_WATT_RESUME_DARKNESS      = 0x00002012,
    SOUND_2013                      = 0x00002013,
    SOUND_2014                      = 0x00002014,
    SOUND_2015                      = 0x00002015,
    SOUND_CANNON1                   = 0x00002016,
    SOUND_CANNON2                   = 0x00002017,
    SOUND_CANNON3                   = 0x00002018,
    SOUND_2019                      = 0x00002019,
    SOUND_201A                      = 0x0000201A,
    SOUND_201B                      = 0x0000201B,
    SOUND_201C                      = 0x0000201C,
    SOUND_201D                      = 0x0000201D,
    SOUND_201E                      = 0x0000201E,
    SOUND_201F                      = 0x0000201F,
    SOUND_2020                      = 0x00002020,
    SOUND_2021                      = 0x00002021,
    SOUND_2022                      = 0x00002022,
    SOUND_2023                      = 0x00002023,
    SOUND_2024                      = 0x00002024,
    SOUND_2026                      = 0x00002026,
    SOUND_202A                      = 0x0000202A,
    SOUND_202B                      = 0x0000202B,
    SOUND_202C                      = 0x0000202C,
    SOUND_202D                      = 0x0000202D,
    SOUND_202E                      = 0x0000202E,
    SOUND_202F                      = 0x0000202F,
    SOUND_2030                      = 0x00002030,
    SOUND_INFLICT_SLEEP             = 0x00002031,
    SOUND_INFLICT_STATUS            = 0x00002032, //< Stop poison paralyze,
    SOUND_2033                      = 0x00002033,
    SOUND_2034                      = 0x00002034,
    SOUND_2035                      = 0x00002035,
    SOUND_2036                      = 0x00002036,
    SOUND_2037                      = 0x00002037,
    SOUND_2038                      = 0x00002038,
    SOUND_2039                      = 0x00002039,
    SOUND_203A                      = 0x0000203A,
    SOUND_203B                      = 0x0000203B,
    SOUND_203C                      = 0x0000203C,
    SOUND_203D                      = 0x0000203D,
    SOUND_203E                      = 0x0000203E,
    SOUND_203F                      = 0x0000203F,
    SOUND_2040                      = 0x00002040,
    SOUND_2041                      = 0x00002041,
    SOUND_2042                      = 0x00002042,
    SOUND_2043                      = 0x00002043,
    SOUND_2044                      = 0x00002044,
    SOUND_2045                      = 0x00002045,
    SOUND_2046                      = 0x00002046,
    SOUND_2047                      = 0x00002047,
    SOUND_2049                      = 0x00002049,
    SOUND_204A                      = 0x0000204A,
    SOUND_204B                      = 0x0000204B,
    SOUND_204D                      = 0x0000204D,
    SOUND_2051                      = 0x00002051,
    SOUND_2052                      = 0x00002052,
    SOUND_2053                      = 0x00002053,
    SOUND_2055                      = 0x00002055,
    SOUND_2056                      = 0x00002056,
    SOUND_2059                      = 0x00002059,
    SOUND_205A                      = 0x0000205A,
    SOUND_205B                      = 0x0000205B,
    SOUND_205C                      = 0x0000205C,
    SOUND_205D                      = 0x0000205D,
    SOUND_205E                      = 0x0000205E,
    SOUND_205F                      = 0x0000205F,
    SOUND_2060                      = 0x00002060,
    SOUND_2061                      = 0x00002061,
    SOUND_2062                      = 0x00002062,
    SOUND_2063                      = 0x00002063,
    SOUND_2064                      = 0x00002064,
    SOUND_2065                      = 0x00002065,
    SOUND_2066                      = 0x00002066,
    SOUND_2067                      = 0x00002067,
    SOUND_2069                      = 0x00002069,
    SOUND_206A                      = 0x0000206A,
    SOUND_206B                      = 0x0000206B,
    SOUND_206D                      = 0x0000206D,
    SOUND_206E                      = 0x0000206E,
    SOUND_206F                      = 0x0000206F,
    SOUND_2070                      = 0x00002070,
    SOUND_2071                      = 0x00002071,
    SOUND_2072                      = 0x00002072,
    SOUND_2073                      = 0x00002073,
    SOUND_2074                      = 0x00002074,
    SOUND_2075                      = 0x00002075,
    SOUND_BOMB_BLAST                = 0x00002076,
    SOUND_2078                      = 0x00002078,
    SOUND_2079                      = 0x00002079,
    SOUND_207A                      = 0x0000207A,
    SOUND_207B                      = 0x0000207B,
    SOUND_207C                      = 0x0000207C,
    SOUND_207D                      = 0x0000207D,
    SOUND_207E                      = 0x0000207E,
    SOUND_207F                      = 0x0000207F,
    SOUND_JUMP_2081                 = 0x00002081,
    SOUND_JUMP_8BIT_MARIO           = 0x00002082,
    SOUND_2085                      = 0x00002085,
    SOUND_2086                      = 0x00002086,
    SOUND_2087                      = 0x00002087,
    SOUND_2088                      = 0x00002088,
    SOUND_2089                      = 0x00002089,
    SOUND_208A                      = 0x0000208A,
    SOUND_208B                      = 0x0000208B,
    SOUND_208C                      = 0x0000208C,
    SOUND_208D                      = 0x0000208D,
    SOUND_208E                      = 0x0000208E,
    SOUND_208F                      = 0x0000208F,
    SOUND_2091                      = 0x00002091,
    SOUND_2092                      = 0x00002092,
    SOUND_2093                      = 0x00002093,
    SOUND_2094                      = 0x00002094,
    SOUND_2095                      = 0x00002095,
    SOUND_2096                      = 0x00002096,
    SOUND_2097                      = 0x00002097,
    SOUND_2098                      = 0x00002098,
    SOUND_2099                      = 0x00002099,
    SOUND_209A                      = 0x0000209A,
    SOUND_209B                      = 0x0000209B,
    SOUND_209D                      = 0x0000209D,
    SOUND_209E                      = 0x0000209E,
    SOUND_209F                      = 0x0000209F,
    SOUND_20A0                      = 0x000020A0,
    SOUND_20A1                      = 0x000020A1,
    SOUND_20A2                      = 0x000020A2,
    SOUND_20A3                      = 0x000020A3,
    SOUND_20A4                      = 0x000020A4,
    SOUND_20A5                      = 0x000020A5,
    SOUND_20A6                      = 0x000020A6,
    SOUND_20A7                      = 0x000020A7,
    SOUND_20A8                      = 0x000020A8,
    SOUND_20AB                      = 0x000020AB,
    SOUND_20AC                      = 0x000020AC,
    SOUND_20AD                      = 0x000020AD,
    SOUND_20AE                      = 0x000020AE,
    SOUND_20B1                      = 0x000020B1,
    SOUND_20B2                      = 0x000020B2,
    SOUND_20B3                      = 0x000020B3,
    SOUND_20B4                      = 0x000020B4,
    SOUND_20B6                      = 0x000020B6,
    SOUND_20B7                      = 0x000020B7,
    SOUND_20B8                      = 0x000020B8,
    SOUND_20B9                      = 0x000020B9,
    SOUND_20BA                      = 0x000020BA,
    SOUND_20BB                      = 0x000020BB,
    SOUND_20BC                      = 0x000020BC,
    SOUND_20BD                      = 0x000020BD,
    SOUND_20BE                      = 0x000020BE,
    SOUND_20BF                      = 0x000020BF,
    SOUND_20C1                      = 0x000020C1,
    SOUND_20C2                      = 0x000020C2,
    SOUND_20C3                      = 0x000020C3,
    SOUND_20C4                      = 0x000020C4,
    SOUND_20C5                      = 0x000020C5,
    SOUND_20C6                      = 0x000020C6,
    SOUND_20C8                      = 0x000020C8,
    SOUND_20C9                      = 0x000020C9,
    SOUND_20CA                      = 0x000020CA,
    SOUND_20CB                      = 0x000020CB,
    SOUND_20CC                      = 0x000020CC,
    SOUND_20CD                      = 0x000020CD,
    SOUND_20CE                      = 0x000020CE,
    SOUND_20CF                      = 0x000020CF,
    SOUND_20D0                      = 0x000020D0,
    SOUND_20D1                      = 0x000020D1,
    SOUND_20D2                      = 0x000020D2,
    SOUND_20D3                      = 0x000020D3,
    SOUND_SPELL_CAST1               = 0x000020D4,
    SOUND_SPELL_CAST2               = 0x000020D5,
    SOUND_SPELL_CAST3               = 0x000020D6,
    SOUND_SPELL_CAST4               = 0x000020D7,
    SOUND_SPELL_CAST5               = 0x000020D8,
    SOUND_20D9                      = 0x000020D9,
    SOUND_20DA                      = 0x000020DA,
    SOUND_20DB                      = 0x000020DB,
    SOUND_20DC                      = 0x000020DC,
    SOUND_20DD                      = 0x000020DD,
    SOUND_20DE                      = 0x000020DE,
    SOUND_20DF                      = 0x000020DF,
    SOUND_20E0                      = 0x000020E0,
    SOUND_20E1                      = 0x000020E1,
    SOUND_20E2                      = 0x000020E2,
    SOUND_20E3                      = 0x000020E3,
    SOUND_20E4                      = 0x000020E4,
    SOUND_20E5                      = 0x000020E5,
    SOUND_20E6                      = 0x000020E6,
    SOUND_20E7                      = 0x000020E7,
    SOUND_20E8                      = 0x000020E8,
    SOUND_20E9                      = 0x000020E9,
    SOUND_20EA                      = 0x000020EA,
    SOUND_20EB                      = 0x000020EB,
    SOUND_20EC                      = 0x000020EC,
    SOUND_20ED                      = 0x000020ED,
    SOUND_20EE                      = 0x000020EE,
    SOUND_20EF                      = 0x000020EF,
    SOUND_20F0                      = 0x000020F0,
    SOUND_20F1                      = 0x000020F1,
    SOUND_20F2                      = 0x000020F2,
    SOUND_20F3                      = 0x000020F3,
    SOUND_20F4                      = 0x000020F4,
    SOUND_20F5                      = 0x000020F5,
    SOUND_20F6                      = 0x000020F6,
    SOUND_20F7                      = 0x000020F7,
    SOUND_20F9                      = 0x000020F9,
    SOUND_20FB                      = 0x000020FB,
    SOUND_20FC                      = 0x000020FC,
    SOUND_20FD                      = 0x000020FD,
    SOUND_20FE                      = 0x000020FE,
    SOUND_2101                      = 0x00002101,
    SOUND_2102                      = 0x00002102,
    SOUND_2103                      = 0x00002103,
    SOUND_2104                      = 0x00002104,
    SOUND_2105                      = 0x00002105,
    SOUND_2106                      = 0x00002106,
    SOUND_2107                      = 0x00002107,
    SOUND_2108                      = 0x00002108,
    SOUND_210A                      = 0x0000210A,
    SOUND_210B                      = 0x0000210B,
    SOUND_210C                      = 0x0000210C,
    SOUND_2111                      = 0x00002111,
    SOUND_2112                      = 0x00002112,
    SOUND_2113                      = 0x00002113,
    SOUND_2114                      = 0x00002114,
    SOUND_2115                      = 0x00002115,
    SOUND_2116                      = 0x00002116,
    SOUND_2117                      = 0x00002117,
    SOUND_2118                      = 0x00002118,
    SOUND_2119                      = 0x00002119,
    SOUND_211A                      = 0x0000211A,
    SOUND_211B                      = 0x0000211B,
    SOUND_211C                      = 0x0000211C,
    SOUND_211D                      = 0x0000211D,
    SOUND_211E                      = 0x0000211E,
    SOUND_211F                      = 0x0000211F,
    SOUND_2120                      = 0x00002120,
    SOUND_2121                      = 0x00002121,
    SOUND_2122                      = 0x00002122,
    SOUND_2123                      = 0x00002123,
    SOUND_2124                      = 0x00002124,
    SOUND_2125                      = 0x00002125,
    SOUND_2126                      = 0x00002126,
    SOUND_2127                      = 0x00002127,
    SOUND_2128                      = 0x00002128,
    SOUND_2129                      = 0x00002129,
    SOUND_212A                      = 0x0000212A,
    SOUND_212B                      = 0x0000212B,
    SOUND_212C                      = 0x0000212C,
    SOUND_212D                      = 0x0000212D,
    SOUND_212E                      = 0x0000212E,
    // looping sounds
    SOUND_80000000                  = 0x80000000,
    SOUND_80000001                  = 0x80000001,
    SOUND_80000002                  = 0x80000002,
    SOUND_80000003                  = 0x80000003,
    SOUND_80000004                  = 0x80000004,
    SOUND_80000005                  = 0x80000005,
    SOUND_80000006                  = 0x80000006,
    SOUND_80000007                  = 0x80000007,
    SOUND_80000008                  = 0x80000008,
    SOUND_80000009                  = 0x80000009,
    SOUND_8000000B                  = 0x8000000B,
    SOUND_8000000C                  = 0x8000000C,
    SOUND_8000000D                  = 0x8000000D,
    SOUND_8000000E                  = 0x8000000E,
    SOUND_8000000F                  = 0x8000000F,
    SOUND_80000010                  = 0x80000010,
    SOUND_80000011                  = 0x80000011,
    SOUND_80000015                  = 0x80000015,
    SOUND_80000016                  = 0x80000016,
    SOUND_80000017                  = 0x80000017,
    SOUND_80000018                  = 0x80000018,
    SOUND_80000019                  = 0x80000019,
    SOUND_8000001A                  = 0x8000001A,
    SOUND_8000001B                  = 0x8000001B,
    SOUND_8000001C                  = 0x8000001C,
    SOUND_8000001D                  = 0x8000001D,
    SOUND_8000001E                  = 0x8000001E,
    SOUND_80000021                  = 0x80000021,
    SOUND_80000022                  = 0x80000022,
    SOUND_80000023                  = 0x80000023,
    SOUND_80000024                  = 0x80000024,
    SOUND_80000025                  = 0x80000025,
    SOUND_80000027                  = 0x80000027,
    SOUND_80000028                  = 0x80000028,
    SOUND_80000029                  = 0x80000029,
    SOUND_8000002A                  = 0x8000002A,
    SOUND_8000002B                  = 0x8000002B,
    SOUND_8000002C                  = 0x8000002C,
    SOUND_8000002D                  = 0x8000002D,
    SOUND_8000002E                  = 0x8000002E,
    SOUND_8000002F                  = 0x8000002F,
    SOUND_80000030                  = 0x80000030,
    SOUND_80000031                  = 0x80000031,
    SOUND_80000032                  = 0x80000032,
    SOUND_80000033                  = 0x80000033,
    SOUND_80000034                  = 0x80000034,
    SOUND_80000035                  = 0x80000035,
    SOUND_80000036                  = 0x80000036,
    SOUND_80000037                  = 0x80000037,
    SOUND_80000038                  = 0x80000038,
    SOUND_80000039                  = 0x80000039,
    SOUND_80000040                  = 0x80000040,
    SOUND_80000041                  = 0x80000041,
    SOUND_80000042                  = 0x80000042,
    SOUND_80000043                  = 0x80000043,
    SOUND_80000044                  = 0x80000044,
    SOUND_80000045                  = 0x80000045,
    SOUND_80000046                  = 0x80000046,
    SOUND_80000047                  = 0x80000047,
    SOUND_80000048                  = 0x80000048,
    SOUND_80000049                  = 0x80000049,
    SOUND_8000004A                  = 0x8000004A,
    SOUND_8000004B                  = 0x8000004B,
    SOUND_8000004C                  = 0x8000004C,
    SOUND_8000004D                  = 0x8000004D,
    SOUND_8000004F                  = 0x8000004F,
    SOUND_80000050                  = 0x80000050,
    SOUND_80000051                  = 0x80000051,
    SOUND_80000052                  = 0x80000052,
    SOUND_80000053                  = 0x80000053,
    SOUND_80000055                  = 0x80000055,
    SOUND_80000056                  = 0x80000056,
    SOUND_80000057                  = 0x80000057,
    SOUND_80000058                  = 0x80000058,
    SOUND_80000059                  = 0x80000059,
    SOUND_8000005A                  = 0x8000005A,
    SOUND_8000005B                  = 0x8000005B,
    SOUND_8000005C                  = 0x8000005C,
    SOUND_8000005D                  = 0x8000005D,
    SOUND_8000005E                  = 0x8000005E,
    SOUND_8000005F                  = 0x8000005F,
    SOUND_80000060                  = 0x80000060,
    SOUND_80000061                  = 0x80000061,
    SOUND_80000063                  = 0x80000063,
    SOUND_80000064                  = 0x80000064,
    SOUND_80000065                  = 0x80000065,
    SOUND_80000066                  = 0x80000066,
    SOUND_80000067                  = 0x80000067,
    SOUND_80000068                  = 0x80000068,
    SOUND_80000069                  = 0x80000069,
    SOUND_8000006A                  = 0x8000006A,
    SOUND_8000006B                  = 0x8000006B,
    SOUND_8000006C                  = 0x8000006C,
    // 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_FIRE_BAR_0                = 0xB0000000,
    SOUND_FIRE_BAR_1                = 0xB0000001,
    SOUND_FIRE_BAR_2                = 0xB0000002,
    SOUND_FIRE_BAR_3                = 0xB0000003,
    SOUND_FIRE_BAR_4                = 0xB0000004,
    SOUND_FIRE_BAR_5                = 0xB0000005,
    SOUND_FIRE_BAR_6                = 0xB0000006,
    SOUND_FIRE_BAR_7                = 0xB0000007,
    SOUND_FIRE_BAR_8                = 0xB0000008,
    SOUND_FIRE_BAR_9                = 0xB0000009,
    SOUND_B000000A                  = 0xB000000A,
    SOUND_B000000C                  = 0xB000000C,
    SOUND_B000000D                  = 0xB000000D,
    SOUND_B000000E                  = 0xB000000E,
    SOUND_B000000F                  = 0xB000000F,
    SOUND_B0000010                  = 0xB0000010,
    SOUND_B0000011                  = 0xB0000011,
    SOUND_B0000012                  = 0xB0000012,
    SOUND_B0000015                  = 0xB0000015,
    SOUND_B0000016                  = 0xB0000016,
    SOUND_B0000017                  = 0xB0000017,
    SOUND_B0000018                  = 0xB0000018,
    SOUND_B0000019                  = 0xB0000019,
    SOUND_B000001A                  = 0xB000001A,
    SOUND_B000001B                  = 0xB000001B,
    SOUND_B000001C                  = 0xB000001C,
    SOUND_B000001D                  = 0xB000001D,
    SOUND_B000001E                  = 0xB000001E,
    SOUND_B000001F                  = 0xB000001F,
    SOUND_B0000021                  = 0xB0000021,
};

enum SoundSpatializationFlags {
    SOUND_SPACE_MODE_MASK           = 0x0000FFFF,
    SOUND_SPACE_MODE_0              = 0x00000000,
    SOUND_SPACE_MODE_1              = 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 SoundType {
    SOUND_TYPE_SPECIAL              = 0x80000000,
    SOUND_TYPE_LOOPING              = 0,
    SOUND_TYPE_EXIT_DOOR            = 1, // 0x90000000 (with SOUND_TYPE_SPECIAL)
    SOUND_TYPE_ROOM_DOOR            = 2, // 0xA0000000 (with SOUND_TYPE_SPECIAL)
    SOUND_TYPE_ALTERNATING          = 3, // 0xB0000000 (with SOUND_TYPE_SPECIAL)
};

enum SoundIDBits {
    SOUND_ID_STOP                   = 0x00008000,
    SOUND_ID_LOWER                  = 0x000023FF,
    SOUND_ID_ADJUST                 = 0x00001000,
    SOUND_ID_TRIGGER_MASK           = 0x00000C00,
    SOUND_ID_TRIGGER_CHANGE_SOUND   = 0x00000400,
    SOUND_ID_TRIGGER_CHANGE_VOLUME  = 0x00000800,
};

enum SoundTriggers {
    SOUND_TRIGGER_CHANGE_SOUND  = 1,
    SOUND_TRIGGER_CHANGE_VOLUME = 2,
};

typedef enum AuResult {
    AU_RESULT_OK                        = 0,
    AU_ERROR_1                          = 1,
    AU_AMBIENCE_ERROR_1                 = 1,
    AU_ERROR_SONG_NOT_PLAYING           = 2, // player not found for songName
    AU_AMBIENCE_ERROR_2                 = 2,
    AU_ERROR_NULL_SONG_NAME             = 3, // songName is NULL
    AU_AMBIENCE_ERROR_3                 = 3,
    AU_ERROR_INVALID_SONG_DURATION      = 4, // duration out of bounds: (250,10000)
    AU_ERROR_6                          = 6,
    AU_ERROR_7                          = 7,
    AU_ERROR_11                         = 11,
    AU_ERROR_SBN_INDEX_OUT_OF_RANGE     = 101,
    AU_ERROR_SBN_FORMAT_MISMATCH        = 102,
    AU_ERROR_151                        = 151,
    AU_ERROR_201                        = 201
} AuResult;

typedef enum AuFileFormat {
    AU_FMT_BGM              = 0x10,
    AU_FMT_SEF              = 0x20,
    AU_FMT_BK               = 0x30,
    AU_FMT_PER              = 0x40,
    AU_FMT_PRG              = 0x40,
    AU_FMT_MSEQ             = 0x40
} AuFileFormat;

enum {
    MUSIC_PROXIMITY_FAR,
    MUSIC_PROXIMITY_NEAR,
    MUSIC_PROXIMITY_FULL
};

typedef enum MusicTrackVols {
    TRACK_VOLS_0            = 0,
    TRACK_VOLS_1            = 1,
    TRACK_VOLS_2            = 2,
    TRACK_VOLS_3            = 3,
    TRACK_VOLS_KPA_OUTSIDE  = 4,
    TRACK_VOLS_KPA_1        = 5,
    TRACK_VOLS_KPA_2        = 6,
    TRACK_VOLS_KPA_3        = 7
} MusicTrackVols;

enum Cams {
    CAM_DEFAULT      = 0,
    CAM_BATTLE       = 1,
    CAM_TATTLE       = 2,
    CAM_3            = 3,
};

enum CamShakeModes {
    CAM_SHAKE_CONSTANT_VERTICAL     = 0,
    CAM_SHAKE_ANGULAR_HORIZONTAL    = 1,
    CAM_SHAKE_DECAYING_VERTICAL     = 2
};

// for use with SetBattleCamParam
enum AuxCameraParams {
    AUX_CAM_PARAM_1             = 1,
    AUX_CAM_BOOM_LENGTH         = 2,
    AUX_CAM_PARAM_3             = 3,
    AUX_CAM_BOOM_PITCH          = 4,
    AUX_CAM_BOOM_YAW            = 5,
    AUX_CAM_BOOM_ZOFFSET        = 6,
    AUX_CAM_PARAM_7             = 7,
    AUX_CAM_ZOOM_PERCENT        = 8
};

enum ItemIDs {
    ITEM_NONE                         = 0x00000000,
    ITEM_BOOTS                        = 0x00000001,
    ITEM_SUPER_BOOTS                  = 0x00000002,
    ITEM_ULTRA_BOOTS                  = 0x00000003,
    ITEM_HAMMER                       = 0x00000004,
    ITEM_SUPER_HAMMER                 = 0x00000005,
    ITEM_ULTRA_HAMMER                 = 0x00000006,
    ITEM_LUCKY_STAR                   = 0x00000007,
    ITEM_MAP                          = 0x00000008,
    ITEM_BIG_MAP                      = 0x00000009,
    ITEM_FIRST_DEGREE_CARD            = 0x0000000A,
    ITEM_SECOND_DEGREE_CARD           = 0x0000000B,
    ITEM_THIRD_DEGREE_CARD            = 0x0000000C,
    ITEM_FOURTH_DEGREE_CARD           = 0x0000000D,
    ITEM_DIPLOMA                      = 0x0000000E,
    ITEM_ULTRA_STONE                  = 0x0000000F,
    ITEM_KOOPA_FORTRESS_KEY           = 0x00000010,
    ITEM_RUINS_KEY                    = 0x00000011,
    ITEM_PULSE_STONE                  = 0x00000012,
    ITEM_TUBBA_CASTLE_KEY             = 0x00000013,
    ITEM_CRYSTAL_PALACE_KEY           = 0x00000014,
    ITEM_LUNAR_STONE                  = 0x00000015,
    ITEM_PYRAMID_STONE                = 0x00000016,
    ITEM_DIAMOND_STONE                = 0x00000017,
    ITEM_GOLDEN_VASE                  = 0x00000018,
    ITEM_KOOPER_SHELL                 = 0x00000019,
    ITEM_BOWSER_CASTLE_KEY            = 0x0000001A,
    ITEM_FOREST_PASS                  = 0x0000001B,
    ITEM_BOO_WEIGHT                   = 0x0000001C,
    ITEM_BOO_PORTRAIT                 = 0x0000001D,
    ITEM_CRYSTAL_BERRY                = 0x0000001E,
    ITEM_MYSTICAL_KEY                 = 0x0000001F,
    ITEM_STOREROOM_KEY                = 0x00000020,
    ITEM_TOY_TRAIN                    = 0x00000021,
    ITEM_BOO_RECORD                   = 0x00000022,
    ITEM_FRYING_PAN                   = 0x00000023,
    ITEM_DICTIONARY                   = 0x00000024,
    ITEM_MYSTERY_NOTE                 = 0x00000025,
    ITEM_SUSPICIOUS_NOTE              = 0x00000026,
    ITEM_CRYSTAL_BALL                 = 0x00000027,
    ITEM_SCREWDRIVER                  = 0x00000028,
    ITEM_COOKBOOK                     = 0x00000029,
    ITEM_JADE_RAVEN                   = 0x0000002A,
    ITEM_MAGICAL_SEED1                = 0x0000002B,
    ITEM_MAGICAL_SEED2                = 0x0000002C,
    ITEM_MAGICAL_SEED3                = 0x0000002D,
    ITEM_MAGICAL_SEED4                = 0x0000002E,
    ITEM_TOAD_DOLL                    = 0x0000002F,
    ITEM_CALCULATOR                   = 0x00000030,
    ITEM_SNOWMAN_BUCKET               = 0x00000031,
    ITEM_SNOWMAN_SCARF                = 0x00000032,
    ITEM_RED_KEY                      = 0x00000033,
    ITEM_BLUE_KEY                     = 0x00000034,
    ITEM_UNUSED_LETTER_1              = 0x00000035,
    ITEM_LETTER_TO_MERLON             = 0x00000036,
    ITEM_LETTER_TO_GOOMPA             = 0x00000037,
    ITEM_LETTER_TO_MORT_T             = 0x00000038,
    ITEM_LETTER_TO_RUSS_T             = 0x00000039,
    ITEM_LETTER_TO_MAYOR_PENGUIN      = 0x0000003A,
    ITEM_LETTER_TO_MERLOW             = 0x0000003B,
    ITEM_LETTER_TO_FICE_T             = 0x0000003C,
    ITEM_LETTER_TO_NOMADIMOUSE        = 0x0000003D,
    ITEM_LETTER_TO_MINHT              = 0x0000003E,
    ITEM_UNUSED_LETTER_2              = 0x0000003F,
    ITEM_LETTER_CHAIN_GOOMPAPA_1      = 0x00000040,
    ITEM_LETTER_TO_IGOR               = 0x00000041,
    ITEM_UNUSED_LETTER_3              = 0x00000042,
    ITEM_UNUSED_LETTER_4              = 0x00000043,
    ITEM_UNUSED_LETTER_5              = 0x00000044,
    ITEM_LETTER_CHAIN_FRANKY          = 0x00000045,
    ITEM_LETTER_CHAIN_MUSS_T          = 0x00000046,
    ITEM_LETTER_CHAIN_KOOVER_1        = 0x00000047,
    ITEM_LETTER_CHAIN_FISHMAEL        = 0x00000048,
    ITEM_LETTER_CHAIN_KOOVER_2        = 0x00000049,
    ITEM_LETTER_CHAIN_MR_E            = 0x0000004A,
    ITEM_LETTER_CHAIN_MISS_T          = 0x0000004B,
    ITEM_LETTER_CHAIN_LITTLE_MOUSER   = 0x0000004C,
    ITEM_UNUSED_LETTER_6              = 0x0000004D,
    ITEM_LETTER_CHAIN_DANE_T_1        = 0x0000004E,
    ITEM_LETTER_CHAIN_YOSHI_KID       = 0x0000004F,
    ITEM_LETTER_CHAIN_DANE_T_2        = 0x00000050,
    ITEM_LETTER_CHAIN_FROST_T         = 0x00000051,
    ITEM_LETTER_CHAIN_GOOMPAPA_2      = 0x00000052,
    ITEM_ARTIFACT                     = 0x00000053,
    ITEM_LETTER_TO_KOLORADO           = 0x00000054,
    ITEM_UNUSED_LETTER_7              = 0x00000055,
    ITEM_DOLLY                        = 0x00000056,
    ITEM_WATER_STONE                  = 0x00000057,
    ITEM_MAGICAL_BEAN                 = 0x00000058,
    ITEM_FERTILE_SOIL                 = 0x00000059,
    ITEM_MIRACLE_WATER                = 0x0000005A,
    ITEM_VOLCANO_VASE                 = 0x0000005B,
    ITEM_KOOT_THE_TAPE                = 0x0000005C,
    ITEM_BAKING_SUGAR                 = 0x0000005D,
    ITEM_BAKING_SALT                  = 0x0000005E,
    ITEM_BAKING_EGG                   = 0x0000005F,
    ITEM_BAKING_CREAM                 = 0x00000060,
    ITEM_BAKING_STRAWBERRY            = 0x00000061,
    ITEM_BAKING_BUTTER                = 0x00000062,
    ITEM_BAKING_CLEANSER              = 0x00000063,
    ITEM_BAKING_WATER                 = 0x00000064,
    ITEM_BAKING_FLOUR                 = 0x00000065,
    ITEM_BAKING_MILK                  = 0x00000066,
    ITEM_LYRICS                       = 0x00000067,
    ITEM_MELODY                       = 0x00000068,
    ITEM_MAILBAG                      = 0x00000069,
    ITEM_PEACH_KEY1                   = 0x0000006A,
    ITEM_ODD_KEY                      = 0x0000006B,
    ITEM_STAR_STONE                   = 0x0000006C,
    ITEM_SNEAKY_PARASOL               = 0x0000006D,
    ITEM_KOOT_KOOPA_LEGENDS           = 0x0000006E,
    ITEM_KOOT_LUIGIS_AUTOGRAPH        = 0x0000006F,
    ITEM_KOOT_EMPTY_WALLET            = 0x00000070,
    ITEM_KOOT_MERLUVLEES_AUTOGRAPH    = 0x00000071,
    ITEM_KOOT_SHELL                   = 0x00000072,
    ITEM_KOOT_OLD_PHOTO               = 0x00000073,
    ITEM_KOOT_GLASSES                 = 0x00000074,
    ITEM_KOOT_ALT_PHOTO               = 0x00000075,
    ITEM_KOOT_PACKAGE                 = 0x00000076,
    ITEM_KOOT_RED_JAR                 = 0x00000077,
    ITEM_PEACH_KEY2                   = 0x00000078,
    ITEM_WAREHOUSE_KEY                = 0x00000079,
    ITEM_PRISON_KEY1                  = 0x0000007A,
    ITEM_SILVER_CREDIT                = 0x0000007B,
    ITEM_GOLD_CREDIT                  = 0x0000007C,
    ITEM_PRISON_KEY2                  = 0x0000007D,
    ITEM_PRISON_KEY3                  = 0x0000007E,
    ITEM_PRISON_KEY4                  = 0x0000007F,
    ITEM_FIRE_FLOWER                  = 0x00000080,
    ITEM_SNOWMAN_DOLL                 = 0x00000081,
    ITEM_THUNDER_RAGE                 = 0x00000082,
    ITEM_SHOOTING_STAR                = 0x00000083,
    ITEM_THUNDER_BOLT                 = 0x00000084,
    ITEM_PEBBLE                       = 0x00000085,
    ITEM_DUSTY_HAMMER                 = 0x00000086,
    ITEM_INSECTICIDE_HERB             = 0x00000087,
    ITEM_STONE_CAP                    = 0x00000088,
    ITEM_TASTY_TONIC                  = 0x00000089,
    ITEM_MUSHROOM                     = 0x0000008A,
    ITEM_VOLT_SHROOM                  = 0x0000008B,
    ITEM_SUPER_SHROOM                 = 0x0000008C,
    ITEM_DRIED_SHROOM                 = 0x0000008D,
    ITEM_ULTRA_SHROOM                 = 0x0000008E,
    ITEM_SLEEPY_SHEEP                 = 0x0000008F,
    ITEM_POW_BLOCK                    = 0x00000090,
    ITEM_HUSTLE_DRINK                 = 0x00000091,
    ITEM_STOP_WATCH                   = 0x00000092,
    ITEM_WHACKAS_BUMP                 = 0x00000093,
    ITEM_APPLE                        = 0x00000094,
    ITEM_LIFE_SHROOM                  = 0x00000095,
    ITEM_MYSTERY                      = 0x00000096,
    ITEM_REPEL_GEL                    = 0x00000097,
    ITEM_FRIGHT_JAR                   = 0x00000098,
    ITEM_PLEASE_COME_BACK             = 0x00000099,
    ITEM_DIZZY_DIAL                   = 0x0000009A,
    ITEM_SUPER_SODA                   = 0x0000009B,
    ITEM_LEMON                        = 0x0000009C,
    ITEM_LIME                         = 0x0000009D,
    ITEM_BLUE_BERRY                   = 0x0000009E,
    ITEM_RED_BERRY                    = 0x0000009F,
    ITEM_YELLOW_BERRY                 = 0x000000A0,
    ITEM_BUBBLE_BERRY                 = 0x000000A1,
    ITEM_JAMMIN_JELLY                 = 0x000000A2,
    ITEM_MAPLE_SYRUP                  = 0x000000A3,
    ITEM_HONEY_SYRUP                  = 0x000000A4,
    ITEM_GOOMNUT                      = 0x000000A5,
    ITEM_KOOPA_LEAF                   = 0x000000A6,
    ITEM_DRIED_PASTA                  = 0x000000A7,
    ITEM_DRIED_FRUIT                  = 0x000000A8,
    ITEM_STRANGE_LEAF                 = 0x000000A9,
    ITEM_CAKE_MIX                     = 0x000000AA,
    ITEM_EGG                          = 0x000000AB,
    ITEM_COCONUT                      = 0x000000AC,
    ITEM_MELON                        = 0x000000AD,
    ITEM_STINKY_HERB                  = 0x000000AE,
    ITEM_ICED_POTATO                  = 0x000000AF,
    ITEM_SPICY_SOUP                   = 0x000000B0,
    ITEM_APPLE_PIE                    = 0x000000B1,
    ITEM_HONEY_ULTRA                  = 0x000000B2,
    ITEM_MAPLE_ULTRA                  = 0x000000B3,
    ITEM_JELLY_ULTRA                  = 0x000000B4,
    ITEM_KOOPASTA                     = 0x000000B5,
    ITEM_FRIED_SHROOM                 = 0x000000B6,
    ITEM_SHROOM_CAKE                  = 0x000000B7,
    ITEM_SHROOM_STEAK                 = 0x000000B8,
    ITEM_HOT_SHROOM                   = 0x000000B9,
    ITEM_SWEET_SHROOM                 = 0x000000BA,
    ITEM_YUMMY_MEAL                   = 0x000000BB,
    ITEM_HEALTHY_JUICE                = 0x000000BC,
    ITEM_BLAND_MEAL                   = 0x000000BD,
    ITEM_DELUXE_FEAST                 = 0x000000BE,
    ITEM_SPECIAL_SHAKE                = 0x000000BF,
    ITEM_BIG_COOKIE                   = 0x000000C0,
    ITEM_CAKE                         = 0x000000C1,
    ITEM_MISTAKE                      = 0x000000C2,
    ITEM_KOOPA_TEA                    = 0x000000C3,
    ITEM_HONEY_SUPER                  = 0x000000C4,
    ITEM_MAPLE_SUPER                  = 0x000000C5,
    ITEM_JELLY_SUPER                  = 0x000000C6,
    ITEM_SPAGHETTI                    = 0x000000C7,
    ITEM_EGG_MISSILE                  = 0x000000C8,
    ITEM_FRIED_EGG                    = 0x000000C9,
    ITEM_HONEY_SHROOM                 = 0x000000CA,
    ITEM_HONEY_CANDY                  = 0x000000CB,
    ITEM_ELECTRO_POP                  = 0x000000CC,
    ITEM_FIRE_POP                     = 0x000000CD,
    ITEM_LIME_CANDY                   = 0x000000CE,
    ITEM_COCO_POP                     = 0x000000CF,
    ITEM_LEMON_CANDY                  = 0x000000D0,
    ITEM_JELLY_POP                    = 0x000000D1,
    ITEM_STRANGE_CAKE                 = 0x000000D2,
    ITEM_KOOKY_COOKIE                 = 0x000000D3,
    ITEM_FROZEN_FRIES                 = 0x000000D4,
    ITEM_POTATO_SALAD                 = 0x000000D5,
    ITEM_NUTTY_CAKE                   = 0x000000D6,
    ITEM_MAPLE_SHROOM                 = 0x000000D7,
    ITEM_BOILED_EGG                   = 0x000000D8,
    ITEM_YOSHI_COOKIE                 = 0x000000D9,
    ITEM_JELLY_SHROOM1                = 0x000000DA,
    ITEM_JELLY_SHROOM2                = 0x000000DB,
    ITEM_JELLY_SHROOM3                = 0x000000DC,
    ITEM_JELLY_SHROOM4                = 0x000000DD,
    ITEM_JELLY_SHROOM5                = 0x000000DE,
    ITEM_JELLY_SHROOM6                = 0x000000DF,
    ITEM_SPIN_SMASH                   = 0x000000E0,
    ITEM_MULTIBOUNCE                  = 0x000000E1,
    ITEM_POWER_PLUS_A                 = 0x000000E2,
    ITEM_DODGE_MASTER                 = 0x000000E3,
    ITEM_POWER_BOUNCE                 = 0x000000E4,
    ITEM_SPIKE_SHIELD                 = 0x000000E5,
    ITEM_FIRST_ATTACK                 = 0x000000E6,
    ITEM_HP_PLUS_A                    = 0x000000E7,
    ITEM_QUAKE_HAMMER                 = 0x000000E8,
    ITEM_DOUBLE_DIP                   = 0x000000E9,
    ITEM_MYSTERY_SCROLL               = 0x000000EA,
    ITEM_SLEEP_STOMP                  = 0x000000EB,
    ITEM_FIRE_SHIELD                  = 0x000000EC,
    ITEM_QUICK_CHANGE                 = 0x000000ED,
    ITEM_D_DOWN_POUND                 = 0x000000EE,
    ITEM_DIZZY_STOMP                  = 0x000000EF,
    ITEM_SMASH_CHARGE0                = 0x000000F0,
    ITEM_PRETTY_LUCKY                 = 0x000000F1,
    ITEM_FEELING_FINE                 = 0x000000F2,
    ITEM_ATTACK_FX_A                  = 0x000000F3,
    ITEM_ALLOR_NOTHING                = 0x000000F4,
    ITEM_HP_DRAIN                     = 0x000000F5,
    ITEM_BOOTS_CHARGE0                = 0x000000F6,
    ITEM_SLOW_GO                      = 0x000000F7,
    ITEM_FP_PLUS_A                    = 0x000000F8,
    ITEM_MEGA_RUSH                    = 0x000000F9,
    ITEM_ICE_POWER                    = 0x000000FA,
    ITEM_DEFEND_PLUS_A                = 0x000000FB,
    ITEM_PAY_OFF                      = 0x000000FC,
    ITEM_MONEY_MONEY                  = 0x000000FD,
    ITEM_CHILL_OUT                    = 0x000000FE,
    ITEM_HAPPY_HEART_A                = 0x000000FF,
    ITEM_ZAP_TAP                      = 0x00000100,
    ITEM_BERSERKER                    = 0x00000101,
    ITEM_RIGHT_ON                     = 0x00000102,
    ITEM_RUNAWAY_PAY                  = 0x00000103,
    ITEM_REFUND                       = 0x00000104,
    ITEM_FLOWER_SAVER_A               = 0x00000105,
    ITEM_TRIPLE_DIP                   = 0x00000106,
    ITEM_HAMMER_THROW                 = 0x00000107,
    ITEM_MEGA_QUAKE                   = 0x00000108,
    ITEM_SMASH_CHARGE                 = 0x00000109,
    ITEM_BOOTS_CHARGE                 = 0x0000010A,
    ITEM_S_SMASH_CHG                  = 0x0000010B,
    ITEM_S_JUMP_CHG                   = 0x0000010C,
    ITEM_POWER_RUSH                   = 0x0000010D,
    ITEM_AUTO_JUMP                    = 0x0000010E,
    ITEM_AUTO_SMASH                   = 0x0000010F,
    ITEM_CRAZY_HEART                  = 0x00000110,
    ITEM_LAST_STAND                   = 0x00000111,
    ITEM_CLOSE_CALL                   = 0x00000112,
    ITEM_P_UP_D_DOWN                  = 0x00000113,
    ITEM_LUCKY_DAY                    = 0x00000114,
    ITEM_MEGA_HP_DRAIN                = 0x00000115,
    ITEM_P_DOWN_D_UP                  = 0x00000116,
    ITEM_POWER_QUAKE                  = 0x00000117,
    ITEM_AUTO_MULTIBOUNCE             = 0x00000118,
    ITEM_FLOWER_FANATIC               = 0x00000119,
    ITEM_HEART_FINDER                 = 0x0000011A,
    ITEM_FLOWER_FINDER                = 0x0000011B,
    ITEM_SPIN_ATTACK                  = 0x0000011C,
    ITEM_DIZZY_ATTACK                 = 0x0000011D,
    ITEM_I_SPY                        = 0x0000011E,
    ITEM_SPEEDY_SPIN                  = 0x0000011F,
    ITEM_BUMP_ATTACK                  = 0x00000120,
    ITEM_POWER_JUMP                   = 0x00000121,
    ITEM_SUPER_JUMP                   = 0x00000122,
    ITEM_MEGA_JUMP                    = 0x00000123,
    ITEM_POWER_SMASH1                 = 0x00000124,
    ITEM_SUPER_SMASH                  = 0x00000125,
    ITEM_MEGA_SMASH                   = 0x00000126,
    ITEM_POWER_SMASH2                 = 0x00000127,
    ITEM_POWER_SMASH3                 = 0x00000128,
    ITEM_DEEP_FOCUS1                  = 0x00000129,
    ITEM_SUPER_FOCUS                  = 0x0000012A,
    ITEM_SHRINK_SMASH                 = 0x0000012B,
    ITEM_SHELL_CRACK                  = 0x0000012C,
    ITEM_KAIDEN                       = 0x0000012D,
    ITEM_D_DOWN_JUMP                  = 0x0000012E,
    ITEM_SHRINK_STOMP                 = 0x0000012F,
    ITEM_DAMAGE_DODGE_A               = 0x00000130,
    ITEM_EARTHQUAKE_JUMP              = 0x00000131,
    ITEM_DEEP_FOCUS2                  = 0x00000132,
    ITEM_DEEP_FOCUS3                  = 0x00000133,
    ITEM_HP_PLUS_B                    = 0x00000134,
    ITEM_FP_PLUS_B                    = 0x00000135,
    ITEM_HAPPY_HEART_B                = 0x00000136,
    ITEM_HAPPY_HEART_X                = 0x00000137,
    ITEM_FLOWER_SAVER_B               = 0x00000138,
    ITEM_FLOWER_SAVER_X               = 0x00000139,
    ITEM_DAMAGE_DODGE_B               = 0x0000013A,
    ITEM_DAMAGE_DODGE_X               = 0x0000013B,
    ITEM_POWER_PLUS_B                 = 0x0000013C,
    ITEM_POWER_PLUS_X                 = 0x0000013D,
    ITEM_DEFEND_PLUS_X                = 0x0000013E,
    ITEM_DEFEND_PLUS_Y                = 0x0000013F,
    ITEM_HAPPY_FLOWER_A               = 0x00000140,
    ITEM_HAPPY_FLOWER_B               = 0x00000141,
    ITEM_HAPPY_FLOWER_X               = 0x00000142,
    ITEM_GROUP_FOCUS                  = 0x00000143,
    ITEM_PEEKABOO                     = 0x00000144,
    ITEM_ATTACK_FX_D                  = 0x00000145,
    ITEM_ATTACK_FX_B                  = 0x00000146,
    ITEM_ATTACK_FX_E                  = 0x00000147,
    ITEM_ATTACK_FX_C                  = 0x00000148,
    ITEM_ATTACK_FX_F                  = 0x00000149,
    ITEM_HP_PLUS_C                    = 0x0000014A,
    ITEM_HP_PLUS_X                    = 0x0000014B,
    ITEM_HP_PLUS_Y                    = 0x0000014C,
    ITEM_FP_PLUS_C                    = 0x0000014D,
    ITEM_FP_PLUS_X                    = 0x0000014E,
    ITEM_FP_PLUS_Y                    = 0x0000014F,
    ITEM_HEALTHY_HEALTHY              = 0x00000150,
    ITEM_ATTACK_FX_F2                 = 0x00000151,
    ITEM_ATTACK_FX_F3                 = 0x00000152,
    ITEM_ATTACK_FX_F4                 = 0x00000153,
    ITEM_ATTACK_FX_F5                 = 0x00000154,
    ITEM_PARTNER_ATTACK               = 0x00000155,
    ITEM_HEART                        = 0x00000156,
    ITEM_COIN                         = 0x00000157,
    ITEM_HEART_PIECE                  = 0x00000158,
    ITEM_STAR_POINT                   = 0x00000159,
    ITEM_HEART_POINT                  = 0x0000015A,
    ITEM_FLOWER_POINT                 = 0x0000015B,
    ITEM_STAR_PIECE                   = 0x0000015C,
    ITEM_PRESENT                      = 0x0000015D,
    ITEM_CAKE_DONE                    = 0x0000015E,
    ITEM_CAKE_BARE                    = 0x0000015F,
    ITEM_CAKE_PAN                     = 0x00000160,
    ITEM_CAKE_BATTER                  = 0x00000161,
    ITEM_CAKE_BOWL                    = 0x00000162,
    ITEM_CAKE_MIXED                   = 0x00000163,
    ITEM_CAKE_WITH_ICING              = 0x00000164,
    ITEM_CAKE_WITH_BERRIES            = 0x00000165,
    ITEM_HAMMER1_ICON                 = 0x00000166,
    ITEM_HAMMER2_ICON                 = 0x00000167,
    ITEM_HAMMER3_ICON                 = 0x00000168,
    ITEM_BOOTS1_ICON                  = 0x00000169,
    ITEM_BOOTS2_ICON                  = 0x0000016A,
    ITEM_BOOTS3_ICON                  = 0x0000016B,
    ITEM_ITEMS_ICON                   = 0x0000016C,
};

#define LOOKUP_ITEM(itemID) gItemTable[itemID & ~0xF0000]

// item ranges:
// 001 - 007 = gear (hammer/boots)
// 008 - 00F = 'quest' items
// 010 - 07F = keys
// 080 - 0DA = consumables
// 0DB - 0DF = unused
// 0E0 - 154 badges
// 155+      misc (collectables, utility items for menu purposes, etc)

#define ITEM_FIRST_KEY              ITEM_KOOPA_FORTRESS_KEY
#define ITEM_LAST_KEY               ITEM_PRISON_KEY4
#define ITEM_FIRST_CONSUMABLE       ITEM_FIRE_FLOWER
#define ITEM_LAST_CONSUMABLE        ITEM_JELLY_SHROOM1
#define ITEM_FIRST_BADGE            ITEM_SPIN_SMASH
#define ITEM_LAST_BADGE             ITEM_ATTACK_FX_F5

#define ITEM_NUM_KEYS (ITEM_LAST_KEY - ITEM_FIRST_KEY + 1)
#define ITEM_NUM_CONSUMABLES (ITEM_LAST_CONSUMABLE - ITEM_FIRST_CONSUMABLE + 1)
#define IS_ITEM(itemID) (itemID >= ITEM_FIRST_KEY && itemID <= ITEM_LAST_CONSUMABLE)
#define IS_BADGE(itemID) (itemID >= ITEM_FIRST_BADGE && itemID <= ITEM_LAST_BADGE)

// 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 ItemPickupFlags {
    ITEM_PICKUP_FLAG_NO_SOUND           = 0x0001,
    ITEM_PICKUP_FLAG_NO_ANIMS           = 0x0002,
    ITEM_PICKUP_FLAG_1_COIN             = 0x0010,
    ITEM_PICKUP_FLAG_3_STAR_PIECES      = 0x0020,
    ITEM_PICKUP_FLAG_UNIQUE             = 0x0040,
};

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_COLLECTIBLE   = 0x0200,
    ITEM_TYPE_FLAG_ENTITY_FULLSIZE      = 0x1000,
};

enum ItemTargetFlags {
    ITEM_TARGET_FLAG_ENEMY              = 0x0001,
    ITEM_TARGET_FLAG_2                  = 0x0002,
    ITEM_TARGET_FLAG_PLAYER             = 0x0008,
    ITEM_TARGET_FLAG_8000               = 0x8000
};

enum PlayerSprites {
    SPR_Mario1                          = 0x1,
    SPR_Mario1_Back                     = 0x2,
    SPR_MarioB1                         = 0x3,
    SPR_MarioB2                         = 0x4,
    SPR_MarioB3                         = 0x5,
    SPR_MarioW1                         = 0x6,
    SPR_MarioW1_Back                    = 0x7,
    SPR_MarioW2                         = 0x8,
    SPR_MarioW3                         = 0x9,
    SPR_Peach1                          = 0xA,
    SPR_Peach1_Back                     = 0xB,
    SPR_Peach2                          = 0xC,
    SPR_Peach3                          = 0xD,
};

// TODO: extract player sprite + animations
enum PlayerAnims {
    ANIM_Mario1_Still                       = 0x00010000,
    ANIM_Mario1_TiredStill                  = 0x00010001,
    ANIM_Mario1_Idle                        = 0x00010002,
    ANIM_Mario1_TiredIdle                   = 0x00010003,
    ANIM_Mario1_Walk                        = 0x00010004,
    ANIM_Mario1_Run                         = 0x00010005,
    ANIM_Mario1_BeforeJump                  = 0x00010006,
    ANIM_Mario1_Jump                        = 0x00010007,
    ANIM_Mario1_Fall                        = 0x00010008,
    ANIM_Mario1_Land                        = 0x00010009,
    ANIM_Mario1_Sit                         = 0x0001000A,
    ANIM_Mario1_SpinJump                    = 0x0001000B,
    ANIM_Mario1_SpinFall                    = 0x0001000C,
    ANIM_Mario1_SpinLand                    = 0x0001000D,
    ANIM_Mario1_Frozen                      = 0x0001000E,
    ANIM_Mario1_Fallen                      = 0x0001000F,
    ANIM_Mario1_Spin                        = 0x00010010,
    ANIM_Mario1_SpeedySpin                  = 0x00010011,
    ANIM_Mario1_SpinAttack                  = 0x00010012,
    ANIM_Mario1_SitUnused                   = 0x00010013,
    ANIM_Mario1_Crouch                      = 0x00010014,
    ANIM_Mario1_CrouchBurnt                 = 0x00010015,
    ANIM_Mario1_Throw                       = 0x00010016,
    ANIM_Mario1_Hurt                        = 0x00010017,
    ANIM_Mario1_FallDown                    = 0x00010018,
    ANIM_Mario1_TouchedFire                 = 0x00010019,
    ANIM_Mario1_HurtFoot                    = 0x0001001A,
    ANIM_Mario1_PanicRun                    = 0x0001001B,
    ANIM_Mario1_Eat                         = 0x0001001C,
    ANIM_Mario1_StickOutTongue              = 0x0001001D,
    ANIM_Mario1_PlantFireFlower             = 0x0001001E,
    ANIM_Mario1_UsePower                    = 0x0001001F,
    ANIM_Mario1_FightingStance              = 0x00010020,
    ANIM_Mario1_Thinking                    = 0x00010021,
    ANIM_Mario1_Dizzy                       = 0x00010022,
    ANIM_Mario1_VacantStare                 = 0x00010023,
    ANIM_Mario1_GetItem                     = 0x00010024,
    ANIM_Mario1_Drink                       = 0x00010025,
    ANIM_Mario1_Squish                      = 0x00010026,
    ANIM_Mario1_ThinkingRun                 = 0x00010027,
    ANIM_Mario1_Question                    = 0x00010028,
    ANIM_Mario1_NodYes                      = 0x00010029,
    ANIM_Mario1_LookUp                      = 0x0001002A,
    ANIM_Mario1_Flail                       = 0x0001002B,
    ANIM_Mario1_Pray                        = 0x0001002C,
    ANIM_Mario1_Chuckle                     = 0x0001002D,
    ANIM_Mario1_FallBack                    = 0x0001002E,
    ANIM_Mario1_Burnt                       = 0x0001002F,
    ANIM_Mario1_GetUp                       = 0x00010030,
    ANIM_Mario1_DustOff                     = 0x00010031,
    ANIM_Mario1_ThumbsUp                    = 0x00010032,
    ANIM_Mario1_TossItem                    = 0x00010033,
    ANIM_MarioB1_Stomp                      = 0x00030000,
    ANIM_MarioB1_Trip                       = 0x00030001,
    ANIM_MarioB1_Dying                      = 0x00030002,
    ANIM_MarioB1_SleepStill                 = 0x00030003,
    ANIM_MarioB1_Sleep                      = 0x00030004,
    ANIM_MarioB1_SickStill                  = 0x00030005,
    ANIM_MarioB1_Sick                       = 0x00030006,
    ANIM_MarioB1_ReadyToDrink               = 0x00030007,
    ANIM_MarioB1_ApplyCream                 = 0x00030008,
    ANIM_MarioB1_AdjustCap                  = 0x00030009,
    ANIM_MarioB1_FingerWag                  = 0x0003000A,
    ANIM_MarioB1_JumpForJoy                 = 0x0003000B,
    ANIM_MarioB1_Leeching                   = 0x0003000C,
    ANIM_MarioB1_Smash1_Begin               = 0x0003000D,
    ANIM_MarioB1_Smash1_PullBack            = 0x0003000E,
    ANIM_MarioB1_Smash1_Hold1               = 0x0003000F,
    ANIM_MarioB1_Smash1_Hold2               = 0x00030010,
    ANIM_MarioB1_Smash1_PreSwing            = 0x00030011,
    ANIM_MarioB1_Smash1_Swing               = 0x00030012,
    ANIM_MarioB1_Smash1_Spin                = 0x00030013,
    ANIM_MarioB1_Smash2_Begin               = 0x00030014,
    ANIM_MarioB1_Smash2_PullBack            = 0x00030015,
    ANIM_MarioB1_Smash2_Hold1               = 0x00030016,
    ANIM_MarioB1_Smash2_Hold2               = 0x00030017,
    ANIM_MarioB1_Smash2_PreSwing            = 0x00030018,
    ANIM_MarioB1_Smash2_Swing               = 0x00030019,
    ANIM_MarioB1_Smash2_Spin                = 0x0003001A,
    ANIM_MarioB1_Smash3_Begin               = 0x0003001B,
    ANIM_MarioB1_Smash3_PullBack            = 0x0003001C,
    ANIM_MarioB1_Smash3_Hold1               = 0x0003001D,
    ANIM_MarioB1_Smash3_Hold2               = 0x0003001E,
    ANIM_MarioB1_Smash3_PreSwing            = 0x0003001F,
    ANIM_MarioB1_Smash3_Swing               = 0x00030020,
    ANIM_MarioB1_Smash3_Spin                = 0x00030021,
    ANIM_MarioB2_SpinSmash1_Begin           = 0x00040000,
    ANIM_MarioB2_SpinSmash1_Raise           = 0x00040001,
    ANIM_MarioB2_SpinSmash1_Hold1           = 0x00040002,
    ANIM_MarioB2_SpinSmash1_Hold2           = 0x00040003,
    ANIM_MarioB2_SpinSmash1_PreSwing        = 0x00040004,
    ANIM_MarioB2_SpinSmash1_Swing           = 0x00040005,
    ANIM_MarioB2_SpinSmash2_Begin           = 0x00040006,
    ANIM_MarioB2_SpinSmash2_Raise           = 0x00040007,
    ANIM_MarioB2_SpinSmash2_Hold1           = 0x00040008,
    ANIM_MarioB2_SpinSmash2_Hold2           = 0x00040009,
    ANIM_MarioB2_SpinSmash2_PreSwing        = 0x0004000A,
    ANIM_MarioB2_SpinSmash2_Swing           = 0x0004000B,
    ANIM_MarioB2_SpinSmash3_Begin           = 0x0004000C,
    ANIM_MarioB2_SpinSmash3_Raise           = 0x0004000D,
    ANIM_MarioB2_SpinSmash3_Hold1           = 0x0004000E,
    ANIM_MarioB2_SpinSmash3_Hold2           = 0x0004000F,
    ANIM_MarioB2_SpinSmash3_PreSwing        = 0x00040010,
    ANIM_MarioB2_SpinSmash3_Swing           = 0x00040011,
    ANIM_MarioB2_Hammer1                    = 0x00040012,
    ANIM_MarioB2_Hammer2                    = 0x00040013,
    ANIM_MarioB2_Hammer3                    = 0x00040014,
    ANIM_MarioB2_DustyHammer                = 0x00040015,
    ANIM_MarioB2_HammerThrow1_Begin         = 0x00040016,
    ANIM_MarioB2_HammerThrow1_Raise         = 0x00040017,
    ANIM_MarioB2_HammerThrow1_Hold1         = 0x00040018,
    ANIM_MarioB2_HammerThrow1_Hold2         = 0x00040019,
    ANIM_MarioB2_HammerThrow1_PreThrow      = 0x0004001A,
    ANIM_MarioB2_HammerThrow1_Throw         = 0x0004001B,
    ANIM_MarioB2_HammerThrow2_Begin         = 0x0004001C,
    ANIM_MarioB2_HammerThrow2_Raise         = 0x0004001D,
    ANIM_MarioB2_HammerThrow2_Hold1         = 0x0004001E,
    ANIM_MarioB2_HammerThrow2_Hold2         = 0x0004001F,
    ANIM_MarioB2_HammerThrow2_PreThrow      = 0x00040020,
    ANIM_MarioB2_HammerThrow2_Throw         = 0x00040021,
    ANIM_MarioB2_HammerThrow3_Begin         = 0x00040022,
    ANIM_MarioB2_HammerThrow3_Raise         = 0x00040023,
    ANIM_MarioB2_HammerThrow3_Hold1         = 0x00040024,
    ANIM_MarioB2_HammerThrow3_Hold2         = 0x00040025,
    ANIM_MarioB2_HammerThrow3_PreThrow      = 0x00040026,
    ANIM_MarioB2_HammerThrow3_Throw         = 0x00040027,
    ANIM_MarioB2_BerserkIdle                = 0x00040028,
    ANIM_MarioB2_BerserkStill               = 0x00040029,
    ANIM_MarioB2_Inert                      = 0x0004002A,
    ANIM_MarioB2_InertTired                 = 0x0004002B,
    ANIM_MarioB3_Hustled                    = 0x00050000,
    ANIM_MarioB3_Petrified                  = 0x00050001,
    ANIM_MarioB3_StoneBurnt                 = 0x00050002,
    ANIM_MarioB3_BurnHurt                   = 0x00050003,
    ANIM_MarioB3_Hammer1_Charging           = 0x00050004,
    ANIM_MarioB3_Hammer1_Charged            = 0x00050005,
    ANIM_MarioB3_Hammer2_Charging           = 0x00050006,
    ANIM_MarioB3_Hammer2_Charged            = 0x00050007,
    ANIM_MarioB3_Hammer3_Charging           = 0x00050008,
    ANIM_MarioB3_Hammer3_Charged            = 0x00050009,
    ANIM_MarioW1_Carry                      = 0x00060000,
    ANIM_MarioW1_CarryAbove                 = 0x00060001,
    ANIM_MarioW1_CarryRun                   = 0x00060002,
    ANIM_MarioW1_CarryAboveRun              = 0x00060003,
    ANIM_MarioW1_PushToward                 = 0x00060004,
    ANIM_MarioW1_TakeItem                   = 0x00060005,
    ANIM_MarioW1_PlaceItem                  = 0x00060006,
    ANIM_MarioW1_PlaceRecord                = 0x00060007,
    ANIM_MarioW1_TakeItemSquashed           = 0x00060008,
    ANIM_MarioW1_JumpWatt                   = 0x00060009,
    ANIM_MarioW1_FallWatt                   = 0x0006000A,
    ANIM_MarioW1_LandWatt                   = 0x0006000B,
    ANIM_MarioW1_Lift                       = 0x0006000C,
    ANIM_MarioW1_Lift_Back                  = 0x0006000D,
    ANIM_MarioW1_Toss                       = 0x0006000E,
    ANIM_MarioW1_Toss_Back                  = 0x0006000F,
    ANIM_MarioW1_Smash1_Miss                = 0x00060010,
    ANIM_MarioW1_Smash1_Miss_Back           = 0x00060011,
    ANIM_MarioW1_Smash1_Hit                 = 0x00060012,
    ANIM_MarioW1_Smash1_Hit_Back            = 0x00060013,
    ANIM_MarioW1_Smash2_Miss                = 0x00060014,
    ANIM_MarioW1_Smash2_Miss_Back           = 0x00060015,
    ANIM_MarioW1_Smash2_Hit                 = 0x00060016,
    ANIM_MarioW1_Smash2_Hit_Back            = 0x00060017,
    ANIM_MarioW1_Smash3_Miss                = 0x00060018,
    ANIM_MarioW1_Smash3_Miss_Back           = 0x00060019,
    ANIM_MarioW1_Smash3_Hit                 = 0x0006001A,
    ANIM_MarioW1_Smash3_Hit_Back            = 0x0006001B,
    ANIM_MarioW1_PunchAir_Back              = 0x0006001C,
    ANIM_MarioW2_Carried                    = 0x00080000,
    ANIM_MarioW2_FallenPivotable            = 0x00080001,
    ANIM_MarioW2_TouchedLava                = 0x00080002,
    ANIM_MarioW2_Collapse                   = 0x00080003,
    ANIM_MarioW2_PraiseTheSun               = 0x00080004,
    ANIM_MarioW2_HangSwingingLegs           = 0x00080005,
    ANIM_MarioW2_Hang                       = 0x00080006,
    ANIM_MarioW2_SpeakUp                    = 0x00080007,
    ANIM_MarioW2_IdleYawning                = 0x00080008,
    ANIM_MarioW2_LayingDown                 = 0x00080009,
    ANIM_MarioW2_Shocked                    = 0x0008000A,
    ANIM_MarioW2_PleaseComeBack             = 0x0008000B,
    ANIM_MarioW2_LookClosely                = 0x0008000C,
    ANIM_MarioW2_HoldOnto                   = 0x0008000D,
    ANIM_MarioW2_RideLaki                   = 0x0008000E,
    ANIM_MarioW2_RideSushie                 = 0x0008000F,
    ANIM_MarioW2_DiveSushie                 = 0x00080010,
    ANIM_MarioW2_TouchNose                  = 0x00080011,
    ANIM_MarioW2_PanicHoverStill            = 0x00080012,
    ANIM_MarioW2_PanicHover                 = 0x00080013,
    ANIM_MarioW2_Jump                       = 0x00080014,
    ANIM_MarioW2_JumpHitHead                = 0x00080015,
    ANIM_MarioW2_Surprise                   = 0x00080016,
    ANIM_MarioW2_Flail                      = 0x00080017,
    ANIM_MarioW2_PanicStill                 = 0x00080018,
    ANIM_MarioW2_Panic                      = 0x00080019,
    ANIM_MarioW2_Thrown                     = 0x0008001A,
    ANIM_MarioW2_DeepExhale                 = 0x0008001B,
    ANIM_MarioW2_NodYesTwice                = 0x0008001C,
    ANIM_MarioW2_SleepStanding              = 0x0008001D,
    ANIM_MarioW2_JoltAwake                  = 0x0008001E,
    ANIM_MarioW2_FlailArms                  = 0x0008001F,
    ANIM_MarioW2_PushSide                   = 0x00080020,
    ANIM_MarioW2_LookUpWalk                 = 0x00080021,
    ANIM_MarioW2_LookAround                 = 0x00080022,
    ANIM_MarioW2_SitStill                   = 0x00080023,
    ANIM_MarioW2_SitIdle                    = 0x00080024,
    ANIM_MarioW2_SitNodYes                  = 0x00080025,
    ANIM_MarioW2_HoldLetter                 = 0x00080026,
    ANIM_MarioW2_ReadLetter                 = 0x00080027,
    ANIM_MarioW3_ShakeHead                  = 0x00090000,
    ANIM_MarioW3_ShakeHeadHard              = 0x00090001,
    ANIM_MarioW3_8bit_Still                 = 0x00090002,
    ANIM_MarioW3_8bit_Run                   = 0x00090003,
    ANIM_MarioW3_8bit_TurnAround            = 0x00090004,
    ANIM_MarioW3_8bit_Jump                  = 0x00090005,
    ANIM_Peach1_Still                       = 0x000A0000,
    ANIM_Peach1_Idle                        = 0x000A0001,
    ANIM_Peach1_Walk                        = 0x000A0002,
    ANIM_Peach1_Run                         = 0x000A0003,
    ANIM_Peach1_RunLiftDress                = 0x000A0004,
    ANIM_Peach1_StepUp                      = 0x000A0005,
    ANIM_Peach1_StepDown                    = 0x000A0006,
    ANIM_Peach1_HoldCream                   = 0x000A0007,
    ANIM_Peach1_HoldCream_Back              = 0x000A0008,
    ANIM_Peach1_HoldStrawberry              = 0x000A0009,
    ANIM_Peach1_HoldStrawberry_Back         = 0x000A000A,
    ANIM_Peach1_HoldButter                  = 0x000A000B,
    ANIM_Peach1_HoldButter_Back             = 0x000A000C,
    ANIM_Peach1_HoldCleanser                = 0x000A000D,
    ANIM_Peach1_HoldCleanser_Back           = 0x000A000E,
    ANIM_Peach1_HoldWater                   = 0x000A000F,
    ANIM_Peach1_HoldWater_Back              = 0x000A0010,
    ANIM_Peach1_HoldMilk                    = 0x000A0011,
    ANIM_Peach1_HoldMilk_Back               = 0x000A0012,
    ANIM_Peach1_HoldFlour                   = 0x000A0013,
    ANIM_Peach1_HoldFlour_Back              = 0x000A0014,
    ANIM_Peach1_HoldEgg                     = 0x000A0015,
    ANIM_Peach1_HoldEgg_Back                = 0x000A0016,
    ANIM_Peach1_HoldCompleteCake            = 0x000A0017,
    ANIM_Peach1_HoldCompleteCake_Back       = 0x000A0018,
    ANIM_Peach1_HoldCakeBowl                = 0x000A0019,
    ANIM_Peach1_HoldCakeBowl_Back           = 0x000A001A,
    ANIM_Peach1_HoldCakeMixed               = 0x000A001B,
    ANIM_Peach1_HoldCakeMixed_Back          = 0x000A001C,
    ANIM_Peach1_HoldCakePan                 = 0x000A001D,
    ANIM_Peach1_HoldCakePan_Back            = 0x000A001E,
    ANIM_Peach1_HoldCakeBatter              = 0x000A001F,
    ANIM_Peach1_HoldCakeBatter_Back         = 0x000A0020,
    ANIM_Peach1_HoldBareCake                = 0x000A0021,
    ANIM_Peach1_HoldBareCake_Back           = 0x000A0022,
    ANIM_Peach1_HoldSalt                    = 0x000A0023,
    ANIM_Peach1_HoldSalt_Back               = 0x000A0024,
    ANIM_Peach1_HoldSugar                   = 0x000A0025,
    ANIM_Peach1_HoldSugar_Back              = 0x000A0026,
    ANIM_Peach1_HoldIcingCake               = 0x000A0027,
    ANIM_Peach1_HoldIcingCake_Back          = 0x000A0028,
    ANIM_Peach1_HoldBerryCake               = 0x000A0029,
    ANIM_Peach1_HoldBerryCake_Back          = 0x000A002A,
    ANIM_Peach1_CarryCream                  = 0x000A002B,
    ANIM_Peach1_CarryCream_Back             = 0x000A002C,
    ANIM_Peach1_CarryStrawberry             = 0x000A002D,
    ANIM_Peach1_CarryStrawberry_Back        = 0x000A002E,
    ANIM_Peach1_CarryButter                 = 0x000A002F,
    ANIM_Peach1_CarryButter_Back            = 0x000A0030,
    ANIM_Peach1_CarryCleanser               = 0x000A0031,
    ANIM_Peach1_CarryCleanser_Back          = 0x000A0032,
    ANIM_Peach1_CarryWater                  = 0x000A0033,
    ANIM_Peach1_CarryWater_Back             = 0x000A0034,
    ANIM_Peach1_CarryMilk                   = 0x000A0035,
    ANIM_Peach1_CarryMilk_Back              = 0x000A0036,
    ANIM_Peach1_CarryFlour                  = 0x000A0037,
    ANIM_Peach1_CarryFlour_Back             = 0x000A0038,
    ANIM_Peach1_CarryEgg                    = 0x000A0039,
    ANIM_Peach1_CarryEgg_Back               = 0x000A003A,
    ANIM_Peach1_CarryCompleteCake           = 0x000A003B,
    ANIM_Peach1_CarryCompleteCake_Back      = 0x000A003C,
    ANIM_Peach1_CarryCakeBowl               = 0x000A003D,
    ANIM_Peach1_CarryCakeBowl_Back          = 0x000A003E,
    ANIM_Peach1_CarryCakeMixed              = 0x000A003F,
    ANIM_Peach1_CarryCakeMixed_Back         = 0x000A0040,
    ANIM_Peach1_CarryCakePan                = 0x000A0041,
    ANIM_Peach1_CarryCakePan_Back           = 0x000A0042,
    ANIM_Peach1_CarryCakeBatter             = 0x000A0043,
    ANIM_Peach1_CarryCakeBatter_Back        = 0x000A0044,
    ANIM_Peach1_CarryBareCake               = 0x000A0045,
    ANIM_Peach1_CarryBareCake_Back          = 0x000A0046,
    ANIM_Peach1_CarrySalt                   = 0x000A0047,
    ANIM_Peach1_CarrySalt_Back              = 0x000A0048,
    ANIM_Peach1_CarrySugar                  = 0x000A0049,
    ANIM_Peach1_CarrySugar_Back             = 0x000A004A,
    ANIM_Peach1_CarryIcingCake              = 0x000A004B,
    ANIM_Peach1_CarryIcingCake_Back         = 0x000A004C,
    ANIM_Peach1_CarryBerryCake              = 0x000A004D,
    ANIM_Peach1_CarryBerryCake_Back         = 0x000A004E,
    ANIM_Peach2_RaiseArms                   = 0x000C0000,
    ANIM_Peach2_Talk                        = 0x000C0001,
    ANIM_Peach2_LowerArms                   = 0x000C0002,
    ANIM_Peach2_Yawn                        = 0x000C0003,
    ANIM_Peach2_Sleep                       = 0x000C0004,
    ANIM_Peach2_Gasp                        = 0x000C0005,
    ANIM_Peach2_GaspStill                   = 0x000C0006,
    ANIM_Peach2_Shout                       = 0x000C0007,
    ANIM_Peach2_EndShout                    = 0x000C0008,
    ANIM_Peach2_Delighted                   = 0x000C0009,
    ANIM_Peach2_GiveItem                    = 0x000C000A,
    ANIM_Peach2_OpenDoors                   = 0x000C000B,
    ANIM_Peach2_Curious                     = 0x000C000C,
    ANIM_Peach2_Startle                     = 0x000C000D,
    ANIM_Peach2_SadStill                    = 0x000C000E,
    ANIM_Peach2_SadTalk                     = 0x000C000F,
    ANIM_Peach2_SpreadArms                  = 0x000C0010,
    ANIM_Peach2_LookAround                  = 0x000C0011,
    ANIM_Peach2_ArmsCrossedIdle             = 0x000C0012,
    ANIM_Peach2_ArmsCrossedTalk             = 0x000C0013,
    ANIM_Peach2_ForwardIdle                 = 0x000C0014,
    ANIM_Peach2_ForwardShout                = 0x000C0015,
    ANIM_Peach2_ForwardHappy                = 0x000C0016,
    ANIM_Peach2_ForwardSad                  = 0x000C0017,
    ANIM_Peach2_Carried                     = 0x000C0018,
    ANIM_Peach2_Thrown                      = 0x000C0019,
    ANIM_Peach2_Land                        = 0x000C001A,
    ANIM_Peach2_TiedHangIdle                = 0x000C001B,
    ANIM_Peach2_TiedHangStruggle            = 0x000C001C,
    ANIM_Peach2_TiedStill                   = 0x000C001D,
    ANIM_Peach2_TiedIdle                    = 0x000C001E,
    ANIM_Peach2_MixingFull                  = 0x000C001F,
    ANIM_Peach2_Mixing1                     = 0x000C0020,
    ANIM_Peach2_Mixing2                     = 0x000C0021,
    ANIM_Peach2_Mixing3                     = 0x000C0022,
    ANIM_Peach2_Mixing4                     = 0x000C0023,
    ANIM_Peach2_UseParasol                  = 0x000C0024,
    ANIM_Peach2_PutAwayParasol              = 0x000C0025,
    ANIM_Peach2_TalkIdle                    = 0x000C0026,
    ANIM_Peach2_CantFitParasol              = 0x000C0027,
    ANIM_Peach2_Inert                       = 0x000C0028,
    ANIM_Peach3_PresentCompleteCake         = 0x000D0000,
    ANIM_Peach3_PresentBareCake             = 0x000D0001,
    ANIM_Peach3_PresentBerryCake            = 0x000D0002,
    ANIM_Peach3_PresentIcingCake            = 0x000D0003,
    ANIM_Peach3_InformalTalk                = 0x000D0004,
    ANIM_Peach3_ForwardHoldItem             = 0x000D0005,
    ANIM_Peach3_ForwardPlaceItem            = 0x000D0006,
    ANIM_Peach3_ReachIntoOven               = 0x000D0007,
    ANIM_Peach3_TiedSideways                = 0x000D0008,
    ANIM_Peach3_TiedTalk                    = 0x000D0009,
    ANIM_Peach3_TiedShout                   = 0x000D000A,
    ANIM_Peach3_TiedLaugh                   = 0x000D000B,
    ANIM_Peach3_PourBatter                  = 0x000D000C,
    ANIM_Peach3_WalkSad                     = 0x000D000D,
    ANIM_Peach3_TiedUpsideDown              = 0x000D000E,
    ANIM_Peach3_Pray                        = 0x000D000F,
    ANIM_Peach3_ReachForButtonHigh          = 0x000D0010,
    ANIM_Peach3_PressButtonHigh             = 0x000D0011,
    ANIM_Peach3_AfterPressButtonHigh        = 0x000D0012,
    ANIM_Peach3_ReachForButton              = 0x000D0013,
    ANIM_Peach3_PressButton                 = 0x000D0014,
    ANIM_Peach3_AfterPressButton            = 0x000D0015,
};

enum AmbientSounds {
    AMBIENT_SPOOKY          = 0,
    AMBIENT_WIND            = 1,
    AMBIENT_BEACH           = 2,
    AMBIENT_JUNGLE          = 3,
    AMBIENT_LAVA_1          = 4,
    AMBIENT_LAVA_2          = 5,
    AMBIENT_SILENCE         = 6,
    AMBIENT_LAVA_3          = 7,
    AMBIENT_LAVA_4          = 8,
    AMBIENT_LAVA_5          = 9,
    AMBIENT_LAVA_6          = 10,
    AMBIENT_LAVA_7          = 11,
    AMBIENT_BIRDS           = 12,
    AMBIENT_SEA             = 13,
    AMBIENT_RADIO           = 16, // radio songs for nok
    // the following 4 IDs are reserved for additional radio songs,
    // and no more are expected to follow after that
    // see: au_ambient_load
};

enum EncounterOutcomes {
    OUTCOME_PLAYER_WON          = 0,
    OUTCOME_PLAYER_LOST         = 1,
    OUTCOME_PLAYER_FLED         = 2,
    OUTCOME_ENEMY_FLED          = 3,
    OUTCOME_4                   = 4,
};

enum MerleeSpellType {
    MERLEE_SPELL_0              = 0,
    MERLEE_SPELL_1              = 1,
    MERLEE_SPELL_2              = 2,
    MERLEE_SPELL_EXP_BOOST      = 3,
    MERLEE_SPELL_COIN_BOOST     = 4,
};

enum NpcDecorationIDs {
    NPC_DECORATION_NONE                          = 0x00000000,
    NPC_DECORATION_BOWSER_AURA                   = 0x00000001,
    NPC_DECORATION_SWEAT                         = 0x00000002,
    NPC_DECORATION_SEEING_STARS                  = 0x00000003,
    NPC_DECORATION_WHITE_GLOW_FRONT              = 0x00000004,
    NPC_DECORATION_WHITE_GLOW_BEHIND             = 0x00000005,
    NPC_DECORATION_CHARGED                       = 0x00000006,
};

enum 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_1                    = 1,    // KILL?
    HIT_RESULT_NO_DAMAGE            = 2,
    HIT_RESULT_3                    = 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;

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 Iters {
    ITER_FIRST       = -1,
    ITER_NEXT        = 0,
    ITER_PREV        = 1,
    ITER_LAST        = 10,
};

enum ActorSoundIDs {
    ACTOR_SOUND_WALK                      = 0x00000000,
    ACTOR_SOUND_FLY                       = 0x00000001,
    ACTOR_SOUND_JUMP                      = 0x00000002,
    ACTOR_SOUND_HURT                      = 0x00000003,
    ACTOR_SOUND_WALK_INCREMENT            = 0x00000004,
    ACTOR_SOUND_FLY_INCREMENT             = 0x00000005,
};

enum ActorDecorationIDs {
    ACTOR_DECORATION_NONE                          = 0x00000000,
    ACTOR_DECORATION_GOLDEN_FLAMES                 = 0x00000001,
    ACTOR_DECORATION_SWEAT                         = 0x00000002,
    ACTOR_DECORATION_SEEING_STARS                  = 0x00000003,
    ACTOR_DECORATION_RED_FLAMES                    = 0x00000004,
    ACTOR_DECORATION_GREY_SMOKE_TRAIL              = 0x00000005,
    ACTOR_DECORATION_FIRE_SMOKE_TRAIL              = 0x00000006,
    ACTOR_DECORATION_WHIRLWIND                     = 0x00000007,
    ACTOR_DECORATION_STEAM_EMITTER                 = 0x00000008,
    ACTOR_DECORATION_9                             = 0x00000009,
    ACTOR_DECORATION_A                             = 0x0000000A,
    ACTOR_DECORATION_RADIAL_STAR_EMITTER           = 0x0000000B,
};

enum Phases {
    PHASE_EXECUTE_ACTION            = 0,
    PHASE_FIRST_STRIKE              = 1,
    PHASE_RUN_AWAY_START            = 3,
    PHASE_DEATH                     = 4,
    PHASE_CELEBRATE                 = 5,
    PHASE_USE_DEFEND                = 6,
    PHASE_RUN_AWAY_FAIL             = 7,
    PHASE_USE_LIFE_SHROOM           = 8,
    PHASE_PLAYER_BEGIN              = 10,
    PHASE_ENEMY_END                 = 11,
    PHASE_ENEMY_BEGIN               = 12,
    PHASE_PLAYER_END                = 13,
    PHASE_MERLEE_ATTACK_BONUS       = 20,
    PHASE_MERLEE_DEFENSE_BONUS      = 21,
    PHASE_MERLEE_EXP_BONUS          = 22,
    PHASE_PLAYER_HAPPY              = 30,
};

enum ActorClasses {
    ACTOR_CLASS_PLAYER      = 0x000,
    ACTOR_CLASS_PARTNER     = 0x100,
    ACTOR_CLASS_ENEMY       = 0x200,
    ACTOR_CLASS_MASK        = 0x700,
};

enum ActorIDs {
    ACTOR_SELF           = 0xFFFFFF81,
    ACTOR_PLAYER         = 0x00000000,
    ACTOR_PARTNER        = 0x00000100,
    ACTOR_ENEMY0         = 0x00000200,
    ACTOR_ENEMY1         = 0x00000201,
    ACTOR_ENEMY2         = 0x00000202,
    ACTOR_ENEMY3         = 0x00000203,
    ACTOR_ENEMY4         = 0x00000204,
    ACTOR_ENEMY5         = 0x00000205,
    ACTOR_ENEMY6         = 0x00000206,
    ACTOR_ENEMY7         = 0x00000207,
    ACTOR_ENEMY8         = 0x00000208,
    ACTOR_ENEMY9         = 0x00000209,
    ACTOR_ENEMY10        = 0x0000020A,
    ACTOR_ENEMY11        = 0x0000020B,
    ACTOR_ENEMY12        = 0x0000020C,
    ACTOR_ENEMY13        = 0x0000020D,
    ACTOR_ENEMY14        = 0x0000020E,
    ACTOR_ENEMY15        = 0x0000020F,
    ACTOR_ENEMY16        = 0x00000210,
    ACTOR_ENEMY17        = 0x00000211,
    ACTOR_ENEMY18        = 0x00000212,
    ACTOR_ENEMY19        = 0x00000213,
    ACTOR_ENEMY20        = 0x00000214,
    ACTOR_ENEMY21        = 0x00000215,
    ACTOR_ENEMY22        = 0x00000216,
    ACTOR_ENEMY23        = 0x00000217,
};

enum Elements {
    ELEMENT_END              = 0x00000000,
    ELEMENT_NORMAL           = 0x00000001,
    ELEMENT_FIRE             = 0x00000002,
    ELEMENT_WATER            = 0x00000003,
    ELEMENT_ICE              = 0x00000004,
    ELEMENT_MYSTERY          = 0x00000005,
    ELEMENT_MAGIC            = 0x00000007,
    ELEMENT_SMASH            = 0x00000008,
    ELEMENT_JUMP             = 0x00000009,
    ELEMENT_COSMIC           = 0x0000000A,
    ELEMENT_BLAST            = 0x0000000B,
    ELEMENT_SHOCK            = 0x0000000C,
    ELEMENT_QUAKE            = 0x0000000D,
    ELEMENT_THROW            = 0x0000000F,
};

enum Events {
    EVENT_HIT_COMBO                   = 0x00000009,
    EVENT_HIT                         = 0x0000000A,
    EVENT_SPIN_SMASH_HIT              = 0x0000000B,
    EVENT_FALL_TRIGGER                = 0x0000000C,
    EVENT_FLIP_TRIGGER                = 0x0000000D,
    EVENT_BURN_HIT                    = 0x0000000E,
    EVENT_15                          = 0x0000000F,
    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_62                          = 0x0000003E,
    EVENT_SWAP_PARTNER                = 0x0000003F,
    EVENT_LIFE_SHROOM_PROC            = 0x00000040,
    EVENT_REVIVE                      = 0x00000041,
    EVENT_66                          = 0x00000042,
};

enum HitSounds {
    HIT_SOUND_MISS             = 0,
    HIT_SOUND_BONES            = 1,
    HIT_SOUND_NORMAL           = 2,
    HIT_SOUND_FIRE             = 3,
    HIT_SOUND_ICE              = 4,
    HIT_SOUND_SHOCK            = 5,
};

// Player.debuff
// Partner.debuff
enum StatusKeys {
    STATUS_END                     = 0x00000000,
    STATUS_NORMAL                  = 0x00000001,
    STATUS_DEFAULT                 = 0x00000002,
    STATUS_FEAR                    = 0x00000003,
    STATUS_DIZZY                   = 0x00000004,
    STATUS_PARALYZE                = 0x00000005,
    STATUS_SLEEP                   = 0x00000006,
    STATUS_FROZEN                  = 0x00000007,
    STATUS_STOP                    = 0x00000008,
    STATUS_POISON                  = 0x00000009,
    STATUS_SHRINK                  = 0x0000000A,
    STATUS_STATIC                  = 0x0000000B,
    STATUS_STONE                   = 0x0000000C,
    STATUS_DAZE                    = 0x0000000D,
    STATUS_TRANSPARENT             = 0x0000000E,
    STATUS_KO                      = 0x0000000F,
    STATUS_BERSERK                 = 0x00000010,
    STATUS_11                      = 0x00000011,
    STATUS_TURN_DONE               = 0x00000012,
    STATUS_13                      = 0x00000013,
    STATUS_14                      = 0x00000014,
    STATUS_15                      = 0x00000015,
    STATUS_16                      = 0x00000016,
    STATUS_17                      = 0x00000017,
    STATUS_18                      = 0x00000018,
    STATUS_HUSTLE                  = 0x00000019,
    STATUS_DANGER                  = 0x0000001A,
    STATUS_1B                      = 0x0000001B,
    STATUS_THINKING                = 0x0000001C,
    STATUS_WEARY                   = 0x0000001D,
    STATUS_1E                      = 0x0000001E,
    STATUS_DEFAULT_TURN_MOD        = 0x0000001F,
    STATUS_SLEEP_TURN_MOD          = 0x00000020,
    STATUS_STATIC_TURN_MOD         = 0x00000021,
    STATUS_FROZEN_TURN_MOD         = 0x00000022,
    STATUS_FEAR_TURN_MOD           = 0x00000023,
    STATUS_DIZZY_TURN_MOD          = 0x00000024,
    STATUS_POISON_TURN_MOD         = 0x00000025,
    STATUS_PARALYZE_TURN_MOD       = 0x00000026,
    STATUS_SHRINK_TURN_MOD         = 0x00000027,
    STATUS_STONE_TURN_MOD          = 0x00000028,
    STATUS_STOP_TURN_MOD           = 0x00000029,
};

enum DoorSwing {
    DOOR_SWING_IN             = -1,
    DOOR_SWING_OUT            = 1,
};

enum VisibilityGroup {
    VIS_GROUP_0             = 0,
    VIS_GROUP_1             = 1,
    VIS_GROUP_2             = 2,
    VIS_GROUP_3             = 3,
    VIS_GROUP_4             = 4,
    VIS_GROUP_5             = 5,
    VIS_GROUP_6             = 6,
    VIS_GROUP_7             = 7,
};

enum ItemSpawnModes {
    ITEM_SPAWN_MODE_KEY                                          = 0x00000000,
    ITEM_SPAWN_MODE_DECORATION                                   = 0x00000001,
    ITEM_SPAWN_MODE_INVISIBLE                                    = 0x00000002,
    ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS                            = 0x00000003,
    ITEM_SPAWN_MODE_BATTLE_REWARD                                = 0x00000004,
    ITEM_SPAWN_MODE_TOSS_NEVER_VANISH                            = 0x00000005,
    ITEM_SPAWN_MODE_TOSS                                         = 0x00000006,
    ITEM_SPAWN_MODE_TOSS_SPAWN_ONCE                              = 0x00000007,
    ITEM_SPAWN_MODE_TOSS_SPAWN_ONCE_NEVER_VANISH                 = 0x00000008,
    ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS_NEVER_VANISH               = 0x00000009,
    ITEM_SPAWN_MODE_ITEM_BLOCK_ITEM                              = 0x0000000A,
    ITEM_SPAWN_MODE_ITEM_BLOCK_BADGE                             = 0x0000000B,
    ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS                            = 0x0000000C,
    ITEM_SPAWN_MODE_FALL_NEVER_VANISH                            = 0x0000000D,
    ITEM_SPAWN_MODE_FALL                                         = 0x0000000E,
    ITEM_SPAWN_MODE_FALL_SPAWN_ONCE                              = 0x0000000F,
    ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS                           = 0x00000010,
    ITEM_SPAWN_MODE_FIXED_NEVER_VANISH                           = 0x00000011,
    ITEM_SPAWN_MODE_FIXED                                        = 0x00000012,
    ITEM_SPAWN_MODE_FIXED_SPAWN_ALWAYS_NEVER_VANISH              = 0x00000013,
    ITEM_SPAWN_MODE_ITEM_BLOCK_SPAWN_ALWAYS                      = 0x00000014,
    ITEM_SPAWN_MODE_ITEM_BLOCK_COIN                              = 0x00000015,
    ITEM_SPAWN_MODE_TOSS_HIGHER_NEVER_VANISH                     = 0x00000016,
    ITEM_SPAWN_MODE_TOSS_FADE1                                   = 0x00000017,
    ITEM_SPAWN_MODE_TOSS_FADE2                                   = 0x00000018,
    ITEM_SPAWN_MODE_TOSS_FADE3                                   = 0x00000019,
    ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS_SMALL                      = 0x0000001A,
    ITEM_SPAWN_MODE_UNKNOWN_1B                                   = 0x0000001B,
    ITEM_SPAWN_AT_PLAYER                                         = 0x0000001C,
};

enum Locations {
    LOCATION_TOAD_TOWN                    = 0x00000001,
    LOCATION_TOAD_TOWN_TUNNELS            = 0x00000002,
    LOCATION_KOOPA_BROS_FORTRESS          = 0x00000007,
    LOCATION_MT_RUGGED                    = 0x00000008,
    LOCATION_DRY_DRY_OUTPOST              = 0x00000009,
    LOCATION_DRY_DRY_DESERT               = 0x0000000A,
    LOCATION_DRY_DRY_RUINS                = 0x0000000B,
    LOCATION_FOREVER_FOREST               = 0x0000000C,
    LOCATION_BOOS_MANSION                 = 0x0000000D,
    LOCATION_TUBBAS_MANOR                 = 0x0000000F,
    LOCATION_SHY_GUYS_TOYBOX              = 0x00000010,
    LOCATION_MT_LAVALAVA                  = 0x00000012,
    LOCATION_CRYSTAL_PALACE               = 0x00000015,
    LOCATION_BOWSERS_CASTLE               = 0x00000016,
    LOCATION_TESTING                      = 0x00000017,
    LOCATION_NONE                         = 0x00000018,
    LOCATION_PEACH_CASTLE_GROUNDS         = 0x00000019,
    LOCATION_PEACHS_CASTLE                = 0x0000001A,
    LOCATION_SHOOTING_STAR_SUMMIT         = 0x0000001B,
    LOCATION_STAR_WAY                     = 0x0000001C,
    LOCATION_STAR_HAVEN                   = 0x0000001D,
    LOCATION_GOOMBA_VILLAGE               = 0x0000001E,
    LOCATION_GOOMBA_ROAD                  = 0x0000001F,
    LOCATION_PLEASANT_PATH                = 0x00000020,
    LOCATION_KOOPA_VILLAGE                = 0x00000021,
    LOCATION_GUSTY_GULCH                  = 0x00000022,
    LOCATION_WINDY_MILL                   = 0x00000023,
    LOCATION_JADE_JUNGLE                  = 0x00000024,
    LOCATION_YOSHIS_VILLAGE               = 0x00000025,
    LOCATION_FLOWER_FIELDS                = 0x00000026,
    LOCATION_CLOUDY_CLIMB                 = 0x00000027,
    LOCATION_SHIVER_CITY                  = 0x00000028,
    LOCATION_SHIVER_SNOWFIELD             = 0x00000029,
    LOCATION_STARBORN_VALLEY              = 0x0000002A,
    LOCATION_SHIVER_MOUNTAIN              = 0x0000002B,
    LOCATION_MARIOS_HOUSE                 = 0x0000002C,
};

typedef enum ScreenTransition {
    TRANSITION_0        = 0,
    TRANSITION_1        = 1,
    TRANSITION_2        = 2,
    TRANSITION_3        = 3,
    TRANSITION_4        = 4,
    TRANSITION_5        = 5,
    TRANSITION_6        = 6,
    TRANSITION_7        = 7,
    TRANSITION_8        = 8,
    TRANSITION_9        = 9,
    TRANSITION_10       = 10,
    TRANSITION_11       = 11,
    TRANSITION_12       = 12,
    TRANSITION_13       = 13,
    TRANSITION_14       = 14,
    TRANSITION_15       = 15,
    TRANSITION_16       = 16,
} ScreenTransition;

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,
};

#ifdef VERSION_US
#include "sprite/sprite_shading_profiles.h"
#elif VERSION_PAL
// TODO: remove and split shading profiles
enum ShadingProfile {
    SHADING_NONE = 0xFFFFFFFF,
    SHADING_TIK_01 = 0,
    SHADING_TIK_02,
    SHADING_TIK_03,
    SHADING_TIK_04,
    SHADING_TIK_05,
    SHADING_TIK_06,
    SHADING_TIK_07,
    SHADING_TIK_08,
    SHADING_TIK_09,
    SHADING_TIK_10,
    SHADING_TIK_12,
    SHADING_TIK_14,
    SHADING_TIK_15,
    SHADING_TIK_18,
    SHADING_TIK_20,
    SHADING_TIK_21,
    SHADING_TIK_22,
    SHADING_TIK_23,
    SHADING_TIK_24,
    SHADING_TIK_25,
    SHADING_KMR_30 = 0x10000,
};
#endif

enum LightSourceFlags {
    LIGHT_SOURCE_DISABLED           = 0,
    LIGHT_SOURCE_ENABLED            = 1,
    LIGHT_SOURCE_LINEAR_FALLOFF     = 4,
    LIGHT_SOURCE_QUADRATIC_FALLOFF  = 8,
};

enum ActionStates {
    ACTION_STATE_IDLE                           = 0x00000000,
    ACTION_STATE_WALK                           = 0x00000001,
    ACTION_STATE_RUN                            = 0x00000002,
    // all states above are considered locomotion states
    ACTION_STATE_JUMP                           = 0x00000003,
    ACTION_STATE_BOUNCE                         = 0x00000004,  ///< Used with Kooper
    ACTION_STATE_HOP                            = 0x00000005,  ///< Released A before apex of jump
    ACTION_STATE_LAUNCH                         = 0x00000006,  ///< Shy Guy Toybox jack-in-the-boxes
    ACTION_STATE_LANDING_ON_SWITCH              = 0x00000007,  ///< Small red/blue ! switches
    ACTION_STATE_FALLING                        = 0x00000008,
    ACTION_STATE_STEP_DOWN                      = 0x00000009,
    ACTION_STATE_LAND                           = 0x0000000A,
    ACTION_STATE_STEP_DOWN_LAND                 = 0x0000000B,
    // Following action states prohibit movement (see set_action_state())
    ACTION_STATE_TALK                           = 0x0000000C,  ///< Reading signs doesn't count
    ACTION_STATE_SPIN_JUMP                      = 0x0000000D,
    ACTION_STATE_SPIN_POUND                     = 0x0000000E,
    ACTION_STATE_TORNADO_JUMP                   = 0x0000000F,
    ACTION_STATE_TORNADO_POUND                  = 0x00000010,
    ACTION_STATE_SLIDING                        = 0x00000011,
    ACTION_STATE_HAMMER                         = 0x00000012,
    ACTION_STATE_13                             = 0x00000013,
    ACTION_STATE_PUSHING_BLOCK                  = 0x00000014,
    ACTION_STATE_HIT_FIRE                       = 0x00000015,  ///< Causes Mario to fly up and take damage. Used for fire bars.
    ACTION_STATE_KNOCKBACK                      = 0x00000016,  // some kind of knockback, does no damage
    ACTION_STATE_HIT_LAVA                       = 0x00000017,
    ACTION_STATE_STEP_UP_PEACH                  = 0x00000018,
    ACTION_STATE_USE_SNEAKY_PARASOL             = 0x00000019,
    ACTION_STATE_SPIN                           = 0x0000001A,
    ACTION_STATE_ENEMY_FIRST_STRIKE             = 0x0000001B,
    ACTION_STATE_RAISE_ARMS                     = 0x0000001C,
    ACTION_STATE_USE_SPINNING_FLOWER            = 0x0000001D,
    ACTION_STATE_USE_MUNCHLESIA                 = 0x0000001E,  ///< Set by the jan_09 squishy flower entity; throws the player in the air.
    ACTION_STATE_USE_TWEESTER                   = 0x0000001F,
    ACTION_STATE_BOUNCE_OFF_SWITCH              = 0x00000020,  ///< Small red/blue ! switches
    ACTION_STATE_RIDE                           = 0x00000021,
    ACTION_STATE_STEP_UP                        = 0x00000022,
    ACTION_STATE_23                             = 0x00000023,
    ACTION_STATE_24                             = 0x00000024,
    ACTION_STATE_INVALID_25                     = 0x00000025,
    ACTION_STATE_USE_SPRING                     = 0x00000026,
};

enum JumpSubstate {
    JUMP_SUBSTATE_0                 = 0,
    JUMP_SUBSTATE_1                 = 1,
};

enum TweesterPartnerStates {
    TWEESTER_PARTNER_INIT       = 0,
    TWEESTER_PARTNER_ATTRACT    = 1,
    TWEESTER_PARTNER_HOLD       = 2,
    TWEESTER_PARTNER_RELEASE    = 3,
};

enum LandOnSwitchSubstate {
    LANDING_ON_SWITCH_SUBSTATE_0    = 0,
    LANDING_ON_SWITCH_SUBSTATE_1    = 1,
    LANDING_ON_SWITCH_SUBSTATE_2    = 2,
};

enum PeachStatusFlags {
    PEACH_STATUS_FLAG_IS_PEACH          = 0x01,
    PEACH_STATUS_FLAG_DISGUISED         = 0x02,
    PEACH_STATUS_FLAG_HAS_PARASOL       = 0x04,
    PEACH_STATUS_FLAG_8                 = 0x08,
    PEACH_STATUS_FLAG_DEPRESSED         = 0x10
};

enum PeachBakingItems {
    PEACH_BAKING_NONE                   = 0,
    PEACH_BAKING_CREAM                  = 1,
    PEACH_BAKING_STRAWBERRY             = 2,
    PEACH_BAKING_BUTTER                 = 3,
    PEACH_BAKING_CLEANSER               = 4,
    PEACH_BAKING_WATER                  = 5,
    PEACH_BAKING_MILK                   = 6,
    PEACH_BAKING_FLOUR                  = 7,
    PEACH_BAKING_EGG                    = 8,
    PEACH_BAKING_COMPLETE_CAKE          = 9,
    PEACH_BAKING_CAKE_BOWL              = 10,
    PEACH_BAKING_CAKE_MIXED             = 11,
    PEACH_BAKING_CAKE_PAN               = 12,
    PEACH_BAKING_CAKE_BATTER            = 13,
    PEACH_BAKING_CAKE_BARE              = 14,
    PEACH_BAKING_SALT                   = 15,
    PEACH_BAKING_SUGAR                  = 16,
    PEACH_BAKING_CAKE_WITH_ICING        = 17,
    PEACH_BAKING_CAKE_WITH_BERRIES      = 18,
};

enum PeachDisguises {
    PEACH_DISGUISE_NONE                 = 0,
    PEACH_DISGUISE_KOOPATROL            = 1,
    PEACH_DISGUISE_HAMMER_BROS          = 2,
    PEACH_DISGUISE_CLUBBA               = 3,
};

// Requires decimals
enum NpcIDs {
    NPC_SELF         = -1,
    NPC_PLAYER       = -2,
    NPC_PARTNER      = -4,
    NPC_BTL_MERLEE   = -10,
    NPC_BTL_SPIRIT   = 100,
};

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_LAUCHER        =   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_SQUARE_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_100000                                      = 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_2                                = 0x00000002,
    ENTITY_COLLISION_PLAYER_TOUCH_CEILING                   = 0x00000004,
    ENTITY_COLLISION_PLAYER_TOUCH_WALL                      = 0x00000008,
    ENTITY_COLLISION_PLAYER_PUSHING_AGAINST                 = 0x00000010,
    ENTITY_COLLISION_FLAG_20                               = 0x00000020,
    ENTITY_COLLISION_PLAYER_HAMMER                          = 0x00000040,
    ENTITY_COLLISION_PARTNER                                = 0x00000080,
    ENTITY_COLLISION_PLAYER_LAST_FLOOR                      = 0x00000100
};

enum EntityHideMode {
    ENTITY_HIDE_MODE_0      =   0,
    ENTITY_HIDE_MODE_1      =   1,
    ENTITY_HIDE_MODE_2      =   2,
};

typedef enum PushGridOccupant {
    PUSH_GRID_EMPTY         = 0,
    PUSH_GRID_BLOCK         = 1,
    PUSH_GRID_OBSTRUCTION   = 2,
    PUSH_GRID_OUT_OF_BOUNDS = 3
} PushGridOccupant;

enum TriggerFlags {
    TRIGGER_ACTIVE              = 0x00000001,
    TRIGGER_ACTIVATED           = 0x00000002,
    TRIGGER_FORCE_ACTIVATE      = 0x00000010,
    TRIGGER_WALL_PUSH           = 0x00000040,
    TRIGGER_FLOOR_TOUCH         = 0x00000080,
    TRIGGER_WALL_PRESS_A        = 0x00000100,
    TRIGGER_FLOOR_JUMP          = 0x00000200,
    TRIGGER_WALL_TOUCH          = 0x00000400,
    TRIGGER_FLOOR_PRESS_A       = 0x00000800,
    TRIGGER_WALL_HAMMER         = 0x00001000,
    TRIGGER_FLAG_2000           = 0x00002000,
    TRIGGER_FLAG_4000           = 0x00004000,
    TRIGGER_FLAG_8000           = 0x00008000,
    TRIGGER_GAME_FLAG_SET       = 0x00010000,
    TRIGGER_AREA_FLAG_SET       = 0x00020000,
    TRIGGER_CEILING_TOUCH       = 0x00040000,
    TRIGGER_FLOOR_ABOVE         = 0x00080000,
    TRIGGER_POINT_BOMB          = 0x00100000,
    TRIGGER_SCRIPT_BOUND        = 0x01000000
};

enum ItemEntityFlags {
    ITEM_ENTITY_FLAG_CAM0          = 0x00000001,
    ITEM_ENTITY_FLAG_CAM1          = 0x00000002,
    ITEM_ENTITY_FLAG_CAM2          = 0x00000004,
    ITEM_ENTITY_FLAG_CAM3          = 0x00000008,
    ITEM_ENTITY_FLAG_10            = 0x00000010,
    ITEM_ENTITY_FLAG_HIDDEN        = 0x00000040, // do not render; player cant pickup
    ITEM_ENTITY_FLAG_80            = 0x00000080,
    ITEM_ENTITY_FLAG_AUTO_COLLECT  = 0x00000100,
    ITEM_ENTITY_FLAG_NEVER_VANISH  = 0x00000200,
    ITEM_ENTITY_FLAG_400           = 0x00000400,
    ITEM_ENTITY_FLAG_800           = 0x00000800,
    ITEM_ENTITY_FLAG_1000          = 0x00001000,
    ITEM_ENTITY_FLAG_FIXED         = 0x00002000,
    ITEM_ENTITY_RESIZABLE          = 0x00004000,
    ITEM_ENTITY_FLAG_8000          = 0x00008000,
    ITEM_ENTITY_FLAG_10000         = 0x00010000,
    ITEM_ENTITY_FLAG_20000         = 0x00020000,
    ITEM_ENTITY_FLAG_40000         = 0x00040000,
    ITEM_ENTITY_FLAG_TRANSPARENT   = 0x00080000,
    ITEM_ENTITY_FLAG_100000        = 0x00100000,
    ITEM_ENTITY_FLAG_CANT_COLLECT  = 0x00200000,
    ITEM_ENTITY_FLAG_400000        = 0x00400000,
    ITEM_ENTITY_FLAG_800000        = 0x00800000,
    ITEM_ENTITY_FLAG_1000000       = 0x01000000,
    ITEM_ENTITY_FLAG_2000000       = 0x02000000,
    ITEM_ENTITY_FLAG_4000000       = 0x04000000,
    ITEM_ENTITY_FLAG_8000000       = 0x08000000,
    ITEM_ENTITY_FLAG_10000000      = 0x10000000,
    ITEM_ENTITY_FLAG_20000000      = 0x20000000,
    ITEM_ENTITY_FLAG_40000000      = 0x40000000,
    ITEM_ENTITY_FLAG_80000000      = 0x80000000,
};

// Worker
enum WorkerFlags {
    WORKER_FLAG_1                       = 0x00000001,
    WORKER_FLAG_SKIP_DRAW_UNTIL_UPDATE  = 0x00000002,
    WORKER_FLAG_FRONT_UI                = 0x00000004,
    WORKER_FLAG_BACK_UI                 = 0x00000008,
};

enum Buttons {
    BUTTON_C_RIGHT      = 0x00000001,
    BUTTON_C_LEFT       = 0x00000002,
    BUTTON_C_DOWN       = 0x00000004,
    BUTTON_C_UP         = 0x00000008,
    BUTTON_R            = 0x00000010,
    BUTTON_L            = 0x00000020,
    BUTTON_D_RIGHT      = 0x00000100,
    BUTTON_D_LEFT       = 0x00000200,
    BUTTON_D_DOWN       = 0x00000400,
    BUTTON_D_UP         = 0x00000800,
    BUTTON_START        = 0x00001000,
    BUTTON_Z            = 0x00002000,
    BUTTON_B            = 0x00004000,
    BUTTON_A            = 0x00008000,
    BUTTON_STICK_UP     = 0x00010000,
    BUTTON_STICK_DOWN   = 0x00020000,
    BUTTON_STICK_LEFT   = 0x00040000,
    BUTTON_STICK_RIGHT  = 0x00080000,
};

enum PlayerBuffs {
    PLAYER_BUFF_ALL             = 0xFFFFFFFF,
    PLAYER_BUFF_JUMP_CHARGE     = 0x00000001,
    PLAYER_BUFF_HAMMER_CHARGE   = 0x00000002,
    PLAYER_BUFF_STONE           = 0x00000008,
    PLAYER_BUFF_HUSTLE          = 0x00000010,
    PLAYER_BUFF_STATIC          = 0x00000020,
    PLAYER_BUFF_TRANSPARENT     = 0x00000040,
    PLAYER_BUFF_CLOUD_NINE      = 0x00000080,
    PLAYER_BUFF_TURBO_CHARGE    = 0x00000100,
    PLAYER_BUFF_WATER_BLOCK     = 0x00000200,
    PLAYER_BUFF_PARTNER_GLOWING = 0x00010000,
};

enum StatusFlags {
    STATUS_FLAG_1               = 0x00000001,
    STATUS_FLAG_4               = 0x00000004,
    STATUS_FLAG_8               = 0x00000008,
    STATUS_FLAG_20              = 0x00000020,
    STATUS_FLAG_40              = 0x00000040,
    STATUS_FLAG_100             = 0x00000100,
    STATUS_FLAG_200             = 0x00000200,
    STATUS_FLAG_SLEEP           = 0x00001000,
    STATUS_FLAG_STATIC          = 0x00002000,
    STATUS_FLAG_FROZEN          = 0x00004000,
    STATUS_FLAG_FEAR            = 0x00008000,
    STATUS_FLAG_PARALYZE        = 0x00010000,
    STATUS_FLAG_POISON          = 0x00020000,
    STATUS_FLAG_DIZZY           = 0x00040000,
    STATUS_FLAG_SHRINK          = 0x00080000,
    STATUS_FLAG_STONE           = 0x00100000,
    STATUS_FLAG_STOP            = 0x00200000,
    STATUS_FLAG_400000          = 0x00400000,
    STATUS_FLAG_KO              = 0x01000000,
    STATUS_FLAG_GLOWING         = 0x02000000,
    STATUS_FLAG_TRANSPARENT     = 0x04000000,
    STATUS_FLAG_ATTACK_BOOST    = 0x08000000,
    STATUS_FLAG_DEFENSE_BOOST   = 0x10000000,
    STATUS_FLAG_CHILL_OUT       = 0x20000000,
    STATUS_FLAG_RIGHT_ON        = 0x40000000,
    STATUS_FLAG_80000000        = 0x80000000,
};

#define STATUS_FLAGS_IMMOBILIZED \
     (STATUS_FLAG_STONE \
    | STATUS_FLAG_STOP \
    | STATUS_FLAG_DIZZY \
    | STATUS_FLAG_PARALYZE \
    | STATUS_FLAG_FEAR \
    | STATUS_FLAG_FROZEN \
    | STATUS_FLAG_SLEEP)

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_NO_OTHER_DAMAGE_POPUPS     = 0x20000000,
    DAMAGE_TYPE_STATUS_ALWAYS_HITS         = 0x40000000,
    DAMAGE_TYPE_TRIGGER_LUCKY              = 0x80000000,
};

enum PartnerIDs {
    PARTNER_NONE                = 0x00000000,
    PARTNER_GOOMBARIO           = 0x00000001,
    PARTNER_KOOPER              = 0x00000002,
    PARTNER_BOMBETTE            = 0x00000003,
    PARTNER_PARAKARRY           = 0x00000004,
    PARTNER_GOOMPA              = 0x00000005,
    PARTNER_WATT                = 0x00000006,
    PARTNER_SUSHIE              = 0x00000007,
    PARTNER_LAKILESTER          = 0x00000008,
    PARTNER_BOW                 = 0x00000009,
    PARTNER_GOOMBARIA           = 0x0000000A,
    PARTNER_TWINK               = 0x0000000B,
};

enum EventSupressFlags {
    SUPPRESS_EVENT_SPIKY_TOP        = 0x1,
    SUPPRESS_EVENT_EXPLODE_CONTACT  = 0x2,
    SUPPRESS_EVENT_SPIKY_FRONT      = 0x4,
    SUPPRESS_EVENT_SHOCK_CONTACT    = 0x8,
    SUPPRESS_EVENT_BURN_CONTACT     = 0x10,
    SUPPRESS_EVENT_FLAG_80          = 0x80,     // supresses events associated with ACTOR_EVENT_FLAG_200000 used by pokeys and spinies
    SUPPRESS_EVENT_FLAG_200         = 0x200,    // unused?
    SUPPRESS_EVENT_ALL              = 0xFFFF,
    SUPPRESS_EVENT_FLAG_10000       = 0x10000,  // usage is a bug?
};

enum PartnerActions {
    PARTNER_ACTION_NONE             = 0, // generic state
    PARTNER_ACTION_USE              = 1, // generic state
    PARTNER_ACTION_KOOPER_GATHER    = 1,
    PARTNER_ACTION_KOOPER_TOSS      = 2,
    PARTNER_ACTION_BOMBETTE_1       = 1,
    PARTNER_ACTION_BOMBETTE_2       = 2,
    PARTNER_ACTION_BOMBETTE_3       = 3,
    PARTNER_ACTION_PARAKARRY_HOVER  = 1,
    PARTNER_ACTION_WATT_SHINE       = 1,
    PARTNER_ACTION_LAKILESTER_1     = 1,
};

enum PartnerStates {
    PARTNER_CMD_NONE                = 0,
    PARTNER_CMD_INIT                = 1,
    PARTNER_CMD_INSTA_SWITCH        = 2, // skips put away / take out scripts. assumes valid current partner.
    PARTNER_CMD_SWITCH              = 3, // assumes valid current partner.
    PARTNER_CMD_PUT_AWAY            = 4, // switches to null partner.
    PARTNER_CMD_INSTA_PUT_AWAY      = 5,
    PARTNER_CMD_TAKE_OUT            = 6, // assumes no current partner.
    PARTNER_CMD_INSTA_TAKE_OUT      = 7,
    PARTNER_CMD_USE_ABILITY         = 8,
    PARTNER_CMD_RESET               = 9,
    PARTNER_CMD_ABORT               = 10,
};

/// @see gAreas
enum Areas {
    AREA_KMR,
    AREA_MAC,
    AREA_TIK,
    AREA_KGR,
    AREA_KKJ,
    AREA_HOS,
    AREA_NOK,
    AREA_TRD,
    AREA_IWA,
    AREA_DRO,
    AREA_SBK,
    AREA_ISK,
    AREA_MIM,
    AREA_OBK,
    AREA_ARN,
    AREA_DGB,
    AREA_OMO,
    AREA_JAN,
    AREA_KZN,
    AREA_FLO,
    AREA_SAM,
    AREA_PRA,
    AREA_KPA,
    AREA_OSR,
    AREA_END,
    AREA_MGM,
    AREA_GV,
    AREA_TST,
};

enum NpcPalSwapState {
    NPC_PALSWAP_HOLDING_A           = 0,
    NPC_PALSWAP_FROM_A_TO_B         = 1,
    NPC_PALSWAP_HOLDING_B           = 2,
    NPC_PALSWAP_FROM_B_TO_A         = 3
};

enum NpcFlags {
    NPC_FLAG_ENABLED                        = 0x00000001, // Does nothing aside from making npc->flags !=
    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_8                              = 0x00000008,
    NPC_FLAG_HAS_SHADOW                     = 0x00000010, // Set by default and by enable_npc_shadow
    NPC_FLAG_NO_SHADOW_RAYCAST              = 0x00000020, // Shadows are tied to NPC position instead of raycasting below the NPC
    NPC_FLAG_IGNORE_WORLD_COLLISION         = 0x00000040,
    NPC_FLAG_UPSIDE_DOWN                    = 0x00000080, // Render NPCs upside-down
    NPC_FLAG_IGNORE_PLAYER_COLLISION        = 0x00000100,
    NPC_FLAG_GRAVITY                        = 0x00000200, // Enables gravity. Does nothing if NPC_FLAG_JUMPING is set.
    NPC_FLAG_DONT_UPDATE_SHADOW_Y           = 0x00000400, // When shadow raycasting is off, only X and Z update as NPC moves
    NPC_FLAG_JUMPING                        = 0x00000800,
    NPC_FLAG_GROUNDED                       = 0x00001000, // Touching the ground
    NPC_FLAG_COLLDING_WITH_WORLD            = 0x00002000, // Colliding with world in front or to the sides of the NPC
    NPC_FLAG_COLLDING_FORWARD_WITH_WORLD    = 0x00004000, // Colliding with world directly in front of NPC
    NPC_FLAG_IGNORE_ENTITY_COLLISION        = 0x00008000,
    NPC_FLAG_DIRTY_SHADOW                   = 0x00010000, // Set if shadow is dirty (needs to be repositioned etc.)
    NPC_FLAG_REFLECT_WALL                   = 0x00020000, // Mirror rendering across z=0
    NPC_FLAG_IGNORE_CAMERA_FOR_YAW          = 0x00040000, // Do not adjust renderYaw to face the camera
    NPC_FLAG_REFLECT_FLOOR                  = 0x00080000, // Mirror rendering across y=0
    NPC_FLAG_MOTION_BLUR                    = 0x00100000, // Gives motion blur effect as NPC moves. Set by enable_npc_blur
    NPC_FLAG_200000                         = 0x00200000,
    NPC_FLAG_TOUCHES_GROUND                 = 0x00400000, // Can cause effects to play when touching special surface types
    NPC_FLAG_HIDING                         = 0x00800000,
    NPC_FLAG_HAS_NO_SPRITE                  = 0x01000000,
    NPC_FLAG_COLLIDING_WITH_NPC             = 0x02000000,
    NPC_FLAG_PARTNER                        = 0x04000000,
    NPC_FLAG_WORLD_COLLISION_DIRTY          = 0x08000000,
    NPC_FLAG_10000000                       = 0x10000000,
    NPC_FLAG_20000000                       = 0x20000000,
    NPC_FLAG_NO_ANIMS_LOADED                = 0x40000000, // Npc has no animations loaded
    NPC_FLAG_SUSPENDED                      = 0x80000000,
};

enum PlayerStatusFlags {
    PS_FLAG_AIRBORNE                         = 0x0000000E,
    PS_FLAG_HAS_REFLECTION                   = 0x00000001,
    PS_FLAG_JUMPING                          = 0x00000002,
    PS_FLAG_FALLING                          = 0x00000004,
    PS_FLAG_FLYING                           = 0x00000008,
    PS_FLAG_SLIDING                          = 0x00000010,
    /* Paused either via the start menu, or through another menu that causes a pause (like the item menu) */
    PS_FLAG_PAUSED                           = 0x00000020,
    PS_FLAG_NO_CHANGE_PARTNER                = 0x00000040,
    PS_FLAG_NO_PARTNER_USAGE                 = 0x00000080,
    /* Prevents opening menus that would require a game-time pause (start menu, item menu, etc) */
    PS_FLAG_PAUSE_DISABLED                   = 0x00000100,
    /* Doing either a spin jump or a tornado jump */
    PS_FLAG_SPECIAL_JUMP                     = 0x00000200,
    /* Landing from either a spin jump or a tornado jump */
    PS_FLAG_SPECIAL_LAND                     = 0x00000400,
    /* Burning from touching a fire hazard of some kind */
    PS_FLAG_HIT_FIRE                         = 0x00000800,
    PS_FLAG_NO_STATIC_COLLISION              = 0x00001000,
    PS_FLAG_INPUT_DISABLED                   = 0x00002000,
    /* Indicates that Mario's lateral movement is currently commandeered by a cutscene or script */
    PS_FLAG_CUTSCENE_MOVEMENT                = 0x00004000,
    /* Either outta sight with Bow, or temporarily damage boosted - makes Mario ignore fire bars */
    PS_FLAG_HAZARD_INVINCIBILITY             = 0x00008000,
    /* Spinning either through pressing Z or the tornado jump - causes a ghost trail to render */
    PS_FLAG_SPINNING                         = 0x00020000,
    /* Slows Mario's physics and animations to half speed - responsible for the dramatic slowdown when starting an encounter by jumping on an enemy.
       Also stops Mario from successfully completing a hammer. */
    PS_FLAG_ENTERING_BATTLE                  = 0x00040000,
    /* Occurs after hitting a heart block - temporarily prevents encounters from starting */
    PS_FLAG_ARMS_RAISED                      = 0x00080000,
    /* Stops Mario's sprite yaw from being adjusted, usually so a cutscene can do it instead. */
    PS_FLAG_ROTATION_LOCKED                  = 0x00100000,
    /* Forces Mario's sprite to either face exactly left or right, without transitioning. */
    PS_FLAG_NO_FLIPPING                      = 0x00200000,
    /* Prevents Mario from moving laterally */
    PS_FLAG_MOVEMENT_LOCKED                  = 0x00400000, //TODO misnamed
    /* Stops Mario from air steering or using a special jump during a scripted fall */
    PS_FLAG_SCRIPTED_FALL                    = 0x00800000,
    /* Not fully sure about this one, but appears to mark the frame that the check for what to hammer occurs */
    PS_FLAG_HAMMER_CHECK                     = 0x01000000,
    PS_FLAG_HAS_CONVERSATION_NPC             = 0x02000000,
    PS_FLAG_CAMERA_DOESNT_FOLLOW             = 0x04000000,
    /* Mario just interacted with something (usually cleared on the same frame) */
    PS_FLAG_INTERACTED                       = 0x08000000,
    /* Makes Mario face forwards, used when talking to NPCs, or when on Lakilester */
    PS_FLAG_FACE_FORWARDS                    = 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,
    PA_FLAG_80000                            = 0x00080000,
    /* 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,
    PA_FLAG_2000000                          = 0x02000000,
    PA_FLAG_4000000                          = 0x04000000,
    PA_FLAG_8000000                          = 0x08000000,
    /* 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_PARTNER_USAGE_STOPPED            = 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_MINUS_6                     = -6,
    POPUP_STATE_MINUS_7                     = -7,
    POPUP_STATE_MINUS_8                     = -8,
};

enum PopupResult {
    POPUP_RESULT_MINUS_1    = -1,
    POPUP_RESULT_MINUS_2    = -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,
};

/// not really
enum RenderMode {
    RENDER_MODE_SURF_SOLID_AA_ZB_LAYER0          = 0x00000000,
    RENDER_MODE_SURFACE_OPA                      = 0x00000001,
    RENDER_MODE_2                                = 0x00000002,
    RENDER_MODE_SURFACE_OPA_NO_AA                = 0x00000003,
    RENDER_MODE_SURFACE_OPA_NO_ZB                = 0x00000004,
    RENDER_MODE_DECAL_OPA                        = 0x00000005,
    RENDER_MODE_6                                = 0x00000006,
    RENDER_MODE_DECAL_OPA_NO_AA                  = 0x00000007,
    RENDER_MODE_8                                = 0x00000008,
    RENDER_MODE_INTERSECTING_OPA                 = 0x00000009,
    RENDER_MODE_A                                = 0x0000000A,
    RENDER_MODE_B                                = 0x0000000B,
    RENDER_MODE_C                                = 0x0000000C,
    RENDER_MODE_ALPHATEST                        = 0x0000000D,
    RENDER_MODE_E                                = 0x0000000E,
    RENDER_MODE_ALPHATEST_ONESIDED               = 0x0000000F,
    RENDER_MODE_ALPHATEST_NO_ZB                  = 0x00000010,
    RENDER_MODE_SURFACE_XLU_LAYER1               = 0x00000011,
    RENDER_MODE_12                               = 0x00000012,
    RENDER_MODE_SURFACE_XLU_NO_AA                = 0x00000013,
    RENDER_MODE_SURFACE_XLU_NO_ZB                = 0x00000014,
    RENDER_MODE_SURFXLU_ZB_ZUPD                  = 0x00000015,
    RENDER_MODE_SURFACE_XLU_LAYER2               = 0x00000016,
    RENDER_MODE_17                               = 0x00000017,
    RENDER_MODE_18                               = 0x00000018,
    RENDER_MODE_19                               = 0x00000019,
    RENDER_MODE_DECAL_XLU                        = 0x0000001A,
    RENDER_MODE_1B                               = 0x0000001B,
    RENDER_MODE_DECAL_XLU_NOAA                   = 0x0000001C,
    RENDER_MODE_1D                               = 0x0000001D,
    RENDER_MODE_1E                               = 0x0000001E,
    RENDER_MODE_1F                               = 0x0000001F,
    RENDER_MODE_SHADOW                           = 0x00000020,
    RENDER_MODE_21                               = 0x00000021,
    RENDER_MODE_SURFACE_XLU_LAYER3               = 0x00000022,
    RENDER_MODE_23                               = 0x00000023,
    RENDER_MODE_24                               = 0x00000024,
    RENDER_MODE_25                               = 0x00000025,
    RENDER_MODE_INTERSECTING_XLU                 = 0x00000026,
    RENDER_MODE_27                               = 0x00000027,
    RENDER_MODE_28                               = 0x00000028,
    RENDER_MODE_SURFXLU_AA_ZB_ZUPD               = 0x00000029,
    RENDER_MODE_2A                               = 0x0000002A,
    RENDER_MODE_2B                               = 0x0000002B,
    RENDER_MODE_2C                               = 0x0000002C,
    RENDER_MODE_2D                               = 0x0000002D,
    RENDER_MODE_CLOUD                            = 0x0000002E,
    RENDER_MODE_CLOUD_NO_ZB                      = 0x0000002F,
    RENDER_MODE_COUNT                            = 0x00000030,
};

enum RenderTaskFlags {
    RENDER_TASK_FLAG_ENABLED        = 0x01,
    RENDER_TASK_FLAG_REFLECT_FLOOR  = 0x02,
    RENDER_TASK_FLAG_20             = 0x20,
};

enum ActorFlags {
    ACTOR_FLAG_DISABLED          = 0x00000001, ///< Disables the actor.
    ACTOR_FLAG_2                 = 0x00000002,
    ACTOR_FLAG_NO_SHADOW         = 0x00000004, ///< Hide shadow.
    ACTOR_FLAG_8                 = 0x00000008,
    ACTOR_FLAG_10                = 0x00000010,
    ACTOR_FLAG_20                = 0x00000020,
    ACTOR_FLAG_40                = 0x00000040,
    ACTOR_FLAG_80                = 0x00000080,
    ACTOR_FLAG_100               = 0x00000100,
    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_2000              = 0x00002000,
    ACTOR_FLAG_TARGET_ONLY       = 0x00004000, ///< Battle ends even if undefeated. No turn.
    ACTOR_FLAG_8000              = 0x00008000,
    ACTOR_FLAG_10000             = 0x00010000,
    ACTOR_FLAG_20000             = 0x00020000,
    ACTOR_FLAG_HIDE_HP_BAR       = 0x00040000, ///< Hide HP bar.
    ACTOR_FLAG_80000             = 0x00080000,
    ACTOR_FLAG_100000            = 0x00100000,
    ACTOR_FLAG_NO_ATTACK         = 0x00200000, ///< Skip attack turn.
    ACTOR_FLAG_NO_DMG_APPLY      = 0x00400000, ///< Damage is not applied to actor HP.
    ACTOR_FLAG_800000            = 0x00800000,
    ACTOR_FLAG_1000000           = 0x01000000,
    ACTOR_FLAG_NO_DMG_POPUP      = 0x02000000, ///< Hide damage popup.
    ACTOR_FLAG_4000000           = 0x04000000,
    ACTOR_FLAG_8000000           = 0x08000000,
    ACTOR_FLAG_BLUR_ENABLED      = 0x10000000,
    ACTOR_FLAG_20000000          = 0x20000000,
    ACTOR_FLAG_40000000          = 0x40000000,
    ACTOR_FLAG_80000000          = 0x80000000,
};

enum ActorPartFlags {
    ACTOR_PART_FLAG_INVISIBLE               = 0x00000001,
    ACTOR_PART_FLAG_2                       = 0x00000002,
    ACTOR_PART_FLAG_4                       = 0x00000004,
    ACTOR_PART_FLAG_8                       = 0x00000008,
    ACTOR_PART_FLAG_10                      = 0x00000010,
    ACTOR_PART_FLAG_20                      = 0x00000020,
    ACTOR_PART_FLAG_40                      = 0x00000040,
    ACTOR_PART_FLAG_80                      = 0x00000080,
    ACTOR_PART_FLAG_100                     = 0x00000100,
    ACTOR_PART_FLAG_200                     = 0x00000200,
    ACTOR_PART_FLAG_400                     = 0x00000400,
    ACTOR_PART_FLAG_800                     = 0x00000800,
    ACTOR_PART_FLAG_1000                    = 0x00001000,
    ACTOR_PART_FLAG_2000                    = 0x00002000, ///< electrified Plays extra hurt SFX?
    ACTOR_PART_FLAG_4000                    = 0x00004000,
    ACTOR_PART_FLAG_8000                    = 0x00008000,
    ACTOR_PART_FLAG_10000                   = 0x00010000,
    ACTOR_PART_FLAG_NO_TARGET               = 0x00020000, ///< Cannot be targeted.
    ACTOR_PART_FLAG_40000                   = 0x00040000,
    ACTOR_PART_FLAG_80000                   = 0x00080000,
    ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION   = 0x00100000,
    ACTOR_PART_FLAG_200000                  = 0x00200000,
    ACTOR_PART_FLAG_400000                  = 0x00400000,
    ACTOR_PART_FLAG_MULTI_TARGET            = 0x00800000, ///< Can be targeted with multi-target attacks (e.g. Star Storm).
    ACTOR_PART_FLAG_1000000                 = 0x01000000,
    ACTOR_PART_FLAG_2000000                 = 0x02000000,
    ACTOR_PART_FLAG_4000000                 = 0x04000000,
    ACTOR_PART_FLAG_8000000                 = 0x08000000,
    ACTOR_PART_FLAG_10000000                = 0x10000000,
    ACTOR_PART_FLAG_20000000                = 0x20000000,
    ACTOR_PART_FLAG_40000000                = 0x40000000,
    ACTOR_PART_FLAG_80000000                = 0x80000000,
};

enum ActorEventFlags {
    ACTOR_EVENT_FLAG_0                      = 0x00000000,
    ACTOR_EVENT_FLAG_1                      = 0x00000001,
    ACTOR_EVENT_FLAG_FIREY                  = 0x00000002, ///< Player takes burn damage upon contact.
    ACTOR_EVENT_FLAG_4                      = 0x00000004,
    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_40                     = 0x00000040,
    ACTOR_EVENT_FLAG_ELECTRIFIED            = 0x00000080, ///< Player takes shock damage upon contact.
    ACTOR_EVENT_FLAG_100                    = 0x00000100,
    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_800                    = 0x00000800,
    ACTOR_EVENT_FLAG_FLIPABLE               = 0x00001000, ///< Actor can be flipped; triggered by jump and quake attacks.
    ACTOR_EVENT_FLAG_2000                   = 0x00002000,
    ACTOR_EVENT_FLAG_GROUNDABLE             = 0x00004000, ///< Actor can be knocked down from flight; triggered by jump attacks.
    ACTOR_EVENT_FLAG_EXPLODE_ON_CONTACT     = 0x00008000,
    ACTOR_EVENT_FLAG_SPIKY_FRONT            = 0x00010000, ///< Player takes spike damage from hammer attacks.
    ACTOR_EVENT_FLAG_20000                  = 0x00020000,
    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_200000                 = 0x00200000,
    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.
    ACTOR_EVENT_FLAG_1000000                = 0x01000000,
    ACTOR_EVENT_FLAG_2000000                = 0x02000000,
    ACTOR_EVENT_FLAG_4000000                = 0x04000000,
    ACTOR_EVENT_FLAG_8000000                = 0x08000000,
    ACTOR_EVENT_FLAG_10000000               = 0x10000000,
    ACTOR_EVENT_FLAG_20000000               = 0x20000000,
    ACTOR_EVENT_FLAG_40000000               = 0x40000000,
    ACTOR_EVENT_FLAG_80000000               = 0x80000000,
};

enum PartnerAnimIndices {
    PARTNER_ANIM_INDEX_STILL      = 0x0,
    PARTNER_ANIM_INDEX_WALK       = 0x1,
    PARTNER_ANIM_INDEX_JUMP       = 0x2,
    PARTNER_ANIM_INDEX_FALL       = 0x3,
    PARTNER_ANIM_INDEX_FLY        = 0x4,
    PARTNER_ANIM_INDEX_IDLE       = 0x5,
    PARTNER_ANIM_INDEX_RUN        = 0x6,
    PARTNER_ANIM_INDEX_TALK       = 0x7,
    PARTNER_ANIM_INDEX_HURT       = 0x8,
};

enum AnyPartnerAnims {
    PARTNER_ANIM_STILL      = 0x101,
    PARTNER_ANIM_WALK       = 0x102,
    PARTNER_ANIM_JUMP       = 0x103,
    PARTNER_ANIM_FALL       = 0x104,
    PARTNER_ANIM_FLY        = 0x105,
    PARTNER_ANIM_IDLE       = 0x106,
    PARTNER_ANIM_RUN        = 0x107,
    PARTNER_ANIM_TALK       = 0x108,
    PARTNER_ANIM_HURT       = 0x109,
};

enum EnemyAnimIndices {
    ENEMY_ANIM_INDEX_IDLE         = 0,
    ENEMY_ANIM_INDEX_WALK         = 1,
    ENEMY_ANIM_INDEX_RUN          = 2,
    ENEMY_ANIM_INDEX_CHASE        = 3,
    ENEMY_ANIM_INDEX_JUMP         = 4,
    ENEMY_ANIM_INDEX_05           = 5,
    ENEMY_ANIM_INDEX_DEATH        = 6,
    ENEMY_ANIM_INDEX_HIT          = 7,
    ENEMY_ANIM_INDEX_MELEE_PRE    = 8,
    ENEMY_ANIM_INDEX_MELEE_HIT    = 9,
};

enum AnyEnemyAnims {
    ENEMY_ANIM_IDLE         = 0x201,
    ENEMY_ANIM_WALK         = 0x202,
    ENEMY_ANIM_RUN          = 0x203,
    ENEMY_ANIM_CHASE        = 0x204,
    ENEMY_ANIM_JUMP         = 0x205,
    ENEMY_ANIM_5            = 0x206,
    ENEMY_ANIM_DEATH        = 0x207,
    ENEMY_ANIM_HIT          = 0x208,
    ENEMY_ANIM_8            = 0x209,
    ENEMY_ANIM_9            = 0x20A,
    ENEMY_ANIM_A            = 0x20B,
    ENEMY_ANIM_B            = 0x20C,
    ENEMY_ANIM_C            = 0x20D,
    ENEMY_ANIM_D            = 0x20E,
    ENEMY_ANIM_E            = 0x20F,
    ENEMY_ANIM_F            = 0x210,
};

enum FirstStrikes {
    FIRST_STRIKE_NONE           = 0,
    FIRST_STRIKE_PLAYER         = 1,
    FIRST_STRIKE_ENEMY          = 2,
};

enum TimeFreezeMode {
    TIME_FREEZE_NORMAL          = 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_07                        = 0x00000007,
    ACTION_COMMAND_DIZZY_SHELL               = 0x00000008,
    ACTION_COMMAND_FIRE_SHELL                = 0x00000009,
    ACTION_COMMAND_0A                        = 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_WATER_BLOCK               = 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 EffectGfxDataFlags {
    FX_GRAPHICS_DISABLED                = 0x00000000,
    FX_GRAPHICS_ENABLED                 = 0x00000001,
    FX_GRAPHICS_FLAG_2                  = 0x00000002,
    FX_GRAPHICS_FLAG_4                  = 0x00000004,
    FX_GRAPHICS_FLAG_8                  = 0x00000008,
    FX_GRAPHICS_FLAG_10                 = 0x00000010,
    FX_GRAPHICS_FLAG_20                 = 0x00000020,
    FX_GRAPHICS_FLAG_40                 = 0x00000040,
    FX_GRAPHICS_FLAG_80                 = 0x00000080,
    FX_GRAPHICS_FLAG_100                = 0x00000100,
    FX_GRAPHICS_FLAG_200                = 0x00000200,
    FX_GRAPHICS_FLAG_400                = 0x00000400,
    FX_GRAPHICS_FLAG_800                = 0x00000800,
    FX_GRAPHICS_FLAG_1000               = 0x00001000,
    FX_GRAPHICS_FLAG_2000               = 0x00002000,
    FX_GRAPHICS_FLAG_4000               = 0x00004000,
    FX_GRAPHICS_FLAG_8000               = 0x00008000,
    FX_GRAPHICS_FLAG_10000              = 0x00010000,
    FX_GRAPHICS_FLAG_20000              = 0x00020000,
    FX_GRAPHICS_FLAG_40000              = 0x00040000,
    FX_GRAPHICS_FLAG_80000              = 0x00080000,
    FX_GRAPHICS_FLAG_100000             = 0x00100000,
    FX_GRAPHICS_FLAG_200000             = 0x00200000,
    FX_GRAPHICS_FLAG_400000             = 0x00400000,
    FX_GRAPHICS_FLAG_800000             = 0x00800000,
    FX_GRAPHICS_FLAG_1000000            = 0x01000000,
    FX_GRAPHICS_FLAG_2000000            = 0x02000000,
    FX_GRAPHICS_FLAG_4000000            = 0x04000000,
    FX_GRAPHICS_FLAG_8000000            = 0x08000000,
    FX_GRAPHICS_FLAG_10000000           = 0x10000000,
    FX_GRAPHICS_FLAG_20000000           = 0x20000000,
    FX_GRAPHICS_FLAG_40000000           = 0x40000000,
    FX_GRAPHICS_FLAG_80000000           = 0x80000000,
};

enum MoveIDs {
    MOVE_NONE                       = 0x00000000,
    MOVE_UNUSED_01                  = 0x00000001,
    MOVE_UNUSED_02                  = 0x00000002,
    MOVE_HAMMER1                    = 0x00000003,
    MOVE_HAMMER2                    = 0x00000004,
    MOVE_HAMMER3                    = 0x00000005,
    MOVE_UNUSED_HAMMER4             = 0x00000006,
    MOVE_UNUSED_HAMMER5             = 0x00000007,
    MOVE_SPIN_SMASH                 = 0x00000008,
    MOVE_QUAKE_HAMMER               = 0x00000009,
    MOVE_D_DOWN_POUND               = 0x0000000A,
    MOVE_SMASH_CHARGE0              = 0x0000000B,
    MOVE_UNUSED_HAMMER_0C           = 0x0000000C,
    MOVE_HAMMER_THROW               = 0x0000000D,
    MOVE_MEGA_QUAKE                 = 0x0000000E,
    MOVE_SMASH_CHARGE               = 0x0000000F,
    MOVE_UNUSED_HAMMER_10           = 0x00000010,
    MOVE_SUPER_SMASH_CHARGE         = 0x00000011,
    MOVE_UNUSED_HAMMER_12           = 0x00000012,
    MOVE_AUTO_SMASH                 = 0x00000013,
    MOVE_POWER_QUAKE                = 0x00000014,
    MOVE_POWER_SMASH                = 0x00000015,
    MOVE_SUPER_SMASH                = 0x00000016,
    MOVE_MEGA_SMASH                 = 0x00000017,
    MOVE_SHRINK_SMASH               = 0x00000018,
    MOVE_SHELL_CRACK                = 0x00000019,
    MOVE_JUMP1                      = 0x0000001A,
    MOVE_JUMP2                      = 0x0000001B,
    MOVE_JUMP3                      = 0x0000001C,
    MOVE_UNUSED_JUMP4               = 0x0000001D,
    MOVE_UNUSED_JUMP5               = 0x0000001E,
    MOVE_MULTIBOUNCE                = 0x0000001F,
    MOVE_POWER_BOUNCE               = 0x00000020,
    MOVE_SLEEP_STOMP                = 0x00000021,
    MOVE_DIZZY_STOMP                = 0x00000022,
    MOVE_JUMP_CHARGE0               = 0x00000023,
    MOVE_UNUSED_24                  = 0x00000024,
    MOVE_JUMP_CHARGE                = 0x00000025,
    MOVE_UNUSED_26                  = 0x00000026,
    MOVE_SUPER_JUMP_CHARGE          = 0x00000027,
    MOVE_UNUSED_28                  = 0x00000028,
    MOVE_AUTO_JUMP                  = 0x00000029,
    MOVE_AUTO_MULTIBOUNCE           = 0x0000002A,
    MOVE_POWER_JUMP                 = 0x0000002B,
    MOVE_SUPER_JUMP                 = 0x0000002C,
    MOVE_MEGA_JUMP                  = 0x0000002D,
    MOVE_D_DOWN_JUMP                = 0x0000002E,
    MOVE_SHRINK_STOMP               = 0x0000002F,
    MOVE_EARTHQUAKE_JUMP            = 0x00000030,
    MOVE_UNUSED_DEFEND_PLUS         = 0x00000031,
    MOVE_UNUSED_32                  = 0x00000032,
    MOVE_DAMAGE_DODGE               = 0x00000033,
    MOVE_ITEMS                      = 0x00000034,
    MOVE_DOUBLE_DIP                 = 0x00000035,
    MOVE_TRIPLE_DIP                 = 0x00000036,
    MOVE_UNUSED_37                  = 0x00000037,
    MOVE_QUICK_CHANGE               = 0x00000038,
    MOVE_UNUSED_39                  = 0x00000039,
    MOVE_UNUSED_3A                  = 0x0000003A,
    MOVE_POWER_PLUS                 = 0x0000003B,
    MOVE_ALLOR_NOTHING              = 0x0000003C,
    MOVE_ICE_POWER                  = 0x0000003D,
    MOVE_P_UP_D_DOWN                = 0x0000003E,
    MOVE_UNUSED_3F                  = 0x0000003F,
    MOVE_SPIKE_SHIELD               = 0x00000040,
    MOVE_FIRE_SHIELD                = 0x00000041,
    MOVE_PRETTY_LUCKY               = 0x00000042,
    MOVE_FEELING_FINE               = 0x00000043,
    MOVE_ZAP_TAP                    = 0x00000044,
    MOVE_DEFEND_PLUS                = 0x00000045,
    MOVE_LAST_STAND                 = 0x00000046,
    MOVE_CLOSE_CALL                 = 0x00000047,
    MOVE_LUCKY_DAY                  = 0x00000048,
    MOVE_P_DOWN_D_UP                = 0x00000049,
    MOVE_HEALTHY_HEALTHY            = 0x0000004A,
    MOVE_UNUSED_4B                  = 0x0000004B,
    MOVE_DODGE_MASTER               = 0x0000004C,
    MOVE_FIRST_ATTACK               = 0x0000004D,
    MOVE_SLOW_GO                    = 0x0000004E,
    MOVE_RIGHT_ON                   = 0x0000004F,
    MOVE_BUMP_ATTACK                = 0x00000050,
    MOVE_UNUSED_51                  = 0x00000051,
    MOVE_HP_PLUS                    = 0x00000052,
    MOVE_MYSTERY_SCROLL             = 0x00000053,
    MOVE_ATTACK_FX_A                = 0x00000054,
    MOVE_ATTACK_FX_D                = 0x00000055,
    MOVE_ATTACK_FX_B                = 0x00000056,
    MOVE_ATTACK_FX_E                = 0x00000057,
    MOVE_ATTACK_FX_C                = 0x00000058,
    MOVE_ATTACK_FX_F                = 0x00000059,
    MOVE_HP_DRAIN                   = 0x0000005A,
    MOVE_FP_PLUS                    = 0x0000005B,
    MOVE_MONEY_MONEY                = 0x0000005C,
    MOVE_CHILL_OUT_BADGE            = 0x0000005D,
    MOVE_HAPPY_HEART                = 0x0000005E,
    MOVE_MEGA_RUSH                  = 0x0000005F,
    MOVE_BERSERKER                  = 0x00000060,
    MOVE_RUNAWAY_PAY                = 0x00000061,
    MOVE_FLOWER_SAVER               = 0x00000062,
    MOVE_PAY_OFF                    = 0x00000063,
    MOVE_POWER_RUSH                 = 0x00000064,
    MOVE_CRAZY_HEART                = 0x00000065,
    MOVE_MEGA_HP_DRAIN              = 0x00000066,
    MOVE_FLOWER_FANATIC             = 0x00000067,
    MOVE_HEART_FINDER               = 0x00000068,
    MOVE_FLOWER_FINDER              = 0x00000069,
    MOVE_SPIN_ATTACK                = 0x0000006A,
    MOVE_DIZZY_ATTACK               = 0x0000006B,
    MOVE_I_SPY                      = 0x0000006C,
    MOVE_SPEEDY_SPIN                = 0x0000006D,
    MOVE_REFUND                     = 0x0000006E,
    MOVE_UNUSED_FINAL_GOOMPA        = 0x0000006F,
    MOVE_UNUSED_FINAL_BOBOMB        = 0x00000070,
    MOVE_DEEP_FOCUS                 = 0x00000071,
    MOVE_SUPER_FOCUS                = 0x00000072,
    MOVE_KAIDEN                     = 0x00000073,
    MOVE_HAPPY_FLOWER               = 0x00000074,
    MOVE_GROUP_FOCUS                = 0x00000075,
    MOVE_PEEKABOO                   = 0x00000076,
    MOVE_FOCUS                      = 0x00000077,
    MOVE_REFRESH                    = 0x00000078,
    MOVE_LULLABY                    = 0x00000079,
    MOVE_STAR_STORM                 = 0x0000007A,
    MOVE_CHILL_OUT_MOVE             = 0x0000007B,
    MOVE_SMOOCH                     = 0x0000007C,
    MOVE_TIME_OUT                   = 0x0000007D,
    MOVE_UP_AND_AWAY                = 0x0000007E,
    MOVE_STAR_BEAM                  = 0x0000007F,
    MOVE_PEACH_BEAM                 = 0x00000080,
    MOVE_PEACH_FOCUS                = 0x00000081,
    MOVE_TWINK_DASH                 = 0x00000082,

    // Goombario moves
    MOVE_HEADBONK1                  = 0x00000083,
    MOVE_HEADBONK2                  = 0x00000084,
    MOVE_HEADBONK3                  = 0x00000085,
    MOVE_TATTLE                     = 0x00000086,
    MOVE_CHARGE                     = 0x00000087,
    MOVE_MULTIBONK                  = 0x00000088,

    // Kooper moves
    MOVE_SHELL_TOSS1                = 0x00000089,
    MOVE_SHELL_TOSS2                = 0x0000008A,
    MOVE_SHELL_TOSS3                = 0x0000008B,
    MOVE_POWER_SHELL                = 0x0000008C,
    MOVE_DIZZY_SHELL                = 0x0000008D,
    MOVE_FIRE_SHELL                 = 0x0000008E,

    // Bombette moves
    MOVE_BODY_SLAM1                 = 0x0000008F,
    MOVE_BODY_SLAM2                 = 0x00000090,
    MOVE_BODY_SLAM3                 = 0x00000091,
    MOVE_BOMB                       = 0x00000092,
    MOVE_POWER_BOMB                 = 0x00000093,
    MOVE_MEGA_BOMB                  = 0x00000094,

    // Parakarry moves
    MOVE_SKY_DIVE1                  = 0x00000095,
    MOVE_SKY_DIVE2                  = 0x00000096,
    MOVE_SKY_DIVE3                  = 0x00000097,
    MOVE_SHELL_SHOT                 = 0x00000098,
    MOVE_AIR_LIFT                   = 0x00000099,
    MOVE_AIR_RAID                   = 0x0000009A,

    // Goompa moves
    MOVE_UNUSED_LONE_FOOL1          = 0x0000009B,
    MOVE_UNUSED_LONE_FOOL2          = 0x0000009C,
    MOVE_UNUSED_LONE_FOOL3          = 0x0000009D,
    MOVE_UNUSED_MUMBLE              = 0x0000009E,
    MOVE_UNUSED_PREACH              = 0x0000009F,
    MOVE_UNUSED_AWAKENING           = 0x000000A0,

    // Watt moves
    MOVE_ELECTRO_DASH1              = 0x000000A1,
    MOVE_ELECTRO_DASH2              = 0x000000A2,
    MOVE_ELECTRO_DASH3              = 0x000000A3,
    MOVE_POWER_SHOCK                = 0x000000A4,
    MOVE_TURBO_CHARGE               = 0x000000A5,
    MOVE_MEGA_SHOCK                 = 0x000000A6,

    // Sushie moves
    MOVE_BELLY_FLOP1                = 0x000000A7,
    MOVE_BELLY_FLOP2                = 0x000000A8,
    MOVE_BELLY_FLOP3                = 0x000000A9,
    MOVE_SQUIRT                     = 0x000000AA,
    MOVE_WATER_BLOCK                = 0x000000AB,
    MOVE_TIDAL_WAVE                 = 0x000000AC,

    // Lakilester moves
    MOVE_SPINY_FLIP1                = 0x000000AD,
    MOVE_SPINY_FLIP2                = 0x000000AE,
    MOVE_SPINY_FLIP3                = 0x000000AF,
    MOVE_SPINY_SURGE                = 0x000000B0,
    MOVE_CLOUD_NINE                 = 0x000000B1,
    MOVE_HURRICANE                  = 0x000000B2,

    // Bow moves
    MOVE_SMACK1                     = 0x000000B3,
    MOVE_SMACK2                     = 0x000000B4,
    MOVE_SMACK3                     = 0x000000B5,
    MOVE_OUTTA_SIGHT                = 0x000000B6,
    MOVE_SPOOK                      = 0x000000B7,
    MOVE_FAN_SMACK                  = 0x000000B8,
};

#define STAR_POWER_INDEX(x) (x - MOVE_FOCUS)

enum GameModeIDs {
    GAME_MODE_STARTUP                     = 0x00000000,
    GAME_MODE_LOGOS                       = 0x00000001,
    GAME_MODE_TITLE_SCREEN                = 0x00000002,
    GAME_MODE_ENTER_DEMO_WORLD            = 0x00000003,
    GAME_MODE_CHANGE_MAP                  = 0x00000004,
    GAME_MODE_UNUSED                      = 0x00000005,
    GAME_MODE_ENTER_WORLD                 = 0x00000006,
    GAME_MODE_WORLD                       = 0x00000007,
    GAME_MODE_BATTLE                      = 0x00000008,
    GAME_MODE_END_BATTLE                  = 0x00000009,
    GAME_MODE_PAUSE                       = 0x0000000A,
    GAME_MODE_UNPAUSE                     = 0x0000000B,
    GAME_MODE_LANGUAGE_SELECT             = 0x0000000C,
    GAME_MODE_END_LANGUAGE_SELECT         = 0x0000000D,
    GAME_MODE_FILE_SELECT                 = 0x0000000E,
    GAME_MODE_END_FILE_SELECT             = 0x0000000F,
    GAME_MODE_INTRO                       = 0x00000010,
    GAME_MODE_DEMO                        = 0x00000011,
};

enum DemoState {
    DEMO_STATE_NONE         = 0,
    DEMO_STATE_ACTIVE       = 1,
    DEMO_STATE_CHANGE_MAP   = 2,
};

enum MapLoadType {
    LOAD_FROM_MAP           = 0,
    LOAD_FROM_FILE_SELECT   = 1,
};

enum IntroStates {
    INTRO_STATE_0                        = 0x00000000,
    INTRO_STATE_1                        = 0x00000001,
    INTRO_STATE_2                        = 0x00000002,
    INTRO_STATE_3                        = 0x00000003,
    INTRO_STATE_4                        = 0x00000004,
    INTRO_STATE_5                        = 0x00000005,
    INTRO_STATE_6                        = 0x00000006,
    INTRO_STATE_7                        = 0x00000007,
    INTRO_STATE_8                        = 0x00000008,
    INTRO_STATE_9                        = 0x00000009,
    INTRO_STATE_A                        = 0x0000000A,
    INTRO_STATE_B                        = 0x0000000B,
    INTRO_STATE_C                        = 0x0000000C,
    INTRO_STATE_D                        = 0x0000000D,
    INTRO_STATE_E                        = 0x0000000E,
    INTRO_STATE_F                        = 0x0000000F,
    INTRO_STATE_10                       = 0x00000010,
    INTRO_STATE_11                       = 0x00000011,
    INTRO_STATE_12                       = 0x00000012,
    INTRO_STATE_13                       = 0x00000013,
    INTRO_STATE_14                       = 0x00000014,
    INTRO_STATE_15                       = 0x00000015,
};

enum BattleStatusFlags1 {
    BS_FLAGS1_0                             = 0x00000000,
    BS_FLAGS1_ACTORS_VISIBLE                = 0x00000001,
    BS_FLAGS1_MENU_OPEN                     = 0x00000002,
    BS_FLAGS1_4                             = 0x00000004,
    BS_FLAGS1_8                             = 0x00000008,
    BS_FLAGS1_10                            = 0x00000010, // enable attack bonuses (power plus, etc)?
    BS_FLAGS1_SP_EVT_ACTIVE                 = 0x00000020, // enable special events (other than hit/death/immune?)
    BS_FLAGS1_40                            = 0x00000040,
    BS_FLAGS1_80                            = 0x00000080,
    BS_FLAGS1_100                           = 0x00000100,
    BS_FLAGS1_200                           = 0x00000200,
    BS_FLAGS1_400                           = 0x00000400, // UNUSED
    BS_FLAGS1_FORCE_HIT_IMMUNE              = 0x00000800,
    BS_FLAGS1_AUTO_SUCCEED_ACTION           = 0x00001000,
    BS_FLAGS1_2000                          = 0x00002000,
    BS_FLAGS1_4000                          = 0x00004000,
    BS_FLAGS1_8000                          = 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_200000                        = 0x00200000, // enemy turn pending (?)
    BS_FLAGS1_PLAYER_DEFENDING              = 0x00400000,
    BS_FLAGS1_NO_GAME_OVER                  = 0x00800000, // don’t game over on loss
    BS_FLAGS1_STAR_POINTS_DROPPED           = 0x01000000,
    BS_FLAGS1_TUTORIAL_BATTLE               = 0x02000000, // prevent player from swapping to/from partner
    BS_FLAGS1_HUSTLED                       = 0x04000000,
    BS_FLAGS1_SORT_ENEMIES_BY_POSX          = 0x08000000, // enemy turn order ignores priority; sorts bases on x position instead
    BS_FLAGS1_HAMMER_CHARGED                = 0x10000000,
    BS_FLAGS1_JUMP_CHARGED                  = 0x20000000,
    BS_FLAGS1_40000000                      = 0x40000000,
    BS_FLAGS1_ATK_BLOCKED                   = 0x80000000,
};

enum BattleStatusFlags2 {
    BS_FLAGS2_1                             = 0x00000001,
    BS_FLAGS2_2                             = 0x00000002,
    BS_FLAGS2_4                             = 0x00000004,
    BS_FLAGS2_8                             = 0x00000008,
    BS_FLAGS2_10                            = 0x00000010,
    BS_FLAGS2_CANT_FLEE                     = 0x00000020,
    BS_FLAGS2_PEACH_BATTLE                  = 0x00000040,
    BS_FLAGS2_80                            = 0x00000080,
    BS_FLAGS2_100                           = 0x00000100, // dont decrement turbo charge on begin player turn
    BS_FLAGS2_200                           = 0x00000200,
    BS_FLAGS2_400                           = 0x00000400,
    BS_FLAGS2_800                           = 0x00000800,
    BS_FLAGS2_NO_TARGET_AVAILABLE           = 0x00001000,
    BS_FLAGS2_4000                          = 0x00004000,
    BS_FLAGS2_10000                         = 0x00010000,
    BS_FLAGS2_100000                        = 0x00100000,
    BS_FLAGS2_1000000                       = 0x01000000, // possible IS_FIRST_STRIKE
    BS_FLAGS2_DONT_STOP_MUSIC               = 0x02000000, // don't stop playing the current song when the battle ends
    BS_FLAGS2_HAS_DRAINED_HP                = 0x04000000,
    BS_FLAGS2_HAS_RUSH                      = 0x08000000,
    BS_FLAGS2_DROP_WHACKA_BUMP              = 0x10000000,
};

enum BattleStatusReflectionFlags {
    BS_REFLECT_FLOOR    = 1,
};

enum BattleStates {
    BATTLE_STATE_NEGATIVE_1                 = -1,
    BATTLE_STATE_0                          = 0,
    BATTLE_STATE_NORMAL_START               = 1,
    BATTLE_STATE_FIRST_STRIKE               = 2,
    BATTLE_STATE_PARTNER_FIRST_STRIKE       = 3,
    BATTLE_STATE_ENEMY_FIRST_STRIKE         = 4,
    BATTLE_STATE_BEGIN_TURN                 = 5,
    BATTLE_STATE_END_TURN                   = 6,
    BATTLE_STATE_BEGIN_PLAYER_TURN          = 7,
    BATTLE_STATE_BEGIN_PARTNER_TURN         = 8,
    BATTLE_STATE_9                          = 9,    // can be reached from BATTLE_STATE_PARTNER_MOVE if partner == NULL
    BATTLE_STATE_SWITCH_TO_PLAYER           = 10,
    BATTLE_STATE_SWITCH_TO_PARTNER          = 11,
    BATTLE_STATE_PREPARE_MENU               = 12,
    BATTLE_STATE_PLAYER_MENU                = 13,
    BATTLE_STATE_PARTNER_MENU               = 14,
    BATTLE_STATE_PEACH_MENU                 = 15,
    BATTLE_STATE_TWINK_MENU                 = 16,
    BATTLE_STATE_SELECT_TARGET              = 17,
    BATTLE_STATE_PLAYER_MOVE                = 18,
    BATTLE_STATE_PARTNER_MOVE               = 19,
    BATTLE_STATE_NEXT_ENEMY                 = 20,
    BATTLE_STATE_ENEMY_MOVE                 = 21,
    BATTLE_STATE_END_PLAYER_TURN            = 22,
    BATTLE_STATE_END_PARTNER_TURN           = 23,
    BATTLE_STATE_RUN_AWAY                   = 24,
    BATTLE_STATE_DEFEND                     = 25,
    BATTLE_STATE_VICTORY                    = 26,
    BATTLE_STATE_DEFEAT                     = 27,
    BATTLE_STATE_28                         = 28,
    BATTLE_STATE_CHANGE_PARTNER             = 29,
    BATTLE_STATE_END_TRAINING_BATTLE        = 30,
    BATTLE_STATE_31                         = 31,
    BATTLE_STATE_END_BATTLE                 = 32,
    BATTLE_STATE_CELEBRATION                = 33,
    BATTLE_STATE_34                         = 34,
    BATTLE_STATE_END_DEMO_BATTLE            = 35,
};

enum BattleSubStates {
    // shared
    BTL_SUBSTATE_INIT                                       = 0,

    // BATTLE_STATE_NORMAL_START
    BTL_SUBSTATE_NORMAL_START_INIT                          = 0, // loads assets, initializes state, and runs OnBattleInit script
    BTL_SUBSTATE_NORMAL_START_CREATE_ENEMIES                = 1,
    BTL_SUBSTATE_NORMAL_START_CHECK_FIRST_STRIKE            = 4, // wait for actor scripts to finish
    BTL_SUBSTATE_NORMAL_START_FADE_IN                       = 7,
    BTL_SUBSTATE_NORMAL_START_DONE                          = 8,

    // BATTLE_STATE_FIRST_STRIKE
    BTL_SUBSTATE_FIRST_STRIKE_INIT                          = 0,
    BTL_SUBSTATE_FIRST_STRIKE_AWAIT_ENEMY_READY             = 1,
    BTL_SUBSTATE_FIRST_STRIKE_AWAIT_SCRIPTS                 = 2,
    BTL_SUBSTATE_FIRST_STRIKE_AWAIT_ENEMY_DONE              = 3,

    // BATTLE_STATE_PARTNER_FIRST_STRIKE
    BTL_SUBSTATE_PARTNER_FIRST_STRIKE_INIT                  = 0,
    BTL_SUBSTATE_PARTNER_FIRST_STRIKE_AWAIT_ENEMY_READY     = 1,
    BTL_SUBSTATE_PARTNER_FIRST_STRIKE_AWAIT_SCRIPTS         = 2,
    BTL_SUBSTATE_PARTNER_FIRST_STRIKE_AWAIT_ENEMY_DONE      = 3,

    // BATTLE_STATE_ENEMY_FIRST_STRIKE
    BTL_SUBSTATE_ENEMY_FIRST_STRIKE_INIT                    = 0,
    BTL_SUBSTATE_ENEMY_FIRST_STRIKE_AWAIT_SCRIPTS           = 2,

    // BATTLE_STATE_BEGIN_TURN
    BTL_SUBSTATE_BEGIN_TURN_INIT                            = 0,
    BTL_SUBSTATE_BEGIN_TURN_AWAIT_ENEMY_SCRIPTS             = 5,
    BTL_SUBSTATE_BEGIN_TURN_AWAIT_ENEMY_DEATH               = 10,

    // BATTLE_STATE_END_TURN
    BTL_SUBSTATE_END_TURN_INIT                              = 0,
    BTL_SUBSTATE_END_TURN_CHECK_FOR_SWAP                    = 1,
    BTL_SUBSTATE_END_TURN_AWAIT_SCRIPTS                     = 2,
    BTL_SUBSTATE_END_TURN_BEGIN_NEXT                        = 3,
    BTL_SUBSTATE_END_TURN_UNUSED_4                          = 4,
    BTL_SUBSTATE_END_TURN_PERFORM_SWAP                      = 11,
    BTL_SUBSTATE_END_TURN_START_SCRIPTS                     = 12,

    // BATTLE_STATE_BEGIN_PLAYER_TURN
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_INIT                     = 0,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_TRY_COMMAND_RECOVER      = 1,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_AWAIT_WATER_BLOCK        = 2,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_CHECK_WATER_BLOCK        = 10,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_CHECK_CLOUD_NINE         = 11,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_AWAIT_CLOUD_NINE         = 12,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_CHECK_TURBO_CHARGE       = 15,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_AWAIT_TURBO_CHARGE       = 16,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_AWAIT_OUTTA_SIGHT        = 20,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_TRY_STATUS_DAMAGE        = 21,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_TRY_STATUS_RECOVER       = 22,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_END_DELAY                = 30,
    BTL_SUBSTATE_BEGIN_PLAYER_TURN_RESET_STATE              = 100,

    // BATTLE_STATE_BEGIN_PARTNER_TURN
    BTL_SUBSTATE_BEGIN_PARTNER_TURN_INIT                    = 0,
    BTL_SUBSTATE_BEGIN_PARTNER_TURN_AWAIT_RECOVER_DONE      = 1,
    BTL_SUBSTATE_BEGIN_PARTNER_TURN_EXEC_TURN_SCRIPT        = 8,
    BTL_SUBSTATE_BEGIN_PARTNER_TURN_AWAIT_TURN_SCRIPT       = 9,
    BTL_SUBSTATE_BEGIN_PARTNER_TURN_END_DELAY               = 10,
    BTL_SUBSTATE_BEGIN_PARTNER_TURN_RESET_STATE             = 100,

    // BATTLE_STATE_9
    BTL_SUBSTATE_9_INIT                                     = 0,
    BTL_SUBSTATE_9_1                                        = 1,
    BTL_SUBSTATE_9_2                                        = 2,
    BTL_SUBSTATE_9_3                                        = 3,
    BTL_SUBSTATE_9_4                                        = 4,
    BTL_SUBSTATE_9_5                                        = 5,
    BTL_SUBSTATE_9_6                                        = 6,
    BTL_SUBSTATE_9_7                                        = 7,

    // BATTLE_STATE_SWITCH_TO_PLAYER
    // BATTLE_STATE_SWITCH_TO_PARTNER

    // BATTLE_STATE_PREPARE_MENU
    BATTLE_SUBSTATE_PREPARE_MENU_DIPPING                    = 70,

    // BATTLE_STATE_PLAYER_MENU
    // BATTLE_STATE_PARTNER_MENU

    // BATTLE_STATE_PEACH_MENU
    BTL_SUBSTATE_PEACH_MENU_INIT                            = 0,
    BTL_SUBSTATE_PEACH_MENU_CHOOSE_CATEGORY                 = 1,
    BTL_SUBSTATE_PEACH_MENU_CHOOSE_TARGET                   = 2,
    BTL_SUBSTATE_PEACH_MENU_UNUSED_3                        = 3,
    BTL_SUBSTATE_PEACH_MENU_TARGET_CANCEL                   = 4,
    BTL_SUBSTATE_PEACH_MENU_TARGET_CHOSEN                   = 5,
    BTL_SUBSTATE_PEACH_MENU_UNUSED_6                        = 6,
    BTL_SUBSTATE_PEACH_MENU_UNUSED_7                        = 7,
    BTL_SUBSTATE_PEACH_MENU_SHOW_CANT_SWITCH                = 8,
    BTL_SUBSTATE_PEACH_MENU_AWAIT_CANT_SWITCH_POPUP         = 9,
    BTL_SUBSTATE_PEACH_MENU_PERFORM_SWAP                    = 10,
    BTL_SUBSTATE_PEACH_CREATE_MAIN_MENU                     = 11,

    // BATTLE_STATE_TWINK_MENU
    BTL_SUBSTATE_TWINK_MENU_INIT                            = 0,
    BTL_SUBSTATE_TWINK_MENU_CHOOSE_CATEGORY                 = 1,
    BTL_SUBSTATE_TWINK_MENU_CHOOSE_TARGET                   = 2,
    BTL_SUBSTATE_TWINK_MENU_UNUSED_3                        = 3,
    BTL_SUBSTATE_TWINK_MENU_TARGET_CANCEL                   = 4,
    BTL_SUBSTATE_TWINK_MENU_TARGET_CHOSEN                   = 5,
    BTL_SUBSTATE_TWINK_MENU_UNUSED_6                        = 6,
    BTL_SUBSTATE_TWINK_MENU_UNUSED_7                        = 7,
    BTL_SUBSTATE_TWINK_MENU_SHOW_CANT_SWITCH                = 8,
    BTL_SUBSTATE_TWINK_MENU_AWAIT_CANT_SWITCH_POPUP         = 9,
    BTL_SUBSTATE_TWINK_MENU_PERFORM_SWAP                    = 10,
    BTL_SUBSTATE_TWINK_MENU_CREATE_MAIN_MENU                = 11,

    // BATTLE_STATE_SELECT_TARGET
    BTL_SUBSTATE_SELECT_TARGET_INIT                         = 0,
    BTL_SUBSTATE_SELECT_TARGET_CHOOSE                       = 1,
    BTL_SUBSTATE_SELECT_TARGET_DONE                         = 2,
    BTL_SUBSTATE_SELECT_TARGET_CANCEL                       = 10,

    // BATTLE_STATE_PLAYER_MOVE
    BTL_SUBSTATE_PLAYER_MOVE_INIT                           = 0,
    BTL_SUBSTATE_PLAYER_MOVE_BEGIN_SHOW_TIP                 = 1,
    BTL_SUBSTATE_PLAYER_MOVE_SHOW_TIP_DELAY                 = 2,
    BTL_SUBSTATE_PLAYER_MOVE_EXECUTE_MOVE                   = 3,
    BTL_SUBSTATE_PLAYER_MOVE_HANDLE_RESULTS                 = 4,
    BTL_SUBSTATE_PLAYER_MOVE_AWAIT_ENEMY_STATUS_POPUP       = 11,
    BTL_SUBSTATE_PLAYER_MOVE_POST_ENEMY_STATUS_POPUP        = 12,
    BTL_SUBSTATE_PLAYER_MOVE_CHECK_PLAYER_STATUS            = 20,
    BTL_SUBSTATE_PLAYER_MOVE_AWAIT_PLAYER_STATUS_POPUP      = 21,
    BTL_SUBSTATE_PLAYER_MOVE_POST_PLAYER_STATUS_POPUP       = 22,
    BTL_SUBSTATE_PLAYER_MOVE_AWAIT_DONE                     = 30,

    // BATTLE_STATE_PARTNER_MOVE
    BTL_SUBSTATE_PARTNER_MOVE_INIT                          = 0,
    BTL_SUBSTATE_PARTNER_MOVE_EXECUTE_MOVE                  = 2,
    BTL_SUBSTATE_PARTNER_MOVE_HANDLE_RESULTS                = 3,
    BTL_SUBSTATE_PARTNER_MOVE_AWAIT_PARTNER_STATUS_POPUP    = 11,
    BTL_SUBSTATE_PARTNER_MOVE_POST_PARTNER_STATUS_POPUP     = 12,
    BTL_SUBSTATE_PARTNER_MOVE_CHECK_ENEMY_STATUS            = 20,
    BTL_SUBSTATE_PARTNER_MOVE_AWAIT_ENEMY_STATUS_POPUP      = 21,
    BTL_SUBSTATE_PARTNER_MOVE_POST_ENEMY_STATUS_POPUP       = 22,
    BTL_SUBSTATE_PARTNER_MOVE_DONE                          = 30,

    // BATTLE_STATE_NEXT_ENEMY
    BTL_SUBSTATE_NEXT_ENEMY_INIT                            = 0,
    BTL_SUBSTATE_NEXT_ENEMY_UNUSED_1                        = 1,
    BTL_SUBSTATE_NEXT_ENEMY_DONE                            = 2, // enemy has been found

    // BATTLE_STATE_ENEMY_MOVE
    BTL_SUBSTATE_ENEMY_MOVE_EXECUTE                         = 0,
    BTL_SUBSTATE_ENEMY_MOVE_UNUSED_1                        = 1,
    BTL_SUBSTATE_ENEMY_MOVE_AWAIT_SCRIPTS                   = 2,
    BTL_SUBSTATE_ENEMY_MOVE_AWAIT_PLAYER_POPUP_DONE         = 11, // wait for popups regarding player status to finish
    BTL_SUBSTATE_ENEMY_MOVE_POST_PLAYER_POPUP_DELAY         = 12, // a brief delay after the popup vanishes
    BTL_SUBSTATE_ENEMY_MOVE_CHECK_PARTNER                   = 20,
    BTL_SUBSTATE_ENEMY_MOVE_AWAIT_PARTNER_POPUP_DONE        = 21, // wait for popups regarding partner status to finish
    BTL_SUBSTATE_ENEMY_MOVE_POST_PARTNER_POPUP_DELAY        = 22, // a brief delay after the popup vanishes
    BTL_SUBSTATE_ENEMY_MOVE_DONE                            = 30,

    // BATTLE_STATE_END_PLAYER_TURN
    BTL_SUBSTATE_END_PLAYER_TURN_CHECK_HAPPY                = 0,
    BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_HAPPY                = 5,
    BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_SWAP                 = 6,
    BTL_SUBSTATE_END_PLAYER_TURN_DONE                       = 10,

    // BATTLE_STATE_END_PARTNER_TURN

    // BATTLE_STATE_RUN_AWAY
    BTL_SUBSTATE_RUN_AWAY_EXEC_SCRIPT                       = 0,
    BTL_SUBSTATE_RUN_AWAY_AWAIT_SCRIPT                      = 2,
    BTL_SUBSTATE_RUN_AWAY_EXEC_POST_FAILURE                 = 3,
    BTL_SUBSTATE_RUN_AWAY_AWAIT_POST_FAILURE                = 4,
    BTL_SUBSTATE_RUN_AWAY_GIVE_STAR_POINTS                  = 10,
    BTL_SUBSTATE_RUN_AWAY_DONE                              = 11,

    // BATTLE_STATE_DEFEND
    BTL_SUBSTATE_DEFEND_INIT                                = 0,
    BTL_SUBSTATE_DEFEND_AWAIT_SCRIPT                        = 1,

    // BATTLE_STATE_VICTORY
    BTL_SUBSTATE_VICTORY_CHECK_OUTTA_SIGHT                  = 0,
    BTL_SUBSTATE_VICTORY_AWAIT_OUTTA_SIGHT                  = 1,
    BTL_SUBSTATE_VICTORY_CHECK_MERLEE                       = 2,
    BTL_SUBSTATE_VICTORY_AWAIT_MERLEE                       = 3,
    BTL_SUBSTATE_VICTORY_DONE                               = 4,
    BTL_SUBSTATE_VICTORY_RECOVER_STATUS                     = 5,
    BTL_SUBSTATE_VICTORY_AWAIT_RECOVER_KO                   = 10,
    BTL_SUBSTATE_VICTORY_CHECK_SWAP                         = 11,
    BTL_SUBSTATE_VICTORY_AWAIT_SWAP                         = 12,

    // BATTLE_STATE_DEFEAT
    BTL_SUBSTATE_DEFEAT_INIT                                = 0,
    BTL_SUBSTATE_DEFEAT_CHECK_LIFE_SHROOM                   = 1,
    BTL_SUBSTATE_DEFEAT_AWAIT_LIFE_SHROOM                   = 2,
    BTL_SUBSTATE_DEFEAT_DONE                                = 10,

    // BATTLE_STATE_28

    // BATTLE_STATE_CHANGE_PARTNER
    BTL_SUBSTATE_CHANGE_PARTNER_INIT                        = 0,
    BTL_SUBSTATE_CHANGE_PARTNER_EXEC_PUT_AWAY               = 2,
    BTL_SUBSTATE_CHANGE_PARTNER_LOAD_NEW_PARTNER            = 3,
    BTL_SUBSTATE_CHANGE_PARTNER_EXEC_BRING_OUT              = 4,
    BTL_SUBSTATE_CHANGE_PARTNER_EXEC_PHASE                  = 5,
    BTL_SUBSTATE_CHANGE_PARTNER_AWAIT_PHASE                 = 6,
    BTL_SUBSTATE_CHANGE_PARTNER_DONE                        = 7,

    // BATTLE_STATE_END_TRAINING_BATTLE
    BTL_SUBSTATE_END_TRAINING_INIT                          = 0,
    BTL_SUBSTATE_END_TRAINING_AWAIT_RECOVERING              = 10,
    BTL_SUBSTATE_END_TRAINING_CHECK_OUTTA_SIGHT             = 11,
    BTL_SUBSTATE_END_TRAINING_AWAIT_OUTTA_SIGHT             = 12,
    BTL_SUBSTATE_END_TRAINING_RESET_CAM                     = 13,
    BTL_SUBSTATE_END_TRAINING_DONE                          = 14,

    // BATTLE_STATE_31

    // BATTLE_STATE_END_BATTLE
    BTL_SUBSTATE_END_BATTLE_INIT                            = 0,
    BTL_SUBSTATE_END_BATTLE_FADE_OUT                        = 1,
    BTL_SUBSTATE_END_BATTLE_EXEC_STAGE_SCRIPT               = 2,
    BTL_SUBSTATE_END_BATTLE_AWAIT_STAGE_SCRIPT              = 3,
    BTL_SUBSTATE_END_BATTLE_CLEANUP                         = 4,

    // BATTLE_STATE_CELEBRATION
    BTL_SUBSTATE_CELEBRATE_INIT                             = 0,
    BTL_SUBSTATE_CELEBRATE_LOAD_STAR_POINTS                 = 1,
    BTL_SUBSTATE_CELEBRATE_TALLY_STAR_POINTS                = 2,
    BTL_SUBSTATE_CELEBRATE_POST_STAR_POINTS                 = 3,
    BTL_SUBSTATE_CELEBRATE_LEVEL_UP_LOAD                    = 4,
    BTL_SUBSTATE_CELEBRATE_LEVEL_UP_BEGIN                   = 5,
    BTL_SUBSTATE_CELEBRATE_LEVEL_UP_CREATE_HUD              = 6,
    BTL_SUBSTATE_CELEBRATE_LEVEL_UP_SHOW_HUD                = 7,
    BTL_SUBSTATE_CELEBRATE_LEVEL_UP_CHOOSE                  = 8,
    BTL_SUBSTATE_CELEBRATE_LEVEL_UP_UPGRADE                 = 9,
    BTL_SUBSTATE_CELEBRATE_LEVEL_UP_FADE_OUT                = 10,
    BTL_SUBSTATE_CELEBRATE_LEVEL_UP_DESTROY_HUD             = 11,
    BTL_SUBSTATE_CELEBRATE_LEVEL_UP_INVALID                 = 15,
    BTL_SUBSTATE_CELEBRATE_LEVEL_UP_INVALID_DELAY           = 16,
    BTL_SUBSTATE_CELEBRATE_SKIPPABLE_END_DELAY              = 20,
    BTL_SUBSTATE_CELEBRATE_WALK_AWAY                        = 21,
    BTL_SUBSTATE_CELEBRATE_DONE                             = 22,

    // BATTLE_STATE_34

    // BATTLE_STATE_END_DEMO_BATTLE
    BTL_SUBSTATE_END_DEMO_BATTLE_INIT                       = 0,
    BTL_SUBSTATE_END_DEMO_BATTLE_FADE_OUT                   = 1,
    BTL_SUBSTATE_END_DEMO_BATTLE_EXEC_STAGE_SCRIPT          = 2,
    BTL_SUBSTATE_END_DEMO_BATTLE_AWAIT_STAGE_SCRIPT         = 3,
    BTL_SUBSTATE_END_DEMO_BATTLE_CLEANUP                    = 4,
};

// used with BATTLE_STATE_PLAYER_MENU
enum BattlePlayerMenuSubstates {
    BTL_SUBSTATE_PLAYER_MENU_INIT                           = 0,
    // Main menu
    BTL_SUBSTATE_PLAYER_MENU_CHOOSE_CATEGORY                = 1,
    BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_2                    = 2,
    BTL_SUBSTATE_PLAYER_MENU_MOVE_CHOOSE_TARGET             = 3,
    BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_4                    = 4,
    BTL_SUBSTATE_PLAYER_MENU_MOVE_TARGET_CANCEL             = 5,
    BTL_SUBSTATE_PLAYER_MENU_MOVE_TARGET_CHOSEN             = 6,
    BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_7                    = 7,
    BTL_SUBSTATE_PLAYER_MENU_MAIN_SHOW_CANT_SWAP            = 8,
    BTL_SUBSTATE_PLAYER_MENU_MAIN_AWAIT_CANT_SWAP           = 9,
    BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_10                   = 10,
    BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_11                   = 11,
    BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_12                   = 12,
    BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_13                   = 13,
    BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_14                   = 14,
    // Unknown
    BTL_SUBSTATE_PLAYER_MENU_UNKNOWN_1                      = 20,
    BTL_SUBSTATE_PLAYER_MENU_DIPPING_CHOOSE_TARGET          = 21,
    BTL_SUBSTATE_PLAYER_MENU_UNKNOWN_3                      = 22,
    BTL_SUBSTATE_PLAYER_MENU_UNKNOWN_4                      = 23,
    BTL_SUBSTATE_PLAYER_MENU_DIPPING_TARGET_CANCEL          = 24,
    BTL_SUBSTATE_PLAYER_MENU_DIPPING_TARGET_CHOSEN          = 25,
    // Change Member
    BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_1                = 30,
    BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_2                = 31,
    BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_3                = 32,
    BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_4                = 33,
    BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_5                = 34,
    BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_6                = 35,
    BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_7                = 36,
    // Items
    BTL_SUBSTATE_PLAYER_MENU_ITEMS_1                        = 40,
    BTL_SUBSTATE_PLAYER_MENU_ITEMS_2                        = 41,
    BTL_SUBSTATE_PLAYER_MENU_ITEMS_3                        = 42,
    BTL_SUBSTATE_PLAYER_MENU_ITEMS_4                        = 43,
    BTL_SUBSTATE_PLAYER_MENU_ITEMS_5                        = 44,
    BTL_SUBSTATE_PLAYER_MENU_ITEMS_6                        = 45,
    // Star Spirits
    BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_1                 = 60,
    BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_2                 = 61,
    BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_3                 = 62,
    BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_4                 = 63,
    BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_5                 = 64,
    BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_6                 = 65,
    BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_7                 = 66,
    // additional item use from Double/Triple dip
    BTL_SUBSTATE_PLAYER_MENU_DIPPING_1                      = 70,
    BTL_SUBSTATE_PLAYER_MENU_DIPPING_2                      = 71,
    BTL_SUBSTATE_PLAYER_MENU_DIPPING_3                      = 72,
    BTL_SUBSTATE_PLAYER_MENU_DIPPING_4                      = 73,
    BTL_SUBSTATE_PLAYER_MENU_DIPPING_5                      = 74,
    BTL_SUBSTATE_PLAYER_MENU_DIPPING_6                      = 75,
    // Berserker
    BTL_SUBSTATE_PLAYER_MENU_BERSERKER_1                    = 100,
    // Strategies
    BTL_SUBSTATE_PLAYER_MENU_BUILD_STRATEGIES               = 200,
    BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_2                   = 201,
    BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_3                   = 202,
    BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_4                   = 203,
    BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_5                   = 204,
    BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_6                   = 205,
    BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_8                   = 207,
    // initialize
    BTL_SUBSTATE_PLAYER_MENU_PERFORM_SWAP                   = 300,
    BTL_SUBSTATE_PLAYER_MENU_CREATE_MAIN_MENU               = 302,
};

enum BattlePartnerMenuSubstates {
    BTL_SUBSTATE_PARTNER_MENU_NONE                            = 0,
    // Main menu
    BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_1                     = 2,
    BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_2                     = 3,
    BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_3                     = 4,
    BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_4                     = 5,
    BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_5                     = 6,
    BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_6                     = 7,
    BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_7                     = 8,
    BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_8                     = 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_00      = 0x00,
    BTL_MSG_01      = 0x01,
    BTL_MSG_02      = 0x02,
    BTL_MSG_03      = 0x03,
    BTL_MSG_04      = 0x04,
    BTL_MSG_05      = 0x05,
    BTL_MSG_06      = 0x06,
    BTL_MSG_07      = 0x07,
    BTL_MSG_08      = 0x08,
    BTL_MSG_09      = 0x09,
    BTL_MSG_0A      = 0x0A,
    BTL_MSG_0B      = 0x0B,
    BTL_MSG_0C      = 0x0C,
    BTL_MSG_0D      = 0x0D,
    BTL_MSG_0E      = 0x0E,
    BTL_MSG_0F      = 0x0F,
    BTL_MSG_10      = 0x10,
    BTL_MSG_11      = 0x11,
    BTL_MSG_12      = 0x12,
    BTL_MSG_13      = 0x13,
    BTL_MSG_14      = 0x14,
    BTL_MSG_15      = 0x15,
    BTL_MSG_16      = 0x16,
    BTL_MSG_17      = 0x17,
    BTL_MSG_18      = 0x18,
    BTL_MSG_19      = 0x19,
    BTL_MSG_1A      = 0x1A,
    BTL_MSG_1B      = 0x1B,
    BTL_MSG_1C      = 0x1C,
    BTL_MSG_1D      = 0x1D,
    BTL_MSG_1E      = 0x1E,
    BTL_MSG_1F      = 0x1F,
    BTL_MSG_20      = 0x20,
    BTL_MSG_21      = 0x21,
    BTL_MSG_22      = 0x22,
    BTL_MSG_23      = 0x23,
    BTL_MSG_24      = 0x24,
    BTL_MSG_25      = 0x25,
    BTL_MSG_26      = 0x26,
    BTL_MSG_27      = 0x27,
    BTL_MSG_28      = 0x28,
    BTL_MSG_29      = 0x29,
    BTL_MSG_2A      = 0x2A,
    BTL_MSG_2B      = 0x2B,
    BTL_MSG_2C      = 0x2C,
    BTL_MSG_2D      = 0x2D,
    BTL_MSG_2E      = 0x2E,
    BTL_MSG_2F      = 0x2F,
    BTL_MSG_30      = 0x30,
    BTL_MSG_31      = 0x31,
    BTL_MSG_32      = 0x32,
    BTL_MSG_33      = 0x33,
    BTL_MSG_34      = 0x34,
    BTL_MSG_35      = 0x35,
    BTL_MSG_36      = 0x36,
    BTL_MSG_37      = 0x37,
    BTL_MSG_38      = 0x38,
    BTL_MSG_39      = 0x39,
    BTL_MSG_3A      = 0x3A,
    BTL_MSG_3B      = 0x3B,
    BTL_MSG_3C      = 0x3C,
    BTL_MSG_3D      = 0x3D,
    BTL_MSG_3E      = 0x3E,
    BTL_MSG_3F      = 0x3F,
    BTL_MSG_40      = 0x40,
    BTL_MSG_41      = 0x41,
    BTL_MSG_42      = 0x42,
    BTL_MSG_43      = 0x43,
    BTL_MSG_44      = 0x44,
    BTL_MSG_45      = 0x45,
    BTL_MSG_46      = 0x46,
    BTL_MSG_47      = 0x47,
    BTL_MSG_48      = 0x48,
    BTL_MSG_49      = 0x49,
    BTL_MSG_4A      = 0x4A,
    BTL_MSG_4B      = 0x4B,
    BTL_MSG_4C      = 0x4C,
    BTL_MSG_4D      = 0x4D,
    BTL_MSG_4E      = 0x4E,
    BTL_MSG_4F      = 0x4F,
    BTL_MSG_50      = 0x50,
    BTL_MSG_51      = 0x51,
    BTL_MSG_52      = 0x52,
    BTL_MSG_53      = 0x53,
    BTL_MSG_54      = 0x54,
};

// 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 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_DISABLED_JUMP          = 1 << BTL_MENU_TYPE_JUMP,
    BTL_MENU_DISABLED_SMASH         = 1 << BTL_MENU_TYPE_SMASH,
    BTL_MENU_DISABLED_ITEMS         = 1 << BTL_MENU_TYPE_ITEMS,
    BTL_MENU_DISABLED_STRATEGIES    = 1 << BTL_MENU_TYPE_STRATEGIES,
    BTL_MENU_DISABLED_STAR_POWERS   = 1 << BTL_MENU_TYPE_STAR_POWERS,
    BTL_MENU_DISABLED_PARTNER_FOCUS = 1 << BTL_MENU_TYPE_PARTNER_FOCUS,
};

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 DebuffTypes {
    DEBUFF_TYPE_SLEEP               = 0x00001000,
    DEBUFF_TYPE_STATIC              = 0x00002000,
    DEBUFF_TYPE_FROZEN              = 0x00004000,
    DEBUFF_TYPE_PARALYZED           = 0x00010000,
    DEBUFF_TYPE_POISON              = 0x00020000,
    DEBUFF_TYPE_DIZZY               = 0x00040000,
    DEBUFF_TYPE_SHRINK              = 0x00080000,
    DEBUFF_TYPE_STONE               = 0x00100000,
    DEBUFF_TYPE_STOP                = 0x00200000,
    DEBUFF_TYPE_DAZE                = 0x01000000,
    DEBUFF_TYPE_INVISIBLE           = 0x04000000,
};

enum GlobalOverrides {
    GLOBAL_OVERRIDES_DISABLE_RENDER_WORLD                       = 0x00000002,
    GLOBAL_OVERRIDES_8                                          = 0x00000008,
    GLOBAL_OVERRIDES_10                                         = 0x00000010,
    GLOBAL_OVERRIDES_ENABLE_TRANSITION_STENCIL                  = 0x00000020,
    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_1000                                       = 0x00001000,
    GLOBAL_OVERRIDES_2000                                       = 0x00002000,
    GLOBAL_OVERRIDES_4000                                       = 0x00004000,
    GLOBAL_OVERRIDES_8000                                       = 0x00008000,
    GLOBAL_OVERRIDES_WINDOWS_IN_FRONT_OF_CURTAINS               = 0x00010000,
    GLOBAL_OVERRIDES_20000                                      = 0x00020000,
    GLOBAL_OVERRIDES_DISABLE_MENUS                              = 0x00040000,
    GLOBAL_OVERRIDES_MESSAGES_IN_FRONT_OF_CURTAINS              = 0x00100000,
    GLOBAL_OVERRIDES_CANT_PICK_UP_ITEMS                         = 0x00200000,
};

#define MODEL_FLAGS_MASK_FFF0  (MODEL_FLAG_USES_CUSTOM_GFX | MODEL_FLAG_FLAG_20 | MODEL_FLAG_FLAG_40 | MODEL_FLAG_HAS_LOCAL_VERTEX_COPY | MODEL_FLAG_USE_CAMERA_UNK_MATRIX | MODEL_FLAG_FLAG_200 | MODEL_FLAG_HAS_TRANSFORM_APPLIED | MODEL_FLAG_HAS_TEX_PANNER | MODEL_FLAG_USES_TRANSFORM_MATRIX | MODEL_FLAG_FLAG_2000 | MODEL_FLAG_FLAG_4000 | MODEL_FLAG_FLAG_8000)

enum ModelFlags {
    MODEL_FLAG_FLAG_1                  = 0x0001,
    MODEL_FLAG_HIDDEN                  = 0x0002,
    MODEL_FLAG_FLAG_4                  = 0x0004,
    MODEL_FLAG_TRANSFORM_GROUP_MEMBER  = 0x0008,
    MODEL_FLAG_USES_CUSTOM_GFX         = 0x0010,
    MODEL_FLAG_FLAG_20                 = 0x0020,
    MODEL_FLAG_FLAG_40                 = 0x0040,
    MODEL_FLAG_HAS_LOCAL_VERTEX_COPY   = 0x0080,
    MODEL_FLAG_USE_CAMERA_UNK_MATRIX   = 0x0100,
    MODEL_FLAG_FLAG_200                = 0x0200,
    MODEL_FLAG_HAS_TRANSFORM_APPLIED   = 0x0400,
    MODEL_FLAG_HAS_TEX_PANNER          = 0x0800,
    MODEL_FLAG_USES_TRANSFORM_MATRIX   = 0x1000,
    MODEL_FLAG_FLAG_2000               = 0x2000,
    MODEL_FLAG_FLAG_4000               = 0x4000,
    MODEL_FLAG_FLAG_8000               = 0x8000,
};

enum ModelGroupVisibility {
    MODEL_GROUP_HIDDEN          = 0,
    MODEL_GROUP_VISIBLE         = 1,
    MODEL_GROUP_OTHERS_HIDDEN   = 2,
    MODEL_GROUP_OTHERS_VISIBLE  = 3,
};

enum TexPanner {
    //select pan unit
    TEX_PANNER_0    = 0x0,
    TEX_PANNER_1    = 0x1,
    TEX_PANNER_2    = 0x2,
    TEX_PANNER_3    = 0x3,
    TEX_PANNER_4    = 0x4,
    TEX_PANNER_5    = 0x5,
    TEX_PANNER_6    = 0x6,
    TEX_PANNER_7    = 0x7,
    TEX_PANNER_8    = 0x8,
    TEX_PANNER_9    = 0x9,
    TEX_PANNER_A    = 0xA,
    TEX_PANNER_B    = 0xB,
    TEX_PANNER_C    = 0xC,
    TEX_PANNER_D    = 0xD,
    TEX_PANNER_E    = 0xE,
    TEX_PANNER_F    = 0xF,
    // select texture component
    TEX_PANNER_MAIN = 0,
    TEX_PANNER_AUX  = 1,
};

enum CustomGfxUnit {
    CUSTOM_GFX_NONE = -1,
    CUSTOM_GFX_0    = 0x00,
    CUSTOM_GFX_1    = 0x01,
    CUSTOM_GFX_2    = 0x02,
    CUSTOM_GFX_3    = 0x03,
    CUSTOM_GFX_4    = 0x04,
    CUSTOM_GFX_5    = 0x05,
    CUSTOM_GFX_6    = 0x06,
    CUSTOM_GFX_7    = 0x07,
    CUSTOM_GFX_8    = 0x08,
    CUSTOM_GFX_9    = 0x09,
    CUSTOM_GFX_A    = 0x0A,
    CUSTOM_GFX_B    = 0x0B,
    CUSTOM_GFX_C    = 0x0C,
    CUSTOM_GFX_D    = 0x0D,
    CUSTOM_GFX_E    = 0x0E,
    CUSTOM_GFX_F    = 0x0F,
};

enum CopiedVtxUnit {
    VTX_COPY_0      = 0x0,
    VTX_COPY_1      = 0x1,
    VTX_COPY_2      = 0x2,
    VTX_COPY_3      = 0x3,
    VTX_COPY_4      = 0x4,
    VTX_COPY_5      = 0x5,
    VTX_COPY_6      = 0x6,
    VTX_COPY_7      = 0x7,
    VTX_COPY_8      = 0x8,
    VTX_COPY_9      = 0x9,
    VTX_COPY_A      = 0xA,
    VTX_COPY_B      = 0xB,
    VTX_COPY_C      = 0xC,
    VTX_COPY_D      = 0xD,
    VTX_COPY_E      = 0xE,
    VTX_COPY_F      = 0xF,
};

enum ModelAnimUnit {
    MDL_ANIMATOR_0  = 0x0,
    MDL_ANIMATOR_1  = 0x1,
    MDL_ANIMATOR_2  = 0x2,
    MDL_ANIMATOR_3  = 0x3,
    MDL_ANIMATOR_4  = 0x4,
    MDL_ANIMATOR_5  = 0x5,
    MDL_ANIMATOR_6  = 0x6,
    MDL_ANIMATOR_7  = 0x7,
    MDL_ANIMATOR_8  = 0x8,
    MDL_ANIMATOR_9  = 0x9,
    MDL_ANIMATOR_A  = 0xA,
    MDL_ANIMATOR_B  = 0xB,
    MDL_ANIMATOR_C  = 0xC,
    MDL_ANIMATOR_D  = 0xD,
    MDL_ANIMATOR_E  = 0xE,
    MDL_ANIMATOR_F  = 0xF,
};

enum MapRoomFlags {
    ROOM_FLAGS_VISGROUP_MASK                = 0xF000,
    ROOM_FLAGS_MASK                         = 0x0F00,
    ROOM_FLAGS_DOOR_TYPE_MASK               = 0x00FF,
    ROOM_DOOR_RIGHT_HINGE_OPENS_OUT         = 0, // left --> center (hinge on right)
    ROOM_DOOR_RIGHT_HINGE_OPENS_IN          = 1, // center --> left
    ROOM_DOOR_LEFT_HINGE_OPENS_OUT          = 2, // right --> center (hinge on left)
    ROOM_DOOR_LEFT_HINGE_OPENS_IN           = 3, // center --> right
    ROOM_DOOR_STRAIGHT_THROUGH              = 4, // center --> center
    ROOM_LARGE_DOOR_RIGHT_HINGE_OPENS_OUT   = 5, // deep left  --> center     (hinge on right)
    ROOM_LARGE_DOOR_RIGHT_HINGE_OPENS_IN    = 6, // center     --> deep left
    ROOM_LARGE_DOOR_LEFT_HINGE_OPENS_OUT    = 7, // deep right --> center     (hinge on left)
    ROOM_FLAG_CUSTOM_ANIM_OPEN_DOOR         = 0x100,
    ROOM_FLAG_CUSTOM_ANIM_WALL_ROT          = 0x200,
    ROOM_FLAG_CUSTOM_ANIM_DROP_DOOR         = 0x400,
    ROOM_FLAG_EXIT_DOOR_DROPS               = 0x800, // for internal use
};

enum MapRoomNotifications {
    // dispatched to listener script during interactions with the room door
    ROOM_UPDATE_ENTER_BEGIN     = 0,
    ROOM_UPDATE_ENTER_DONE      = 1,
    ROOM_UPDATE_EXIT_BEGIN      = 2,
    ROOM_UPDATE_EXIT_END        = 3,
    // when handling ROOM_UPDATE_ENTER_BEGIN, listener may return this to cancel the door opening. useful for locked doors.
    ROOM_UPDATE_REQUEST_CANCEL  = -1,
    // anim move door updates
    ROOM_MOVE_DOOR_ENTER_OPEN   = 0,
    ROOM_MOVE_DOOR_ENTER_CLOSE  = 1,
    ROOM_MOVE_DOOR_EXIT_OPEN    = 2,
    ROOM_MOVE_DOOR_EXIT_CLOSE   = 3,
    // anim move walls update
    ROOM_MOVE_WALL_OPEN         = 0,
    ROOM_MOVE_WALL_1            = 1, // unused
    ROOM_MOVE_WALL_2            = 2, // unused
    ROOM_MOVE_WALL_CLOSE        = 3,
    // anim drop droor updates
    ROOM_DROP_DOOR_ENTER        = 0,
    ROOM_DROP_DOOR_1            = 1, // unused
    ROOM_DROP_DOOR_2            = 2, // unused
    ROOM_DROP_DOOR_EXIT         = 3,
};

enum EnemyFlags {
    ENEMY_FLAG_PASSIVE                  = 0x00000001, // Not hostile; collision does not trigger battle
    ENEMY_FLAG_2                        = 0x00000002, // Unused
    ENEMY_FLAG_4                        = 0x00000004,
    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_800                      = 0x00000800, // Corresponds with NPC_FLAG_8
    ENEMY_FLAG_GRAVITY                  = 0x00001000,
    ENEMY_FLAG_NO_SHADOW_RAYCAST        = 0x00002000,
    ENEMY_FLAG_HAS_NO_SPRITE            = 0x00004000,
    ENEMY_FLAG_8000                     = 0x00008000, // Corresponds with NPC_FLAG_10000000
    ENEMY_FLAG_10000                    = 0x00010000, // Corresponds with NPC_FLAG_20000000
    ENEMY_FLAG_USE_PLAYER_SPRITE        = 0x00020000, // Used for Peach NPCs
    ENEMY_FLAG_40000                    = 0x00040000,
    ENEMY_FLAG_80000                    = 0x00080000,
    ENEMY_FLAG_100000                   = 0x00100000,
    ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN   = 0x00200000,
    ENEMY_FLAG_400000                   = 0x00400000,
    ENEMY_FLAG_NO_DROPS                 = 0x00800000, // Do not drop hearts, flowers, or coins on defeat
    ENEMY_FLAG_IGNORE_TOUCH             = 0x01000000,
    ENEMY_FLAG_IGNORE_JUMP              = 0x02000000,
    ENEMY_FLAG_IGNORE_HAMMER            = 0x04000000,
    ENEMY_FLAG_CANT_INTERACT            = 0x08000000, // Makes passive NPCs non-interactable. Hostile NPCs are always non-interactible.
    ENEMY_FLAG_IGNORE_PARTNER           = 0x10000000,
    ENEMY_FLAG_IGNORE_SPIN              = 0x20000000,
    ENEMY_FLAG_BEGIN_WITH_CHASING       = 0x40000000, // Starts in state AI_STATE_CHASE_INIT instead of AI_STATE_WANDER_INIT on spawn or AI resume
    ENEMY_FLAG_SUSPENDED                = 0x80000000,
};

#define COMMON_PASSIVE_FLAGS \
      ENEMY_FLAG_PASSIVE \
    | ENEMY_FLAG_ENABLE_HIT_SCRIPT \
    | ENEMY_FLAG_IGNORE_WORLD_COLLISION \
    | ENEMY_FLAG_IGNORE_ENTITY_COLLISION \
    | ENEMY_FLAG_800

// used with enemy->aiFlags
enum EnemyAIFlags {
    ENEMY_AI_FLAG_1              = 0x00000001,
    ENEMY_AI_FLAG_2              = 0x00000002, // do not move; do not sense player
    ENEMY_AI_FLAG_SUSPEND        = 0x00000004,
    ENEMY_AI_FLAG_8              = 0x00000008,
    ENEMY_AI_FLAG_10             = 0x00000010,
    ENEMY_AI_FLAG_20             = 0x00000020,
    ENEMY_AI_FLAG_40             = 0x00000040,
    ENEMY_AI_FLAG_80             = 0x00000080,
};

enum EnemyAIStates {
    // basic states
    AI_STATE_WANDER_INIT            = 0,
    AI_STATE_WANDER                 = 1,
    AI_STATE_PATROL_INIT            = 0,
    AI_STATE_PATROL                 = 1,
    AI_STATE_HOP_INIT               = 0,
    AI_STATE_HOP                    = 1,
    AI_STATE_LOITER_INIT            = 2,
    AI_STATE_LOITER                 = 3,
    AI_STATE_LOITER_POST            = 4,
    AI_STATE_ALERT_INIT             = 10,
    AI_STATE_ALERT                  = 11,
    AI_STATE_CHASE_INIT             = 12,
    AI_STATE_CHASE                  = 13,
    AI_STATE_LOSE_PLAYER            = 14,
    AI_STATE_PATROL_15              = 15,
    AI_RETURN_HOME_INIT             = 40,
    AI_RETURN_HOME                  = 41,
    AI_STATE_SUSPEND                = 99,
    // melee hitboxes
    AI_STATE_MELEE_HITBOX_INIT      = 30,
    AI_STATE_MELEE_HITBOX_PRE       = 31,
    AI_STATE_MELEE_HITBOX_ACTIVE    = 32,
    AI_STATE_MELEE_HITBOX_MISS      = 33,
    // projectile hitboxes
    AI_STATE_PROJECTILE_HITBOX_30   = 30,
    AI_STATE_PROJECTILE_HITBOX_31   = 31,
    AI_STATE_PROJECTILE_HITBOX_32   = 32,
    AI_STATE_PROJECTILE_HITBOX_33   = 33,
};

enum EnemyActionFlags {
    AI_ACTION_JUMP_WHEN_SEE_PLAYER          = 0x01,
    AI_ACTION_02                            = 0x02,
    AI_ACTION_04                            = 0x04,
    AI_ACTION_08                            = 0x08,
    AI_ACTION_LOOK_AROUND_DURING_LOITER     = 0x10,
    AI_ACTION_20                            = 0x20
};

enum EnemyDetectFlags {
    AI_DETECT_SIGHT                 = 0x01,
    AI_DETECT_SENSITIVE_MOTION      = 0x02,
    AI_DETECT_FLAG_8                = 0x08,
};

enum EnemyTerritoryFlags {
    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 Collider::flags
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
    */
};

typedef enum SurfaceInteractMode {
    SURFACE_INTERACT_WALK       = 0,
    SURFACE_INTERACT_RUN        = 1,
    SURFACE_INTERACT_LAND       = 2,
} SurfaceInteractMode;

//TODO -- temporarily combined with SurfaceType for map data dumper
enum ColliderFlags {
    COLLIDER_FLAGS_UPPER_MASK        = 0x7FFFFE00, // map data dumper needs this to be first
    COLLIDER_FLAGS_SURFACE_TYPE_MASK = 0x000000FF,

//    SURFACE_TYPE_DEFAULT            = 0,
    SURFACE_TYPE_HEDGES             = 9, ///< used within hedge maze in flo_11
    SURFACE_TYPE_SNOW               = 8,
    SURFACE_TYPE_CLOUD              = 7, ///< used with clouds in flo_19 and flo_21
    SURFACE_TYPE_FLOWERS            = 6,
    SURFACE_TYPE_SLIDE              = 5,
    SURFACE_TYPE_DOCK_WALL          = 4,
    SURFACE_TYPE_LAVA               = 3,
    SURFACE_TYPE_SPIKES             = 2,
    SURFACE_TYPE_WATER              = 1,

    COLLIDER_FLAG_SAFE_FLOOR        = 0x00000100,
    COLLIDER_FLAG_IGNORE_SHELL      = 0x00008000,
    COLLIDER_FLAG_IGNORE_PLAYER     = 0x00010000,
    COLLIDER_FLAG_80000             = 0x00080000, // test version of DOCK walls?
    COLLIDER_FLAG_HAS_MODEL_PARENT  = 0x80000000
};


//TODO reversed for map dumper with 0 separated
enum ColliderFlagsModifyMode {
    MODIFY_COLLIDER_FLAGS_SET_SURFACE    = 3,
    MODIFY_COLLIDER_FLAGS_SET_VALUE      = 2,
    MODIFY_COLLIDER_FLAGS_CLEAR_BITS     = 1,
};
enum TempColliderFlagsModifyMode {
    MODIFY_COLLIDER_FLAGS_SET_BITS       = 0,
};

enum CollisionChannels {
    COLLISION_CHANNEL_8000          = 0x00008000,
    COLLISION_CHANNEL_10000         = 0x00010000,
    COLLISION_CHANNEL_20000         = 0x00020000,
    COLLISION_IGNORE_ENTITIES       = 0x00040000,
    COLLISION_CHANNEL_80000         = 0x00080000,
    COLLISION_ONLY_ENTITIES         = 0x00100000,
};

enum CameraInitDataFlags {
    CAMERA_INIT_DATA_FLAG_1                 = 0x00000001,
    CAMERA_INIT_DATA_FLAG_2                 = 0x00000002,
    CAMERA_INIT_DATA_FLAG_4                 = 0x00000004,
    CAMERA_INIT_DATA_FLAG_8                 = 0x00000008,
    CAMERA_INIT_DATA_FLAG_10                = 0x00000010,
    CAMERA_INIT_DATA_FLAG_20                = 0x00000020,
    CAMERA_INIT_DATA_FLAG_40                = 0x00000040,
    CAMERA_INIT_DATA_FLAG_80                = 0x00000080,
    CAMERA_INIT_DATA_FLAG_100               = 0x00000100,
    CAMERA_INIT_DATA_FLAG_200               = 0x00000200,
    CAMERA_INIT_DATA_FLAG_400               = 0x00000400,
    CAMERA_INIT_DATA_FLAG_800               = 0x00000800,
    CAMERA_INIT_DATA_FLAG_1000              = 0x00001000,
    CAMERA_INIT_DATA_FLAG_2000              = 0x00002000,
    CAMERA_INIT_DATA_FLAG_4000              = 0x00004000,
    CAMERA_INIT_DATA_FLAG_8000              = 0x00008000,
    CAMERA_INIT_DATA_FLAG_10000             = 0x00010000,
    CAMERA_INIT_DATA_FLAG_20000             = 0x00020000,
    CAMERA_INIT_DATA_FLAG_40000             = 0x00040000,
    CAMERA_INIT_DATA_FLAG_80000             = 0x00080000,
    CAMERA_INIT_DATA_FLAG_100000            = 0x00100000,
    CAMERA_INIT_DATA_FLAG_200000            = 0x00200000,
    CAMERA_INIT_DATA_FLAG_400000            = 0x00400000,
    CAMERA_INIT_DATA_FLAG_800000            = 0x00800000,
    CAMERA_INIT_DATA_FLAG_1000000           = 0x01000000,
    CAMERA_INIT_DATA_FLAG_2000000           = 0x02000000,
    CAMERA_INIT_DATA_FLAG_4000000           = 0x04000000,
    CAMERA_INIT_DATA_FLAG_8000000           = 0x08000000,
    CAMERA_INIT_DATA_FLAG_10000000          = 0x10000000,
    CAMERA_INIT_DATA_FLAG_20000000          = 0x20000000,
    CAMERA_INIT_DATA_FLAG_40000000          = 0x40000000,
    CAMERA_INIT_DATA_FLAG_80000000          = 0x80000000,
};

enum CameraFlags {
    CAMERA_FLAG_1                   = 0x00000001,
    CAMERA_FLAG_ENABLED             = 0x00000002,
    CAMERA_FLAG_LEAD_PLAYER         = 0x00000004,
    CAMERA_FLAG_SHAKING             = 0x00000008,
    CAMERA_FLAG_ORTHO               = 0x00000010,
    CAMERA_FLAG_20                  = 0x00000020,
    CAMERA_FLAG_40                  = 0x00000040,
    CAMERA_FLAG_80                  = 0x00000080,
    CAMERA_FLAG_100                 = 0x00000100,
    CAMERA_FLAG_RENDER_ENTITIES     = 0x00000200,
    CAMERA_FLAG_RENDER_MODELS       = 0x00000400,
    CAMERA_FLAG_800                 = 0x00000800,
    CAMERA_FLAG_1000                = 0x00001000,
    CAMERA_FLAG_2000                = 0x00002000,
    CAMERA_FLAG_4000                = 0x00004000,
    CAMERA_FLAG_8000                = 0x00008000,
    CAMERA_FLAG_10000               = 0x00010000,
    CAMERA_FLAG_20000               = 0x00020000,
    CAMERA_FLAG_40000               = 0x00040000,
    CAMERA_FLAG_80000               = 0x00080000,
    CAMERA_FLAG_100000              = 0x00100000,
    CAMERA_FLAG_200000              = 0x00200000,
    CAMERA_FLAG_400000              = 0x00400000,
    CAMERA_FLAG_800000              = 0x00800000,
    CAMERA_FLAG_1000000             = 0x01000000,
    CAMERA_FLAG_2000000             = 0x02000000,
    CAMERA_FLAG_4000000             = 0x04000000,
    CAMERA_FLAG_8000000             = 0x08000000,
    CAMERA_FLAG_10000000            = 0x10000000,
    CAMERA_FLAG_20000000            = 0x20000000,
    CAMERA_FLAG_40000000            = 0x40000000,
    CAMERA_FLAG_80000000            = 0x80000000,
};

enum CameraMoveFlags {
    CAMERA_MOVE_IGNORE_PLAYER_Y     = 0x00000001,
    CAMERA_MOVE_FLAG_2              = 0x00000002,
    CAMERA_MOVE_FLAG_4              = 0x00000004,
};

enum CameraUpdateType {
    CAM_UPDATE_MODE_0               = 0,
    CAM_UPDATE_MODE_1               = 1,
    CAM_UPDATE_MODE_2               = 2,
    CAM_UPDATE_MODE_3               = 3,
    CAM_UPDATE_MODE_4               = 4,
    CAM_UPDATE_MODE_5               = 5,
    CAM_UPDATE_MODE_6               = 6,
};

enum CameraControlType {
    // Camera follows the player, using a fixed yaw position.
    // Uses: A/B as 2D points
    // Yaw is defined by the line segment AB
    // flag 0 = free forward movement (follow player)
	// flag 1 = lock forward movement (must intersect B)
    CAM_CONTROL_FIXED_ORIENTATION   = 0,

    // Camera faces toward or away from a point with the player in the center of the frame.
    // Use a negative boom length to look away from a point.
    // flag 1 = Constrain to Fixed Radius
    CAM_CONTROL_LOOK_AT_POINT       = 1,

    // Camera is contrained to a point along the line segment BC.
    // Use these near exits to stop camera movement.
    // Uses: A/B/C as 2D points
    // The target position is found by projecting player position onto BC along a line orthogonal to AB.
    // If posA == posB, AB is ignored and the projection axis will be along a line orthogonal to BC with
    // the resulting position being the closest point on BC to the player.
    // flag 1 = Freeze Camera Position
    CAM_CONTROL_CONSTRAIN_TO_LINE   = 2,

    // Follows the player using whatever yaw value the camera initially possessed.
    CAM_CONTROL_FOLLOW_PLAYER       = 3,

    // Both position and yaw are fixed.
    CAM_CONTROL_FIXED_POS_AND_ORIENTATION       = 4,

    // Look Toward Point, Constrain to Line
    // flag 1 = Freeze Target at Point
    CAM_CONTROL_LOOK_AT_POINT_CONSTAIN_TO_LINE  = 5,

    // Camera position is contrained to a line segment, with yaw perpendicular to the line segment.
    // flag 1 = Disable Forward Motion
    CAM_CONTROL_CONSTAIN_BETWEEN_POINTS         = 6,
};

enum BtlCameraPreset {
    BTL_CAM_PRESET_A  = 0,
    BTL_CAM_PRESET_B,
    BTL_CAM_PRESET_C,
    BTL_CAM_PRESET_D,
    BTL_CAM_PRESET_E,
    BTL_CAM_PRESET_F,
    BTL_CAM_PRESET_G,
    BTL_CAM_PRESET_H,
    BTL_CAM_PRESET_I,
    BTL_CAM_PRESET_9,
    BTL_CAM_PRESET_10,
    BTL_CAM_PRESET_11,
    BTL_CAM_PRESET_12,
    BTL_CAM_PRESET_13,
    BTL_CAM_PRESET_14,
    BTL_CAM_PRESET_15,
    BTL_CAM_PRESET_16,
    BTL_CAM_PRESET_17,
    BTL_CAM_PRESET_18,
    BTL_CAM_PRESET_19,
    BTL_CAM_PRESET_20,
    BTL_CAM_PRESET_21,
    BTL_CAM_PRESET_22,
    BTL_CAM_PRESET_23,
    BTL_CAM_PRESET_24,
    BTL_CAM_PRESET_25,
    BTL_CAM_PRESET_26,
    BTL_CAM_PRESET_27,
    BTL_CAM_PRESET_28,
    BTL_CAM_PRESET_29,
    BTL_CAM_PRESET_30,
    BTL_CAM_PRESET_31,
    BTL_CAM_PRESET_32,
    BTL_CAM_PRESET_33,
    BTL_CAM_PRESET_34,
    BTL_CAM_PRESET_35,
    BTL_CAM_PRESET_36,
    BTL_CAM_PRESET_37,
    BTL_CAM_PRESET_38,
    BTL_CAM_PRESET_39,
    BTL_CAM_PRESET_40,
    BTL_CAM_PRESET_41,
    BTL_CAM_PRESET_42,
    BTL_CAM_PRESET_43,
    BTL_CAM_PRESET_44,
    BTL_CAM_PRESET_45,
    BTL_CAM_PRESET_46,
    BTL_CAM_PRESET_47,
    BTL_CAM_PRESET_48,
    BTL_CAM_PRESET_49,
    BTL_CAM_PRESET_50,
    BTL_CAM_PRESET_51,
    BTL_CAM_PRESET_52,
    BTL_CAM_PRESET_53,
    BTL_CAM_PRESET_54,
    BTL_CAM_PRESET_55,
    BTL_CAM_PRESET_56,
    BTL_CAM_PRESET_57,
    BTL_CAM_PRESET_58,
    BTL_CAM_PRESET_59,
    BTL_CAM_PRESET_60,
    BTL_CAM_PRESET_61,
    BTL_CAM_PRESET_62,
    BTL_CAM_PRESET_63,
    BTL_CAM_PRESET_64,
    BTL_CAM_PRESET_65,
    BTL_CAM_PRESET_66,
    BTL_CAM_PRESET_67,
    BTL_CAM_PRESET_68,
    BTL_CAM_PRESET_69,
    BTL_CAM_PRESET_70,
    BTL_CAM_PRESET_71,
    BTL_CAM_PRESET_72,
    BTL_CAM_PRESET_73,
};

enum MoveDataFlags {
    MOVE_DATA_FLAG_SINGLE_TARGET     = 0x00000001,
    MOVE_DATA_FLAG_2                 = 0x00000002,
    MOVE_DATA_FLAG_4                 = 0x00000004,
    MOVE_DATA_FLAG_TARGET_PLAYER     = 0x00000008,
    MOVE_DATA_FLAG_10                = 0x00000010,
    MOVE_DATA_FLAG_20                = 0x00000020,
    MOVE_DATA_FLAG_40                = 0x00000040,
    MOVE_DATA_FLAG_80                = 0x00000080,
    MOVE_DATA_FLAG_100               = 0x00000100,
    MOVE_DATA_FLAG_200               = 0x00000200,
    MOVE_DATA_FLAG_400               = 0x00000400,
    MOVE_DATA_FLAG_800               = 0x00000800,
    MOVE_DATA_FLAG_1000              = 0x00001000,
    MOVE_DATA_FLAG_2000              = 0x00002000,
    MOVE_DATA_FLAG_4000              = 0x00004000,
    MOVE_DATA_FLAG_8000              = 0x00008000,
    MOVE_DATA_FLAG_10000             = 0x00010000,
    MOVE_DATA_FLAG_20000             = 0x00020000,
    MOVE_DATA_FLAG_40000             = 0x00040000,
    MOVE_DATA_FLAG_80000             = 0x00080000,
    MOVE_DATA_FLAG_100000            = 0x00100000,
    MOVE_DATA_FLAG_200000            = 0x00200000,
    MOVE_DATA_FLAG_400000            = 0x00400000,
    MOVE_DATA_FLAG_800000            = 0x00800000,
    MOVE_DATA_FLAG_1000000           = 0x01000000,
    MOVE_DATA_FLAG_2000000           = 0x02000000,
    MOVE_DATA_FLAG_4000000           = 0x04000000,
    MOVE_DATA_FLAG_8000000           = 0x08000000,
    MOVE_DATA_FLAG_10000000          = 0x10000000,
    MOVE_DATA_FLAG_20000000          = 0x20000000,
    MOVE_DATA_FLAG_40000000          = 0x40000000,
    MOVE_DATA_FLAG_80000000          = 0x80000000,
};

enum MoveActionTips {
    MOVE_ACTION_TIP_NONE            = -1,
    MOVE_ACTION_TIP_0               = 0,
    MOVE_ACTION_TIP_1               = 1,
    MOVE_ACTION_TIP_2               = 2,
    MOVE_ACTION_TIP_3               = 3,
    MOVE_ACTION_TIP_4               = 4,
    MOVE_ACTION_TIP_5               = 5,
    MOVE_ACTION_TIP_6               = 6,
    MOVE_ACTION_TIP_7               = 7,
    MOVE_ACTION_TIP_8               = 8,
    MOVE_ACTION_TIP_9               = 9,
    MOVE_ACTION_TIP_10              = 10,
    MOVE_ACTION_TIP_11              = 11,
    MOVE_ACTION_TIP_12              = 12,
    MOVE_ACTION_TIP_13              = 13,
    MOVE_ACTION_TIP_14              = 14,
    MOVE_ACTION_TIP_15              = 15,
    MOVE_ACTION_TIP_16              = 16,
    MOVE_ACTION_TIP_17              = 17,
    MOVE_ACTION_TIP_18              = 18,
    MOVE_ACTION_TIP_19              = 19,
    MOVE_ACTION_TIP_20              = 20
};

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_0                 = 0x00000000,
    SHOP_FLAG_1                 = 0x00000001,
    SHOP_FLAG_2                 = 0x00000002,
    SHOP_FLAG_4                 = 0x00000004,
    SHOP_FLAG_8                 = 0x00000008,
    SHOP_FLAG_10                = 0x00000010,
    SHOP_FLAG_20                = 0x00000020,
    SHOP_FLAG_40                = 0x00000040,
    SHOP_FLAG_80                = 0x00000080,
    SHOP_FLAG_100               = 0x00000100,
    SHOP_FLAG_200               = 0x00000200,
    SHOP_FLAG_400               = 0x00000400,
    SHOP_FLAG_800               = 0x00000800,
    SHOP_FLAG_1000              = 0x00001000,
    SHOP_FLAG_2000              = 0x00002000,
    SHOP_FLAG_4000              = 0x00004000,
    SHOP_FLAG_8000              = 0x00008000,
    SHOP_FLAG_10000             = 0x00010000,
    SHOP_FLAG_20000             = 0x00020000,
    SHOP_FLAG_40000             = 0x00040000,
    SHOP_FLAG_80000             = 0x00080000,
    SHOP_FLAG_100000            = 0x00100000,
    SHOP_FLAG_200000            = 0x00200000,
    SHOP_FLAG_400000            = 0x00400000,
    SHOP_FLAG_800000            = 0x00800000,
    SHOP_FLAG_1000000           = 0x01000000,
    SHOP_FLAG_2000000           = 0x02000000,
    SHOP_FLAG_4000000           = 0x04000000,
    SHOP_FLAG_8000000           = 0x08000000,
    SHOP_FLAG_10000000          = 0x10000000,
    SHOP_FLAG_20000000          = 0x20000000,
    SHOP_FLAG_40000000          = 0x40000000,
    SHOP_FLAG_80000000          = 0x80000000,
};

enum {
    SHOP_MSG_BUY_CONFIRM        = 0x00,
    SHOP_MSG_NOT_ENOUGH_COINS   = 0x01,
    SHOP_MSG_NOT_ENOUGH_ROOM    = 0x02,
    SHOP_MSG_BUY_THANK_YOU      = 0x03,
    SHOP_MSG_GREETING           = 0x04,
    SHOP_MSG_INSTRUCTIONS       = 0x05,
    SHOP_MSG_NOTHING_TO_SELL    = 0x06,
    SHOP_MSG_SELL_WHICH         = 0x07,
    SHOP_MSG_SELL_CONFIRM       = 0x08,
    SHOP_MSG_SELL_CANCEL        = 0x09,
    SHOP_MSG_SELL_MORE          = 0x0A,
    SHOP_MSG_SELL_THANKS        = 0x0B,
    SHOP_MSG_NOTHING_TO_CHECK   = 0x0C,
    SHOP_MSG_NO_CHECK_ROOM      = 0x0D,
    SHOP_MSG_CHECK_WHICH        = 0x0E,
    SHOP_MSG_CHECK_ACCEPTED     = 0x0F,
    SHOP_MSG_CHECK_MORE         = 0x10,
    SHOP_MSG_NOTHING_TO_CLAIM   = 0x11,
    SHOP_MSG_NO_CLAIM_ROOM      = 0x12,
    SHOP_MSG_CLAIM_WHICH        = 0x13,
    SHOP_MSG_CLAIM_ACCEPTED     = 0x14,
    SHOP_MSG_CLAIM_MORE         = 0x15,
    SHOP_MSG_FAREWELL           = 0x16,
};

enum {
    SHOP_BUY_RESULT_NOT_ENOUGH_COINS    = 0,
    SHOP_BUY_RESULT_OK                  = 1,
    SHOP_BUY_RESULT_2                   = 2,
    SHOP_BUY_RESULT_CANCEL              = 3,
    SHOP_BUY_RESULT_4                   = 4,
    SHOP_BUY_RESULT_NOT_ENOUGH_ROOM     = 5,
};

enum EncounterStatusFlags {
    ENCOUNTER_STATUS_FLAG_0                 = 0x00000000,
    ENCOUNTER_STATUS_FLAG_1                 = 0x00000001,
    ENCOUNTER_STATUS_FLAG_2                 = 0x00000002,
    ENCOUNTER_STATUS_FLAG_4                 = 0x00000004,
    ENCOUNTER_STATUS_FLAG_8                 = 0x00000008,
    ENCOUNTER_STATUS_FLAG_10                = 0x00000010,
    ENCOUNTER_STATUS_FLAG_20                = 0x00000020,
    ENCOUNTER_STATUS_FLAG_40                = 0x00000040,
    ENCOUNTER_STATUS_FLAG_80                = 0x00000080,
    ENCOUNTER_STATUS_FLAG_100               = 0x00000100,
    ENCOUNTER_STATUS_FLAG_200               = 0x00000200,
    ENCOUNTER_STATUS_FLAG_400               = 0x00000400,
    ENCOUNTER_STATUS_FLAG_800               = 0x00000800,
    ENCOUNTER_STATUS_FLAG_1000              = 0x00001000,
    ENCOUNTER_STATUS_FLAG_2000              = 0x00002000,
    ENCOUNTER_STATUS_FLAG_4000              = 0x00004000,
    ENCOUNTER_STATUS_FLAG_8000              = 0x00008000,
    ENCOUNTER_STATUS_FLAG_10000             = 0x00010000,
    ENCOUNTER_STATUS_FLAG_20000             = 0x00020000,
    ENCOUNTER_STATUS_FLAG_40000             = 0x00040000,
    ENCOUNTER_STATUS_FLAG_80000             = 0x00080000,
    ENCOUNTER_STATUS_FLAG_100000            = 0x00100000,
    ENCOUNTER_STATUS_FLAG_200000            = 0x00200000,
    ENCOUNTER_STATUS_FLAG_400000            = 0x00400000,
    ENCOUNTER_STATUS_FLAG_800000            = 0x00800000,
    ENCOUNTER_STATUS_FLAG_1000000           = 0x01000000,
    ENCOUNTER_STATUS_FLAG_2000000           = 0x02000000,
    ENCOUNTER_STATUS_FLAG_4000000           = 0x04000000,
    ENCOUNTER_STATUS_FLAG_8000000           = 0x08000000,
    ENCOUNTER_STATUS_FLAG_10000000          = 0x10000000,
    ENCOUNTER_STATUS_FLAG_20000000          = 0x20000000,
    ENCOUNTER_STATUS_FLAG_40000000          = 0x40000000,
    ENCOUNTER_STATUS_FLAG_80000000          = 0x80000000,
};

enum WindowFlags {
    WINDOW_FLAG_INITIALIZED       = 0x00000001,
    WINDOW_FLAG_FPUPDATE_CHANGED  = 0x00000002,
    WINDOW_FLAG_HIDDEN            = 0x00000004, ///< Updated but not rendered
    WINDOW_FLAG_INITIAL_ANIMATION = 0x00000008,
    WINDOW_FLAG_HAS_CHILDREN      = 0x00000010,
    WINDOW_FLAG_DISABLED          = 0x00000020, ///< Not updated or rendered
    WINDOW_FLAG_40                = 0x00000040,
};

enum DrawFlags {
    DRAW_FLAG_ROTSCALE                  = 0x00000001,
    DRAW_FLAG_ANIMATED_BACKGROUND       = 0x00000002,
    DRAW_FLAG_NO_CLIP                   = 0x00000004,
    DRAW_FLAG_CULL_BACK                 = 0x00000008,
};

enum EntityModelFlags {
    ENTITY_MODEL_FLAG_CAM0              = 0x00000001,
    ENTITY_MODEL_FLAG_CAM1              = 0x00000002,
    ENTITY_MODEL_FLAG_CAM2              = 0x00000004,
    ENTITY_MODEL_FLAG_CAM3              = 0x00000008,
    ENTITY_MODEL_FLAG_ENABLED           = 0x00000010,
    ENTITY_MODEL_FLAG_HIDDEN            = 0x00000020,
    ENTITY_MODEL_FLAG_40                = 0x00000040,
    ENTITY_MODEL_FLAG_80                = 0x00000080,
    ENTITY_MODEL_FLAG_100               = 0x00000100,
    ENTITY_MODEL_FLAG_REFLECT           = 0x00000200,
    ENTITY_MODEL_FLAG_USE_IMAGE         = 0x00000400,
    ENTITY_MODEL_FLAG_FOG_DISABLED      = 0x00000800,
    ENTITY_MODEL_FLAG_1000              = 0x00001000,
    ENTITY_MODEL_FLAG_2000              = 0x00002000,
    ENTITY_MODEL_FLAG_4000              = 0x00004000,
    ENTITY_MODEL_FLAG_8000              = 0x00008000,
    ENTITY_MODEL_FLAG_10000             = 0x00010000,
    ENTITY_MODEL_FLAG_DISABLE_SCRIPT    = 0x00020000,
    ENTITY_MODEL_FLAG_40000             = 0x00040000,
    ENTITY_MODEL_FLAG_80000             = 0x00080000,
    ENTITY_MODEL_FLAG_100000            = 0x00100000,
    ENTITY_MODEL_FLAG_200000            = 0x00200000,
    ENTITY_MODEL_FLAG_400000            = 0x00400000,
    ENTITY_MODEL_FLAG_800000            = 0x00800000,
    ENTITY_MODEL_FLAG_1000000           = 0x01000000,
    ENTITY_MODEL_FLAG_2000000           = 0x02000000,
    ENTITY_MODEL_FLAG_4000000           = 0x04000000,
    ENTITY_MODEL_FLAG_8000000           = 0x08000000,
    ENTITY_MODEL_FLAG_10000000          = 0x10000000,
    ENTITY_MODEL_FLAG_20000000          = 0x20000000,
    ENTITY_MODEL_FLAG_40000000          = 0x40000000,
    ENTITY_MODEL_FLAG_80000000          = 0x80000000,
};

enum TempSetZoneEnabledFlags {
    TEMP_SET_ZONE_ENABLED_FLAG_1                 = 0x00000001,
    TEMP_SET_ZONE_ENABLED_FLAG_2                 = 0x00000002,
    TEMP_SET_ZONE_ENABLED_FLAG_4                 = 0x00000004,
    TEMP_SET_ZONE_ENABLED_FLAG_8                 = 0x00000008,
    TEMP_SET_ZONE_ENABLED_FLAG_10                = 0x00000010,
    TEMP_SET_ZONE_ENABLED_FLAG_20                = 0x00000020,
    TEMP_SET_ZONE_ENABLED_FLAG_40                = 0x00000040,
    TEMP_SET_ZONE_ENABLED_FLAG_80                = 0x00000080,
    TEMP_SET_ZONE_ENABLED_FLAG_100               = 0x00000100,
    TEMP_SET_ZONE_ENABLED_FLAG_200               = 0x00000200,
    TEMP_SET_ZONE_ENABLED_FLAG_400               = 0x00000400,
    TEMP_SET_ZONE_ENABLED_FLAG_800               = 0x00000800,
    TEMP_SET_ZONE_ENABLED_FLAG_1000              = 0x00001000,
    TEMP_SET_ZONE_ENABLED_FLAG_2000              = 0x00002000,
    TEMP_SET_ZONE_ENABLED_FLAG_4000              = 0x00004000,
    TEMP_SET_ZONE_ENABLED_FLAG_8000              = 0x00008000,
    TEMP_SET_ZONE_ENABLED_FLAG_10000             = 0x00010000,
    TEMP_SET_ZONE_ENABLED_FLAG_20000             = 0x00020000,
    TEMP_SET_ZONE_ENABLED_FLAG_40000             = 0x00040000,
    TEMP_SET_ZONE_ENABLED_FLAG_80000             = 0x00080000,
    TEMP_SET_ZONE_ENABLED_FLAG_100000            = 0x00100000,
    TEMP_SET_ZONE_ENABLED_FLAG_200000            = 0x00200000,
    TEMP_SET_ZONE_ENABLED_FLAG_400000            = 0x00400000,
    TEMP_SET_ZONE_ENABLED_FLAG_800000            = 0x00800000,
    TEMP_SET_ZONE_ENABLED_FLAG_1000000           = 0x01000000,
    TEMP_SET_ZONE_ENABLED_FLAG_2000000           = 0x02000000,
    TEMP_SET_ZONE_ENABLED_FLAG_4000000           = 0x04000000,
    TEMP_SET_ZONE_ENABLED_FLAG_8000000           = 0x08000000,
    TEMP_SET_ZONE_ENABLED_FLAG_10000000          = 0x10000000,
    TEMP_SET_ZONE_ENABLED_FLAG_20000000          = 0x20000000,
    TEMP_SET_ZONE_ENABLED_FLAG_40000000          = 0x40000000,
    TEMP_SET_ZONE_ENABLED_FLAG_80000000          = 0x80000000,
};

enum EffectInstanceFlags {
    EFFECT_INSTANCE_FLAG_1                 = 0x00000001,
    EFFECT_INSTANCE_FLAG_2                 = 0x00000002,
    EFFECT_INSTANCE_FLAG_4                 = 0x00000004,
    EFFECT_INSTANCE_FLAG_8                 = 0x00000008,
    EFFECT_INSTANCE_FLAG_10                = 0x00000010, // mark ready for cleanup
    EFFECT_INSTANCE_FLAG_20                = 0x00000020,
    EFFECT_INSTANCE_FLAG_40                = 0x00000040,
    EFFECT_INSTANCE_FLAG_80                = 0x00000080,
    EFFECT_INSTANCE_FLAG_100               = 0x00000100,
    EFFECT_INSTANCE_FLAG_200               = 0x00000200,
    EFFECT_INSTANCE_FLAG_400               = 0x00000400,
    EFFECT_INSTANCE_FLAG_800               = 0x00000800,
    EFFECT_INSTANCE_FLAG_1000              = 0x00001000,
    EFFECT_INSTANCE_FLAG_2000              = 0x00002000,
    EFFECT_INSTANCE_FLAG_4000              = 0x00004000,
    EFFECT_INSTANCE_FLAG_8000              = 0x00008000,
    EFFECT_INSTANCE_FLAG_10000             = 0x00010000,
    EFFECT_INSTANCE_FLAG_20000             = 0x00020000,
    EFFECT_INSTANCE_FLAG_40000             = 0x00040000,
    EFFECT_INSTANCE_FLAG_80000             = 0x00080000,
    EFFECT_INSTANCE_FLAG_100000            = 0x00100000,
    EFFECT_INSTANCE_FLAG_200000            = 0x00200000,
    EFFECT_INSTANCE_FLAG_400000            = 0x00400000,
    EFFECT_INSTANCE_FLAG_800000            = 0x00800000,
    EFFECT_INSTANCE_FLAG_1000000           = 0x01000000,
    EFFECT_INSTANCE_FLAG_2000000           = 0x02000000,
    EFFECT_INSTANCE_FLAG_4000000           = 0x04000000,
    EFFECT_INSTANCE_FLAG_8000000           = 0x08000000,
    EFFECT_INSTANCE_FLAG_10000000          = 0x10000000,
    EFFECT_INSTANCE_FLAG_20000000          = 0x20000000,
    EFFECT_INSTANCE_FLAG_40000000          = 0x40000000,
    EFFECT_INSTANCE_FLAG_80000000          = 0x80000000,
};

enum ModelTransformGroupFlags {
    MODEL_TRANSFORM_GROUP_FLAG_1                 = 0x00000001,
    MODEL_TRANSFORM_GROUP_FLAG_2                 = 0x00000002,
    MODEL_TRANSFORM_GROUP_FLAG_4                 = 0x00000004,
    MODEL_TRANSFORM_GROUP_FLAG_8                 = 0x00000008,
    MODEL_TRANSFORM_GROUP_FLAG_10                = 0x00000010,
    MODEL_TRANSFORM_GROUP_FLAG_20                = 0x00000020,
    MODEL_TRANSFORM_GROUP_FLAG_40                = 0x00000040,
    MODEL_TRANSFORM_GROUP_FLAG_80                = 0x00000080,
    MODEL_TRANSFORM_GROUP_FLAG_100               = 0x00000100,
    MODEL_TRANSFORM_GROUP_FLAG_200               = 0x00000200,
    MODEL_TRANSFORM_GROUP_FLAG_400               = 0x00000400,
    MODEL_TRANSFORM_GROUP_FLAG_800               = 0x00000800,
    MODEL_TRANSFORM_GROUP_FLAG_1000              = 0x00001000,
    MODEL_TRANSFORM_GROUP_FLAG_2000              = 0x00002000,
    MODEL_TRANSFORM_GROUP_FLAG_4000              = 0x00004000,
    MODEL_TRANSFORM_GROUP_FLAG_8000              = 0x00008000,
    MODEL_TRANSFORM_GROUP_FLAG_10000             = 0x00010000,
    MODEL_TRANSFORM_GROUP_FLAG_20000             = 0x00020000,
    MODEL_TRANSFORM_GROUP_FLAG_40000             = 0x00040000,
    MODEL_TRANSFORM_GROUP_FLAG_80000             = 0x00080000,
    MODEL_TRANSFORM_GROUP_FLAG_100000            = 0x00100000,
    MODEL_TRANSFORM_GROUP_FLAG_200000            = 0x00200000,
    MODEL_TRANSFORM_GROUP_FLAG_400000            = 0x00400000,
    MODEL_TRANSFORM_GROUP_FLAG_800000            = 0x00800000,
    MODEL_TRANSFORM_GROUP_FLAG_1000000           = 0x01000000,
    MODEL_TRANSFORM_GROUP_FLAG_2000000           = 0x02000000,
    MODEL_TRANSFORM_GROUP_FLAG_4000000           = 0x04000000,
    MODEL_TRANSFORM_GROUP_FLAG_8000000           = 0x08000000,
    MODEL_TRANSFORM_GROUP_FLAG_10000000          = 0x10000000,
    MODEL_TRANSFORM_GROUP_FLAG_20000000          = 0x20000000,
    MODEL_TRANSFORM_GROUP_FLAG_40000000          = 0x40000000,
    MODEL_TRANSFORM_GROUP_FLAG_80000000          = 0x80000000,
};

enum NpcDropFlags {
    NPC_DROP_FLAG_1                 = 0x01,
    NPC_DROP_FLAG_2                 = 0x02,
    NPC_DROP_FLAG_4                 = 0x04,
    NPC_DROP_FLAG_8                 = 0x08,
    NPC_DROP_FLAG_10                = 0x10,
    NPC_DROP_FLAG_20                = 0x20,
    NPC_DROP_FLAG_40                = 0x40,
    NPC_DROP_FLAG_80                = 0x80,
};

enum FoldStateFlags {
    FOLD_STATE_FLAG_ENABLED           = 0x00000001,
    FOLD_STATE_FLAG_G_CULL_BACK       = 0x00000002,
    FOLD_STATE_FLAG_G_CULL_FRONT      = 0x00000004,
    FOLD_STATE_FLAG_10                = 0x00000010,
    FOLD_STATE_FLAG_20                = 0x00000020,
    FOLD_STATE_FLAG_40                = 0x00000040,
    FOLD_STATE_FLAG_80                = 0x00000080,
    FOLD_STATE_FLAG_100               = 0x00000100,
    FOLD_STATE_FLAG_200               = 0x00000200,
    FOLD_STATE_FLAG_400               = 0x00000400,
    FOLD_STATE_FLAG_800               = 0x00000800,
    FOLD_STATE_FLAG_1000              = 0x00001000,
    FOLD_STATE_FLAG_2000              = 0x00002000,
    FOLD_STATE_FLAG_4000              = 0x00004000,
    FOLD_STATE_FLAG_8000              = 0x00008000,
    FOLD_STATE_FLAG_NO_FILTERING      = 0x00010000,
    FOLD_STATE_FLAG_20000             = 0x00020000,
    FOLD_STATE_FLAG_40000             = 0x00040000,
    FOLD_STATE_FLAG_80000             = 0x00080000,
    FOLD_STATE_FLAG_100000            = 0x00100000,
};

typedef enum FoldType {
    FOLD_TYPE_NONE                    = 0x0,
    FOLD_TYPE_1                       = 0x1,
    FOLD_TYPE_2                       = 0x2,
    FOLD_TYPE_3                       = 0x3,
    FOLD_TYPE_4                       = 0x4,
    FOLD_TYPE_5                       = 0x5,
    FOLD_TYPE_6                       = 0x6,
    FOLD_TYPE_7                       = 0x7,
    FOLD_TYPE_8                       = 0x8,    // color overlay?
    FOLD_TYPE_9                       = 0x9,
    FOLD_TYPE_A                       = 0xA,
    FOLD_TYPE_B                       = 0xB,
    FOLD_TYPE_C                       = 0xC,
    FOLD_TYPE_D                       = 0xD,    // noisy hologram -- used for ghostly star spirits and merlar
    FOLD_TYPE_E                       = 0xE,
    FOLD_TYPE_F                       = 0xF,
    FOLD_TYPE_10                      = 0x10,
    FOLD_TYPE_11                      = 0x11,
} FoldType;

typedef enum FoldRenderType {
    FOLD_RENDER_TYPE_0                  = 0x0,
    FOLD_RENDER_TYPE_1                  = 0x1,
    FOLD_RENDER_TYPE_2                  = 0x2,
    FOLD_RENDER_TYPE_3                  = 0x3,
    FOLD_RENDER_TYPE_4                  = 0x4,
    FOLD_RENDER_TYPE_5                  = 0x5,
    FOLD_RENDER_TYPE_6                  = 0x6,
    FOLD_RENDER_TYPE_7                  = 0x7,
    FOLD_RENDER_TYPE_8                  = 0x8,
    FOLD_RENDER_TYPE_9                  = 0x9,
    FOLD_RENDER_TYPE_A                  = 0xA,
    FOLD_RENDER_TYPE_B                  = 0xB,
    FOLD_RENDER_TYPE_C                  = 0xC,
    FOLD_RENDER_TYPE_D                  = 0xD,
    FOLD_RENDER_TYPE_E                  = 0xE,
    FOLD_RENDER_TYPE_F                  = 0xF,
    FOLD_RENDER_TYPE_10                 = 0x10,
} FoldRenderType;

typedef enum FoldMeshType {
    FOLD_MESH_TYPE_0                  = 0x0,
    FOLD_MESH_TYPE_1                  = 0x1,
    FOLD_MESH_TYPE_2                  = 0x2,
    FOLD_MESH_TYPE_3                  = 0x3,
    FOLD_MESH_TYPE_4                  = 0x4,
} FoldMeshType;

enum MoveType {
    MOVE_TYPE_NONE          = 0,
    MOVE_TYPE_HAMMER        = 1,
    MOVE_TYPE_JUMP          = 2,
    MOVE_TYPE_3             = 3,
    MOVE_TYPE_ITEMS         = 4,
    MOVE_TYPE_SWITCH        = 5,
    MOVE_TYPE_6             = 6,
    MOVE_TYPE_ATTACK_UP     = 7,
    MOVE_TYPE_DEFENSE_UP    = 8,
    MOVE_TYPE_9             = 9,
    MOVE_TYPE_STAR_POWER    = 10,
    MOVE_TYPE_PARTNER       = 11
};

enum BattleMenuStatus {
    BATTLE_SUBMENU_STATUS_ENABLED           = 1,
    BATTLE_SUBMENU_STATUS_NOT_ENOUGH_FP     = 0,
    BATTLE_SUBMENU_STATUS_NO_TARGETS        = -1,
    BATTLE_SUBMENU_STATUS_NO_TARGETS_2      = -2, // TODO: determine difference, probably uses a different error message
};

enum DictionaryIndex {
    DICTIONARY_KEY   = 0,
    DICTIONARY_VALUE = 1,
    DICTIONARY_SIZE,
};

enum WindowId {
    WINDOW_ID_NONE                              = -1,
    WINDOW_ID_0                                 = 0,
    WINDOW_ID_1                                 = 1,
    WINDOW_ID_2                                 = 2,
    WINDOW_ID_3                                 = 3,
    WINDOW_ID_4                                 = 4,
    WINDOW_ID_5                                 = 5,
    WINDOW_ID_6                                 = 6,
    WINDOW_ID_7                                 = 7,
    WINDOW_ID_8                                 = 8, // battle main?
    WINDOW_ID_BATTLE_POPUP                      = 9,
    WINDOW_ID_ITEM_INFO_NAME                    = 10,
    WINDOW_ID_ITEM_INFO_DESC                    = 11,
    WINDOW_ID_12                                = 12,
    WINDOW_ID_13                                = 13,
    WINDOW_ID_14                                = 14,
    WINDOW_ID_15                                = 15,
    WINDOW_ID_16                                = 16,
    WINDOW_ID_17                                = 17,
    WINDOW_ID_18                                = 18,
    WINDOW_ID_19                                = 19,
    WINDOW_ID_CURRENCY_COUNTER                  = 20,
    WINDOW_ID_21                                = 21,
    WINDOW_ID_PAUSE_MAIN                        = 22,
    WINDOW_ID_PAUSE_DECRIPTION                  = 23,
    WINDOW_ID_FILEMENU_CURSOR                   = 23, // same as previous
    WINDOW_ID_PAUSE_TUTORIAL                    = 24,
    WINDOW_ID_FILEMENU_COPYARROW                = 24, // same as previous
    WINDOW_ID_PAUSE_TAB_STATS                   = 25,
    WINDOW_ID_PAUSE_TAB_BADGES                  = 26,
    WINDOW_ID_PAUSE_TAB_ITEMS                   = 27,
    WINDOW_ID_PAUSE_TAB_PARTY                   = 28,
    WINDOW_ID_PAUSE_TAB_SPIRITS                 = 29,
    WINDOW_ID_PAUSE_TAB_MAP                     = 30,
    WINDOW_ID_PAUSE_STATS                       = 31,
    WINDOW_ID_PAUSE_BADGES                      = 32,
    WINDOW_ID_PAUSE_ITEMS                       = 33,
    WINDOW_ID_PAUSE_PARTNERS                    = 34,
    WINDOW_ID_PAUSE_PARTNERS_TITLE              = 35,
    WINDOW_ID_PAUSE_PARTNERS_MOVELIST           = 36,
    WINDOW_ID_PAUSE_PARTNERS_MOVELIST_TITLE     = 37,
    WINDOW_ID_PAUSE_PARTNERS_MOVELIST_FLOWER    = 38,
    WINDOW_ID_PAUSE_SPIRITS                     = 39,
    WINDOW_ID_PAUSE_SPIRITS_TITLE               = 40,
    WINDOW_ID_PAUSE_MAP                         = 41,
    WINDOW_ID_PAUSE_MAP_TITLE                   = 42,
    WINDOW_ID_PAUSE_TAB_INVIS                   = 43,
    WINDOW_ID_PAUSE_CURSOR                      = 44,
    WINDOW_ID_FILEMENU_MAIN                     = 44, // same as previous
    WINDOW_ID_FILEMENU_TITLE                    = 45,
    WINDOW_ID_FILEMENU_YESNO_PROMPT             = 46,
    WINDOW_ID_FILEMENU_INFO                     = 47,
    WINDOW_ID_FILEMENU_CREATEFILE_HEADER        = 48,
    WINDOW_ID_FILEMENU_KEYBOARD                 = 49,
    WINDOW_ID_FILEMENU_YESNO_OPTIONS            = 50,
    WINDOW_ID_FILEMENU_STEREO                   = 51,
    WINDOW_ID_FILEMENU_MONO                     = 52,
    WINDOW_ID_FILEMENU_OPTION_LEFT              = 53,
    WINDOW_ID_FILEMENU_OPTION_CENTER            = 54,
    WINDOW_ID_FILEMENU_OPTION_RIGHT             = 55,
    WINDOW_ID_FILEMENU_FILE0_INFO               = 56,
    WINDOW_ID_FILEMENU_FILE1_INFO               = 57,
    WINDOW_ID_FILEMENU_FILE2_INFO               = 58,
    WINDOW_ID_FILEMENU_FILE3_INFO               = 59,
    WINDOW_ID_FILEMENU_FILE0_TITLE              = 60,
    WINDOW_ID_FILEMENU_FILE1_TITLE              = 61,
    WINDOW_ID_FILEMENU_FILE2_TITLE              = 62,
    WINDOW_ID_FILEMENU_FILE3_TITLE              = 63,
};

enum SimpleWindowUpdateId {
    WINDOW_UPDATE_SHOW              = 1,
    WINDOW_UPDATE_HIDE              = 2,
    WINDOW_UPDATE_HIER_UPDATE       = 3,
    WINDOW_UPDATE_DARKENED          = 4,
    WINDOW_UPDATE_TRANSPARENT       = 5,
    WINDOW_UPDATE_OPAQUE            = 6,
    WINDOW_UPDATE_SHOW_TRANSPARENT  = 7,
    WINDOW_UPDATE_SHOW_DARKENED     = 8,
    WINDOW_UPDATE_9                 = 9,
};

enum WindowGroupId {
    WINDOW_GROUP_ALL = 0,
    WINDOW_GROUP_1 = 1,
    WINDOW_GROUP_PAUSE_MENU = 2,
    WINDOW_GROUP_FILE_MENU = 3,
};

enum RushFlags {
    RUSH_FLAG_NONE  = 0,
    RUSH_FLAG_MEGA  = 1,
    RUSH_FLAG_POWER = 2,
};

enum FileMenuMessages {
    FILE_MESSAGE_NONE                       = 0,
    FILE_MESSAGE_SELECT_FILE_TO_START       = 1, // Select file to start:[End]
    FILE_MESSAGE_SELECT_FILE_TO_DELETE      = 2, // Select file to delete:[End]
    FILE_MESSAGE_SELECT_FILE_TO_SAVE        = 3, // Select file to save[End]
    FILE_MESSAGE_COPY_WHICH_FILE            = 4, // Copy which file?[End]
    FILE_MESSAGE_COPY_TO_WHICH_FILE         = 5, // Copy to which file?[End]
    FILE_MESSAGE_NEW                        = 6, // NEW[End]
    FILE_MESSAGE_LEVEL                      = 7, // Level[End]
    FILE_MESSAGE_PLAY_TIME                  = 8, // Play Time[End]
    FILE_MESSAGE_DELETE_FILE                = 9, // Delete File[End]
    FILE_MESSAGE_CANCEL                     = 10, // Cancel[End]
    FILE_MESSAGE_COPY_FILE                  = 11, // Copy File[End]
    FILE_MESSAGE_FIRST_PLAY                 = 12, // First Play[End]
    FILE_MESSAGE_PERIOD_13                  = 13, // .[End]
    FILE_MESSAGE_YES                        = 14, // Yes[End]
    FILE_MESSAGE_NO                         = 15, // No[End]
    FILE_MESSAGE_DELETE                     = 16, // Delete[End]
    FILE_MESSAGE_OVERRIDE_TO_NEW_DATA       = 17, // Override to New Data[End]
    FILE_MESSAGE_SAVE_OK                    = 18, // Save OK?[End]
    FILE_MESSAGE_FILE_NAME_IS               = 19, // File name is :[End]
    FILE_MESSAGE_PERIOD_20                  = 20, // .[End]
    FILE_MESSAGE_OK                         = 21, // OK?[End]
    FILE_MESSAGE_FILE_22                    = 22, // File[End]
    FILE_MESSAGE_WILL_BE_DELETED            = 23, // will be deleted.[End]
    FILE_MESSAGE_OK_TO_COPY_TO_THIS_FILE    = 24, // OK to copy to this file?[End]
    FILE_MESSAGE_START_GAME_WITH            = 25, // Start game with[End]
    FILE_MESSAGE_FILE_26                    = 26, // File[End]
    FILE_MESSAGE_HAS_BEEN_DELETED           = 27, // has been deleted.[End]
    FILE_MESSAGE_28                         = 28, // [End]
    FILE_MESSAGE_COPY_FROM                  = 29, // Copy from[End]
    FILE_MESSAGE_TO                         = 30, // to[End]
    FILE_MESSAGE_HAS_BEEN_CREATED           = 31, // has been created.[End]
    FILE_MESSAGE_ENTER_A_FILE_NAME          = 32, // Enter a file name![End]
    FILE_MESSAGE_QUESTION                   = 33, // ?[End]
    FILE_MESSAGE_PERIOD_34                  = 34, // .[End]
};

// 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 {
    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

#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,
#endif

    MSG_CHAR_UNK_C3                 = 0xC3,

    // 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_RIGHT                 = 0x01,
    MSG_STYLE_LEFT                  = 0x02,
    MSG_STYLE_CENTER                = 0x03,
    MSG_STYLE_TATTLE                = 0x04,
    MSG_STYLE_CHOICE                = 0x05,
    MSG_STYLE_INSPECT               = 0x06,
    MSG_STYLE_SIGN                  = 0x07,
    MSG_STYLE_LAMPPOST              = 0x08,
    MSG_STYLE_POSTCARD              = 0x09,
    MSG_STYLE_POPUP                 = 0x0A,
    MSG_STYLE_B                     = 0x0B,
    MSG_STYLE_UPGRADE               = 0x0C,
    MSG_STYLE_NARRATE               = 0x0D,
    MSG_STYLE_EPILOGUE              = 0x0E,
    MSG_STYLE_F                     = 0x0F
};

enum MsgFonts {
    MSG_FONT_NORMAL                 = 0,
    MSG_FONT_MENU                   = 1,
    MSG_FONT_TITLE                  = 3,
    MSG_FONT_SUBTITLE               = 4
};

enum MsgVoices {
    MSG_VOICE_NORMAL                = 0,
    MSG_VOICE_BOWSER                = 1,
    MSG_VOICE_STAR                  = 2
};

enum MsgPrintModeFlags {
    MSG_PRINT_FLAG_1                = 0x001,
    MSG_PRINT_FLAG_2                = 0x002,
    MSG_PRINT_FLAG_10               = 0x010,
    MSG_PRINT_FLAG_20               = 0x020,
    MSG_PRINT_FLAG_40               = 0x040,
    MSG_PRINT_FLAG_80               = 0x080,
    MSG_PRINT_FLAG_100              = 0x100,
};

enum MsgStateFlags {
    MSG_STATE_FLAG_1                = 0x000001,
    MSG_STATE_FLAG_2                = 0x000002,
    MSG_STATE_FLAG_4                = 0x000004,
    MSG_STATE_FLAG_10               = 0x000010,
    MSG_STATE_FLAG_20               = 0x000020,
    MSG_STATE_FLAG_40               = 0x000040,
    MSG_STATE_FLAG_80               = 0x000080,
    MSG_STATE_FLAG_PRINT_QUICKLY    = 0x000100,
    MSG_STATE_FLAG_400              = 0x000400,
    MSG_STATE_FLAG_800              = 0x000800,
    MSG_STATE_FLAG_1000             = 0x001000,
    MSG_STATE_FLAG_4000             = 0x004000,
    MSG_STATE_FLAG_8000             = 0x008000,
    MSG_STATE_FLAG_10000            = 0x010000,
    MSG_STATE_FLAG_20000            = 0x020000,
    MSG_STATE_FLAG_40000            = 0x040000,
    MSG_STATE_FLAG_80000            = 0x080000,
    MSG_STATE_FLAG_100000           = 0x100000,
    MSG_STATE_FLAG_800000           = 0x800000,
};

enum MsgDelayFlags {
    MSG_DELAY_FLAG_1                = 0x000001,
    MSG_DELAY_FLAG_2                = 0x000002,
    MSG_DELAY_FLAG_4                = 0x000004,
};

enum MsgWindowStates {
    MSG_WINDOW_STATE_DONE               = 0x0,
    MSG_WINDOW_STATE_INIT               = 0x1,
    MSG_WINDOW_STATE_OPENING            = 0x2,
    MSG_WINDOW_STATE_CLOSING            = 0x3,
    MSG_WINDOW_STATE_PRINTING           = 0x4,
    MSG_WINDOW_STATE_WAITING            = 0x5,
    MSG_WINDOW_STATE_SCROLLING          = 0x6,
    MSG_WINDOW_STATE_WAITING_FOR_CHOICE = 0x7,
    MSG_WINDOW_STATE_SCROLLING_BACK     = 0x8,
    MSG_WINDOW_STATE_VIEWING_PREV       = 0x9,
    MSG_WINDOW_STATE_A                  = 0xA,
    MSG_WINDOW_STATE_B                  = 0xB,
    MSG_WINDOW_STATE_C                  = 0xC,
    MSG_WINDOW_STATE_D                  = 0xD,
    MSG_WINDOW_STATE_E                  = 0xE,
};

enum BackgroundFlags {
    BACKGROUND_FLAG_TEXTURE         = 0x01,
    BACKGROUND_FLAG_FOG             = 0x02,
    BACKGROUND_RENDER_STATE_1       = 0x10,
    BACKGROUND_RENDER_STATE_2       = 0x20,
    BACKGROUND_RENDER_STATE_3       = 0x30,
    BACKGROUND_RENDER_STATE_MASK    = 0xF0,
};

enum FogModes {
    FOG_MODE_UNCHANGED = -1,
    FOG_MODE_0 = 0,
    FOG_MODE_1 = 1,
    FOG_MODE_2 = 2,
    FOG_MODE_3 = 3,
};

enum EncounterStates {
    ENCOUNTER_STATE_NONE            = 0,
    ENCOUNTER_STATE_CREATE          = 1,
    ENCOUNTER_STATE_NEUTRAL         = 2,
    ENCOUNTER_STATE_PRE_BATTLE      = 3,
    ENCOUNTER_STATE_CONVERSATION    = 4,
    ENCOUNTER_STATE_POST_BATTLE     = 5,
};

enum EncounterCreateSubStates {
    ENCOUNTER_SUBSTATE_CREATE_INIT = 0,
    ENCOUNTER_SUBSTATE_CREATE_RUN_INIT_SCRIPT = 1,
    ENCOUNTER_SUBSTATE_CREATE_RUN_AI = 2,
};

enum EncounterNeutralSubStates {
    ENCOUNTER_SUBSTATE_NEUTRAL = 0,
};

enum EncounterPreBattleSubStates {
    ENCOUNTER_SUBSTATE_PRE_BATTLE_INIT = 0,
    ENCOUNTER_SUBSTATE_PRE_BATTLE_LOAD_BATTLE = 1,
    ENCOUNTER_SUBSTATE_PRE_BATTLE_AUTO_WIN = 2,
    ENCOUNTER_SUBSTATE_PRE_BATTLE_3 = 3,
};

enum EncounterConversationSubStates {
    ENCOUNTER_SUBSTATE_CONVERSATION_INIT = 0,
    ENCOUNTER_SUBSTATE_CONVERSATION_END = 1,
};

enum EncounterPostBattleSubStates {
    ENCOUNTER_SUBSTATE_POST_BATTLE_INIT = 0,
    ENCOUNTER_SUBSTATE_POST_BATTLE_WON_WAIT = 2,
    ENCOUNTER_SUBSTATE_POST_BATTLE_WON_KILL = 3,
    ENCOUNTER_SUBSTATE_POST_BATTLE_WON_TO_NEUTRAL = 4,
    ENCOUNTER_SUBSTATE_POST_BATTLE_WON_CHECK_MERLEE_BONUS = 10,
    ENCOUNTER_SUBSTATE_POST_BATTLE_PLAY_NPC_DEFEAT = 11,
    ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_INIT = 100,
    ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_WAIT = 101,
    ENCOUNTER_SUBSTATE_POST_BATTLE_102 = 102,
    ENCOUNTER_SUBSTATE_POST_BATTLE_103 = 103,
    ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_INIT = 200,
    ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_WAIT = 201,
    ENCOUNTER_SUBSTATE_POST_BATTLE_202 = 202,
    ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_TO_NEUTRAL = 203,
    ENCOUNTER_SUBSTATE_POST_BATTLE_300 = 300,
    ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_INIT = 400,
    ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_WAIT = 401,
    ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_TO_NEUTRAL = 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,
};

#endif
