#ifndef OBJECT_CONSTANTS_H #define OBJECT_CONSTANTS_H // This file contains macros that provide descriptive names for // field-specific and object-specific constants, e.g. actions. /* activeFlags */ enum ObjActiveFlags { ACTIVE_FLAG_DEACTIVATED = (0 << 0), // 0x0000 ACTIVE_FLAG_ACTIVE = (1 << 0), // 0x0001 ACTIVE_FLAG_FAR_AWAY = (1 << 1), // 0x0002 ACTIVE_FLAG_UNUSED = (1 << 2), // 0x0004 ACTIVE_FLAG_IN_DIFFERENT_ROOM = (1 << 3), // 0x0008 ACTIVE_FLAG_UNIMPORTANT = (1 << 4), // 0x0010 ACTIVE_FLAG_INITIATED_TIME_STOP = (1 << 5), // 0x0020 ACTIVE_FLAG_MOVE_THROUGH_GRATE = (1 << 6), // 0x0040 ACTIVE_FLAG_DITHERED_ALPHA = (1 << 7), // 0x0080 ACTIVE_FLAG_ALLOCATED = (1 << 8), // 0x0100 ACTIVE_FLAG_DESTRUCTIVE_OBJ_DONT_DESTROY = (1 << 9), // 0x0200 ACTIVE_FLAG_IGNORE_ENV_BOXES = (1 << 10), // 0x0400 }; /* respawnInfoType */ enum RespawnInfoType { RESPAWN_INFO_TYPE_NULL, RESPAWN_INFO_TYPE_NORMAL, RESPAWN_INFO_TYPE_MACRO_OBJECT }; /* respawnInfo */ #define RESPAWN_INFO_DONT_RESPAWN 0xFF /* oFlags */ enum ObjFlags { OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE = (1 << 0), // 0x00000001 OBJ_FLAG_MOVE_XZ_USING_FVEL = (1 << 1), // 0x00000002 OBJ_FLAG_MOVE_Y_WITH_TERMINAL_VEL = (1 << 2), // 0x00000004 OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW = (1 << 3), // 0x00000008 OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE = (1 << 4), // 0x00000010 OBJ_FLAG_UPDATE_TRANSFORM_FOR_THROW_MATRIX = (1 << 5), // 0x00000020 OBJ_FLAG_COMPUTE_DIST_TO_MARIO = (1 << 6), // 0x00000040 OBJ_FLAG_ACTIVE_FROM_AFAR = (1 << 7), // 0x00000080 OBJ_FLAG_PLAYER = (1 << 8), // 0x00000100 OBJ_FLAG_TRANSFORM_RELATIVE_TO_PARENT = (1 << 9), // 0x00000200 OBJ_FLAG_HOLDABLE = (1 << 10), // 0x00000400 OBJ_FLAG_SET_THROW_MATRIX_FROM_TRANSFORM = (1 << 11), // 0x00000800 OBJ_FLAG_1000 = (1 << 12), // 0x00001000 OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO = (1 << 13), // 0x00002000 OBJ_FLAG_PERSISTENT_RESPAWN = (1 << 14), // 0x00004000 OBJ_FLAG_VELOCITY_PLATFORM = (1 << 15), // 0x00008000 OBJ_FLAG_DONT_CALC_COLL_DIST = (1 << 16), // 0x00010000 OBJ_FLAG_UCODE_SMALL = (1 << 17), // 0x00020000 OBJ_FLAG_UCODE_LARGE = (1 << 18), // 0x00040000 OBJ_FLAG_SILHOUETTE = (1 << 19), // 0x00080000 OBJ_FLAG_OCCLUDE_SILHOUETTE = (1 << 20), // 0x00100000 OBJ_FLAG_OPACITY_FROM_CAMERA_DIST = (1 << 21), // 0x00200000 OBJ_FLAG_EMIT_LIGHT = (1 << 22), // 0x00400000 OBJ_FLAG_HITBOX_WAS_SET = (1 << 30), // 0x40000000 }; /* oHeldState */ enum HeldState { HELD_FREE, HELD_HELD, HELD_THROWN, HELD_DROPPED }; /* oDialogState */ enum DialogState { DIALOG_STATUS_ENABLE_TIME_STOP, DIALOG_STATUS_INTERRUPT, DIALOG_STATUS_START_DIALOG, DIALOG_STATUS_STOP_DIALOG, DIALOG_STATUS_DISABLE_TIME_STOP }; enum DialogFlags { DIALOG_FLAG_NONE = (0 << 0), // 0x00 DIALOG_FLAG_TURN_TO_MARIO = (1 << 0), // 0x01 // cutscene only DIALOG_FLAG_TEXT_DEFAULT = (1 << 1), // 0x02 DIALOG_FLAG_TEXT_RESPONSE = (1 << 2), // 0x04 // non-cutscene only DIALOG_FLAG_UNK_CAPSWITCH = (1 << 3), // 0x08 // not defined DIALOG_FLAG_TIME_STOP_ENABLED = (1 << 4), // 0x10 }; /* oMoveFlags */ enum ObjMoveFlags { OBJ_MOVE_NONE = (0 << 0), // 0x0000 OBJ_MOVE_LANDED = (1 << 0), // 0x0001 OBJ_MOVE_ON_GROUND = (1 << 1), // 0x0002 // mutually exclusive to OBJ_MOVE_LANDED OBJ_MOVE_LEFT_GROUND = (1 << 2), // 0x0004 OBJ_MOVE_ENTERED_WATER = (1 << 3), // 0x0008 OBJ_MOVE_AT_WATER_SURFACE = (1 << 4), // 0x0010 OBJ_MOVE_UNDERWATER_OFF_GROUND = (1 << 5), // 0x0020 OBJ_MOVE_UNDERWATER_ON_GROUND = (1 << 6), // 0x0040 OBJ_MOVE_IN_AIR = (1 << 7), // 0x0080 OBJ_MOVE_OUT_SCOPE = (1 << 8), // 0x0100 OBJ_MOVE_HIT_WALL = (1 << 9), // 0x0200 OBJ_MOVE_HIT_EDGE = (1 << 10), // 0x0400 OBJ_MOVE_ABOVE_LAVA = (1 << 11), // 0x0800 OBJ_MOVE_LEAVING_WATER = (1 << 12), // 0x1000 OBJ_MOVE_BOUNCE = (1 << 13), // 0x2000 OBJ_MOVE_ABOVE_DEATH_BARRIER = (1 << 14), // 0x4000 OBJ_MOVE_UNUSED = (1 << 15), // 0x8000 }; #define OBJ_MOVE_MASK_ON_GROUND (OBJ_MOVE_LANDED | OBJ_MOVE_ON_GROUND) #define OBJ_MOVE_MASK_IN_WATER (\ OBJ_MOVE_ENTERED_WATER |\ OBJ_MOVE_AT_WATER_SURFACE |\ OBJ_MOVE_UNDERWATER_OFF_GROUND |\ OBJ_MOVE_UNDERWATER_ON_GROUND) /* oActiveParticleFlags */ enum ActiveParticleFlags { ACTIVE_PARTICLE_NONE = (0 << 0), // 0x00000000 ACTIVE_PARTICLE_DUST = (1 << 0), // 0x00000001 ACTIVE_PARTICLE_UNUSED_1 = (1 << 1), // 0x00000002 ACTIVE_PARTICLE_UNUSED_2 = (1 << 2), // 0x00000004 ACTIVE_PARTICLE_SPARKLES = (1 << 3), // 0x00000008 ACTIVE_PARTICLE_H_STAR = (1 << 4), // 0x00000010 ACTIVE_PARTICLE_BUBBLE = (1 << 5), // 0x00000020 ACTIVE_PARTICLE_WATER_SPLASH = (1 << 6), // 0x00000040 ACTIVE_PARTICLE_IDLE_WATER_WAVE = (1 << 7), // 0x00000080 ACTIVE_PARTICLE_SHALLOW_WATER_WAVE = (1 << 8), // 0x00000100 ACTIVE_PARTICLE_PLUNGE_BUBBLE = (1 << 9), // 0x00000200 ACTIVE_PARTICLE_WAVE_TRAIL = (1 << 10), // 0x00000400 ACTIVE_PARTICLE_FIRE = (1 << 11), // 0x00000800 ACTIVE_PARTICLE_SHALLOW_WATER_SPLASH = (1 << 12), // 0x00001000 ACTIVE_PARTICLE_LEAF = (1 << 13), // 0x00002000 ACTIVE_PARTICLE_DIRT = (1 << 14), // 0x00004000 ACTIVE_PARTICLE_MIST_CIRCLE = (1 << 15), // 0x00008000 ACTIVE_PARTICLE_SNOW = (1 << 16), // 0x00010000 ACTIVE_PARTICLE_BREATH = (1 << 17), // 0x00020000 ACTIVE_PARTICLE_V_STAR = (1 << 18), // 0x00040000 ACTIVE_PARTICLE_TRIANGLE = (1 << 19), // 0x00080000 }; /* oBehParams */ /** * behParams: oBehParams * index: index of bparam in oBehParams * val: bparam value * num: number of bparams to read as one value */ // Number of bparams in oBehParams #define NUM_BPARAMS 4 // Number of bits in one bparam #define BPARAM_SIZE 8 // Number of bits in bparam bitmask #define BPARAM_MASK_SIZE(num) (BPARAM_SIZE * (num)) // bparam bitmask ('num' 1 -> 0xFF, 'num' 2 -> 0xFFFF, etc.) #define BPARAM_MASK(num) BITMASK(BPARAM_MASK_SIZE(num)) // Returns the amount of bits to shift a bparam value ('index' == bparam index) #define BPARAM_NSHIFT(index, num) (((NUM_BPARAMS - ((num) - 1)) - (index)) * BPARAM_SIZE) // Returns the bparam(s) value shifted to the index location in oBehParams #define SHIFTED_BPARAM(val, index, num) (((val) & BPARAM_MASK(num)) << BPARAM_NSHIFT((index), (num))) // Returns the bparam(s) value from the index location in oBehParams #define GET_BPARAMS(behParams, index, num) ((behParams >> BPARAM_NSHIFT((index), (num))) & BPARAM_MASK(num)) // bparam mask shifted to the index location in oBehParams #define BPARAM_SHIFTED_MASK(index, num) (BPARAM_MASK(num) << BPARAM_NSHIFT((index), (num))) // oBehParams with the specified bparam(s) cleared #define CLEARED_BPARAM(behParams, index, num) ((behParams) & ~BPARAM_SHIFTED_MASK((index), (num))) // Get a u8 bparam from oBehParams #define GET_BPARAM1(behParams) GET_BPARAMS((behParams), 1, 1) #define GET_BPARAM2(behParams) GET_BPARAMS((behParams), 2, 1) #define GET_BPARAM3(behParams) GET_BPARAMS((behParams), 3, 1) #define GET_BPARAM4(behParams) GET_BPARAMS((behParams), 4, 1) // Read 2 bparams as a single value #define GET_BPARAM12(behParams) GET_BPARAMS((behParams), 1, 2) #define GET_BPARAM23(behParams) GET_BPARAMS((behParams), 2, 2) #define GET_BPARAM34(behParams) GET_BPARAMS((behParams), 3, 2) // Read 3 bparams as a single value #define GET_BPARAM123(behParams) GET_BPARAMS((behParams), 1, 3) #define GET_BPARAM234(behParams) GET_BPARAMS((behParams), 2, 3) // Set a bparam in oBehParams without overwriting other bparams #define SET_BPARAM(behParams, val, index, num) (behParams) = (CLEARED_BPARAM((behParams), (index), (num)) | SHIFTED_BPARAM((val), (index), (num))) #define SET_BPARAM1(behParams, val) SET_BPARAM((behParams), (val), 1, 1) #define SET_BPARAM2(behParams, val) SET_BPARAM((behParams), (val), 2, 1) #define SET_BPARAM3(behParams, val) SET_BPARAM((behParams), (val), 3, 1) #define SET_BPARAM4(behParams, val) SET_BPARAM((behParams), (val), 4, 1) // Set a bparam in oBehParams, clearing other bparams #define SET_FULL_BPARAM(behParams, val, index, num) (behParams) = SHIFTED_BPARAM((val), (index), (num)) #define SET_FULL_BPARAM1(behParams, val) SET_FULL_BPARAM((behParams), (val), 1, 1) #define SET_FULL_BPARAM2(behParams, val) SET_FULL_BPARAM((behParams), (val), 2, 1) #define SET_FULL_BPARAM3(behParams, val) SET_FULL_BPARAM((behParams), (val), 3, 1) #define SET_FULL_BPARAM4(behParams, val) SET_FULL_BPARAM((behParams), (val), 4, 1) // OR a bparam into an index in oBehParams #define OR_BPARAM(behParams, val, index, num) (behParams) |= SHIFTED_BPARAM((val), (index), (num)) #define OR_BPARAM1(behParams, val) OR_BPARAM((behParams), (val), 1, 1) #define OR_BPARAM2(behParams, val) OR_BPARAM((behParams), (val), 2, 1) #define OR_BPARAM3(behParams, val) OR_BPARAM((behParams), (val), 3, 1) #define OR_BPARAM4(behParams, val) OR_BPARAM((behParams), (val), 4, 1) // NAND a bparam into an index in oBehParams #define NAND_BPARAM(behParams, val, index, num) (behParams) &= ~SHIFTED_BPARAM((val), (index), (num)) #define NAND_BPARAM1(behParams, val) NAND_BPARAM((behParams), (val), 1, 1) #define NAND_BPARAM2(behParams, val) NAND_BPARAM((behParams), (val), 2, 1) #define NAND_BPARAM3(behParams, val) NAND_BPARAM((behParams), (val), 3, 1) #define NAND_BPARAM4(behParams, val) NAND_BPARAM((behParams), (val), 4, 1) // Current object bparams #define BPARAM1 GET_BPARAM1(o->oBehParams) #define BPARAM2 GET_BPARAM2(o->oBehParams) #define BPARAM3 GET_BPARAM3(o->oBehParams) #define BPARAM4 GET_BPARAM4(o->oBehParams) /* oBehParams2ndByte */ enum ObjGeneralBehParams { OBJ_BP_NONE }; /* oAction */ enum ObjGeneralProjectileActions { OBJ_ACT_PROJECTILE_HIT_MARIO = -1 }; /* oAction */ enum ObjGeneralDeathActions { OBJ_ACT_LAVA_DEATH = 100, OBJ_ACT_DEATH_PLANE_DEATH }; enum ObjGeneralKnockbackActions { OBJ_ACT_HORIZONTAL_KNOCKBACK = 100, OBJ_ACT_VERTICAL_KNOCKBACK, OBJ_ACT_SQUISHED }; /* oAnimState */ enum ObjGeneralAnimStates { OBJ_ANIM_STATE_INIT_ANIM = -1, OBJ_ANIM_STATE_DEFAULT = 0 }; /* cur_obj_update_blinking */ enum AnimStateBlinking { OBJ_BLINKING_ANIM_STATE_EYES_OPEN, OBJ_BLINKING_ANIM_STATE_EYES_CLOSED }; /* geo_update_layer_transparency */ enum AnimStateLayerTransparency { TRANSPARENCY_ANIM_STATE_OPAQUE, TRANSPARENCY_ANIM_STATE_TRANSPARENT }; /* Animations */ enum ObjGeneralAnimations { OBJ_ANIM_NONE = -1 }; /* gTTCSpeedSetting */ enum TTCSpeedSetting { TTC_SPEED_SLOW, TTC_SPEED_FAST, TTC_SPEED_RANDOM, TTC_SPEED_STOPPED }; /* Orange Number */ enum OrangeNumbers { // oBehParams2ndByte, oAnimState ORANGE_NUMBER_0, ORANGE_NUMBER_1, ORANGE_NUMBER_2, ORANGE_NUMBER_3, ORANGE_NUMBER_4, ORANGE_NUMBER_5, ORANGE_NUMBER_6, ORANGE_NUMBER_7, ORANGE_NUMBER_8, ORANGE_NUMBER_9, ORANGE_NUMBER_A, ORANGE_NUMBER_B, ORANGE_NUMBER_C, ORANGE_NUMBER_D, ORANGE_NUMBER_E, ORANGE_NUMBER_F }; /* Coin Type */ enum CoinTypes { // coinType COIN_TYPE_NONE, COIN_TYPE_YELLOW, COIN_TYPE_BLUE }; /* Bouncing Coin */ enum oActionsBouncingCoin { BOUNCING_COIN_ACT_FALLING, BOUNCING_COIN_ACT_BOUNCING }; /* Hidden Blue Coin */ enum oActionsHiddenBlueCoin { HIDDEN_BLUE_COIN_ACT_INACTIVE, HIDDEN_BLUE_COIN_ACT_WAITING, HIDDEN_BLUE_COIN_ACT_ACTIVE }; /* Blue Coin Switch */ enum oActionsBlueCoinSwitch { BLUE_COIN_SWITCH_ACT_IDLE, BLUE_COIN_SWITCH_ACT_RECEDING, BLUE_COIN_SWITCH_ACT_TICKING, BLUE_COIN_SWITCH_ACT_EXTENDING }; /* Moving Blue Coin */ enum oActionsMovingBlueCoin { MOV_BCOIN_ACT_STILL, MOV_BCOIN_ACT_MOVING, MOV_BCOIN_ACT_SLOWING_DOWN, MOV_BCOIN_ACT_STOPPED, MOV_BCOIN_ACT_FLICKERING }; /* Yellow Coin */ enum oBehParams2ndByteYellowCoin { YELLOW_COIN_BP_NO_COINS, YELLOW_COIN_BP_ONE_COIN }; /* Moving Yellow Coin */ enum oActionsMovingYellowCoin { MOV_YCOIN_ACT_IDLE, MOV_YCOIN_ACT_BLINKING }; /* Coin Formation */ enum CoinFormationFlags { COIN_FORMATION_FLAG_NONE = (0 << 0), COIN_FORMATION_FLAG_VERTICAL = (1 << 0), COIN_FORMATION_FLAG_RING = (1 << 1), COIN_FORMATION_FLAG_ARROW = (1 << 2), COIN_FORMATION_FLAG_FLYING = (1 << 4), }; enum oBehParams2ndByteCoinFormation { COIN_FORMATION_BP_SHAPE_HORIZONTAL_LINE = (COIN_FORMATION_FLAG_NONE), COIN_FORMATION_BP_SHAPE_VERTICAL_LINE = (COIN_FORMATION_FLAG_VERTICAL), COIN_FORMATION_BP_SHAPE_HORIZONTAL_RING = (COIN_FORMATION_FLAG_RING), COIN_FORMATION_BP_SHAPE_VERTICAL_RING = (COIN_FORMATION_FLAG_RING | COIN_FORMATION_FLAG_VERTICAL), COIN_FORMATION_BP_SHAPE_ARROW = (COIN_FORMATION_FLAG_ARROW), COIN_FORMATION_BP_SHAPE_MASK = 0x07, COIN_FORMATION_BP_FLYING = 0x10 }; enum oActionsCoinFormation { COIN_FORMATION_ACT_INACTIVE, COIN_FORMATION_ACT_ACTIVE, COIN_FORMATION_ACT_DEACTIVATE }; /* Coin Inside Boo */ enum oBehParam1stByteCoinInsideBoo { COIN_INSIDE_BOO_BP_BLUE_COIN, COIN_INSIDE_BOO_BP_YELLOW_COIN, }; enum oActionsCoinInsideBoo { COIN_INSIDE_BOO_ACT_CARRIED, COIN_INSIDE_BOO_ACT_DROPPED }; /* 1-Up Mushroom */ enum oBehParams2ndByte1UpMushroom { MUSHROOM_BP_REQUIRES_NONE, MUSHROOM_BP_REQUIRES_BOWSER_1, MUSHROOM_BP_REQUIRES_BOWSER_2 }; enum oActions1UpMushroom { MUSHROOM_ACT_INIT, MUSHROOM_ACT_MOVING, MUSHROOM_ACT_DISAPPEARING, MUSHROOM_ACT_LOOP_IN_AIR }; /* Bob-omb */ enum oBehParams2ndByteBobOmb { BOBOMB_BP_STYPE_GENERIC, BOBOMB_BP_STYPE_STATIONARY }; enum oActionsBobOmb { BOBOMB_ACT_PATROL, BOBOMB_ACT_LAUNCHED, BOBOMB_ACT_CHASE_MARIO, BOBOMB_ACT_EXPLODE }; enum AnimIDsBobOmb { BOBOMB_ANIM_WALKING, BOBOMB_ANIM_HELD }; /* Bob-omb Buddy */ enum oBehParams2ndByteBobOmbBuddy { BOBOMB_BUDDY_BP_STYPE_GENERIC, BOBOMB_BUDDY_BP_STYPE_BOB_GRASS_KBB, BOBOMB_BUDDY_BP_STYPE_BOB_CANNON_KBB, BOBOMB_BUDDY_BP_STYPE_BOB_GRASS }; enum oActionsBobOmbBuddy { BOBOMB_BUDDY_ACT_IDLE, BOBOMB_BUDDY_ACT_1, BOBOMB_BUDDY_ACT_TURN_TO_TALK, BOBOMB_BUDDY_ACT_TALK }; enum oBobombBuddyRoles { BOBOMB_BUDDY_ROLE_ADVICE, BOBOMB_BUDDY_ROLE_CANNON }; enum oBobombBuddyCannonStatuses { BOBOMB_BUDDY_CANNON_UNOPENED, BOBOMB_BUDDY_CANNON_OPENING, BOBOMB_BUDDY_CANNON_OPENED, BOBOMB_BUDDY_CANNON_STOP_TALKING }; enum oBobombBuddyHasTalkedToMarioStates { BOBOMB_BUDDY_HAS_NOT_TALKED, BOBOMB_BUDDY_TALKED_STATE_UNUSED, BOBOMB_BUDDY_HAS_TALKED }; /* Bowser */ enum oBehParams2ndByteBowser { BOWSER_BP_BITDW, BOWSER_BP_BITFS, BOWSER_BP_BITS }; enum oActionsBowserTail { BOWSER_ACT_TAIL_DEFAULT, BOWSER_ACT_TAIL_THROWN, BOWSER_ACT_TAIL_TOUCHED_MARIO }; enum oActionsBowser { BOWSER_ACT_DEFAULT, BOWSER_ACT_THROWN, BOWSER_ACT_JUMP_ONTO_STAGE, BOWSER_ACT_DANCE, BOWSER_ACT_DEAD, BOWSER_ACT_WAIT, BOWSER_ACT_INTRO_WALK, BOWSER_ACT_CHARGE_MARIO, BOWSER_ACT_SPIT_FIRE_INTO_SKY, BOWSER_ACT_SPIT_FIRE_ONTO_FLOOR, BOWSER_ACT_HIT_EDGE, BOWSER_ACT_TURN_FROM_EDGE, BOWSER_ACT_HIT_MINE, BOWSER_ACT_BIG_JUMP, BOWSER_ACT_WALK_TO_MARIO, BOWSER_ACT_BREATH_FIRE, BOWSER_ACT_TELEPORT, BOWSER_ACT_QUICK_JUMP, BOWSER_ACT_UNUSED_SLOW_WALK, BOWSER_ACT_TILT_LAVA_PLATFORM, }; enum oAnimStatesBowser { BOWSER_ANIM_STATE_OPAQUE = TRANSPARENCY_ANIM_STATE_OPAQUE, BOWSER_ANIM_STATE_TRANSPARENT = TRANSPARENCY_ANIM_STATE_TRANSPARENT, BOWSER_ANIM_STATE_INVISIBLE = 0x02, }; enum animIDsBowser { BOWSER_ANIM_STAND_UP, BOWSER_ANIM_STAND_UP_UNUSED, // slightly different BOWSER_ANIM_SHAKING, BOWSER_ANIM_GRABBED, BOWSER_ANIM_BROKEN, // broken animation BOWSER_ANIM_FALL_DOWN, // unused BOWSER_ANIM_BREATH, BOWSER_ANIM_JUMP, // unused, short jump, replaced by start/stop BOWSER_ANIM_JUMP_STOP, BOWSER_ANIM_JUMP_START, BOWSER_ANIM_DANCE, BOWSER_ANIM_BREATH_UP, BOWSER_ANIM_IDLE, BOWSER_ANIM_SLOW_GAIT, BOWSER_ANIM_LOOK_DOWN_STOP_WALK, BOWSER_ANIM_LOOK_UP_START_WALK, BOWSER_ANIM_FLIP_DOWN, BOWSER_ANIM_LAY_DOWN, BOWSER_ANIM_RUN_START, BOWSER_ANIM_RUN, BOWSER_ANIM_RUN_STOP, BOWSER_ANIM_RUN_SLIP, BOWSER_ANIM_BREATH_QUICK, BOWSER_ANIM_EDGE_MOVE, BOWSER_ANIM_EDGE_STOP, BOWSER_ANIM_FLIP, BOWSER_ANIM_STAND_UP_FROM_FLIP, }; enum oBowserCamActions { BOWSER_CAM_ACT_IDLE, BOWSER_CAM_ACT_WALK, BOWSER_CAM_ACT_END }; enum oBowserStatuses { BOWSER_STATUS_ANGLE_MARIO = (1 << 1), // 0x00000002 BOWSER_STATUS_ANGLE_CENTER = (1 << 2), // 0x00000004 BOWSER_STATUS_DIST_MARIO = (1 << 3), // 0x00000008 BOWSER_STATUS_DIST_CENTER = (1 << 4), // 0x00000010 BOWSER_STATUS_BIG_JUMP = (1 << 16), // 0x00010000 BOWSER_STATUS_FIRE_SKY = (1 << 17), // 0x00020000 }; enum oBowserGrabbedStatuses { BOWSER_GRAB_STATUS_NONE, BOWSER_GRAB_STATUS_GRABBED, BOWSER_GRAB_STATUS_HOLDING }; /* oSubAction */ enum oSubActionBowserActThrown { // BOWSER_ACT_THROWN BOWSER_SUB_ACT_THROWN_BOUNCE, BOWSER_SUB_ACT_THROWN_STOP }; enum oSubActionBowserActDead { // BOWSER_ACT_DEAD BOWSER_SUB_ACT_DEAD_FLY_BACK, BOWSER_SUB_ACT_DEAD_BOUNCE, BOWSER_SUB_ACT_DEAD_WAIT, BOWSER_SUB_ACT_DEAD_DEFAULT_END, BOWSER_SUB_ACT_DEAD_DEFAULT_END_OVER, BOWSER_SUB_ACT_DEAD_FINAL_END = 0xA, BOWSER_SUB_ACT_DEAD_FINAL_END_OVER }; enum oSubActionBowserActIntroWalk { // BOWSER_ACT_INTRO_WALK BOWSER_SUB_ACT_INTRO_WALK_LOOK_UP, BOWSER_SUB_ACT_INTRO_WALK_SLOWLY, BOWSER_SUB_ACT_INTRO_WALK_STOP }; enum oSubActionBowserActChargeMario { // BOWSER_ACT_CHARGE_MARIO BOWSER_SUB_ACT_CHARGE_START, BOWSER_SUB_ACT_CHARGE_RUN, BOWSER_SUB_ACT_CHARGE_END, BOWSER_SUB_ACT_CHARGE_SLIP }; enum oSubActionBowserActTeleport { // BOWSER_ACT_TELEPORT BOWSER_SUB_ACT_TELEPORT_START, BOWSER_SUB_ACT_TELEPORT_MOVE, BOWSER_SUB_ACT_TELEPORT_STOP }; enum oSubActionBowserActSpitFireOntoFloor { // BOWSER_ACT_SPIT_FIRE_ONTO_FLOOR BOWSER_SUB_ACT_SPIT_FIRE_FLOOR_START, BOWSER_SUB_ACT_SPIT_FIRE_FLOOR_STOP }; enum oSubActionBowserActHitEdge { // BOWSER_ACT_HIT_EDGE BOWSER_SUB_ACT_HIT_EDGE_START, BOWSER_SUB_ACT_HIT_EDGE_STOP }; enum oSubActionBowserActTurnFromEdge { // BOWSER_ACT_TURN_FROM_EDGE BOWSER_SUB_ACT_TURN_FROM_EDGE_START, BOWSER_SUB_ACT_TURN_FROM_EDGE_STOP, BOWSER_SUB_ACT_TURN_FROM_EDGE_END }; enum oSubActionBowserActHitMine { // BOWSER_ACT_HIT_MINE BOWSER_SUB_ACT_HIT_MINE_START, BOWSER_SUB_ACT_HIT_MINE_FALL, BOWSER_SUB_ACT_HIT_MINE_STOP }; enum oSubActionBowserActJumpOntoStage { // BOWSER_ACT_JUMP_ONTO_STAGE BOWSER_SUB_ACT_JUMP_ON_STAGE_IDLE, BOWSER_SUB_ACT_JUMP_ON_STAGE_START, BOWSER_SUB_ACT_JUMP_ON_STAGE_LAND, BOWSER_SUB_ACT_JUMP_ON_STAGE_STOP }; enum oSubActionBowserActBigJump { // BOWSER_ACT_BIG_JUMP BOWSER_SUB_ACT_BIG_JUMP_START, BOWSER_SUB_ACT_BIG_JUMP_LAND, BOWSER_SUB_ACT_BIG_JUMP_STOP }; enum oSubActionBowserActWalkToMario { // BOWSER_ACT_WALK_TO_MARIO BOWSER_SUB_ACT_WALK_TO_MARIO_START, BOWSER_SUB_ACT_WALK_TO_MARIO_WALKING, BOWSER_SUB_ACT_WALK_TO_MARIO_STOP }; enum oSubActionBowserActQuickJump { // BOWSER_ACT_QUICK_JUMP BOWSER_SUB_ACT_QUICK_JUMP_START, BOWSER_SUB_ACT_QUICK_JUMP_LAND, BOWSER_SUB_ACT_QUICK_JUMP_STOP }; /* Bowser BITS Platform */ /* oAction */ #define BOWSER_BITS_PLAT_ACT_START 0x0 #define BOWSER_BITS_PLAT_ACT_CHECK 0x1 #define BOWSER_BITS_PLAT_ACT_FALL 0x2 /* oSubAction */ /* BOWSER_BITS_PLAT_ACT_CHECK */ #define BOWSER_BITS_PLAT_SUB_ACT_CHECK_RESET_TIMER 0x0 #define BOWSER_BITS_PLAT_SUB_ACT_CHECK_DEBUG_FALL 0x1 /* Bowser Flame */ /* oAction */ #define BOWSER_FLAME_ACT_FLOATING 0x0 #define BOWSER_FLAME_ACT_LANDED 0x1 /* Blue Bowser Flame */ /* oBehParams2ndByte */ #define BOWSER_FLAME_BLUE_BP_SPAWN_RED_FLAMES 0x0 #define BOWSER_FLAME_BLUE_BP_SPAWN_BLUE_FLAMES 0x1 /* Bowser Floating Flame */ /* oBehParams2ndByte */ #define BOWSER_FLOATING_FLAME_SPAWN_RED_FLAME 0x0 #define BOWSER_FLOATING_FLAME_SPAWN_BLUE_FLAME_1 0x1 #define BOWSER_FLOATING_FLAME_SPAWN_BLUE_FLAME_2 0x2 /* Bowser Key */ /* oAction */ #define BOWSER_KEY_ACT_BOUNCING 0x0 #define BOWSER_KEY_ACT_LANDED 0x1 /* Bowser Key Cutscene */ /* Animations */ #define BOWSER_KEY_CUTSCENE_ANIM_UNLOCK_DOOR 0x0 #define BOWSER_KEY_CUTSCENE_ANIM_COURSE_EXIT 0x1 /* Fish Spawer */ /* oBehParams2ndByte */ #define FISH_SPAWNER_BP_MANY_BLUE 0x0 #define FISH_SPAWNER_BP_FEW_BLUE 0x1 #define FISH_SPAWNER_BP_MANY_CYAN 0x2 #define FISH_SPAWNER_BP_FEW_CYAN 0x3 /* oAction */ #define FISH_SPAWNER_ACT_SPAWN 0x0 #define FISH_SPAWNER_ACT_IDLE 0x1 #define FISH_SPAWNER_ACT_RESPAWN 0x2 /* Fish */ /* oAction */ #define FISH_ACT_INIT 0x0 #define FISH_ACT_ROAM 0x1 #define FISH_ACT_FLEE 0x2 /* Animations */ #define FISH_ANIM_DEFAULT 0x0 /* Blue Fish Spawner */ /* oAction: bhv_blue_fish_spawn_loop */ #define BLUE_FISH_ACT_SPAWN 0x0 #define BLUE_FISH_ACT_ROOM 0x1 #define BLUE_FISH_ACT_DUPLICATE 0x2 /* Blue Fish */ /* oAction */ #define BLUE_FISH_ACT_DIVE 0x0 #define BLUE_FISH_ACT_TURN 0x1 #define BLUE_FISH_ACT_ASCEND 0x2 #define BLUE_FISH_ACT_TURN_BACK 0x3 /* Animations */ #define BLUE_FISH_ANIM_DEFAULT 0x0 /* Blue Fish */ /* oAction */ #define BLUE_FISH_ACT_DIVE 0x0 #define BLUE_FISH_ACT_TURN 0x1 #define BLUE_FISH_ACT_ASCEND 0x2 #define BLUE_FISH_ACT_TURN_BACK 0x3 /* Animations */ #define BLUE_FISH_ANIM_DEFAULT 0x0 /* Cheep Cheep Spawner */ /* oAction */ #define BUB_SPAWNER_ACT_SPAWN_BUBS 0x0 #define BUB_SPAWNER_ACT_IDLE 0x1 #define BUB_SPAWNER_ACT_REMOVE_BUBS 0x2 #define BUB_SPAWNER_ACT_RESET 0x3 /* Cheep Cheep */ /* oAction */ #define BUB_ACT_INIT 0x0 #define BUB_ACT_SWIMMING_TOWARDS_MARIO 0x1 #define BUB_ACT_SWIMMING_AWAY_FROM_MARIO 0x2 /* Animations */ #define BUB_ANIM_SWIM 0x0 /* Bubba */ /* oAction */ #define BUBBA_ACT_IDLE 0x0 #define BUBBA_ACT_ATTACK 0x1 /* oAnimState */ #define BUBBA_ANIM_STATE_CLOSED_MOUTH 0x0 #define BUBBA_ANIM_STATE_OPEN_MOUTH 0x1 /* Seaweed */ /* Animations */ #define SEAWEED_ANIM_WAVE 0x0 /* Clam */ /* oAction */ #define CLAM_ACT_CLOSING 0x0 #define CLAM_ACT_OPENING 0x1 /* Animations */ #define CLAM_ANIM_CLOSING 0x0 #define CLAM_ANIM_OPENING 0x1 /* Purple Switch */ /* oBehParams2ndByte */ #define PURPLE_SWITCH_BP_NO_TICK 0x0 #define PURPLE_SWITCH_BP_ANIMATES 0x1 #define PURPLE_SWITCH_BP_REVEAL_HIDDEN 0x2 /* oAction */ #define PURPLE_SWITCH_ACT_IDLE 0x0 #define PURPLE_SWITCH_ACT_PRESSED 0x1 #define PURPLE_SWITCH_ACT_TICKING 0x2 #define PURPLE_SWITCH_ACT_UNPRESSED 0x3 #define PURPLE_SWITCH_ACT_WAIT_FOR_MARIO_TO_GET_OFF 0x4 /* Animates on Floor Switch */ /* oBehParams2ndByte */ #define ANIMATES_ON_FLOOR_SWITCH_BP_BITS_STAIRS 0x0 #define ANIMATES_ON_FLOOR_SWITCH_BP_BITDW_STAIRS 0x1 #define ANIMATES_ON_FLOOR_SWITCH_BP_RR_TRIGANGLES 0x2 /* Openable Grill */ /* oBehParams2ndByte */ #define OPENABLE_GRILL_BP_BOB 0x0 #define OPENABLE_GRILL_BP_HMC 0x1 /* oAction */ #define OEPNABLE_GRILL_ACT_SPAWN 0x0 #define OEPNABLE_GRILL_IDLE_CLOSED 0x1 #define OEPNABLE_GRILL_OPENING 0x2 #define OEPNABLE_GRILL_IDLE_OPEN 0x3 /* Openable Grill Door */ /* oBehParams2ndByte */ #define OPENABLE_GRILL_DOOR_BP_SIDE_FLIPPED -0x1 #define OPENABLE_GRILL_DOOR_BP_SIDE_UNFLIPPED 0x1 /* oAction */ #define OPENABLE_GRILL_DOOR_ACT_CLOSED 0x0 #define OPENABLE_GRILL_DOOR_ACT_OPENING 0x1 #define OPENABLE_GRILL_DOOR_ACT_OPEN 0x2 /* Breakable Box */ /* oBehParams2ndByte */ #define BREAKABLE_BOX_BP_NO_COINS 0x0 #define BREAKABLE_BOX_BP_3_COINS 0x1 #define BREAKABLE_BOX_BP_5_COINS 0x2 #define BREAKABLE_BOX_BP_LARGE 0x3 /* oAction */ #define BREAKABLE_BOX_ACT_HIDDEN 0x0 #define BREAKABLE_BOX_ACT_ACTIVE 0x1 #define BREAKABLE_BOX_ACT_BROKEN 0x2 /* oAnimState */ #define BREAKABLE_BOX_ANIM_STATE_CRAZY_BOX 0x0 #define BREAKABLE_BOX_ANIM_STATE_CORK_BOX 0x1 /* Small Breakable Box */ /* oAction */ #define BREAKABLE_BOX_SMALL_ACT_MOVE 0x0 /* Jumping Box */ /* oAction */ #define JUMPING_BOX_ACT_IDLE 0x0 #define JUMPING_BOX_ACT_DROPPED 0x1 /* oSubAction */ /* JUMPING_BOX_ACT_IDLE */ #define JUMPING_BOX_SUB_ACT_IDLE_BOUNCING 0x0 #define JUMPING_BOX_SUB_ACT_IDLE_RESET_TIMER 0x1 /* Exclamation Box */ enum ExclamationBoxContentsList { // oBehParams2ndByte, ExclamationBoxContents->id EXCLAMATION_BOX_BP_WING_CAP, EXCLAMATION_BOX_BP_METAL_CAP, EXCLAMATION_BOX_BP_VANISH_CAP, EXCLAMATION_BOX_BP_KOOPA_SHELL, EXCLAMATION_BOX_BP_COINS_1, EXCLAMATION_BOX_BP_COINS_3, EXCLAMATION_BOX_BP_COINS_10, EXCLAMATION_BOX_BP_1UP_WALKING, EXCLAMATION_BOX_BP_STAR_1, EXCLAMATION_BOX_BP_1UP_RUNNING_AWAY, EXCLAMATION_BOX_BP_STAR_2, EXCLAMATION_BOX_BP_STAR_3, EXCLAMATION_BOX_BP_STAR_4, EXCLAMATION_BOX_BP_STAR_5, EXCLAMATION_BOX_BP_STAR_6, EXCLAMATION_BOX_BP_NULL = 99 }; enum oBehParam1stByteExclamationBox { EXCLAMATION_BOX_BP1_NEEDS_SWITCH, EXCLAMATION_BOX_BP1_ALWAYS_ACTIVE, }; enum oActionsExclamationBox { EXCLAMATION_BOX_ACT_INIT, EXCLAMATION_BOX_ACT_OUTLINE, EXCLAMATION_BOX_ACT_ACTIVE, EXCLAMATION_BOX_ACT_SCALING, EXCLAMATION_BOX_ACT_EXPLODE, EXCLAMATION_BOX_ACT_WAIT_FOR_RESPAWN }; enum oAnimStatesExcalamationBox { EXCLAMATION_BOX_ANIM_STATE_RED, EXCLAMATION_BOX_ANIM_STATE_GREEN, EXCLAMATION_BOX_ANIM_STATE_BLUE, EXCLAMATION_BOX_ANIM_STATE_YELLOW }; /* Cap Switch */ enum oBehParams2ndByteCapSwitch { CAP_SWITCH_BP_WING_CAP, CAP_SWITCH_BP_METAL_CAP, CAP_SWITCH_BP_VANISH_CAP, CAP_SWITCH_BP_YELLOW_CAP, }; enum oActionsCapSwitch { CAP_SWITCH_ACT_INIT, CAP_SWITCH_ACT_IDLE_UNPRESSED, CAP_SWITCH_ACT_BEING_PRESSED, CAP_SWITCH_ACT_IDLE_PRESSED }; /* Mario Cap */ enum oActionsMarioCap { CAP_ACT_MOVE, CAP_ACT_QUICKSAND = 0xA, CAP_ACT_MOVING_QUICKSAND, CAP_ACT_INSTANT_QUICKSAND, CAP_ACT_INSTANT_MOVING_QUICKSAND, }; /* Koopa Shell */ /* oAction */ #define KOOPA_SHELL_ACT_MARIO_NOT_RIDING 0x0 #define KOOPA_SHELL_ACT_MARIO_RIDING 0x1 /* Koopa Shell Underwater */ /* oAction */ #define KOOPA_SHELL_UNDERWATER_ACT_DEFAULT 0x0 /* Cannon Trap Door */ /* oAction */ #define CANNON_TRAP_DOOR_ACT_CLOSED 0x0 #define CANNON_TRAP_DOOR_ACT_CAM_ZOOM 0x1 #define CANNON_TRAP_DOOR_ACT_OPENING 0x2 #define CANNON_TRAP_DOOR_ACT_OPEN 0x3 /* Opened Cannon */ /* oAction */ #define OPENED_CANNON_ACT_IDLE 0x0 #define OPENED_CANNON_ACT_READY 0x1 #define OPENED_CANNON_ACT_SHOOT 0x2 #define OPENED_CANNON_ACT_RESETTING 0x3 #define OPENED_CANNON_ACT_RISING 0x4 #define OPENED_CANNON_ACT_RAISE_BARREL 0x5 #define OPENED_CANNON_ACT_TURNING_YAW 0x6 /* Door */ enum oBehParams1stByteKeyDoor { KEY_DOOR_BP1_BASEMENT, KEY_DOOR_BP1_UPSTAIRS, }; enum oActionsDoor { DOOR_ACT_CLOSED, DOOR_ACT_PULLED, DOOR_ACT_PUSHED, DOOR_ACT_WARP_PULLED, DOOR_ACT_WARP_PUSHED, }; enum animIDsDoor { DOOR_ANIM_CLOSED, DOOR_ANIM_PULLED, DOOR_ANIM_PUSHED, DOOR_ANIM_WARP_PULLED, DOOR_ANIM_WARP_PUSHED, }; /* Star Door */ enum oActionsStarDoor { STAR_DOOR_ACT_CLOSED, STAR_DOOR_ACT_OPENING, STAR_DOOR_ACT_OPEN, STAR_DOOR_ACT_CLOSING, STAR_DOOR_ACT_RESET, }; /* Castle Trap Door */ /* oAction */ #define CASTLE_FLOOR_TRAP_ACT_OPEN_DETECT 0x0 #define CASTLE_FLOOR_TRAP_ACT_OPEN 0x1 #define CASTLE_FLOOR_TRAP_ACT_CLOSE_DETECT 0x2 #define CASTLE_FLOOR_TRAP_ACT_CLOSE 0x3 #define CASTLE_FLOOR_TRAP_ACT_ROTATE 0x4 /* Castle Flag */ /* Animations */ #define CASTLE_FLAG_ANIM_WAVE 0x0 /* Homing Amp */ /* oAction */ #define HOMING_AMP_ACT_INACTIVE 0x0 #define HOMING_AMP_ACT_APPEAR 0x1 #define HOMING_AMP_ACT_CHASE 0x2 #define HOMING_AMP_ACT_GIVE_UP 0x3 #define HOMING_AMP_ACT_ATTACK_COOLDOWN 0x4 /* Amp */ /* oBehParams2ndByte */ #define AMP_BP_ROT_RADIUS_200 0x0 #define AMP_BP_ROT_RADIUS_300 0x1 #define AMP_BP_ROT_RADIUS_400 0x2 #define AMP_BP_ROT_RADIUS_0 0x3 /* oAction */ #define AMP_ACT_IDLE 0x2 #define AMP_ACT_ATTACK_COOLDOWN 0x4 /* oAnimState */ #define AMP_ANIM_STATE_OFF 0x0 #define AMP_ANIM_STATE_ON 0x1 /* Animations */ #define AMP_ANIM_DEFAULT 0x0 /* Butterfly */ /* oAction */ #define BUTTERFLY_ACT_RESTING 0x0 #define BUTTERFLY_ACT_FOLLOW_MARIO 0x1 #define BUTTERFLY_ACT_RETURN_HOME 0x2 /* Animations */ #define BUTTERFLY_ANIM_FLYING 0x0 #define BUTTERFLY_ANIM_RESTING 0x1 /* Hoot */ /* oAction */ #define HOOT_ACT_ASCENT 0x0 #define HOOT_ACT_CARRY 0x1 #define HOOT_ACT_TIRED 0x2 /* oHootAvailability */ #define HOOT_AVAIL_ASLEEP_IN_TREE 0x0 #define HOOT_AVAIL_WANTS_TO_TALK 0x1 #define HOOT_AVAIL_READY_TO_FLY 0x2 /* Animations */ #define HOOT_ANIM_DEFAULT 0x0 #define HOOT_ANIM_HOLDING_MARIO 0x1 /* Bully (all variants) */ /* oBehParams2ndByte */ #define BULLY_BP_SIZE_SMALL 0x0 #define BULLY_BP_SIZE_BIG 0x1 /* oAction */ #define BULLY_ACT_PATROL 0x0 #define BULLY_ACT_CHASE_MARIO 0x1 #define BULLY_ACT_KNOCKBACK 0x2 #define BULLY_ACT_BACK_UP 0x3 #define BULLY_ACT_INACTIVE 0x4 #define BULLY_ACT_ACTIVATE_AND_FALL 0x5 /* oBullySubtype */ #define BULLY_STYPE_GENERIC 0x00 #define BULLY_STYPE_MINION 0x01 #define BULLY_STYPE_CHILL 0x10 /* Animations */ #define BULLY_ANIM_WALKING 0x0 #define BULLY_ANIM_RUNNING 0x1 #define BULLY_ANIM_UNUSED 0x2 #define BULLY_ANIM_BOAST 0x3 /* Water Ring (all variants) */ /* oAction */ #define WATER_RING_ACT_NOT_COLLECTED 0x0 #define WATER_RING_ACT_COLLECTED 0x1 /* Animations */ #define WATER_RING_ANIM_WOBBLE 0x0 /* Jet Stream Water Ring Spawner */ /* oAction */ #define JS_RING_SPAWNER_ACT_ACTIVE 0x0 #define JS_RING_SPAWNER_ACT_INACTIVE 0x1 /* Star General */ enum oBehParam1stByteStarAct { // BPARAM1 STAR_BP_ACT_1, STAR_BP_ACT_2, STAR_BP_ACT_3, STAR_BP_ACT_4, STAR_BP_ACT_5, STAR_BP_ACT_6, STAR_BP_ACT_100_COINS, }; /* Hidden Star */ /* oAction */ #define HIDDEN_STAR_ACT_INACTIVE 0x0 #define HIDDEN_STAR_ACT_ACTIVE 0x1 /* Spawn Star stay at position cutscene */ /* oBehParams2ndByte */ #define SPAWN_STAR_POS_CUTSCENE_BP_SPAWN_AT_MARIO 0x0 #define SPAWN_STAR_POS_CUTSCENE_BP_SPAWN_AT_HOME 0x1 /* oAction */ #define SPAWN_STAR_POS_CUTSCENE_ACT_START 0x0 #define SPAWN_STAR_POS_CUTSCENE_ACT_BOUNCE 0x1 #define SPAWN_STAR_POS_CUTSCENE_ACT_END 0x2 #define SPAWN_STAR_POS_CUTSCENE_ACT_SLOW_STAR_ROTATION 0x3 /* Spawn Star arc to position cutscene */ /* oBehParams2ndByte */ #define SPAWN_STAR_ARC_CUTSCENE_BP_DEFAULT_STAR 0x0 #define SPAWN_STAR_ARC_CUTSCENE_BP_HIDDEN_STAR 0x1 /* oAction */ #define SPAWN_STAR_ARC_CUTSCENE_ACT_START 0x0 #define SPAWN_STAR_ARC_CUTSCENE_ACT_GO_TO_HOME 0x1 #define SPAWN_STAR_ARC_CUTSCENE_ACT_BOUNCE 0x2 #define SPAWN_STAR_ARC_CUTSCENE_ACT_END 0x3 /* Celebration Star */ /* oAction */ #define CELEB_STAR_ACT_SPIN_AROUND_MARIO 0x0 #define CELEB_STAR_ACT_FACE_CAMERA 0x1 /* Grand Star */ /* oAction */ #define GRAND_STAR_ACT_APPEAR 0x0 #define GRAND_STAR_ACT_JUMP 0x1 #define GRAND_STAR_ACT_WAIT_FOR_INTERACTION 0x2 /* oSubAction */ /* GRAND_STAR_ACT_JUMP */ #define GRAND_STAR_SUB_ACT_START_JUMP 0x0 #define GRAND_STAR_SUB_ACT_CONTINUE_JUMP 0x1 /* LLL Drawbridge */ /* oAction */ #define LLL_DRAWBRIDGE_ACT_LOWER 0x0 #define LLL_DRAWBRIDGE_ACT_RAISE 0x1 /* LLL Volcano Trap */ /* oAction */ #define LLL_VOLCANO_TRAP_ACT_WAIT 0x0 #define LLL_VOLCANO_TRAP_ACT_FALL 0x1 #define LLL_VOLCANO_TRAP_ACT_LAND 0x2 #define LLL_VOLCANO_TRAP_ACT_RISE 0x3 /* LLL Floating Wood Bridge */ /* oAction */ #define LLL_FLOATING_WOOD_ACT_INACTIVE 0x0 #define LLL_FLOATING_WOOD_ACT_ACTIVE 0x1 #define LLL_FLOATING_WOOD_ACT_REMOVE_PIECES 0x2 /* LLL Hexagonal Ring */ /* oAction */ #define LLL_HEXAGONAL_RING_ACT_MARIO_OFF_PLATFORM 0x0 #define LLL_HEXAGONAL_RING_ACT_MARIO_ON_PLATFORM 0x1 #define LLL_HEXAGONAL_RING_ACT_SPAWN_FLAMES 0x2 #define LLL_HEXAGONAL_RING_ACT_MARIO_LEFT_PLATFORM 0x3 #define LLL_HEXAGONAL_RING_ACT_RESET 0x4 /* LLL Octagonal Rotating Mesh */ /* oAction */ #define LLL_OCTAGONAL_ROTATING_MESH_ACT_RESET 0x0 #define LLL_OCTAGONAL_ROTATING_MESH_ACT_MOVE 0x1 /* LLL Fire Bar */ /* oBehParams2ndByte */ #define LLL_FIRE_BAR_BP_DEFAULT 0x4 /* oAction */ #define LLL_FIRE_BAR_ACT_INACTIVE 0x0 #define LLL_FIRE_BAR_ACT_SPAWN_FLAMES 0x1 #define LLL_FIRE_BAR_ACT_ACTIVE 0x2 #define LLL_FIRE_BAR_ACT_REMOVE_FLAMES 0x3 /* BITFS Sinking Cage Platform with pole */ /* oBehParams2ndByte */ #define SINKING_POLE_PLATFORM_BP_LOW 0x0 #define SINKING_POLE_PLATFORM_BP_HIGH 0x1 /* Tumbling Bridge Platform */ /* oAction */ #define TUMBLING_BRIDGE_PLATFORM_ACT_IDLE 0x0 #define TUMBLING_BRIDGE_PLATFORM_ACT_UNSTABLE 0x1 #define TUMBLING_BRIDGE_PLATFORM_ACT_FALL 0x2 #define TUMBLING_BRIDGE_PLATFORM_ACT_END 0x3 /* Tumbling Bridge */ /* oBehParams2ndByte, bridgeID */ #define TUMBLING_BRIDGE_BP_WF 0x0 #define TUMBLING_BRIDGE_BP_BBH 0x1 #define TUMBLING_BRIDGE_BP_LLL 0x2 #define TUMBLING_BRIDGE_BP_BITFS 0x3 /* oAction */ #define TUMBLING_BRIDGE_ACT_FAR 0x0 #define TUMBLING_BRIDGE_ACT_SPAWN_SECTIONS 0x1 #define TUMBLING_BRIDGE_ACT_NEAR 0x2 #define TUMBLING_BRIDGE_ACT_RESET 0x3 /* Bomp (both variants) */ /* oAction */ #define BOMP_ACT_WAIT 0x0 #define BOMP_ACT_POKE_OUT 0x1 #define BOMP_ACT_EXTEND 0x2 #define BOMP_ACT_RETRACT 0x3 /* WF Tower Platform Group */ /* oAction */ #define WF_TOWER_PLATFORM_GROUP_ACT_INACTIVE 0x0 #define WF_TOWER_PLATFORM_GROUP_ACT_SPAWN_PLATFORMS 0x1 #define WF_TOWER_PLATFORM_GROUP_ACT_ACTIVE 0x2 #define WF_TOWER_PLATFORM_GROUP_ACT_REMOVE_PLATFORMS 0x3 /* WF Tower Sliding Platform */ /* oAction */ #define WF_TOWER_SLIDING_PLATFORM_ACT_BACKWARD 0x0 #define WF_TOWER_SLIDING_PLATFORM_ACT_FORWARD 0x1 /* WF Tower Elevator Platform */ /* oAction */ #define WF_TOWER_ELEVATOR_PLATFORM_ACT_BOTTOM 0x0 #define WF_TOWER_ELEVATOR_PLATFORM_ACT_MOVING_UP 0x1 #define WF_TOWER_ELEVATOR_PLATFORM_ACT_TOP 0x2 #define WF_TOWER_ELEVATOR_PLATFORM_ACT_MOVING_DOWN 0x3 /* WF Sliding Brick Platform */ /* oBehParams2ndByte */ #define WF_SLID_BRICK_PTFM_BP_MOV_VEL_10 0x1 #define WF_SLID_BRICK_PTFM_BP_MOV_VEL_15 0x2 #define WF_SLID_BRICK_PTFM_BP_MOV_VEL_20 0x3 /* oAction */ #define WF_SLID_BRICK_PTFM_ACT_WAIT 0x0 #define WF_SLID_BRICK_PTFM_ACT_EXTEND 0x1 #define WF_SLID_BRICK_PTFM_ACT_RETRACT 0x2 /* Sliding Platform */ enum oBehParams1stByteSlidingPlatform { // collisionDataIndex /*0x00*/ SLIDING_PLATFORM_BP1_BITS_SLIDING_PLATFORM, /*0x01*/ SLIDING_PLATFORM_BP1_BITS_TWIN_SLIDING_PLATFORMS, /*0x02*/ SLIDING_PLATFORM_BP1_BITFS_MOVING_SQUARE, /*0x03*/ SLIDING_PLATFORM_BP1_BITFS_SLIDING_PLATFORM, /*0x04*/ SLIDING_PLATFORM_BP1_RR_SLIDING_PLATFORM, /*0x05*/ SLIDING_PLATFORM_BP1_RR_PYRAMID, /*0x06*/ SLIDING_PLATFORM_BP1_NULL, /*0x07*/ SLIDING_PLATFORM_BP1_BITDW_SLIDING_PLATFORM, /*0x07*/ SLIDING_PLATFORM_BP1_TYPES_MASK = 0x07, }; /* bparam2 */ #define SLIDING_PLATFORM_BP2_LENGTH_MASK 0x3F #define SLIDING_PLATFORM_BP2_FLAG_INVERTED (1 << 6) /* BITDW Pyramid Platforms */ /* oAction */ #define BITDW_PYRAMID_PLATFORM_ACT_INIT_DIRECTION 0x0 #define BITDW_PYRAMID_PLATFORM_ACT_MOVE_0 0x1 #define BITDW_PYRAMID_PLATFORM_ACT_MOVE_90 0x2 #define BITDW_PYRAMID_PLATFORM_ACT_MOVE_180 0x3 #define BITDW_PYRAMID_PLATFORM_ACT_MOVE_270 0x4 /* Rotating Platform */ /* oAction */ #define ROTATING_PLATFORM_ACT_STOPPED 0x0 #define ROTATING_PLATFORM_ACT_MOVING 0x1 /* Seesaw Platform */ /* oBehParams2ndByte */ #define SEESAW_PLATFORM_BP_BITDW 0x0 #define SEESAW_PLATFORM_BP_BITS 0x1 #define SEESAW_PLATFORM_BP_BITS_W_SHAPED 0x2 #define SEESAW_PLATFORM_BP_BOB_BRIDGE 0x3 #define SEESAW_PLATFORM_BP_BITFS 0x4 #define SEESAW_PLATFORM_BP_RR 0x5 #define SEESAW_PLATFORM_BP_RR_L_SHAPED 0x6 #define SEESAW_PLATFORM_BP_VCUTM 0x7 /* Fake Moneybag Coin */ /* oAction */ #define FAKE_MONEYBAG_COIN_ACT_IDLE 0x0 #define FAKE_MONEYBAG_COIN_ACT_TRANSFORM 0x1 /* Moneybag */ /* oAction */ #define MONEYBAG_ACT_APPEAR 0x0 #define MONEYBAG_ACT_UNUSED_APPEAR 0x1 #define MONEYBAG_ACT_MOVE_AROUND 0x2 #define MONEYBAG_ACT_RETURN_HOME 0x3 #define MONEYBAG_ACT_DISAPPEAR 0x4 #define MONEYBAG_ACT_DEATH 0x5 /* oMoneybagJumpState */ #define MONEYBAG_JUMP_LANDING 0x0 #define MONEYBAG_JUMP_PREPARE 0x1 #define MONEYBAG_JUMP_JUMP 0x2 #define MONEYBAG_JUMP_JUMP_AND_BOUNCE 0x3 #define MONEYBAG_JUMP_WALK_AROUND 0x4 #define MONEYBAG_JUMP_WALK_HOME 0x5 /* Animations */ #define MONEYBAG_ANIM_IDLE 0x0 #define MONEYBAG_ANIM_PREPARE_JUMP 0x1 #define MONEYBAG_ANIM_JUMP 0x2 #define MONEYBAG_ANIM_LAND 0x3 #define MONEYBAG_ANIM_WALK 0x4 /* Bowling Ball */ /* oAction */ #define BBALL_ACT_INITIALIZE 0x0 #define BBALL_ACT_ROLL 0x1 /* Bowling Ball + Bowling Ball Spawner (all variants) */ /* oBehParams2ndByte */ #define BBALL_BP_STYPE_BOB_UPPER 0x0 #define BBALL_BP_STYPE_TTM 0x1 #define BBALL_BP_STYPE_BOB_LOWER 0x2 #define BBALL_BP_STYPE_THI_LARGE 0x3 #define BBALL_BP_STYPE_THI_SMALL 0x4 /* Bowling Ball (Free) */ /* oAction */ #define FREE_BBALL_ACT_IDLE 0x0 #define FREE_BBALL_ACT_ROLL 0x1 #define FREE_BBALL_ACT_RESET 0x2 /* THI Top */ /* oAction */ #define THI_TOP_ACT_IDLE 0x0 #define THI_TOP_ACT_DRAIN_WATER 0x1 /* Beta Chest Lid */ /* oAction */ #define BETA_CHEST_ACT_IDLE_CLOSED 0x0 #define BETA_CHEST_ACT_OPENING 0x1 #define BETA_CHEST_ACT_IDLE_OPEN 0x2 /* Treasure Chest Top */ /* oAction */ #define TREASURE_CHEST_TOP_ACT_CLOSED 0x0 #define TREASURE_CHEST_TOP_ACT_OPENING 0x1 #define TREASURE_CHEST_TOP_ACT_OPENED 0x2 #define TREASURE_CHEST_TOP_ACT_CLOSING 0x3 /* Treasure Chest Bottom */ /* oBehParams2ndByte */ #define TREASURE_CHEST_BP_1 0x1 #define TREASURE_CHEST_BP_2 0x2 #define TREASURE_CHEST_BP_3 0x3 #define TREASURE_CHEST_BP_4 0x4 /* oAction */ #define TREASURE_CHEST_BOTTOM_ACT_CLOSE 0x0 #define TREASURE_CHEST_BOTTOM_ACT_OPENING 0x1 #define TREASURE_CHEST_BOTTOM_ACT_OPENED 0x2 /* Treasure Chest Manager */ /* oAction */ #define TREASURE_CHEST_ACT_SUCCESS_SOUND 0x0 #define TREASURE_CHEST_ACT_REWARD 0x1 #define TREASURE_CHEST_ACT_END 0x2 /* BBH Tilting Trap Platform */ /* oAction */ #define BBH_TILTING_TRAP_PLATFORM_ACT_MARIO_ON 0x0 #define BBH_TILTING_TRAP_PLATFORM_ACT_MARIO_OFF 0x1 /* Boo in Castle */ /* oAction */ #define BOO_IN_CASTLE_ACT_INIT 0x0 #define BOO_IN_CASTLE_ACT_IDLE 0x1 #define BOO_IN_CASTLE_ACT_FLEE 0x2 /* Boo */ /* oBehParams2ndByte */ #define BOO_BP_GHOST_HUNT 0x0 #define BOO_BP_NORMAL 0x1 #define BOO_BP_MERRY_GO_ROUND 0x2 /* oAction */ #define BOO_ACT_STOPPED 0x0 #define BOO_ACT_CHASING_MARIO 0x1 #define BOO_ACT_BOUNCED_ON 0x2 #define BOO_ACT_ATTACKED 0x3 #define BOO_ACT_DEATH 0x4 #define BOO_ACT_MERRY_GO_ROUND_WAIT 0x5 /* oBooDeathStatus */ #define BOO_DEATH_STATUS_ALIVE 0x0 #define BOO_DEATH_STATUS_DYING 0x1 #define BOO_DEATH_STATUS_DEAD 0x2 /* attackStatus */ #define BOO_NOT_ATTACKED 0x0 #define BOO_ATTACKED 0x1 #define BOO_BOUNCED_ON -0x1 /* Big Boo */ /* oBehParams2ndByte */ #define BIG_BOO_BP_GHOST_HUNT 0x0 #define BIG_BOO_BP_MERRY_GO_ROUND 0x1 #define BIG_BOO_BP_BALCONY 0x2 /* Fishing Boo */ /* oAction */ #define FISHING_BOO_ACT_0 0x0 #define FISHING_BOO_ACT_1 0x1 #define FISHING_BOO_ACT_2 0x2 #define FISHING_BOO_ACT_3 0x3 #define FISHING_BOO_ACT_4 0x4 #define FISHING_BOO_ACT_5 0x5 #define FISHING_BOO_ACT_6 0x6 #define FISHING_BOO_ACT_SPAWN_FLAMES 0x7 #define FISHING_BOO_ACT_8 0x8 #define FISHING_BOO_ACT_9 0x9 #define FISHING_BOO_ACT_10 0xA /* Beta Boo Key */ /* oAction */ #define BETA_BOO_KEY_ACT_IN_BOO 0x0 #define BETA_BOO_KEY_ACT_DROPPING 0x1 #define BETA_BOO_KEY_ACT_DROPPED 0x2 /* Boo Cage */ /* oAction */ #define BOO_CAGE_ACT_IN_BOO 0x0 #define BOO_CAGE_ACT_FALLING 0x1 #define BOO_CAGE_ACT_ON_GROUND 0x2 #define BOO_CAGE_ACT_MARIO_JUMPING_IN 0x3 #define BOO_CAGE_ACT_USELESS 0x4 /* BBH Staircase */ /* oBehParams2ndByte */ #define BOO_STAIRCASE_BP_0 0x0 #define BOO_STAIRCASE_BP_1 0x1 #define BOO_STAIRCASE_BP_2 0x2 /* oAction */ #define BOO_STAIRCASE_ACT_INIT 0x0 #define BOO_STAIRCASE_ACT_RISE 0x1 #define BOO_STAIRCASE_ACT_WOBBLE 0x2 #define BOO_STAIRCASE_ACT_PLAY_JINGLE 0x3 /* BBH Haunted Bookshelf */ /* oAction */ #define HAUNTED_BOOKSHELF_ACT_IDLE 0x0 #define HAUNTED_BOOKSHELF_ACT_RECEDE 0x1 /* BBH Bookshelf Manager */ /* oAction */ #define BOOKSHELF_MANAGER_ACT_SPAWN_SWITCHES 0x0 #define BOOKSHELF_MANAGER_ACT_CHECK_ACTIVATE 0x1 #define BOOKSHELF_MANAGER_ACT_ACTIVE 0x2 #define BOOKSHELF_MANAGER_ACT_RECEDE 0x3 #define BOOKSHELF_MANAGER_ACT_END 0x4 /* BBH Book Switch */ /* oBehParams2ndByte */ #define BOOK_SWITCH_BP_CHOICE_1 0x0 #define BOOK_SWITCH_BP_CHOICE_2 0x1 #define BOOK_SWITCH_BP_CHOICE_3 0x2 /* oAction */ #define BOOK_SWITCH_ACT_UNPRESSED 0x0 #define BOOK_SWITCH_ACT_ACTIVE 0x1 #define BOOK_SWITCH_ACT_PRESSED 0x2 /* Flying Bookend */ /* oAction */ #define FLYING_BOOKEND_ACT_INIT 0x0 #define FLYING_BOOKEND_ACT_GROW 0x1 #define FLYING_BOOKEND_ACT_TURN_TOWARD_MARIO 0x2 #define FLYING_BOOKEND_ACT_FLY_FORWARD 0x3 /* Animations */ #define FLYING_BOOKEND_ANIM_SPAWN 0x0 #define FLYING_BOOKEND_ANIM_BITE 0x1 #define FLYING_BOOKEND_ANIM_GROW 0x2 /* BBH Merry-Go-Round */ /* oAction */ #define BBH_MERRY_GO_ROUND_ACT_SPAWN_BOOS 0x0 #define BBH_MERRY_GO_ROUND_ACT_WAIT 0x1 #define BBH_MERRY_GO_ROUND_ACT_STOPPED 0x2 /* gMarioCurrentRoom */ #define BBH_NEAR_MERRY_GO_ROUND_ROOM 0xA #define BBH_DYNAMIC_SURFACE_ROOM 0x0 #define BBH_OUTSIDE_ROOM 0xD /* Coffin Spawner */ /* oAction */ #define COFFIN_SPAWNER_ACT_COFFINS_UNLOADED 0x0 #define COFFIN_SPAWNER_ACT_COFFINS_LOADED 0x1 /* Coffin */ /* oBehParams2ndByte */ #define COFFIN_BP_STATIONARY 0x0 #define COFFIN_BP_MOVING 0x1 /* oAction */ #define COFFIN_ACT_IDLE 0x0 #define COFFIN_ACT_STAND_UP 0x1 /* WDW Arrow Lift */ /* oAction */ #define ARROW_LIFT_ACT_IDLE 0x0 #define ARROW_LIFT_ACT_MOVING_AWAY 0x1 #define ARROW_LIFT_ACT_MOVING_BACK 0x2 /* Toad */ enum animIDsToad { TOAD_ANIM_WEST_WAVE_THEN_TURN, // 1 frame TOAD_ANIM_WEST_WALKING, TOAD_ANIM_EAST_NOD_THEN_TURN, // 1 frame TOAD_ANIM_EAST_WALKING, TOAD_ANIM_WEST_STANDING, TOAD_ANIM_EAST_STANDING, TOAD_ANIM_WEST_WAVING_BOTH_ARMS, TOAD_ANIM_EAST_WAVING_ONE_ARM, }; /* Intro Peach */ enum oActionsIntroPeach { PEACH_ACT_INIT, PEACH_ACT_FADE_1, PEACH_ACT_UNFADE, PEACH_ACT_FADE_2, }; enum animIDsPeach { //! TODO: anim names 0-3 & 6-8 PEACH_ANIM_0, PEACH_ANIM_1, PEACH_ANIM_2, PEACH_ANIM_3, PEACH_ANIM_DESCEND_FROM_WINDOW, PEACH_ANIM_LOOK_UP_AND_OPEN_EYES, PEACH_ANIM_DIALOG_1_PART_1, PEACH_ANIM_DIALOG_1_PART_2, PEACH_ANIM_DIALOG_1_PART_3, PEACH_ANIM_THANKS_TO_YOU, PEACH_ANIM_KISS, PEACH_ANIM_WAVING, }; /* Yoshi */ /* oAction */ #define YOSHI_ACT_IDLE 0x0 #define YOSHI_ACT_WALK 0x1 #define YOSHI_ACT_TALK 0x2 #define YOSHI_ACT_WALK_JUMP_OFF_ROOF 0x3 #define YOSHI_ACT_FINISH_JUMPING_AND_DESPAWN 0x4 #define YOSHI_ACT_GIVE_PRESENT 0x5 #define YOSHI_ACT_CREDITS 0xA /* Animations */ #define YOSHI_ANIM_IDLE 0x0 #define YOSHI_ANIM_WALK 0x1 #define YOSHI_ANIM_JUMP 0x2 /* Koopa Race end waypoint */ enum oKoopaRaceEndpointRaceStatuses { KOOPA_RACE_ENDPOINT_STATUS_MARIO_CHEATED = -1, KOOPA_RACE_ENDPOINT_STATUS_KOOPA_WON = 0, KOOPA_RACE_ENDPOINT_STATUS_MARIO_WON = 1, }; /* Koopa (General) */ /* oBehParams2ndByte */ #define KOOPA_BP_UNSHELLED 0x0 #define KOOPA_BP_NORMAL 0x1 #define KOOPA_BP_KOOPA_THE_QUICK_BASE 0x2 #define KOOPA_BP_KOOPA_THE_QUICK_BOB (KOOPA_BP_KOOPA_THE_QUICK_BASE + KOOPA_THE_QUICK_BOB_INDEX) #define KOOPA_BP_KOOPA_THE_QUICK_THI (KOOPA_BP_KOOPA_THE_QUICK_BASE + KOOPA_THE_QUICK_THI_INDEX) #define KOOPA_BP_TINY 0x4 /* Animations */ #define KOOPA_ANIM_SHELLED_UNUSED3 0x0 #define KOOPA_ANIM_SHELLED_RUN_AWAY 0x1 #define KOOPA_ANIM_UNSHELLED_LYING 0x2 #define KOOPA_ANIM_UNSHELLED_RUN 0x3 #define KOOPA_ANIM_UNUSED_4 0x4 #define KOOPA_ANIM_SHELLED_LYING 0x5 #define KOOPA_ANIM_STAND_UP 0x6 #define KOOPA_ANIM_STOPPED 0x7 #define KOOPA_ANIM_UNUSED_8 0x8 #define KOOPA_ANIM_WALK 0x9 #define KOOPA_ANIM_SHELLED_WALK_STOP 0xA #define KOOPA_ANIM_WALK_START 0xB #define KOOPA_ANIM_THE_QUICK_JUMP 0xC #define KOOPA_ANIM_THE_QUICK_LAND 0xD /* Unshelled Koopa */ /* oAction */ #define KOOPA_UNSHELLED_ACT_RUN 0x0 #define KOOPA_UNSHELLED_ACT_DIVE 0x1 #define KOOPA_UNSHELLED_ACT_LYING 0x2 // #define KOOPA_UNSHELLED_ACT_UNUSED3 0x3 /* Shelled Koopa */ /* oAction */ #define KOOPA_SHELLED_ACT_STOPPED 0x0 #define KOOPA_SHELLED_ACT_WALK 0x1 #define KOOPA_SHELLED_ACT_RUN_FROM_MARIO 0x2 #define KOOPA_SHELLED_ACT_LYING 0x3 #define KOOPA_SHELLED_ACT_DIE 0x4 /* oSubAction */ /* KOOPA_SHELLED_ACT_WALK */ #define KOOPA_SHELLED_SUB_ACT_START_WALK 0x0 #define KOOPA_SHELLED_SUB_ACT_WALK 0x1 #define KOOPA_SHELLED_SUB_ACT_STOP_WALK 0x2 /* Koopa The Quick */ /* oAction */ #define KOOPA_THE_QUICK_ACT_WAIT_BEFORE_RACE 0x0 #define KOOPA_THE_QUICK_ACT_UNUSED1 0x1 #define KOOPA_THE_QUICK_ACT_SHOW_INIT_TEXT 0x2 #define KOOPA_THE_QUICK_ACT_RACE 0x3 #define KOOPA_THE_QUICK_ACT_DECELERATE 0x4 #define KOOPA_THE_QUICK_ACT_STOP 0x5 #define KOOPA_THE_QUICK_ACT_AFTER_RACE 0x6 /* oSubAction */ /* KOOPA_THE_QUICK_ACT_RACE */ #define KOOPA_THE_QUICK_SUB_ACT_START_RUN 0x0 #define KOOPA_THE_QUICK_SUB_ACT_RUN 0x1 #define KOOPA_THE_QUICK_SUB_ACT_JUMP 0x2 /* oKoopaTheQuickRaceIndex */ #define KOOPA_THE_QUICK_BOB_INDEX 0x0 #define KOOPA_THE_QUICK_THI_INDEX 0x1 /* Koopa Flag */ /* Animations */ #define KOOPA_FLAG_ANIM_WAVE 0x0 /* Pokey */ /* oAction */ #define POKEY_ACT_UNINITIALIZED 0x0 #define POKEY_ACT_WANDER 0x1 #define POKEY_ACT_UNLOAD_PARTS 0x2 /* oAnimState */ #define POKEY_ANIM_STATE_NONSTANDARD_ACTION 0x1 /* Pokey Body Part */ /* oBehParams2ndByte */ #define POKEY_PART_BP_HEAD 0x0 #define POKEY_PART_BP_LOWEST (POKEY_NUM_SEGMENTS - 0x1) /* Swoop */ enum oBehParams2ndByteSwoop { SWOOP_BP_0, SWOOP_BP_1, }; enum oActionsSwoop { SWOOP_ACT_IDLE, SWOOP_ACT_MOVE, }; enum animIDsSwoop { SWOOP_ANIM_FLY, SWOOP_ANIM_IDLE, }; /* Fly guy */ /* oBehParams2ndByte */ #define FLY_GUY_BP_LUNGES 0x0 #define FLY_GUY_BP_SHOOTS_FIRE 0x1 /* oAction */ #define FLY_GUY_ACT_IDLE 0x0 #define FLY_GUY_ACT_APPROACH_MARIO 0x1 #define FLY_GUY_ACT_LUNGE 0x2 #define FLY_GUY_ACT_SHOOT_FIRE 0x3 /* Animations */ #define FLY_GUY_ANIM_FLYING 0x0 /* Goomba triplet spawner */ /* oBehParams2ndByte */ #define GOOMBA_TRIPLET_SPAWNER_BP_SIZE_MASK 0x03 #define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS_MASK 0xFC /* oAction */ #define GOOMBA_TRIPLET_SPAWNER_ACT_UNLOADED 0x0 #define GOOMBA_TRIPLET_SPAWNER_ACT_LOADED 0x1 /* Goomba */ /* oBehParams2ndByte */ #define GOOMBA_SIZE_REGULAR 0x00 #define GOOMBA_SIZE_HUGE 0x01 #define GOOMBA_SIZE_TINY 0x02 #define GOOMBA_BP_SIZE_MASK 0x03 #define GOOMBA_BP_TRIPLET_FLAG_MASK 0xFC #if defined(FLOOMBAS) && defined(INTRO_FLOOMBAS) /* BPARAM3 */ #define GOOMBA_BP3_FLOOMBA_MIRRORED_STARTUP_ANIM (1 << 7) #endif /* oAction */ #define GOOMBA_ACT_WALK 0x0 #define GOOMBA_ACT_ATTACKED_MARIO 0x1 #define GOOMBA_ACT_JUMP 0x2 #if defined(FLOOMBAS) && defined(INTRO_FLOOMBAS) #define FLOOMBA_ACT_STARTUP 0x3 #endif /* oAnimState */ #define GOOMBA_ANIM_STATE_EYES_OPEN OBJ_BLINKING_ANIM_STATE_EYES_OPEN #define GOOMBA_ANIM_STATE_EYES_CLOSED OBJ_BLINKING_ANIM_STATE_EYES_CLOSED #ifdef FLOOMBAS #define FLOOMBA_ANIM_STATE_EYES_OPEN (OBJ_BLINKING_ANIM_STATE_EYES_OPEN + 2) #define FLOOMBA_ANIM_STATE_EYES_CLOSED (OBJ_BLINKING_ANIM_STATE_EYES_CLOSED + 2) #endif /* Animations */ #define GOOMBA_ANIM_DEFAULT 0x0 /* Chain chomp */ /* oAction */ #define CHAIN_CHOMP_ACT_UNINITIALIZED 0x0 #define CHAIN_CHOMP_ACT_MOVE 0x1 #define CHAIN_CHOMP_ACT_UNLOAD_CHAIN 0x2 /* oSubAction */ /* CHAIN_CHOMP_ACT_MOVE */ #define CHAIN_CHOMP_SUB_ACT_TURN 0x0 #define CHAIN_CHOMP_SUB_ACT_LUNGE 0x1 /* oChainChompReleaseStatus */ #define CHAIN_CHOMP_NOT_RELEASED 0x0 #define CHAIN_CHOMP_RELEASED_TRIGGER_CUTSCENE 0x1 #define CHAIN_CHOMP_RELEASED_LUNGE_AROUND 0x2 #define CHAIN_CHOMP_RELEASED_BREAK_GATE 0x3 #define CHAIN_CHOMP_RELEASED_JUMP_AWAY 0x4 #define CHAIN_CHOMP_RELEASED_END_CUTSCENE 0x5 /* Animations */ #define CHAIN_CHOMP_ANIM_CHOMPING 0x0 /* Chain chomp chain part */ /* oBehParams2ndByte */ #define CHAIN_CHOMP_CHAIN_PART_BP_PIVOT 0x0 /* Wooden post */ /* oBehParams */ /* Wiggler */ /* oAction */ #define WIGGLER_ACT_UNINITIALIZED 0x0 #define WIGGLER_ACT_WALK 0x1 #define WIGGLER_ACT_KNOCKBACK 0x2 #define WIGGLER_ACT_JUMPED_ON 0x3 #define WIGGLER_ACT_SHRINK 0x4 #define WIGGLER_ACT_FALL_THROUGH_FLOOR 0x5 /* oWigglerTextStatus */ #define WIGGLER_TEXT_STATUS_AWAIT_DIALOG 0x0 #define WIGGLER_TEXT_STATUS_SHOWING_DIALOG 0x1 #define WIGGLER_TEXT_STATUS_COMPLETED_DIALOG 0x2 /* Animations */ #define WIGGLER_ANIM_WALK 0x0 /* Spiny */ /* oAction */ #define SPINY_ACT_WALK 0x0 #define SPINY_ACT_HELD_BY_LAKITU 0x1 #define SPINY_ACT_THROWN_BY_LAKITU 0x2 #define SPINY_ACT_ATTACKED_MARIO 0x3 /* Animations */ #define SPINY_ANIM_DEFAULT 0x0 /* Enemy lakitu */ /* oAction */ #define ENEMY_LAKITU_ACT_UNINITIALIZED 0x0 #define ENEMY_LAKITU_ACT_MAIN 0x1 /* oSubAction */ /* ENEMY_LAKITU_ACT_MAIN */ #define ENEMY_LAKITU_SUB_ACT_NO_SPINY 0x0 #define ENEMY_LAKITU_SUB_ACT_HOLD_SPINY 0x1 #define ENEMY_LAKITU_SUB_ACT_THROW_SPINY 0x2 /* Animations */ #define ENEMY_LAKITU_ANIM_SPAWN 0x0 #define ENEMY_LAKITU_ANIM_NO_SPINY 0x1 #define ENEMY_LAKITU_ANIM_THROW_SPINY 0x2 #define ENEMY_LAKITU_ANIM_HOLD_SPINY 0x3 /* Cloud */ /* oBehParams2ndByte */ #define CLOUD_BP_FWOOSH 0x0 #define CLOUD_BP_LAKITU_CLOUD 0x1 #define CLOUD_BP_FWOOSH_FACE 0x5 /* oAction */ #define CLOUD_ACT_SPAWN_PARTS 0x0 #define CLOUD_ACT_MAIN 0x1 #define CLOUD_ACT_UNLOAD 0x2 #define CLOUD_ACT_FWOOSH_HIDDEN 0x3 /* Intro Lakitu */ /* oAction */ #define INTRO_LAKITU_ACT_INIT 0x0 #define INTRO_LAKITU_ACT_CUTSCENE_INTRO_1 0x1 #define INTRO_LAKITU_ACT_CUTSCENE_INTRO_2 0x2 #define INTRO_LAKITU_ACT_CUTSCENE_INTRO_3 0x3 #define INTRO_LAKITU_ACT_CUTSCENE_END_WAVING_1 0x64 #define INTRO_LAKITU_ACT_CUTSCENE_END_WAVING_2 0x65 #define INTRO_LAKITU_ACT_CUTSCENE_END_WAVING_3 0x66 /* Animations */ #define INTRO_LAKITU_ANIM_DEFAULT 0x0 /* Camera Lakitu */ /* oBehParams2ndByte */ #define CAMERA_LAKITU_BP_FOLLOW_CAMERA 0x0 #define CAMERA_LAKITU_BP_INTRO 0x1 /* oAction */ #define CAMERA_LAKITU_INTRO_ACT_TRIGGER_CUTSCENE 0x0 #define CAMERA_LAKITU_INTRO_ACT_SPAWN_CLOUD 0x1 #define CAMERA_LAKITU_INTRO_ACT_SHOW_DIALOG 0x2 /* Animations */ #define CAMERA_LAKITU_ANIM_DEFAULT 0x0 /* RR Cruiser Wing */ /* oBehParams2ndByte */ #define CRUISER_WING_BP_CLOCKWISE 0x0 #define CRUISER_WING_BP_COUNTERCLOCKWISE 0x1 /* Manta Ray */ /* oAction */ #define MANTA_ACT_SPAWN_RINGS 0x0 #define MANTA_ACT_NO_RINGS 0x1 /* Animations */ #define MANTA_ANIM_SWIM 0x0 /* Sushi Shark */ /* Animations */ #define SUSHI_ANIM_SWIM 0x0 /* Monty mole */ /* oBehParams2ndByte */ #define MONTY_MOLE_BP_NO_ROCK 0x0 #define MONTY_MOLE_BP_ROCK 0x1 /* oAction */ #define MONTY_MOLE_ACT_SELECT_HOLE 0x0 #define MONTY_MOLE_ACT_RISE_FROM_HOLE 0x1 #define MONTY_MOLE_ACT_SPAWN_ROCK 0x2 #define MONTY_MOLE_ACT_BEGIN_JUMP_INTO_HOLE 0x3 #define MONTY_MOLE_ACT_THROW_ROCK 0x4 #define MONTY_MOLE_ACT_JUMP_INTO_HOLE 0x5 #define MONTY_MOLE_ACT_HIDE 0x6 #define MONTY_MOLE_ACT_JUMP_OUT_OF_HOLE 0x7 /* Animations */ #define MONTY_MOLE_ANIM_JUMP_INTO_HOLE 0x0 #define MONTY_MOLE_ANIM_RISE 0x1 #define MONTY_MOLE_ANIM_GET_ROCK 0x2 #define MONTY_MOLE_ANIM_BEGIN_JUMP_INTO_HOLE 0x3 #define MONTY_MOLE_ANIM_JUMP_OUT_OF_HOLE_DOWN 0x4 #define MONTY_MOLE_ANIM_UNUSED_5 0x5 #define MONTY_MOLE_ANIM_UNUSED_6 0x6 #define MONTY_MOLE_ANIM_UNUSED_7 0x7 #define MONTY_MOLE_ANIM_THROW_ROCK 0x8 #define MONTY_MOLE_ANIM_JUMP_OUT_OF_HOLE_UP 0x9 /* Monty mole rock */ /* oAction */ #define MONTY_MOLE_ROCK_ACT_HELD 0x0 #define MONTY_MOLE_ROCK_ACT_MOVE 0x1 /* Ukiki */ /* oBehParams2ndByte */ #define UKIKI_BP_CAGE 0x0 #define UKIKI_BP_CAP 0x1 /* oAction */ #define UKIKI_ACT_IDLE 0x0 #define UKIKI_ACT_RUN 0x1 #define UKIKI_ACT_TURN_TO_MARIO 0x2 #define UKIKI_ACT_JUMP 0x3 #define UKIKI_ACT_GO_TO_CAGE 0x4 #define UKIKI_ACT_WAIT_TO_RESPAWN 0x5 #define UKIKI_ACT_UNUSED_TURN 0x6 #define UKIKI_ACT_RETURN_HOME 0x7 /* oSubAction */ /* UKIKI_ACT_IDLE, UKIKI_ACT_WAIT_TO_RESPAWN, UKIKI_ACT_UNUSED_TURN */ #define UKIKI_SUB_ACT_TAUNT_NONE 0x0 #define UKIKI_SUB_ACT_TAUNT_ITCH 0x1 #define UKIKI_SUB_ACT_TAUNT_SCREECH 0x2 #define UKIKI_SUB_ACT_TAUNT_JUMP_CLAP 0x3 #define UKIKI_SUB_ACT_TAUNT_HANDSTAND 0x4 /* UKIKI_ACT_JUMP */ #define UKIKI_SUB_ACT_JUMP_JUMP 0x0 #define UKIKI_SUB_ACT_JUMP_LAND 0x1 /* UKIKI_ACT_GO_TO_CAGE */ #define UKIKI_SUB_ACT_CAGE_RUN_TO_CAGE 0x0 #define UKIKI_SUB_ACT_CAGE_WAIT_FOR_MARIO 0x1 #define UKIKI_SUB_ACT_CAGE_TALK_TO_MARIO 0x2 #define UKIKI_SUB_ACT_CAGE_TURN_TO_CAGE 0x3 #define UKIKI_SUB_ACT_CAGE_JUMP_TO_CAGE 0x4 #define UKIKI_SUB_ACT_CAGE_LAND_ON_CAGE 0x5 #define UKIKI_SUB_ACT_CAGE_SPIN_ON_CAGE 0x6 #define UKIKI_SUB_ACT_CAGE_DESPAWN 0x7 /* oUkikiTextState */ #define UKIKI_TEXT_DEFAULT 0x0 #define UKIKI_TEXT_CAGE_TEXTBOX 0x1 #define UKIKI_TEXT_GO_TO_CAGE 0x2 #define UKIKI_TEXT_STOLE_CAP 0x3 #define UKIKI_TEXT_HAS_CAP 0x4 #define UKIKI_TEXT_GAVE_CAP_BACK 0x5 #define UKIKI_TEXT_DO_NOT_LET_GO 0x6 #define UKIKI_TEXT_STEAL_CAP 0x7 /* Animations */ #define UKIKI_ANIM_RUN 0x0 #define UKIKI_ANIM_UNUSED_WALK 0x1 #define UKIKI_ANIM_UNUSED_APOSE 0x2 #define UKIKI_ANIM_UNUSED_DEATH 0x3 #define UKIKI_ANIM_SCREECH 0x4 #define UKIKI_ANIM_JUMP_CLAP 0x5 #define UKIKI_ANIM_UNUSED_HOP 0x6 #define UKIKI_ANIM_LAND 0x7 #define UKIKI_ANIM_JUMP 0x8 #define UKIKI_ANIM_ITCH 0x9 #define UKIKI_ANIM_HANDSTAND 0xA #define UKIKI_ANIM_TURN 0xB #define UKIKI_ANIM_HELD 0xC /* oAnimState */ #define UKIKI_ANIM_STATE_DEFAULT 0x0 #define UKIKI_ANIM_STATE_EYE_CLOSED 0x1 #define UKIKI_ANIM_STATE_CAP_ON 0x2 /* oUkikiHasCap */ #define UKIKI_CAP_OFF 0x0 #define UKIKI_CAP_ON 0x1 /* Ukiki Cage Star */ /* oAction */ #define UKIKI_CAGE_STAR_ACT_IN_CAGE 0x0 #define UKIKI_CAGE_STAR_ACT_SPAWN_STAR 0x1 /* Ukiki Cage */ /* oAction */ #define UKIKI_CAGE_ACT_WAIT_FOR_UKIKI 0x0 #define UKIKI_CAGE_ACT_SPIN 0x1 #define UKIKI_CAGE_ACT_FALL 0x2 #define UKIKI_CAGE_ACT_HIDE 0x3 /* Piranha Plant */ /* oAction */ #define PIRANHA_PLANT_ACT_IDLE 0x0 #define PIRANHA_PLANT_ACT_SLEEPING 0x1 #define PIRANHA_PLANT_ACT_BITING 0x2 #define PIRANHA_PLANT_ACT_WOKEN_UP 0x3 #define PIRANHA_PLANT_ACT_STOPPED_BITING 0x4 #define PIRANHA_PLANT_ACT_ATTACKED 0x5 #define PIRANHA_PLANT_ACT_SHRINK_AND_DIE 0x6 #define PIRANHA_PLANT_ACT_WAIT_TO_RESPAWN 0x7 #define PIRANHA_PLANT_ACT_RESPAWN 0x8 /* Animations */ #define PIRANHA_PLANT_ANIM_BITE 0x0 #define PIRANHA_PLANT_ANIM_UNUSED_1 0x1 #define PIRANHA_PLANT_ANIM_FALLING_OVER 0x2 #define PIRANHA_PLANT_ANIM_UNUSED_3 0x3 #define PIRANHA_PLANT_ANIM_UNUSED_4 0x4 #define PIRANHA_PLANT_ANIM_UNUSED_5 0x5 #define PIRANHA_PLANT_ANIM_STOP_BITING 0x6 #define PIRANHA_PLANT_ANIM_UNUSED_7 0x7 #define PIRANHA_PLANT_ANIM_SLEEPING 0x8 /* Piranha Plant Bubble */ /* oAction */ #define PIRANHA_PLANT_BUBBLE_ACT_IDLE 0x0 #define PIRANHA_PLANT_BUBBLE_ACT_GROW_SHRINK_LOOP 0x1 #define PIRANHA_PLANT_BUBBLE_ACT_BURST 0x2 /* Checkerboard Platform Group */ /* oBehParams2ndByte */ #define CHECKERBOARD_PLATFORM_GROUP_BP_SET_DEFAULT 0x00 #define CHECKERBOARD_PLATFORM_GROUP_BP_DEFAULT_MAX 0x41 /* Checkerboard Platform */ /* oBehParams2ndByte */ #define CHECKERBOARD_PLATFORM_BP_MOVE_UP 0x0 #define CHECKERBOARD_PLATFORM_BP_MOVE_DOWN 0x1 /* oAction */ #define CHECKERBOARD_PLATFORM_ACT_MOVE_VERTICALLY 0x0 #define CHECKERBOARD_PLATFORM_ACT_MOVE_UP 0x1 #define CHECKERBOARD_PLATFORM_ACT_ROTATE_UP 0x2 #define CHECKERBOARD_PLATFORM_ACT_MOVE_DOWN 0x3 #define CHECKERBOARD_PLATFORM_ACT_ROTATE_DOWN 0x4 /* Platform on track */ enum oActionsPlatformOnTrack { PLATFORM_ON_TRACK_ACT_INIT, PLATFORM_ON_TRACK_ACT_WAIT_FOR_MARIO, PLATFORM_ON_TRACK_ACT_MOVE_ALONG_TRACK, PLATFORM_ON_TRACK_ACT_PAUSE_BRIEFLY, PLATFORM_ON_TRACK_ACT_FALL, }; enum oBehParams2ndBytePlatformOnTrack { PLATFORM_ON_TRACK_BP_SPAWN_BALLS = (1 << 7), // 0x80 PLATFORM_ON_TRACK_BP_MASK_TYPE = 0x70, PLATFORM_ON_TRACK_BP_MASK_PATH = 0x0F, }; enum oBehParams1stBytePlatformOnTrack { PLATFORM_ON_TRACK_BP_RETURN_TO_START = (1 << 0), // 0x1 PLATFORM_ON_TRACK_BP_DONT_DISAPPEAR = (1 << 1), // 0x2 PLATFORM_ON_TRACK_BP_DONT_TURN_YAW = (1 << 2), // 0x4 PLATFORM_ON_TRACK_BP_DONT_TURN_ROLL = (1 << 4), // 0x8 }; enum oPlatformOnTrackTypes { PLATFORM_ON_TRACK_TYPE_CARPET, PLATFORM_ON_TRACK_TYPE_SKI_LIFT, PLATFORM_ON_TRACK_TYPE_CHECKERED, PLATFORM_ON_TRACK_TYPE_GRATE, }; /* HMC Controllable Platform */ /* oBehParams2ndByte / sControllablePlatformDirectionState */ #define DIRECTION_STATE_STOPPED 0x0 #define DIRECTION_STATE_SOUTH 0x1 #define DIRECTION_STATE_NORTH 0x2 #define DIRECTION_STATE_EAST 0x3 #define DIRECTION_STATE_WEST 0x4 #define DIRECTION_STATE_HIT_WALL 0x5 #define DIRECTION_STATE_DISAPPEARING 0x6 /* oControllablePlatformWallHitDirection */ #define MOVE_DIRECTION_NORTH 0x1 #define MOVE_DIRECTION_SOUTH 0x2 #define MOVE_DIRECTION_WEST 0x3 #define MOVE_DIRECTION_EAST 0x4 /* HMC Controllable Platform Button */ /* oAction */ #define CONTROLLABLE_PLATFORM_ACT_UNPRESSED 0x0 #define CONTROLLABLE_PLATFORM_BUTTON_ACT_PRESSED 0x1 #define CONTROLLABLE_PLATFORM_BUTTON_ACT_CHECK_UNPRESS 0x2 /* Elevator */ /* oBehParams2ndByte */ #define ELEVATOR_BP_HMC_WORK 0x0 #define ELEVATOR_BP_HMC_EMERGENCY_EXIT 0x1 #define ELEVATOR_BP_HMC_NAVIGATING_THE_TOXIC_MAZE 0x2 #define ELEVATOR_BP_HMC_LAKE 0x3 #define ELEVATOR_BP_BBH_MESH 0x4 #define ELEVATOR_BP_RAINBOW_RIDE 0x5 #define ELEVATOR_BP_UNUSED 0x6 /* oAction */ #define ELEVATOR_ACT_IDLE 0x0 #define ELEVATOR_ACT_MOVING_UP 0x1 #define ELEVATOR_ACT_MOVING_DOWN 0x2 #define ELEVATOR_ACT_LANDED 0x3 #define ELEVATOR_ACT_LANDED_RR 0x4 /* oElevatorType */ #define ELEVATOR_TYPE_DEFAULT 0x0 #define ELEVATOR_TYPE_RR 0x1 #define ELEVATOR_TYPE_ABOVE_HOME 0x2 // roomless? /* WDW Express Elevator */ /* oAction */ #define EXPRESS_ELEVATOR_ACT_IDLE 0x0 #define EXPRESS_ELEVATOR_ACT_MOVING_DOWN 0x1 #define EXPRESS_ELEVATOR_ACT_PAUSING_AT_BOTTOM 0x2 #define EXPRESS_ELEVATOR_ACT_MOVING_UP 0x3 #define EXPRESS_ELEVATOR_ACT_DONE 0x4 /* Pyramid elevator */ /* oAction */ #define PYRAMID_ELEVATOR_IDLE 0x0 #define PYRAMID_ELEVATOR_START_MOVING 0x1 #define PYRAMID_ELEVATOR_CONSTANT_VELOCITY 0x2 #define PYRAMID_ELEVATOR_AT_BOTTOM 0x3 /* Pyramid top */ /* oAction */ #define PYRAMID_TOP_ACT_CHECK_IF_SOLVED 0x0 #define PYRAMID_TOP_ACT_SPINNING 0x1 #define PYRAMID_TOP_ACT_EXPLODE 0x2 /* Pyramid wall */ /* oBehParams2ndByte */ #define PYRAMID_WALL_BP_POSITION_HIGH 0x0 #define PYRAMID_WALL_BP_POSITION_MIDDLE 0x1 #define PYRAMID_WALL_BP_POSITION_LOW 0x2 /* oAction */ #define PYRAMID_WALL_ACT_MOVING_DOWN 0x0 #define PYRAMID_WALL_ACT_MOVING_UP 0x1 /* Tox Box */ enum BehParamsToxBoxPatterns { // oBehParams2ndByte TOX_BOX_BP_PATTERN_1, TOX_BOX_BP_PATTERN_2, TOX_BOX_BP_PATTERN_3 }; enum oActionsToxBox { TOX_BOX_ACT_END = -1, TOX_BOX_ACT_INIT, TOX_BOX_ACT_STEP, TOX_BOX_ACT_WAIT, TOX_BOX_ACT_MOVE_FORWARD, TOX_BOX_ACT_MOVE_BACKWARD, TOX_BOX_ACT_MOVE_DOWN, TOX_BOX_ACT_MOVE_UP }; /* Penguins (general) */ enum PenguinWalkingSounds { PENGUIN_SOUND_WALK_BABY, PENGUIN_SOUND_WALK_BIG }; enum oAnimStatesPenguin { // geo_switch_tuxie_mother_eyes PENGUIN_ANIM_STATE_EYES_OPEN, PENGUIN_ANIM_STATE_EYES_HALF_CLOSED, PENGUIN_ANIM_STATE_EYES_CLOSED, PENGUIN_ANIM_STATE_EYES_ANGRY, PENGUIN_ANIM_STATE_EYES_SAD }; enum AnimIDsPenguin { // Animations PENGUIN_ANIM_WALK, PENGUIN_ANIM_DIVE_SLIDE, PENGUIN_ANIM_STAND_UP, PENGUIN_ANIM_IDLE }; /* Racing Penguin */ /* oBehParams2ndByte */ #define RACING_PENGUIN_BP_NORMAL 0x0 #define RACING_PENGUIN_BP_120_STARS 0x1 /* oAction */ #define RACING_PENGUIN_ACT_WAIT_FOR_MARIO 0x0 #define RACING_PENGUIN_ACT_SHOW_INIT_TEXT 0x1 #define RACING_PENGUIN_ACT_PREPARE_FOR_RACE 0x2 #define RACING_PENGUIN_ACT_RACE 0x3 #define RACING_PENGUIN_ACT_FINISH_RACE 0x4 #define RACING_PENGUIN_ACT_SHOW_FINAL_TEXT 0x5 /* Mother Penguin */ /* oAction */ #define MOTHER_PENGUIN_ACT_IDLE 0x0 #define MOTHER_PENGUIN_ACT_RECEIVE_BABY 0x1 #define MOTHER_PENGUIN_ACT_RECEIVED_BABY 0x2 /* oSubAction */ /* MOTHER_PENGUIN_ACT_IDLE */ #define MOTHER_PENGUIN_SUB_ACT_READY_TO_ASK 0x0 #define MOTHER_PENGUIN_SUB_ACT_ASK_FOR_BABY 0x1 #define MOTHER_PENGUIN_SUB_ACT_ALREADY_ASKED 0x2 /* MOTHER_PENGUIN_ACT_RECEIVE_BABY */ #define MOTHER_PENGUIN_SUB_ACT_RECEIVE_BABY 0x0 #define MOTHER_PENGUIN_SUB_ACT_CORRECT_BABY 0x1 #define MOTHER_PENGUIN_SUB_ACT_WRONG_BABY 0x2 /* MOTHER_PENGUIN_ACT_RECEIVED_BABY */ #define MOTHER_PENGUIN_SUB_ACT_CHASE_MARIO 0x0 #define MOTHER_PENGUIN_SUB_ACT_STOP_CHASING_MARIO 0x1 /* Small Penguin */ /* oAction */ #define SMALL_PENGUIN_ACT_WALKING 0x0 #define SMALL_PENGUIN_ACT_WALKING_TOWARD_MARIO 0x1 #define SMALL_PENGUIN_ACT_WALKING_AWAY_FROM_MARIO 0x2 #define SMALL_PENGUIN_ACT_DIVE_SLIDING 0x3 #define SMALL_PENGUIN_ACT_DIVE_SLIDING_STOP 0x4 #define SMALL_PENGUIN_ACT_NEAR_MOTHER 0x5 /* SL walking Penguin */ /* oAction */ #define SL_WALKING_PENGUIN_ACT_MOVING_FORWARDS 0x0 #define SL_WALKING_PENGUIN_ACT_TURNING_BACK 0x1 #define SL_WALKING_PENGUIN_ACT_RETURNING 0x2 #define SL_WALKING_PENGUIN_ACT_TURNING_FORWARDS 0x3 /* Snowman wind */ /* oSubAction */ #define SL_SNOWMAN_WIND_ACT_IDLE 0x0 #define SL_SNOWMAN_WIND_ACT_TALKING 0x1 #define SL_SNOWMAN_WIND_ACT_BLOWING 0x2 /* Snow Mound */ /* oAction */ #define SNOW_MOUND_ACT_MOVE 0x0 #define SNOW_MOUND_ACT_SINK 0x1 /* Snowman's Head */ enum oActionsSnowmansHead { SNOWMANS_HEAD_ACT_ASK, SNOWMANS_HEAD_ACT_NONE, SNOWMANS_HEAD_ACT_JUMPING, SNOWMANS_HEAD_ACT_LAND, SNOWMANS_HEAD_ACT_THANK, }; /* Snowman's Bottom */ enum oActionsSnowmansBottom { SNOWMANS_BOTTOM_ACT_WAITING, SNOWMANS_BOTTOM_ACT_FOLLOW_PATH, SNOWMANS_BOTTOM_ACT_FINAL_STRETCH, SNOWMANS_BOTTOM_ACT_REACH_END, SNOWMANS_BOTTOM_ACT_COLLISION, }; /* Water Bomb Cannon */ /* oBehParams2ndByte */ #define WATER_BOMB_CANNON_BP_ACTIVE 0x0 /* oAction */ #define WATER_BOMB_CANNON_ACT_HIDDEN 0x0 #define WATER_BOMB_CANNON_ACT_ACTIVE 0x1 #define WATER_BOMB_CANNON_ACT_HIDE 0x2 /* Water bomb */ /* oAction */ #define WATER_BOMB_ACT_SHOT_FROM_CANNON 0x0 #define WATER_BOMB_ACT_INIT 0x1 #define WATER_BOMB_ACT_DROP 0x2 #define WATER_BOMB_ACT_EXPLODE 0x3 /* TTC Painting Clock Arm */ /* oAction */ #define CLOCK_ARM_ACT_CHECK_DEFAULT 0x0 #define CLOCK_ARM_ACT_MOVING 0x1 #define CLOCK_ARM_ACT_STOP 0x2 /* TTC rotating solid */ /* oBehParams2ndByte */ #define TTC_ROTATING_SOLID_BP_CUBE 0x0 #define TTC_ROTATING_SOLID_BP_TRIANGULAR_PRISM 0x1 /* TTC moving bar */ /* oAction */ #define TTC_MOVING_BAR_ACT_WAIT 0x0 #define TTC_MOVING_BAR_ACT_PULL_BACK 0x1 #define TTC_MOVING_BAR_ACT_EXTEND 0x2 #define TTC_MOVING_BAR_ACT_RETRACT 0x3 /* TTC cog */ /* oBehParams2ndByte */ #define TTC_COG_BP_SHAPE_MASK 0x02 #define TTC_COG_BP_SHAPE_HEXAGON (0 << 1) #define TTC_COG_BP_SHAPE_TRIANGLE (1 << 1) #define TTC_COG_BP_DIR_MASK 0x01 #define TTC_COG_BP_DIR_CCW (0 << 0) // TODO: Check these #define TTC_COG_BP_DIR_CW (1 << 0) /* TTC Pit Block */ enum oBehParams2ndByteTTCPitBlock { TTC_PIT_BLOCK_BP_0, TTC_PIT_BLOCK_BP_1, }; /* TTC 2D Rotator */ /* oBehParams2ndByte */ #define TTC_2D_ROTATOR_BP_HAND 0x0 #define TTC_2D_ROTATOR_BP_2D_COG 0x1 /* TTC Treadmill */ /* oBehParams2ndByte */ #define TREADMILL_BP_LARGE 0x0 #define TREADMILL_BP_SMALL 0x1 #define TREADMILL_BP_SIZE_MASK 0x1 #define TREADMILL_BP_UNKNOWN 0x2 /* Activated Back-and-Forth Platform */ /* (bparam1 & 0x03) aka platform type */ #define ACTIVATED_BF_PLAT_TYPE_BITS_ARROW_PLAT 0x0 #define ACTIVATED_BF_PLAT_TYPE_BITFS_MESH_PLAT 0x1 #define ACTIVATED_BF_PLAT_TYPE_BITFS_ELEVATOR 0x2 #define ACTIVATED_BF_PLAT_TYPES_MASK 0x3 /* Unagi */ /* oBehParams2ndByte */ #define UNAGI_BP_IN_SHIP 0x0 #define UNAGI_BP_IN_CAVE 0x1 #define UNAGI_BP_START_SWIMMING 0x2 /* oAction */ #define UNAGI_ACT_SHIP_RESET_PATH 0x0 #define UNAGI_ACT_SHIP_PATH 0x1 #define UNAGI_ACT_RETURN_TO_CAVE 0x2 #define UNAGI_ACT_IN_CAVE 0x3 #define UNAGI_ACT_CAVE_PATH 0x4 /* oSubAction */ /* UNAGI_ACT_SHIP_RESET_PATH */ #define UNAGI_SUB_ACT_SHIP_RESET_PATH_WAIT_FOR_MARIO 0x0 #define UNAGI_SUB_ACT_SHIP_RESET_PATH_DO_RESET 0x1 /* oAnimState */ #define UNAGI_ANIM_STATE_NO_STAR 0x0 #define UNAGI_ANIM_STATE_HAS_STAR 0x1 #define UNAGI_ANIM_STATE_HAS_TRANSPARENT_STAR 0x2 /* Animations */ #define UNAGI_ANIM_YAWN 0x0 #define UNAGI_ANIM_BITE 0x1 #define UNAGI_ANIM_SWIM 0x2 #define UNAGI_ANIM_STATIC_STRAIGHT 0x3 #define UNAGI_ANIM_IDLE_2_1 0x4 #define UNAGI_ANIM_OPEN_MOUTH 0x5 #define UNAGI_ANIM_IDLE_2 0x6 /* Unagi Sub Object */ /* oBehParams2ndByte */ #define UNAGI_PART_BP_BACK -0x4 #define UNAGI_PART_BP_CONTROL_DISTANCE 0x3 #define UNAGI_PART_BP_FRONT 0x4 /* Dorrie */ /* oAction */ #define DORRIE_ACT_MOVE 0x0 #define DORRIE_ACT_LOWER_HEAD 0x1 #define DORRIE_ACT_RAISE_HEAD 0x2 /* Animations */ #define DORRIE_ANIM_UNUSED 0x0 #define DORRIE_ANIM_RAISE_HEAD 0x1 #define DORRIE_ANIM_LOWER_HEAD 0x2 /* Mad piano */ /* oAction */ #define MAD_PIANO_ACT_WAIT 0x0 #define MAD_PIANO_ACT_ATTACK 0x1 /* Animations */ #define MAD_PIANO_ANIM_SLEEPING 0x0 #define MAD_PIANO_ANIM_CHOMPING 0x1 /* Haunted Chair */ /* oAction */ #define HAUNTED_CHAIR_ACT_FALL_OR_SPIN 0x0 #define HAUNTED_CHAIR_ACT_FLY 0x1 /* Animations */ #define HAUNTED_CHAIR_ANIM_DEFAULT 0x0 /* Fire Piranha Plant */ enum oBehParam2ndByteFirePiranhaPlant { FIRE_PIRANHA_PLANT_BP_NORMAL, FIRE_PIRANHA_PLANT_BP_THI, }; enum oActionsFirePiranhaPlant { FIRE_PIRANHA_PLANT_ACT_HIDE, FIRE_PIRANHA_PLANT_ACT_GROW, }; enum animIDsFirePiranhaPlant { FIRE_PIRANHA_PLANT_ANIM_SHRINK, FIRE_PIRANHA_PLANT_ANIM_UNUSED_1, FIRE_PIRANHA_PLANT_ANIM_ATTACKED, FIRE_PIRANHA_PLANT_ANIM_UNUSED_3, FIRE_PIRANHA_PLANT_ANIM_GROW, }; /* Fire Spitter */ /* oAction */ #define FIRE_SPITTER_ACT_IDLE 0x0 #define FIRE_SPITTER_ACT_SPIT_FIRE 0x1 /* Moving Flame */ /* oBehParams2ndByte */ #define MOVING_FLAME_BP_1FRAME 0x0 #define MOVING_FLAME_BP_MOVE 0x1 /* Fly Guy Flame */ /* oBehParams2ndByte */ #define MOVING_FLAME_PARTICLE_BP_UNK1 0x1 /* Flamethrower */ /* oBehParams2ndByte */ #define FLAMETHROWER_BP_0 0x0 #define FLAMETHROWER_BP_BLUE 0x1 #define FLAMETHROWER_BP_SLOW 0x2 #define FLAMETHROWER_BP_TALL_HITBOX 0x3 #define FLAMETHROWER_BP_UPWARDS 0x4 /* oAction */ #define FLAMETHROWER_ACT_IDLE 0x0 #define FLAMETHROWER_ACT_BLOW_FIRE 0x1 #define FLAMETHROWER_ACT_COOLDOWN 0x2 /* Bouncing Fireball Flame */ /* oAction */ #define BOUNCING_FLAME_ACT_SPAWNED 0x0 #define BOUNCING_FLAME_ACT_LANDED 0x1 /* Bouncing Fireball */ /* oAction */ #define BOUNCING_FIREBALL_SPAWNER_ACT_IDLE 0x0 #define BOUNCING_FIREBALL_SPAWNER_ACT_SPAWN_FLAME 0x1 #define BOUNCING_FIREBALL_SPAWNER_ACT_COOLDOWN 0x2 /* Eyerok boss */ /* oAction */ #define EYEROK_BOSS_ACT_SLEEP 0x0 #define EYEROK_BOSS_ACT_WAKE_UP 0x1 #define EYEROK_BOSS_ACT_SHOW_INTRO_TEXT 0x2 #define EYEROK_BOSS_ACT_FIGHT 0x3 #define EYEROK_BOSS_ACT_DIE 0x4 /* oSubAction */ /* EYEROK_BOSS_ACT_WAKE_UP */ #define EYEROK_BOSS_SUB_ACT_WAKE_LOWER_VOLUME 0x0 #define EYEROK_BOSS_SUB_ACT_WAKE_WAIT_FOR_DIALOG 0x1 /* Eyerok hand */ /* oBehParams2ndByte */ #define EYEROK_BP_LEFT_HAND -0x1 #define EYEROK_BP_RIGHT_HAND 0x1 /* oAction */ #define EYEROK_HAND_ACT_SLEEP 0x0 #define EYEROK_HAND_ACT_IDLE 0x1 #define EYEROK_HAND_ACT_OPEN 0x2 #define EYEROK_HAND_ACT_SHOW_EYE 0x3 #define EYEROK_HAND_ACT_CLOSE 0x4 #define EYEROK_HAND_ACT_RETREAT 0x5 #define EYEROK_HAND_ACT_TARGET_MARIO 0x6 #define EYEROK_HAND_ACT_SMASH 0x7 #define EYEROK_HAND_ACT_FIST_PUSH 0x8 #define EYEROK_HAND_ACT_FIST_SWEEP 0x9 #define EYEROK_HAND_ACT_BEGIN_DOUBLE_POUND 0xA // raising for double smash #define EYEROK_HAND_ACT_DOUBLE_POUND 0xB // double smashing #define EYEROK_HAND_ACT_ATTACKED 0xC #define EYEROK_HAND_ACT_RECOVER 0xD #define EYEROK_HAND_ACT_BECOME_ACTIVE 0xE #define EYEROK_HAND_ACT_DIE 0xF /* oAnimState */ #define EYEROK_HAND_ANIM_STATE_EYE_OPEN 0x0 #define EYEROK_HAND_ANIM_STATE_EYE_MOSTLY_OPEN 0x1 #define EYEROK_HAND_ANIM_STATE_EYE_MOSTLY_CLOSED 0x2 #define EYEROK_HAND_ANIM_STATE_EYE_CLOSED 0x3 /* oEyerokHandAnimStateIndex */ #define EYEROK_HAND_ANIM_STATE_INDEX_EYE_OPEN_1 0x0 #define EYEROK_HAND_ANIM_STATE_INDEX_EYE_CLOSING 0x1 // mostly open #define EYEROK_HAND_ANIM_STATE_INDEX_EYE_CLOSED 0x2 #define EYEROK_HAND_ANIM_STATE_INDEX_EYE_OPENING_1 0x3 // mostly closed #define EYEROK_HAND_ANIM_STATE_INDEX_EYE_OPENING_2 0x4 // mostly open #define EYEROK_HAND_ANIM_STATE_INDEX_EYE_OPEN_2 0x5 /* Animations */ #define EYEROK_HAND_ANIM_RECOVER 0x0 #define EYEROK_HAND_ANIM_DEATH 0x1 #define EYEROK_HAND_ANIM_IDLE 0x2 #define EYEROK_HAND_ANIM_ATTACKED 0x3 #define EYEROK_HAND_ANIM_OPEN 0x4 #define EYEROK_HAND_ANIM_SHOW_EYE 0x5 #define EYEROK_HAND_ANIM_SLEEPING 0x6 #define EYEROK_HAND_ANIM_CLOSE 0x7 /* King Bobomb */ /* oAction */ #define KING_BOBOMB_ACT_INACTIVE 0x0 #define KING_BOBOMB_ACT_ACTIVATE 0x1 #define KING_BOBOMB_ACT_ACTIVE 0x2 #define KING_BOBOMB_ACT_GRABBED_MARIO 0x3 #define KING_BOBOMB_ACT_BEEN_THROWN 0x4 #define KING_BOBOMB_ACT_RETURN_HOME 0x5 #define KING_BOBOMB_ACT_HIT_GROUND 0x6 #define KING_BOBOMB_ACT_DEATH 0x7 #define KING_BOBOMB_ACT_STOP_MUSIC 0x8 /* oSubAction */ /* KING_BOBOMB_ACT_INACTIVE */ #define KING_BOBOMB_SUB_ACT_INACTIVE_INIT 0x0 #define KING_BOBOMB_SUB_ACT_INACTIVE_DIALOG 0x1 /* KING_BOBOMB_ACT_GRABBED_MARIO */ #define KING_BOBOMB_SUB_ACT_GRABBED_MARIO_GRAB 0x0 #define KING_BOBOMB_SUB_ACT_GRABBED_MARIO_HOLDING 0x1 #define KING_BOBOMB_SUB_ACT_GRABBED_MARIO_THROW 0x2 /* KING_BOBOMB_ACT_BEEN_THROWN */ #define KING_BOBOMB_SUB_ACT_THROWN_FALL 0x0 #define KING_BOBOMB_SUB_ACT_THROWN_STAND_UP 0x1 #define KING_BOBOMB_SUB_ACT_THROWN_END 0x2 /* KING_BOBOMB_ACT_RETURN_HOME */ #define KING_BOBOMB_SUB_ACT_RETURN_HOME_JUMP 0x0 #define KING_BOBOMB_SUB_ACT_RETURN_HOME_LANDING 0x1 #define KING_BOBOMB_SUB_ACT_RETURN_HOME_LANDING_END 0x2 #define KING_BOBOMB_SUB_ACT_RETURN_HOME_WAIT_FOR_DIALOG 0x3 #define KING_BOBOMB_SUB_ACT_RETURN_HOME_DIALOG 0x4 /* KING_BOBOMB_ACT_HIT_GROUND */ #define KING_BOBOMB_SUB_ACT_HIT_GROUND_HIT 0x0 #define KING_BOBOMB_SUB_ACT_HIT_GROUND_STAND_UP 0x1 #define KING_BOBOMB_SUB_ACT_HIT_GROUND_START_WALKING 0x2 /* Animations */ #define KING_BOBOMB_ANIM_GRAB_MARIO 0x0 #define KING_BOBOMB_ANIM_HOLDING_MARIO 0x1 #define KING_BOBOMB_ANIM_HIT_GROUND 0x2 #define KING_BOBOMB_ANIM_UNUSED_3 0x3 #define KING_BOBOMB_ANIM_STOMP 0x4 #define KING_BOBOMB_ANIM_IDLE 0x5 #define KING_BOBOMB_ANIM_HELD 0x6 #define KING_BOBOMB_ANIM_T_POSE 0x7 #define KING_BOBOMB_ANIM_JUMP 0x8 #define KING_BOBOMB_ANIM_THROW_MARIO 0x9 #define KING_BOBOMB_ANIM_STAND_UP 0xA #define KING_BOBOMB_ANIM_WALKING 0xB /* Chuckya */ /* oAction */ #define CHUCKYA_ACT_MOVING 0x0 #define CHUCKYA_ACT_GRABBED_MARIO 0x1 #define CHUCKYA_ACT_THROWN 0x2 #define CHUCKYA_ACT_RELEASE_MARIO 0x3 /* oSubAction */ /* CHUCKYA_ACT_MOVING */ #define CHUCKYA_SUB_ACT_TURN_TOWARD_MARIO 0x0 #define CHUCKYA_SUB_ACT_ACCELERATE 0x1 #define CHUCKYA_SUB_ACT_STOP 0x2 #define CHUCKYA_SUB_ACT_TURN_TOWARD_HOME 0x3 /* CHUCKYA_ACT_GRABBED_MARIO */ #define CHUCKYA_SUB_ACT_GRAB_MARIO 0x0 #define CHUCKYA_SUB_ACT_HOLD_MARIO 0x1 #define CHUCKYA_SUB_ACT_THROW_MARIO 0x2 /* oCommonAnchorAction */ #define COMMON_ANCHOR_ACT_INACTIVE 0x0 #define COMMON_ANCHOR_ACT_SET_MARIO_GFX_TO_POS 0x1 #define COMMON_ANCHOR_ACT_THROW_MARIO 0x2 #define COMMON_ANCHOR_ACT_DROP_MARIO 0x3 /* Animations */ #define CHUCKYA_ANIM_GRAB_MARIO 0x0 #define CHUCKYA_ANIM_THROW_1 0x1 #define CHUCKYA_ANIM_HELD 0x2 #define CHUCKYA_ANIM_THROW_2 0x3 #define CHUCKYA_ANIM_IDLE 0x4 #define CHUCKYA_ANIM_SPAWN 0x5 /* Heave Ho */ /* oAction */ #define HEAVE_HO_ACT_INACTIVE 0x0 #define HEAVE_HO_ACT_WINDING_UP 0x1 #define HEAVE_HO_ACT_MOVING 0x2 #define HEAVE_HO_ACT_THROW_MARIO 0x3 /* Animations */ #define HEAVE_HO_ANIM_MOVING 0x0 #define HEAVE_HO_ANIM_THROW 0x1 #define HEAVE_HO_ANIM_WINDING_UP 0x2 /* Klepto */ /* oBehParams2ndByte */ #define KLEPTO_BP_NO_STAR 0x0 #define KLEPTO_BP_HAS_STAR 0x1 /* oAction */ #define KLEPTO_ACT_CIRCLE_TARGET_HOLDING 0x0 #define KLEPTO_ACT_APPROACH_TARGET_HOLDING 0x1 #define KLEPTO_ACT_WAIT_FOR_MARIO 0x2 #define KLEPTO_ACT_TURN_TOWARD_MARIO 0x3 #define KLEPTO_ACT_DIVE_AT_MARIO 0x4 #define KLEPTO_ACT_RESET_POSITION 0x5 #define KLEPTO_ACT_STRUCK_BY_MARIO 0x6 #define KLEPTO_ACT_RETREAT 0x7 /* oSubAction */ /* KLEPTO_ACT_DIVE_AT_MARIO */ #define KLEPTO_SUB_ACT_DIVE_TURN_PITCH 0x0 #define KLEPTO_SUB_ACT_DIVE_STOP 0x1 /* oAnimState */ #define KLEPTO_ANIM_STATE_HOLDING_NOTHING 0x0 #define KLEPTO_ANIM_STATE_HOLDING_CAP 0x1 #define KLEPTO_ANIM_STATE_HOLDING_STAR 0x2 #define KLEPTO_ANIM_STATE_HOLDING_TRANSPARENT_STAR 0x3 /* Animations */ #define KLEPTO_ANIM_DIVE_0 0x0 #define KLEPTO_ANIM_STRUCK_BY_MARIO 0x1 #define KLEPTO_ANIM_DIVE_AT_MARIO_2 0x2 #define KLEPTO_ANIM_DIVE_AT_MARIO_3 0x3 #define KLEPTO_ANIM_DIVE_AT_MARIO_4 0x4 #define KLEPTO_ANIM_DIVE_FLAP_5 0x5 #define KLEPTO_ANIM_DIVE_FLAP_6 0x6 /* Bird */ /* oBehParams2ndByte */ #define BIRD_BP_SPAWNED 0x0 #define BIRD_BP_SPAWNER 0x1 /* oAction */ #define BIRD_ACT_INACTIVE 0x0 #define BIRD_ACT_FLY 0x1 /* Animation */ #define BIRD_ANIM_FLY 0x0 /* End Birds */ /* oAction */ #define END_BIRDS_ACT_INIT 0x0 #define END_BIRDS_ACT_ACTIVE 0x1 /* Animations */ #define END_BIRDS_ANIM_FLY 0x0 /* Birds Sound */ /* oAction */ #define SOUND_BIRDS_BP_OBJ2_BIRD_CHIRP1 0x0 #define SOUND_BIRDS_BP_GENERAL2_BIRD_CHIRP2 0x1 #define SOUND_BIRDS_BP_OBJ_BIRD_CHIRP3 0x2 /* Scuttlebug Spawner */ /* oAction */ #define SCUTTLEBUG_SPAWNER_ACT_ACTIVE 0x0 #define SCUTTLEBUG_SPAWNER_ACT_INACTIVE 0x1 /* Scuttlebug */ /* oSubAction */ #define SCUTTLEBUG_SUB_ACT_RESET 0x0 #define SCUTTLEBUG_SUB_ACT_MOVING 0x1 #define SCUTTLEBUG_SUB_ACT_HIT_WALL 0x2 #define SCUTTLEBUG_SUB_ACT_ALERT 0x3 #define SCUTTLEBUG_SUB_ACT_JUMP 0x4 #define SCUTTLEBUG_SUB_ACT_LAND 0x5 /* Animations */ #define SCUTTLEBUG_ANIM_JUMP 0x0 #define SCUTTLEBUG_ANIM_WALK 0x1 /* Skeeter */ /* oAction */ #define SKEETER_ACT_IDLE 0x0 #define SKEETER_ACT_LUNGE 0x1 #define SKEETER_ACT_WALK 0x2 /* Animations */ #define SKEETER_ANIM_WATER_LUNGE 0x0 #define SKEETER_ANIM_WATER_IDLE 0x1 #define SKEETER_ANIM_WALK 0x2 #define SKEETER_ANIM_IDLE 0x3 /* Snufit */ /* oAction */ #define SNUFIT_ACT_IDLE 0x0 #define SNUFIT_ACT_SHOOT 0x1 /* Snufit Balls (gottem) */ /* oAction */ #define SNUFIT_BALL_ACT_MOVE 0x0 #define SNUFIT_BALL_ACT_HIT_MARIO 0x1 /* Tweester */ /* oAction */ #define TWEESTER_ACT_IDLE 0x0 #define TWEESTER_ACT_CHASE 0x1 #define TWEESTER_ACT_HIDE 0x2 /* oSubAction */ /* TWEESTER_ACT_IDLE */ #define TWEESTER_SUB_ACT_WAIT 0x0 #define TWEESTER_SUB_ACT_GROW 0x1 /* TWEESTER_ACT_CHASE */ #define TWEESTER_SUB_ACT_CHASE_MARIO 0x0 #define TWEESTER_SUB_ACT_CHASE_HOME 0x1 /* Triplet butterfly */ /* oBehParams2ndByte */ #define TRIPLET_BUTTERFLY_BP_0 0x0 #define TRIPLET_BUTTERFLY_BP_BUTTERFLY_NUM 0x3 #define TRIPLET_BUTTERFLY_BP_NO_BOMBS 0x4 /* oAction */ #define TRIPLET_BUTTERFLY_ACT_INIT 0x0 #define TRIPLET_BUTTERFLY_ACT_WANDER 0x1 #define TRIPLET_BUTTERFLY_ACT_ACTIVATE 0x2 #define TRIPLET_BUTTERFLY_ACT_EXPLODE 0x3 /* oTripletButterflyType */ #define TRIPLET_BUTTERFLY_TYPE_NORMAL -0x1 #define TRIPLET_BUTTERFLY_TYPE_EXPLODES 0x0 #define TRIPLET_BUTTERFLY_TYPE_SPAWN_1UP 0x1 /* Changing Water Level */ /* oAction */ #define WATER_LEVEL_ACT_INIT 0x0 #define WATER_LEVEL_ACT_IDLE 0x1 /* Water Level Diamond */ /* oAction */ // Loading #define WATER_LEVEL_DIAMOND_ACT_INIT 0x0 // Idling when Mario isn't inside its hitbox #define WATER_LEVEL_DIAMOND_ACT_IDLE 0x1 // While the water level is changing #define WATER_LEVEL_DIAMOND_ACT_CHANGE_WATER_LEVEL 0x2 // After the water level has changed but Mario hasn't left its hitbox yet #define WATER_LEVEL_DIAMOND_ACT_IDLE_SPINNING 0x3 /* Castle Water Level Pillars */ /* oAction */ #define WATER_PILLAR_ACT_UNPOUNDED_IDLE 0x0 #define WATER_PILLAR_ACT_LOWER_SELF 0x1 #define WATER_PILLAR_ACT_POUNDED_1 0x2 #define WATER_PILLAR_ACT_POUNDED_2 0x3 #define WATER_PILLAR_ACT_DRAIN_WATER 0x4 #define WATER_PILLAR_ACT_END 0x5 /* Mips */ /* oBehParams2ndByte */ #define MIPS_BP_STAR_1 0x0 #define MIPS_BP_STAR_2 0x1 /* oAction */ #define MIPS_ACT_WAIT_FOR_NEARBY_MARIO 0x0 #define MIPS_ACT_FOLLOW_PATH 0x1 #define MIPS_ACT_WAIT_FOR_ANIMATION_DONE 0x2 #define MIPS_ACT_FALL_DOWN 0x3 #define MIPS_ACT_IDLE 0x4 /* oMipsStarStatus */ #define MIPS_STAR_STATUS_HAVENT_SPAWNED_STAR 0x0 #define MIPS_STAR_STATUS_SHOULD_SPAWN_STAR 0x1 #define MIPS_STAR_STATUS_ALREADY_SPAWNED_STAR 0x2 /* Animations */ #define MIPS_ANIM_IDLE 0x0 #define MIPS_ANIM_HOPPING 0x1 #define MIPS_ANIM_THROWN 0x2 #define MIPS_ANIM_UNUSED 0x3 #define MIPS_ANIM_HELD 0x4 /* Falling Pillar */ /* oAction */ #define FALLING_PILLAR_ACT_IDLE 0x0 #define FALLING_PILLAR_ACT_TURNING 0x1 #define FALLING_PILLAR_ACT_FALLING 0x2 /* Bowser Puzzle */ /* oAction */ #define BOWSER_PUZZLE_ACT_SPAWN_PIECES 0x0 #define BOWSER_PUZZLE_ACT_WAIT_FOR_COMPLETE 0x1 #define BOWSER_PUZZLE_ACT_DONE 0x2 /* oBowserPuzzleCompletionFlags */ #define BOWSER_PUZZLE_COMPLETION_FLAGS_NONE 0x0 #define BOWSER_PUZZLE_COMPLETION_FLAG_MARIO_ON_PLATFORM 0x1 #define BOWSER_PUZZLE_COMPLETION_FLAG_PUZZLE_COMPLETE 0x2 /* Bowser Puzzle Piece */ /* oAction */ #define BOWSER_PUZZLE_PIECE_ACT_IDLE 0x0 #define BOWSER_PUZZLE_PIECE_ACT_LEFT 0x1 #define BOWSER_PUZZLE_PIECE_ACT_RIGHT 0x2 #define BOWSER_PUZZLE_PIECE_ACT_UP 0x3 #define BOWSER_PUZZLE_PIECE_ACT_DOWN 0x4 /* Spindrift */ /* oAction */ #define SPINDRIFT_ACT_ACTIVE 0x0 #define SPINDRIFT_ACT_HIT_MARIO 0x1 /* oAction */ #define SPINDRIFT_ANIM_DEFAULT 0x0 /* Mr Blizzard */ /* oBehParams2ndByte */ #define MR_BLIZZARD_STYPE_NO_CAP 0x0 #define MR_BLIZZARD_STYPE_JUMPING 0x1 /* oAction */ #define MR_BLIZZARD_ACT_SPAWN_SNOWBALL 0x0 #define MR_BLIZZARD_ACT_HIDE_UNHIDE 0x1 #define MR_BLIZZARD_ACT_RISE_FROM_GROUND 0x2 #define MR_BLIZZARD_ACT_ROTATE 0x3 #define MR_BLIZZARD_ACT_THROW_SNOWBALL 0x4 #define MR_BLIZZARD_ACT_BURROW 0x5 #define MR_BLIZZARD_ACT_DEATH 0x6 #define MR_BLIZZARD_ACT_JUMP 0x7 /* oAnimState */ #define MR_BLIZZARD_ANIM_STATE_NO_CAP 0x0 #define MR_BLIZZARD_ANIM_STATE_HAS_CAP 0x1 /* Animations */ #define MR_BLIZZARD_ANIM_SPAWN_SNOWBALL 0x0 #define MR_BLIZZARD_ANIM_THROW_SNOWBALL 0x1 /* Mr Blizzard Snowball */ /* oAction */ #define MR_BLIZZARD_SNOWBALL_ACT_INIT 0x0 #define MR_BLIZZARD_SNOWBALL_ACT_LAUNCH 0x1 #define MR_BLIZZARD_SNOWBALL_ACT_COLLISION 0x2 /* Mr I */ /* oBehParams2ndByte */ #define MR_I_BP_NORMAL 0x0 #define MR_I_BP_LARGE_WITH_STAR 0x1 /* oAction */ #define MR_I_BODY_ACT_FAR_AWAY 0x0 #define MR_I_BODY_ACT_IDLE 0x1 #define MR_I_BODY_ACT_LOOKING_AT_MARIO 0x2 #define MR_I_BODY_ACT_SPIN_DEATH 0x3 /* Mr I & Piranha Plant Particle */ /* oAction */ #define MR_I_PIRANHA_PARTICLE_ACT_MOVE 0x0 #define MR_I_PIRANHA_PARTICLE_ACT_INTERACTED 0x1 /* Bullet Bill */ /* oAction */ #define BULLET_BILL_ACT_RESET 0x0 #define BULLET_BILL_ACT_IDLE 0x1 #define BULLET_BILL_ACT_CHASING_MARIO 0x2 #define BULLET_BILL_ACT_HIT 0x3 /* Thwomp & Grindel */ /* oAction */ #define GRINDEL_THWOMP_ACT_RISING 0x0 #define GRINDEL_THWOMP_ACT_FLOATING 0x1 #define GRINDEL_THWOMP_ACT_FALLING 0x2 #define GRINDEL_THWOMP_ACT_LAND 0x3 #define GRINDEL_THWOMP_ACT_ON_GROUND 0x4 /* Whomp */ /* oBehParams2ndByte */ #define WHOMP_BP_NORMAL 0x0 #define WHOMP_BP_KING 0x1 /* oAction */ #define WHOMP_ACT_INIT 0x0 #define WHOMP_ACT_PATROL 0x1 #define WHOMP_ACT_KING_CHASE 0x2 #define WHOMP_ACT_PREPARE_JUMP 0x3 #define WHOMP_ACT_JUMP 0x4 #define WHOMP_ACT_LAND 0x5 #define WHOMP_ACT_ON_GROUND_GENERAL 0x6 #define WHOMP_ACT_TURN 0x7 #define WHOMP_ACT_DIE 0x8 #define WHOMP_ACT_STOP_BOSS_MUSIC 0x9 /* oSubAction */ /* WHOMP_ACT_INIT */ #define WHOMP_SUB_ACT_INIT_IDLE 0x0 #define WHOMP_SUB_ACT_INIT_DIALOG 0x1 /* WHOMP_ACT_LAND */ #define WHOMP_SUB_ACT_LAND_EFFECTS 0x0 #define WHOMP_SUB_ACT_LAND_ON_GROUND 0x1 /* WHOMP_ACT_ON_GROUND_GENERAL */ #define WHOMP_SUB_ACT_GROUND_LYING_DOWN 0x0 #define WHOMP_SUB_ACT_GROUND_PREPARE_STAND_UP 0x1 #define WHOMP_SUB_ACT_GROUND_STAND_UP 0xA /* WHOMP_ACT_TURN */ #define WHOMP_SUB_ACT_TURN_TURNING 0x0 #define WHOMP_SUB_ACT_TURN_END 0x1 /* Animations */ #define WHOMP_ANIM_WALK 0x0 #define WHOMP_ANIM_JUMP 0x1 /* WF Kickable Board */ /* oAction */ #define KICKABLE_BOARD_ACT_IDLE_VERTICAL 0x0 #define KICKABLE_BOARD_ACT_ROCKING 0x1 #define KICKABLE_BOARD_ACT_FALLING 0x2 #define KICKABLE_BOARD_ACT_IDLE_HORIZONTAL 0x3 /* check_mario_attacking */ #define WF_ATTACK_NONE 0x0 #define WF_ATTACK_GROUND 0x1 #define WF_ATTACK_AIR 0x2 /* White Puff Explosion */ /* oBehParams2ndByte */ #define WHITE_PUFF_EXPLODE_BP_FAST_FADE 0x2 #define WHITE_PUFF_EXPLODE_BP_SLOW_FADE 0x3 /* Dirt Particle */ enum oAnimStatesTinyDirtParticle { TINY_DIRT_PARTICLE_ANIM_STATE_RED, TINY_DIRT_PARTICLE_ANIM_STATE_GREEN, TINY_DIRT_PARTICLE_ANIM_STATE_BLUE, TINY_DIRT_PARTICLE_ANIM_STATE_DIRT, TINY_DIRT_PARTICLE_ANIM_STATE_YELLOW, TINY_DIRT_PARTICLE_ANIM_STATE_BILLBOARD }; /* Cartoon Star Particle */ enum oAnimStatesCartoonStarParticle { CARTOON_STAR_PARTICLE_ANIM_STATE_RED, CARTOON_STAR_PARTICLE_ANIM_STATE_GREEN, CARTOON_STAR_PARTICLE_ANIM_STATE_BLUE, CARTOON_STAR_PARTICLE_ANIM_STATE_YELLOW, CARTOON_STAR_PARTICLE_ANIM_STATE_BILLBOARD }; /* Music Touch */ enum oActionsMusicTouch { MUSIC_TOUCH_ACT_PLAY_SOUND, MUSIC_TOUCH_ACT_DONE }; /* Intro Scene */ enum gCutsceneObjSpawns { CUTSCENE_OBJ_NONE, CUTSCENE_OBJ_UNUSED_1, CUTSCENE_OBJ_UNUSED_2, CUTSCENE_OBJ_UNUSED_3, CUTSCENE_OBJ_UNUSED_4, CUTSCENE_OBJ_BEGINNING_PEACH, CUTSCENE_OBJ_BEGINNING_LAKITU, CUTSCENE_OBJ_7_END_BIRDS_1, CUTSCENE_OBJ_5_END_BIRDS_2, CUTSCENE_OBJ_2_END_BIRDS_1 }; #endif // OBJECT_CONSTANTS_H