From 62cc178545f90231e14f3a457fa91a28033fe8af Mon Sep 17 00:00:00 2001 From: Arceveti <73617174+Arceveti@users.noreply.github.com> Date: Mon, 27 Sep 2021 16:41:43 -0700 Subject: [PATCH] Object constants and new typedefs --- include/object_constants.h | 2598 ++++++++++++----- include/special_presets.h | 2 +- include/types.h | 99 +- src/engine/level_script.c | 8 +- src/game/area.h | 7 + src/game/behavior_actions.c | 6 +- .../behaviors/animated_floor_switch.inc.c | 2 +- src/game/behaviors/arrow_lift.inc.c | 16 +- src/game/behaviors/bub.inc.c | 4 +- src/game/behaviors/camera_lakitu.inc.c | 4 +- src/game/behaviors/coffin.inc.c | 18 +- src/game/behaviors/koopa.inc.c | 13 +- src/game/behaviors/purple_switch.inc.c | 20 +- src/game/behaviors/sl_walking_penguin.inc.c | 2 +- src/game/behaviors/tuxie.inc.c | 9 +- src/game/behaviors/tweester.inc.c | 2 +- src/game/macro_special_objects.c | 6 +- src/game/object_helpers.h | 2 +- src/game/object_list_processor.c | 2 +- src/menu/file_select.c | 318 +- 20 files changed, 2189 insertions(+), 949 deletions(-) diff --git a/include/object_constants.h b/include/object_constants.h index c95c6eb2..23e51fb2 100644 --- a/include/object_constants.h +++ b/include/object_constants.h @@ -199,947 +199,2231 @@ #define MOV_BCOIN_ACT_STOPPED 0x3 #define MOV_BCOIN_ACT_FLICKERING 0x4 -/* Bob-omb */ +/* Yellow Coin */ /* oBehParams2ndByte */ - #define BOBOMB_BP_STYPE_GENERIC 0x0 - #define BOBOMB_BP_STYPE_STATIONARY 0x1 - /* oAction */ - #define BOBOMB_ACT_PATROL 0x0 - #define BOBOMB_ACT_LAUNCHED 0x1 - #define BOBOMB_ACT_CHASE_MARIO 0x2 - #define BOBOMB_ACT_EXPLODE 0x3 + #define YELLOW_COIN_BP_ONE_COIN 0x1 /* Moving Yellow Coin */ /* oAction */ - #define MOV_YCOIN_ACT_IDLE 0 - #define MOV_YCOIN_ACT_BLINKING 1 + #define MOV_YCOIN_ACT_IDLE 0x0 + #define MOV_YCOIN_ACT_BLINKING 0x1 + /* oSubAction */ + +/* Coin Formation */ + /* (oBehParams2ndByte & 0x7) */ + #define COIN_FORMATION_BP_HORIZONTAL_LINE 0x0 + #define COIN_FORMATION_BP_VERTICAL_LINE 0x1 + #define COIN_FORMATION_BP_HORIZONTAL_RING 0x2 + #define COIN_FORMATION_BP_VERTICAL_RING 0x3 + #define COIN_FORMATION_BP_ARROW 0x4 + /* oAction */ + #define COIN_FORMATION_ACT_INACTIVE 0x0 + #define COIN_FORMATION_ACT_ACTIVE 0x1 + #define COIN_FORMATION_ACT_DEACTIVATE 0x2 + +/* Coin Inside Boo */ + /* oAction */ + #define COIN_INSIDE_BOO_ACT_CARRIED 0x0 + #define COIN_INSIDE_BOO_ACT_DROPPED 0x1 + +/* 1-Up Mushroom */ + /* oBehParams2ndByte */ + #define MUSHROOM_BP_REQUIRES_NONE 0x0 + #define MUSHROOM_BP_REQUIRES_BOWSER_1 0x1 + #define MUSHROOM_BP_REQUIRES_BOWSER_2 0x2 + /* oAction */ + #define MUSHROOM_ACT_INIT 0x0 + #define MUSHROOM_ACT_MOVING 0x1 + #define MUSHROOM_ACT_DISAPPEARING 0x2 + #define MUSHROOM_ACT_LOOP_IN_AIR 0x3 + +/* Bob-omb */ + /* oBehParams2ndByte */ + #define BOBOMB_BP_STYPE_GENERIC 0x0 + #define BOBOMB_BP_STYPE_STATIONARY 0x1 + /* oAction */ + #define BOBOMB_ACT_PATROL 0x0 + #define BOBOMB_ACT_LAUNCHED 0x1 + #define BOBOMB_ACT_CHASE_MARIO 0x2 + #define BOBOMB_ACT_EXPLODE 0x3 + /* oAnimState */ + #define BOBOMB_ANIM_STATE_EYES_OPEN OBJ_BLINKING_ANIM_STATE_EYES_OPEN + #define BOBOMB_ANIM_STATE_EYES_CLOSED OBJ_BLINKING_ANIM_STATE_EYES_CLOSED + /* Animations */ + #define BOBOMB_ANIM_WALKING 0x0 + #define BOBOMB_ANIM_HELD 0x1 /* Bob-omb Buddy */ /* oBehParams2ndByte */ - #define BOBOMB_BUDDY_BP_STYPE_GENERIC 0 - #define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS_KBB 1 - #define BOBOMB_BUDDY_BP_STYPE_BOB_CANNON_KBB 2 - #define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS 3 + #define BOBOMB_BUDDY_BP_STYPE_GENERIC 0x0 + #define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS_KBB 0x1 + #define BOBOMB_BUDDY_BP_STYPE_BOB_CANNON_KBB 0x2 + #define BOBOMB_BUDDY_BP_STYPE_BOB_GRASS 0x3 /* oAction */ - #define BOBOMB_BUDDY_ACT_IDLE 0 - #define BOBOMB_BUDDY_ACT_TURN_TO_TALK 2 - #define BOBOMB_BUDDY_ACT_TALK 3 + #define BOBOMB_BUDDY_ACT_IDLE 0x0 + #define BOBOMB_BUDDY_ACT_TURN_TO_TALK 0x2 + #define BOBOMB_BUDDY_ACT_TALK 0x3 /* oBobombBuddyRole */ - #define BOBOMB_BUDDY_ROLE_ADVICE 0 - #define BOBOMB_BUDDY_ROLE_CANNON 1 + #define BOBOMB_BUDDY_ROLE_ADVICE 0x0 + #define BOBOMB_BUDDY_ROLE_CANNON 0x1 /* oBobombBuddyCannonStatus */ - #define BOBOMB_BUDDY_CANNON_UNOPENED 0 - #define BOBOMB_BUDDY_CANNON_OPENING 1 - #define BOBOMB_BUDDY_CANNON_OPENED 2 - #define BOBOMB_BUDDY_CANNON_STOP_TALKING 3 + #define BOBOMB_BUDDY_CANNON_UNOPENED 0x0 + #define BOBOMB_BUDDY_CANNON_OPENING 0x1 + #define BOBOMB_BUDDY_CANNON_OPENED 0x2 + #define BOBOMB_BUDDY_CANNON_STOP_TALKING 0x3 /* oBobombBuddyHasTalkedToMario */ - #define BOBOMB_BUDDY_HAS_NOT_TALKED 0 - #define BOBOMB_BUDDY_HAS_TALKED 2 + #define BOBOMB_BUDDY_HAS_NOT_TALKED 0x0 + #define BOBOMB_BUDDY_HAS_TALKED 0x2 /* Bowser */ - /* Tail oAction */ - #define BOWSER_ACT_TAIL_DEFAULT 0 - #define BOWSER_ACT_TAIL_THROWN 1 - #define BOWSER_ACT_TAIL_TOUCHED_MARIO 2 - /* oAction */ - #define BOWSER_ACT_DEFAULT 0 - #define BOWSER_ACT_THROWN 1 - #define BOWSER_ACT_JUMP_ONTO_STAGE 2 - #define BOWSER_ACT_DANCE 3 - #define BOWSER_ACT_DEAD 4 - #define BOWSER_ACT_WAIT 5 - #define BOWSER_ACT_INTRO_WALK 6 - #define BOWSER_ACT_CHARGE_MARIO 7 - #define BOWSER_ACT_SPIT_FIRE_INTO_SKY 8 - #define BOWSER_ACT_SPIT_FIRE_ONTO_FLOOR 9 - #define BOWSER_ACT_HIT_EDGE 10 - #define BOWSER_ACT_TURN_FROM_EDGE 11 - #define BOWSER_ACT_HIT_MINE 12 - #define BOWSER_ACT_BIG_JUMP 13 - #define BOWSER_ACT_WALK_TO_MARIO 14 - #define BOWSER_ACT_BREATH_FIRE 15 - #define BOWSER_ACT_TELEPORT 16 - #define BOWSER_ACT_QUICK_JUMP 17 - #define BOWSER_ACT_UNUSED_SLOW_WALK 18 - #define BOWSER_ACT_TILT_LAVA_PLATFORM 19 - /* Animations */ - #define BOWSER_ANIM_STAND_UP 0 - #define BOWSER_ANIM_STAND_UP_UNUSED 1 // slightly different - #define BOWSER_ANIM_SHAKING 2 - #define BOWSER_ANIM_GRABBED 3 - #define BOWSER_ANIM_BROKEN 4 // broken animation - #define BOWSER_ANIM_FALL_DOWN 5 // unused - #define BOWSER_ANIM_BREATH 6 - #define BOWSER_ANIM_JUMP 7 // unused, short jump, replaced by start/stop - #define BOWSER_ANIM_JUMP_STOP 8 - #define BOWSER_ANIM_JUMP_START 9 - #define BOWSER_ANIM_DANCE 10 - #define BOWSER_ANIM_BREATH_UP 11 - #define BOWSER_ANIM_IDLE 12 - #define BOWSER_ANIM_SLOW_GAIT 13 - #define BOWSER_ANIM_LOOK_DOWN_STOP_WALK 14 - #define BOWSER_ANIM_LOOK_UP_START_WALK 15 - #define BOWSER_ANIM_FLIP_DOWN 16 - #define BOWSER_ANIM_LAY_DOWN 17 - #define BOWSER_ANIM_RUN_START 18 - #define BOWSER_ANIM_RUN 19 - #define BOWSER_ANIM_RUN_STOP 20 - #define BOWSER_ANIM_RUN_SLIP 21 - #define BOWSER_ANIM_BREATH_QUICK 22 - #define BOWSER_ANIM_EDGE_MOVE 23 - #define BOWSER_ANIM_EDGE_STOP 24 - #define BOWSER_ANIM_FLIP 25 - #define BOWSER_ANIM_STAND_UP_FROM_FLIP 26 /* oBehParams2ndByte */ - #define BOWSER_BP_BITDW 0 - #define BOWSER_BP_BITFS 1 - #define BOWSER_BP_BITS 2 - /* oBowserCamAct */ - #define BOWSER_CAM_ACT_IDLE 0 - #define BOWSER_CAM_ACT_WALK 1 - #define BOWSER_CAM_ACT_END 2 - /* oBowserStatus */ - #define BOWSER_STATUS_ANGLE_MARIO (1 << 1) // 0x00000002 - #define BOWSER_STATUS_ANGLE_CENTRE (1 << 2) // 0x00000004 - #define BOWSER_STATUS_DIST_MARIO (1 << 3) // 0x00000008 - #define BOWSER_STATUS_DIST_CENTRE (1 << 4) // 0x00000010 - #define BOWSER_STATUS_BIG_JUMP (1 << 16) // 0x00010000 - #define BOWSER_STATUS_FIRE_SKY (1 << 17) // 0x00020000 - /* oBowserGrabbedStatus */ - #define BOWSER_GRAB_STATUS_NONE 0 - #define BOWSER_GRAB_STATUS_GRABBED 1 - #define BOWSER_GRAB_STATUS_HOLDING 2 - /* oSubAction */ - #define BOWSER_SUB_ACT_DEAD_FLY_BACK 0 - #define BOWSER_SUB_ACT_DEAD_BOUNCE 1 - #define BOWSER_SUB_ACT_DEAD_WAIT 2 - #define BOWSER_SUB_ACT_DEAD_DEFAULT_END 3 - #define BOWSER_SUB_ACT_DEAD_DEFAULT_END_OVER 4 - #define BOWSER_SUB_ACT_DEAD_FINAL_END 10 - #define BOWSER_SUB_ACT_DEAD_FINAL_END_OVER 11 - - #define BOWSER_SUB_ACT_CHARGE_START 0 - #define BOWSER_SUB_ACT_CHARGE_RUN 1 - #define BOWSER_SUB_ACT_CHARGE_END 2 - #define BOWSER_SUB_ACT_CHARGE_SLIP 3 - - #define BOWSER_SUB_ACT_TELEPORT_START 0 - #define BOWSER_SUB_ACT_TELEPORT_MOVE 1 - #define BOWSER_SUB_ACT_TELEPORT_STOP 2 - - #define BOWSER_SUB_ACT_HIT_MINE_START 0 - #define BOWSER_SUB_ACT_HIT_MINE_FALL 1 - #define BOWSER_SUB_ACT_HIT_MINE_STOP 2 - - #define BOWSER_SUB_ACT_JUMP_ON_STAGE_IDLE 0 - #define BOWSER_SUB_ACT_JUMP_ON_STAGE_START 1 - #define BOWSER_SUB_ACT_JUMP_ON_STAGE_LAND 2 - #define BOWSER_SUB_ACT_JUMP_ON_STAGE_STOP 3 - -/* Bowser Bits Platform*/ + #define BOWSER_BP_BITDW 0x0 + #define BOWSER_BP_BITFS 0x1 + #define BOWSER_BP_BITS 0x2 + /* Tail oAction */ + #define BOWSER_ACT_TAIL_DEFAULT 0x00 + #define BOWSER_ACT_TAIL_THROWN 0x01 + #define BOWSER_ACT_TAIL_TOUCHED_MARIO 0x02 /* oAction */ - #define BOWSER_BITS_PLAT_ACT_START 0 - #define BOWSER_BITS_PLAT_ACT_CHECK 1 - #define BOWSER_BITS_PLAT_ACT_FALL 2 + #define BOWSER_ACT_DEFAULT 0x00 + #define BOWSER_ACT_THROWN 0x01 + #define BOWSER_ACT_JUMP_ONTO_STAGE 0x02 + #define BOWSER_ACT_DANCE 0x03 + #define BOWSER_ACT_DEAD 0x04 + #define BOWSER_ACT_WAIT 0x05 + #define BOWSER_ACT_INTRO_WALK 0x06 + #define BOWSER_ACT_CHARGE_MARIO 0x07 + #define BOWSER_ACT_SPIT_FIRE_INTO_SKY 0x08 + #define BOWSER_ACT_SPIT_FIRE_ONTO_FLOOR 0x09 + #define BOWSER_ACT_HIT_EDGE 0x0A + #define BOWSER_ACT_TURN_FROM_EDGE 0x0B + #define BOWSER_ACT_HIT_MINE 0x0C + #define BOWSER_ACT_BIG_JUMP 0x0D + #define BOWSER_ACT_WALK_TO_MARIO 0x0E + #define BOWSER_ACT_BREATH_FIRE 0x0F + #define BOWSER_ACT_TELEPORT 0x10 + #define BOWSER_ACT_QUICK_JUMP 0x11 + #define BOWSER_ACT_UNUSED_SLOW_WALK 0x12 + #define BOWSER_ACT_TILT_LAVA_PLATFORM 0x13 + /* oAnimState */ + #define BOWSER_ANIM_STATE_OPAQUE TRANSPARENCY_ANIM_STATE_OPAQUE + #define BOWSER_ANIM_STATE_TRANSPARENT TRANSPARENCY_ANIM_STATE_TRANSPARENT + #define BOWSER_ANIM_STATE_INVISIBLE 0x02 + /* Animations */ + #define BOWSER_ANIM_STAND_UP 0x00 + #define BOWSER_ANIM_STAND_UP_UNUSED 0x01 // slightly different + #define BOWSER_ANIM_SHAKING 0x02 + #define BOWSER_ANIM_GRABBED 0x03 + #define BOWSER_ANIM_BROKEN 0x04 // broken animation + #define BOWSER_ANIM_FALL_DOWN 0x05 // unused + #define BOWSER_ANIM_BREATH 0x06 + #define BOWSER_ANIM_JUMP 0x07 // unused, short jump, replaced by start/stop + #define BOWSER_ANIM_JUMP_STOP 0x08 + #define BOWSER_ANIM_JUMP_START 0x09 + #define BOWSER_ANIM_DANCE 0x0A + #define BOWSER_ANIM_BREATH_UP 0x0B + #define BOWSER_ANIM_IDLE 0x0C + #define BOWSER_ANIM_SLOW_GAIT 0x0D + #define BOWSER_ANIM_LOOK_DOWN_STOP_WALK 0x0E + #define BOWSER_ANIM_LOOK_UP_START_WALK 0x0F + #define BOWSER_ANIM_FLIP_DOWN 0x10 + #define BOWSER_ANIM_LAY_DOWN 0x11 + #define BOWSER_ANIM_RUN_START 0x12 + #define BOWSER_ANIM_RUN 0x13 + #define BOWSER_ANIM_RUN_STOP 0x14 + #define BOWSER_ANIM_RUN_SLIP 0x15 + #define BOWSER_ANIM_BREATH_QUICK 0x16 + #define BOWSER_ANIM_EDGE_MOVE 0x17 + #define BOWSER_ANIM_EDGE_STOP 0x18 + #define BOWSER_ANIM_FLIP 0x19 + #define BOWSER_ANIM_STAND_UP_FROM_FLIP 0x1A + /* oBowserCamAct */ + #define BOWSER_CAM_ACT_IDLE 0x0 + #define BOWSER_CAM_ACT_WALK 0x1 + #define BOWSER_CAM_ACT_END 0x2 + /* oBowserStatus */ + #define BOWSER_STATUS_ANGLE_MARIO (1 << 1) // 0x00000002 + #define BOWSER_STATUS_ANGLE_CENTRE (1 << 2) // 0x00000004 + #define BOWSER_STATUS_DIST_MARIO (1 << 3) // 0x00000008 + #define BOWSER_STATUS_DIST_CENTRE (1 << 4) // 0x00000010 + #define BOWSER_STATUS_BIG_JUMP (1 << 16) // 0x00010000 + #define BOWSER_STATUS_FIRE_SKY (1 << 17) // 0x00020000 + /* oBowserGrabbedStatus */ + #define BOWSER_GRAB_STATUS_NONE 0x0 + #define BOWSER_GRAB_STATUS_GRABBED 0x1 + #define BOWSER_GRAB_STATUS_HOLDING 0x2 + /* oSubAction */ + /* BOWSER_ACT_THROWN */ + #define BOWSER_SUB_ACT_THROWN_BOUNCE 0x0 + #define BOWSER_SUB_ACT_THROWN_STOP 0x1 + /* BOWSER_ACT_DEAD */ + #define BOWSER_SUB_ACT_DEAD_FLY_BACK 0x0 + #define BOWSER_SUB_ACT_DEAD_BOUNCE 0x1 + #define BOWSER_SUB_ACT_DEAD_WAIT 0x2 + #define BOWSER_SUB_ACT_DEAD_DEFAULT_END 0x3 + #define BOWSER_SUB_ACT_DEAD_DEFAULT_END_OVER 0x4 + #define BOWSER_SUB_ACT_DEAD_FINAL_END 0xA + #define BOWSER_SUB_ACT_DEAD_FINAL_END_OVER 0xB + /* BOWSER_ACT_INTRO_WALK */ + #define BOWSER_SUB_ACT_INTRO_WALK_LOOK_UP 0x0 + #define BOWSER_SUB_ACT_INTRO_WALK_SLOWLY 0x1 + #define BOWSER_SUB_ACT_INTRO_WALK_STOP 0x2 + /* BOWSER_ACT_CHARGE_MARIO */ + #define BOWSER_SUB_ACT_CHARGE_START 0x0 + #define BOWSER_SUB_ACT_CHARGE_RUN 0x1 + #define BOWSER_SUB_ACT_CHARGE_END 0x2 + #define BOWSER_SUB_ACT_CHARGE_SLIP 0x3 + /* BOWSER_ACT_TELEPORT */ + #define BOWSER_SUB_ACT_TELEPORT_START 0x0 + #define BOWSER_SUB_ACT_TELEPORT_MOVE 0x1 + #define BOWSER_SUB_ACT_TELEPORT_STOP 0x2 + /* BOWSER_ACT_SPIT_FIRE_ONTO_FLOOR */ + #define BOWSER_SUB_ACT_SPIT_FIRE_FLOOR_START 0x0 + #define BOWSER_SUB_ACT_SPIT_FIRE_FLOOR_STOP 0x1 + /* BOWSER_ACT_HIT_EDGE */ + #define BOWSER_SUB_ACT_HIT_EDGE_START 0x0 + #define BOWSER_SUB_ACT_HIT_EDGE_STOP 0x1 + /* BOWSER_ACT_TURN_FROM_EDGE */ + #define BOWSER_SUB_ACT_TURN_FROM_EDGE_START 0x0 + #define BOWSER_SUB_ACT_TURN_FROM_EDGE_STOP 0x1 + #define BOWSER_SUB_ACT_TURN_FROM_EDGE_END 0x2 + /* BOWSER_ACT_HIT_MINE */ + #define BOWSER_SUB_ACT_HIT_MINE_START 0x0 + #define BOWSER_SUB_ACT_HIT_MINE_FALL 0x1 + #define BOWSER_SUB_ACT_HIT_MINE_STOP 0x2 + /* BOWSER_ACT_JUMP_ONTO_STAGE */ + #define BOWSER_SUB_ACT_JUMP_ON_STAGE_IDLE 0x0 + #define BOWSER_SUB_ACT_JUMP_ON_STAGE_START 0x1 + #define BOWSER_SUB_ACT_JUMP_ON_STAGE_LAND 0x2 + #define BOWSER_SUB_ACT_JUMP_ON_STAGE_STOP 0x3 + /* BOWSER_ACT_BIG_JUMP */ + #define BOWSER_SUB_ACT_BIG_JUMP_START 0x0 + #define BOWSER_SUB_ACT_BIG_JUMP_LAND 0x1 + #define BOWSER_SUB_ACT_BIG_JUMP_STOP 0x2 + /* BOWSER_ACT_WALK_TO_MARIO */ + #define BOWSER_SUB_ACT_WALK_TO_MARIO_START 0x0 + #define BOWSER_SUB_ACT_WALK_TO_MARIO_WALKING 0x1 + #define BOWSER_SUB_ACT_WALK_TO_MARIO_STOP 0x2 + /* BOWSER_ACT_QUICK_JUMP */ + #define BOWSER_SUB_ACT_QUICK_JUMP_START 0x0 + #define BOWSER_SUB_ACT_QUICK_JUMP_LAND 0x1 + #define BOWSER_SUB_ACT_QUICK_JUMP_STOP 0x2 + +/* 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 */ - /* oAction */ - #define FISH_SPAWNER_ACT_SPAWN 0 - #define FISH_SPAWNER_ACT_IDLE 1 - #define FISH_SPAWNER_ACT_RESPAWN 2 /* oBehParams2ndByte */ - #define FISH_SPAWNER_BP_MANY_BLUE 0 - #define FISH_SPAWNER_BP_FEW_BLUE 1 - #define FISH_SPAWNER_BP_MANY_CYAN 2 - #define FISH_SPAWNER_BP_FEW_CYAN 3 + #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 0 - #define FISH_ACT_ROAM 1 - #define FISH_ACT_FLEE 2 - -/* Blue_Fish */ - /* oAction */ - #define BLUE_FISH_ACT_DIVE 0 - #define BLUE_FISH_ACT_TURN 1 - #define BLUE_FISH_ACT_ASCEND 2 - #define BLUE_FISH_ACT_TURN_BACK 3 + #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 0 - #define BLUE_FISH_ACT_ROOM 1 - #define BLUE_FISH_ACT_DUPLICATE 2 + #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 */ + /* oBehParams2ndByte, ExclamationBoxContents->id */ + #define EXCLAMATION_BOX_BP_WING_CAP 0x0 + #define EXCLAMATION_BOX_BP_METAL_CAP 0x1 + #define EXCLAMATION_BOX_BP_VANISH_CAP 0x2 + #define EXCLAMATION_BOX_BP_KOOPA_SHELL 0x3 + #define EXCLAMATION_BOX_BP_COINS_1 0x4 + #define EXCLAMATION_BOX_BP_COINS_3 0x5 + #define EXCLAMATION_BOX_BP_COINS_10 0x6 + #define EXCLAMATION_BOX_BP_1UP_WALKING 0x7 + #define EXCLAMATION_BOX_BP_STAR_1 0x8 + #define EXCLAMATION_BOX_BP_1UP_RUNNING_AWAY 0x9 + #define EXCLAMATION_BOX_BP_STAR_2 0xA + #define EXCLAMATION_BOX_BP_STAR_3 0xB + #define EXCLAMATION_BOX_BP_STAR_4 0xC + #define EXCLAMATION_BOX_BP_STAR_5 0xD + #define EXCLAMATION_BOX_BP_STAR_6 0xE + #define EXCLAMATION_BOX_BP_NULL 0x63 + /* oAction */ + #define EXCLAMATION_BOX_ACT_INIT 0x0 + #define EXCLAMATION_BOX_ACT_OUTLINE 0x1 + #define EXCLAMATION_BOX_ACT_ACTIVE 0x2 + #define EXCLAMATION_BOX_ACT_SCALING 0x3 + #define EXCLAMATION_BOX_ACT_EXPLODE 0x4 + #define EXCLAMATION_BOX_ACT_WAIT_FOR_RESPAWN 0x5 + /* oAnimState */ + #define EXCLAMATION_BOX_ANIM_STATE_RED 0x0 + #define EXCLAMATION_BOX_ANIM_STATE_GREEN 0x1 + #define EXCLAMATION_BOX_ANIM_STATE_BLUE 0x2 + #define EXCLAMATION_BOX_ANIM_STATE_YELLOW 0x3 + +/* Cap Switch */ + /* oAction */ + #define CAP_SWITCH_ACT_INIT 0x0 + #define CAP_SWITCH_ACT_IDLE 0x1 + #define CAP_SWITCH_ACT_BEING_PRESSED 0x2 + #define CAP_SWITCH_ACT_DONE 0x3 + +/* Mario Cap */ + /* oAction */ + #define CAP_ACT_MOVE 0x0 + #define CAP_ACT_QUICKSAND 0xA + #define CAP_ACT_MOVING_QUICKSAND 0xB + #define CAP_ACT_INSTANT_QUICKSAND 0xC + #define CAP_ACT_INSTANT_MOVING_QUICKSAND 0xD + +/* 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 0 - #define CANNON_TRAP_DOOR_ACT_CAM_ZOOM 1 - #define CANNON_TRAP_DOOR_ACT_OPENING 2 - #define CANNON_TRAP_DOOR_ACT_OPEN 3 + #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 */ + /* oAction */ + #define DOOR_ACT_CLOSED 0x0 + #define DOOR_ACT_PULLED 0x1 + #define DOOR_ACT_PUSHED 0x2 + #define DOOR_ACT_WARP_PULLED 0x3 + #define DOOR_ACT_WARP_PUSHED 0x4 + /* Animations */ + #define DOOR_ANIM_CLOSED 0x0 + #define DOOR_ANIM_PULLED 0x1 + #define DOOR_ANIM_PUSHED 0x2 + #define DOOR_ANIM_WARP_PULLED 0x3 + #define DOOR_ANIM_WARP_PUSHED 0x4 + +/* Star Door */ + /* oAction */ + #define STAR_DOOR_ACT_CLOSED 0x0 + #define STAR_DOOR_ACT_OPENING 0x1 + #define STAR_DOOR_ACT_OPEN 0x2 + #define STAR_DOOR_ACT_CLOSING 0x3 + #define STAR_DOOR_ACT_RESET 0x4 + +/* 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 0 - #define HOMING_AMP_ACT_APPEAR 1 - #define HOMING_AMP_ACT_CHASE 2 - #define HOMING_AMP_ACT_GIVE_UP 3 - #define HOMING_AMP_ACT_ATTACK_COOLDOWN 4 + #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 0 - #define AMP_BP_ROT_RADIUS_300 1 - #define AMP_BP_ROT_RADIUS_400 2 - #define AMP_BP_ROT_RADIUS_0 3 - + #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 2 - #define AMP_ACT_ATTACK_COOLDOWN 4 + #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 0 - #define BUTTERFLY_ACT_FOLLOW_MARIO 1 - #define BUTTERFLY_ACT_RETURN_HOME 2 + #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 */ - /* oHootAvailability */ - #define HOOT_AVAIL_ASLEEP_IN_TREE 0 - #define HOOT_AVAIL_WANTS_TO_TALK 1 - #define HOOT_AVAIL_READY_TO_FLY 2 /* oAction */ - #define HOOT_ACT_ASCENT 0 - #define HOOT_ACT_CARRY 1 - #define HOOT_ACT_TIRED 2 + #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 0 - #define BULLY_BP_SIZE_BIG 1 + #define BULLY_BP_SIZE_SMALL 0x0 + #define BULLY_BP_SIZE_BIG 0x1 /* oAction */ - #define BULLY_ACT_PATROL 0 - #define BULLY_ACT_CHASE_MARIO 1 - #define BULLY_ACT_KNOCKBACK 2 - #define BULLY_ACT_BACK_UP 3 - #define BULLY_ACT_INACTIVE 4 - #define BULLY_ACT_ACTIVATE_AND_FALL 5 + #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 0 - #define BULLY_STYPE_MINION 1 - #define BULLY_STYPE_CHILL 16 + #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 0 - #define WATER_RING_ACT_COLLECTED 1 + #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 0 - #define JS_RING_SPAWNER_ACT_INACTIVE 1 + #define JS_RING_SPAWNER_ACT_ACTIVE 0x0 + #define JS_RING_SPAWNER_ACT_INACTIVE 0x1 + +/* 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 0 - #define CELEB_STAR_ACT_FACE_CAMERA 1 + #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 0 - #define LLL_DRAWBRIDGE_ACT_RAISE 1 + #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 0 - #define BOMP_ACT_POKE_OUT 1 - #define BOMP_ACT_EXTEND 2 - #define BOMP_ACT_RETRACT 3 + #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 1 - #define WF_SLID_BRICK_PTFM_BP_MOV_VEL_15 2 - #define WF_SLID_BRICK_PTFM_BP_MOV_VEL_20 3 + #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 0 - #define WF_SLID_BRICK_PTFM_ACT_EXTEND 1 - #define WF_SLID_BRICK_PTFM_ACT_RETRACT 2 + #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 */ + #define SLIDING_PLATFORM_TYPE_MASK 0x0380 + #define SLIDING_PLATFORM_LENGTH_MASK 0x003F + #define SLIDING_PLATFORM_DIRECTION_MASK 0x0040 + /* collisionDataIndex */ + #define SLIDING_PLATFORM_BP_BITS_SLIDING_PLATFORM 0x0 + #define SLIDING_PLATFORM_BP_BITS_TWIN_SLIDING_PLATFORMS 0x1 + #define SLIDING_PLATFORM_BP_BITFS_MOVING_SQUARE 0x2 + #define SLIDING_PLATFORM_BP_BITFS_SLIDING_PLATFORM 0x3 + #define SLIDING_PLATFORM_BP_RR_SLIDING_PLATFORM 0x4 + #define SLIDING_PLATFORM_BP_RR_PYRAMID 0x5 + #define SLIDING_PLATFORM_BP_NULL 0x6 + #define SLIDING_PLATFORM_BP_BITDW_SLIDING_PLATFORM 0x7 + +/* 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 0 - #define FAKE_MONEYBAG_COIN_ACT_TRANSFORM 1 + #define FAKE_MONEYBAG_COIN_ACT_IDLE 0x0 + #define FAKE_MONEYBAG_COIN_ACT_TRANSFORM 0x1 /* Moneybag */ /* oAction */ - #define MONEYBAG_ACT_APPEAR 0 - #define MONEYBAG_ACT_UNUSED_APPEAR 1 - #define MONEYBAG_ACT_MOVE_AROUND 2 - #define MONEYBAG_ACT_RETURN_HOME 3 - #define MONEYBAG_ACT_DISAPPEAR 4 - #define MONEYBAG_ACT_DEATH 5 + #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 0 - #define MONEYBAG_JUMP_PREPARE 1 - #define MONEYBAG_JUMP_JUMP 2 - #define MONEYBAG_JUMP_JUMP_AND_BOUNCE 3 - #define MONEYBAG_JUMP_WALK_AROUND 4 - #define MONEYBAG_JUMP_WALK_HOME 5 + #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 0 - #define BBALL_ACT_ROLL 1 + #define BBALL_ACT_INITIALIZE 0x0 + #define BBALL_ACT_ROLL 0x1 /* Bowling Ball + Bowling Ball Spawner (all variants) */ /* oBehParams2ndByte */ - #define BBALL_BP_STYPE_BOB_UPPER 0 - #define BBALL_BP_STYPE_TTM 1 - #define BBALL_BP_STYPE_BOB_LOWER 2 - #define BBALL_BP_STYPE_THI_LARGE 3 - #define BBALL_BP_STYPE_THI_SMALL 4 + #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 0 - #define FREE_BBALL_ACT_ROLL 1 - #define FREE_BBALL_ACT_RESET 2 + #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 0 - #define BETA_CHEST_ACT_OPENING 1 - #define BETA_CHEST_ACT_IDLE_OPEN 2 + #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 */ - // Unused in original Japanese version - #define BBH_TILTING_TRAP_PLATFORM_ACT_MARIO_ON 0 - #define BBH_TILTING_TRAP_PLATFORM_ACT_MARIO_OFF 1 + #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 0 - #define BOO_DEATH_STATUS_DYING 1 - #define BOO_DEATH_STATUS_DEAD 2 - + #define BOO_DEATH_STATUS_ALIVE 0x0 + #define BOO_DEATH_STATUS_DYING 0x1 + #define BOO_DEATH_STATUS_DEAD 0x2 /* attackStatus */ - #define BOO_NOT_ATTACKED 0 - #define BOO_ATTACKED 1 - #define BOO_BOUNCED_ON -1 + #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 0 - #define BETA_BOO_KEY_ACT_DROPPING 1 - #define BETA_BOO_KEY_ACT_DROPPED 2 + #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 0 - #define BOO_CAGE_ACT_FALLING 1 - #define BOO_CAGE_ACT_ON_GROUND 2 - #define BOO_CAGE_ACT_MARIO_JUMPING_IN 3 - #define BOO_CAGE_ACT_USELESS 4 + #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 0 - #define HAUNTED_BOOKSHELF_ACT_RECEDE 1 + #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 10 - #define BBH_DYNAMIC_SURFACE_ROOM 0 - #define BBH_OUTSIDE_ROOM 13 + #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 0 + #define COFFIN_SPAWNER_ACT_COFFINS_UNLOADED 0x0 + #define COFFIN_SPAWNER_ACT_COFFINS_LOADED 0x1 /* Coffin */ - /* oAction */ - #define COFFIN_ACT_IDLE 0 - #define COFFIN_ACT_STAND_UP 1 - /* oBehParams2ndByte */ - #define COFFIN_BP_STATIC 0 + #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 0 - #define ARROW_LIFT_ACT_MOVING_AWAY 1 - #define ARROW_LIFT_ACT_MOVING_BACK 2 + #define ARROW_LIFT_ACT_IDLE 0x0 + #define ARROW_LIFT_ACT_MOVING_AWAY 0x1 + #define ARROW_LIFT_ACT_MOVING_BACK 0x2 - /* status */ - #define ARROW_LIFT_NOT_DONE_MOVING 0 - #define ARROW_LIFT_DONE_MOVING 1 +/* Toad */ + /* Animations */ + #define TOAD_ANIM_0 0x0 //! anim name + #define TOAD_ANIM_6 0x6 //! anim name + +/* Intro Peach */ + /* oAction */ + #define PEACH_ACT_INIT 0x0 + #define PEACH_ACT_FADE_1 0x1 + #define PEACH_ACT_UNFADE 0x2 + #define PEACH_ACT_FADE_2 0x3 + /* Animations */ + #define PEACH_ANIM_0 0x0 //! anim name + +/* Yoshi */ /* Yoshi */ /* oAction */ - #define YOSHI_ACT_IDLE 0 - #define YOSHI_ACT_WALK 1 - #define YOSHI_ACT_TALK 2 - #define YOSHI_ACT_WALK_JUMP_OFF_ROOF 3 - #define YOSHI_ACT_FINISH_JUMPING_AND_DESPAWN 4 - #define YOSHI_ACT_GIVE_PRESENT 5 - #define YOSHI_ACT_CREDITS 10 - -/* Koopa */ - /* oAction */ - #define KOOPA_UNSHELLED_ACT_RUN 0 - #define KOOPA_UNSHELLED_ACT_DIVE 1 - #define KOOPA_UNSHELLED_ACT_LYING 2 - #define KOOPA_UNSHELLED_ACT_UNUSED3 3 - - #define KOOPA_SHELLED_ACT_STOPPED 0 - #define KOOPA_SHELLED_ACT_WALK 1 - #define KOOPA_SHELLED_ACT_RUN_FROM_MARIO 2 - #define KOOPA_SHELLED_ACT_LYING 3 - #define KOOPA_SHELLED_ACT_DIE 4 - - #define KOOPA_THE_QUICK_ACT_WAIT_BEFORE_RACE 0 - #define KOOPA_THE_QUICK_ACT_UNUSED1 1 - #define KOOPA_THE_QUICK_ACT_SHOW_INIT_TEXT 2 - #define KOOPA_THE_QUICK_ACT_RACE 3 - #define KOOPA_THE_QUICK_ACT_DECELERATE 4 - #define KOOPA_THE_QUICK_ACT_STOP 5 - #define KOOPA_THE_QUICK_ACT_AFTER_RACE 6 - - /* oSubAction */ - #define KOOPA_SHELLED_SUB_ACT_START_WALK 0 - #define KOOPA_SHELLED_SUB_ACT_WALK 1 - #define KOOPA_SHELLED_SUB_ACT_STOP_WALK 2 - - #define KOOPA_THE_QUICK_SUB_ACT_START_RUN 0 - #define KOOPA_THE_QUICK_SUB_ACT_RUN 1 - #define KOOPA_THE_QUICK_SUB_ACT_JUMP 2 - - /* oKoopaTheQuickRaceIndex */ - #define KOOPA_THE_QUICK_BOB_INDEX 0 - #define KOOPA_THE_QUICK_THI_INDEX 1 + #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 (General) */ /* oBehParams2ndByte */ - #define KOOPA_BP_UNSHELLED 0 - #define KOOPA_BP_NORMAL 1 - #define KOOPA_BP_KOOPA_THE_QUICK_BASE 2 - #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 4 + #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 + /* oAnimState */ + #define KOOPA_ANIM_STATE_EYES_OPEN OBJ_BLINKING_ANIM_STATE_EYES_OPEN + #define KOOPA_ANIM_STATE_EYES_CLOSED OBJ_BLINKING_ANIM_STATE_EYES_CLOSED + /* 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 0 - #define POKEY_ACT_WANDER 1 - #define POKEY_ACT_UNLOAD_PARTS 2 + #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_PARTS-0x1 /* Swoop */ /* oAction */ - #define SWOOP_ACT_IDLE 0 - #define SWOOP_ACT_MOVE 1 + #define SWOOP_ACT_IDLE 0x0 + #define SWOOP_ACT_MOVE 0x1 + /* Animations */ + #define SWOOP_ANIM_FLY 0x0 + #define SWOOP_ANIM_IDLE 0x1 /* Fly guy */ + /* oBehParams2ndByte */ + #define FLY_GUY_BP_LUNGES 0x0 + #define FLY_GUY_BP_SHOOTS_FIRE 0x1 /* oAction */ - #define FLY_GUY_ACT_IDLE 0 - #define FLY_GUY_ACT_APPROACH_MARIO 1 - #define FLY_GUY_ACT_LUNGE 2 - #define FLY_GUY_ACT_SHOOT_FIRE 3 + #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 0x00000003 - #define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS_MASK 0x000000FC + #define GOOMBA_TRIPLET_SPAWNER_BP_SIZE_MASK 0x00000003 + #define GOOMBA_TRIPLET_SPAWNER_BP_EXTRA_GOOMBAS_MASK 0x000000FC /* oAction */ - #define GOOMBA_TRIPLET_SPAWNER_ACT_UNLOADED 0 - #define GOOMBA_TRIPLET_SPAWNER_ACT_LOADED 1 + #define GOOMBA_TRIPLET_SPAWNER_ACT_UNLOADED 0x0 + #define GOOMBA_TRIPLET_SPAWNER_ACT_LOADED 0x1 /* Goomba */ /* oBehParams2ndByte */ - #define GOOMBA_BP_SIZE_MASK 0x00000003 - #define GOOMBA_SIZE_REGULAR 0 - #define GOOMBA_SIZE_HUGE 1 - #define GOOMBA_SIZE_TINY 2 - #define GOOMBA_BP_TRIPLET_FLAG_MASK 0x000000FC + #define GOOMBA_SIZE_REGULAR 0x0 + #define GOOMBA_SIZE_HUGE 0x1 + #define GOOMBA_SIZE_TINY 0x2 + #define GOOMBA_BP_SIZE_MASK 0x3 + #define GOOMBA_BP_TRIPLET_FLAG_MASK 0x000000FC /* oAction */ - #define GOOMBA_ACT_WALK 0 - #define GOOMBA_ACT_ATTACKED_MARIO 1 - #define GOOMBA_ACT_JUMP 2 + #define GOOMBA_ACT_WALK 0x0 + #define GOOMBA_ACT_ATTACKED_MARIO 0x1 + #define GOOMBA_ACT_JUMP 0x2 + /* 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 + /* Animations */ + #define GOOMBA_ANIM_DEFAULT 0x0 /* Chain chomp */ /* oAction */ - #define CHAIN_CHOMP_ACT_UNINITIALIZED 0 - #define CHAIN_CHOMP_ACT_MOVE 1 - #define CHAIN_CHOMP_ACT_UNLOAD_CHAIN 2 - + #define CHAIN_CHOMP_ACT_UNINITIALIZED 0x0 + #define CHAIN_CHOMP_ACT_MOVE 0x1 + #define CHAIN_CHOMP_ACT_UNLOAD_CHAIN 0x2 /* oSubAction */ - #define CHAIN_CHOMP_SUB_ACT_TURN 0 - #define CHAIN_CHOMP_SUB_ACT_LUNGE 1 - + /* CHAIN_CHOMP_ACT_MOVE */ + #define CHAIN_CHOMP_SUB_ACT_TURN 0x0 + #define CHAIN_CHOMP_SUB_ACT_LUNGE 0x1 /* oChainChompReleaseStatus */ - #define CHAIN_CHOMP_NOT_RELEASED 0 - #define CHAIN_CHOMP_RELEASED_TRIGGER_CUTSCENE 1 - #define CHAIN_CHOMP_RELEASED_LUNGE_AROUND 2 - #define CHAIN_CHOMP_RELEASED_BREAK_GATE 3 - #define CHAIN_CHOMP_RELEASED_JUMP_AWAY 4 - #define CHAIN_CHOMP_RELEASED_END_CUTSCENE 5 + #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 0 + #define CHAIN_CHOMP_CHAIN_PART_BP_PIVOT 0x0 /* Wooden post */ /* oBehParams */ - #define WOODEN_POST_BP_NO_COINS_MASK 0x0000FF00 + #define WOODEN_POST_BP_NO_COINS_MASK 0x0000FF00 /* Wiggler */ /* oAction */ - #define WIGGLER_ACT_UNINITIALIZED 0 - #define WIGGLER_ACT_WALK 1 - #define WIGGLER_ACT_KNOCKBACK 2 - #define WIGGLER_ACT_JUMPED_ON 3 - #define WIGGLER_ACT_SHRINK 4 - #define WIGGLER_ACT_FALL_THROUGH_FLOOR 5 - + #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 0 - #define WIGGLER_TEXT_STATUS_SHOWING_DIALOG 1 - #define WIGGLER_TEXT_STATUS_COMPLETED_DIALOG 2 + #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 0 - #define SPINY_ACT_HELD_BY_LAKITU 1 - #define SPINY_ACT_THROWN_BY_LAKITU 2 - #define SPINY_ACT_ATTACKED_MARIO 3 + #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 -/* Evil lakitu */ +/* Enemy lakitu */ /* oAction */ - #define ENEMY_LAKITU_ACT_UNINITIALIZED 0 - #define ENEMY_LAKITU_ACT_MAIN 1 - + #define ENEMY_LAKITU_ACT_UNINITIALIZED 0x0 + #define ENEMY_LAKITU_ACT_MAIN 0x1 /* oSubAction */ - #define ENEMY_LAKITU_SUB_ACT_NO_SPINY 0 - #define ENEMY_LAKITU_SUB_ACT_HOLD_SPINY 1 - #define ENEMY_LAKITU_SUB_ACT_THROW_SPINY 2 + /* 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 */ - /* oAction */ - #define CLOUD_ACT_SPAWN_PARTS 0 - #define CLOUD_ACT_MAIN 1 - #define CLOUD_ACT_UNLOAD 2 - #define CLOUD_ACT_FWOOSH_HIDDEN 3 - /* oBehParams2ndByte */ - #define CLOUD_BP_FWOOSH 0 - #define CLOUD_BP_LAKITU_CLOUD 1 - -/* Camera lakitu */ + #define CLOUD_BP_FWOOSH 0x0 + #define CLOUD_BP_LAKITU_CLOUD 0x1 + #define CLOUD_BP_FWOOSH_FACE 0x5 /* oAction */ - #define CAMERA_LAKITU_INTRO_ACT_TRIGGER_CUTSCENE 0 - #define CAMERA_LAKITU_INTRO_ACT_SPAWN_CLOUD 1 - #define CAMERA_LAKITU_INTRO_ACT_UNK2 2 + #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_ACT_DEFAULT 0x0 + +/* Camera Lakitu */ /* oBehParams2ndByte */ - #define CAMERA_LAKITU_BP_FOLLOW_CAMERA 0 - #define CAMERA_LAKITU_BP_INTRO 1 + #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 0 - #define MANTA_ACT_NO_RINGS 1 + #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 */ - /* oAction */ - #define MONTY_MOLE_ACT_SELECT_HOLE 0 - #define MONTY_MOLE_ACT_RISE_FROM_HOLE 1 - #define MONTY_MOLE_ACT_SPAWN_ROCK 2 - #define MONTY_MOLE_ACT_BEGIN_JUMP_INTO_HOLE 3 - #define MONTY_MOLE_ACT_THROW_ROCK 4 - #define MONTY_MOLE_ACT_JUMP_INTO_HOLE 5 - #define MONTY_MOLE_ACT_HIDE 6 - #define MONTY_MOLE_ACT_JUMP_OUT_OF_HOLE 7 - /* oBehParams2ndByte */ - #define MONTY_MOLE_BP_NO_ROCK 0 + #define MONTY_MOLE_BP_NO_ROCK 0x0 + /* 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 0 - #define MONTY_MOLE_ROCK_ACT_MOVE 1 + #define MONTY_MOLE_ROCK_ACT_HELD 0x0 + #define MONTY_MOLE_ROCK_ACT_MOVE 0x1 /* Ukiki */ - /* oAction */ - #define UKIKI_ACT_IDLE 0 - #define UKIKI_ACT_RUN 1 - #define UKIKI_ACT_TURN_TO_MARIO 2 - #define UKIKI_ACT_JUMP 3 - #define UKIKI_ACT_GO_TO_CAGE 4 - #define UKIKI_ACT_WAIT_TO_RESPAWN 5 - #define UKIKI_ACT_UNUSED_TURN 6 - #define UKIKI_ACT_RETURN_HOME 7 - - /* oSubAction */ - #define UKIKI_SUB_ACT_TAUNT_NONE 0 - #define UKIKI_SUB_ACT_TAUNT_ITCH 1 - #define UKIKI_SUB_ACT_TAUNT_SCREECH 2 - #define UKIKI_SUB_ACT_TAUNT_JUMP_CLAP 3 - #define UKIKI_SUB_ACT_TAUNT_HANDSTAND 4 - - #define UKIKI_SUB_ACT_CAGE_RUN_TO_CAGE 0 - #define UKIKI_SUB_ACT_CAGE_WAIT_FOR_MARIO 1 - #define UKIKI_SUB_ACT_CAGE_TALK_TO_MARIO 2 - #define UKIKI_SUB_ACT_CAGE_TURN_TO_CAGE 3 - #define UKIKI_SUB_ACT_CAGE_JUMP_TO_CAGE 4 - #define UKIKI_SUB_ACT_CAGE_LAND_ON_CAGE 5 - #define UKIKI_SUB_ACT_CAGE_SPIN_ON_CAGE 6 - #define UKIKI_SUB_ACT_CAGE_DESPAWN 7 - - /* oUkikiTextState */ - #define UKIKI_TEXT_DEFAULT 0 - #define UKIKI_TEXT_CAGE_TEXTBOX 1 - #define UKIKI_TEXT_GO_TO_CAGE 2 - #define UKIKI_TEXT_STOLE_CAP 3 - #define UKIKI_TEXT_HAS_CAP 4 - #define UKIKI_TEXT_GAVE_CAP_BACK 5 - #define UKIKI_TEXT_DO_NOT_LET_GO 6 - #define UKIKI_TEXT_STEAL_CAP 7 - /* oBehParams2ndByte */ - #define UKIKI_CAGE 0 - #define UKIKI_CAP 1 - + #define UKIKI_CAGE 0x0 + #define UKIKI_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 0 - #define UKIKI_ANIM_UNUSED_WALK 1 - #define UKIKI_ANIM_UNUSED_APOSE 2 - #define UKIKI_ANIM_UNUSED_DEATH 3 - #define UKIKI_ANIM_SCREECH 4 - #define UKIKI_ANIM_JUMP_CLAP 5 - #define UKIKI_ANIM_UNUSED_HOP 6 - #define UKIKI_ANIM_LAND 7 - #define UKIKI_ANIM_JUMP 8 - #define UKIKI_ANIM_ITCH 9 - #define UKIKI_ANIM_HANDSTAND 10 - #define UKIKI_ANIM_TURN 11 - #define UKIKI_ANIM_HELD 12 - + #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 0 - #define UKIKI_ANIM_STATE_EYE_CLOSED 1 - #define UKIKI_ANIM_STATE_CAP_ON 2 - + #define UKIKI_ANIM_STATE_DEFAULT 0x0 + #define UKIKI_ANIM_STATE_EYE_CLOSED 0x1 + #define UKIKI_ANIM_STATE_CAP_ON 0x2 /* oUkikiHasCap */ - #define UKIKI_CAP_ON 1 + #define UKIKI_CAP_ON 0x1 //! /* Ukiki Cage Star */ /* oAction */ - #define UKIKI_CAGE_STAR_ACT_IN_CAGE 0 - #define UKIKI_CAGE_STAR_ACT_SPAWN_STAR 1 + #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 0 - #define UKIKI_CAGE_ACT_SPIN 1 - #define UKIKI_CAGE_ACT_FALL 2 - #define UKIKI_CAGE_ACT_HIDE 3 + #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 0 - #define PIRANHA_PLANT_ACT_SLEEPING 1 - #define PIRANHA_PLANT_ACT_BITING 2 - #define PIRANHA_PLANT_ACT_WOKEN_UP 3 - #define PIRANHA_PLANT_ACT_STOPPED_BITING 4 - #define PIRANHA_PLANT_ACT_ATTACKED 5 - #define PIRANHA_PLANT_ACT_SHRINK_AND_DIE 6 - #define PIRANHA_PLANT_ACT_WAIT_TO_RESPAWN 7 - #define PIRANHA_PLANT_ACT_RESPAWN 8 + #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 */ - #define PIRANHA_PLANT_BUBBLE_ACT_IDLE 0 - #define PIRANHA_PLANT_BUBBLE_ACT_GROW_SHRINK_LOOP 1 - #define PIRANHA_PLANT_BUBBLE_ACT_BURST 2 +/* 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 */ /* oAction */ - #define PLATFORM_ON_TRACK_ACT_INIT 0 - #define PLATFORM_ON_TRACK_ACT_WAIT_FOR_MARIO 1 - #define PLATFORM_ON_TRACK_ACT_MOVE_ALONG_TRACK 2 - #define PLATFORM_ON_TRACK_ACT_PAUSE_BRIEFLY 3 - #define PLATFORM_ON_TRACK_ACT_FALL 4 - + #define PLATFORM_ON_TRACK_ACT_INIT 0x0 + #define PLATFORM_ON_TRACK_ACT_WAIT_FOR_MARIO 0x1 + #define PLATFORM_ON_TRACK_ACT_MOVE_ALONG_TRACK 0x2 + #define PLATFORM_ON_TRACK_ACT_PAUSE_BRIEFLY 0x3 + #define PLATFORM_ON_TRACK_ACT_FALL 0x4 /* oBehParams >> 16 */ - #define PLATFORM_ON_TRACK_BP_MASK_PATH 0xF - #define PLATFORM_ON_TRACK_BP_MASK_TYPE (0x7 << 4) - #define PLATFORM_ON_TRACK_BP_RETURN_TO_START (1 << 8) - #define PLATFORM_ON_TRACK_BP_DONT_DISAPPEAR (1 << 9) - #define PLATFORM_ON_TRACK_BP_DONT_TURN_YAW (1 << 10) - #define PLATFORM_ON_TRACK_BP_DONT_TURN_ROLL (1 << 11) + #define PLATFORM_ON_TRACK_BP_MASK_PATH 0xF + #define PLATFORM_ON_TRACK_BP_MASK_TYPE (0x7 << 4) + #define PLATFORM_ON_TRACK_BP_RETURN_TO_START (1 << 8) + #define PLATFORM_ON_TRACK_BP_DONT_DISAPPEAR (1 << 9) + #define PLATFORM_ON_TRACK_BP_DONT_TURN_YAW (1 << 10) + #define PLATFORM_ON_TRACK_BP_DONT_TURN_ROLL (1 << 11) + /* oPlatformOnTrackType */ + #define PLATFORM_ON_TRACK_TYPE_CARPET 0x0 + #define PLATFORM_ON_TRACK_TYPE_SKI_LIFT 0x1 + #define PLATFORM_ON_TRACK_TYPE_CHECKERED 0x2 + #define PLATFORM_ON_TRACK_TYPE_GRATE 0x3 - #define PLATFORM_ON_TRACK_TYPE_CARPET 0 - #define PLATFORM_ON_TRACK_TYPE_SKI_LIFT 1 - #define PLATFORM_ON_TRACK_TYPE_CHECKERED 2 - #define PLATFORM_ON_TRACK_TYPE_GRATE 3 +/* 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 -/* Purple switch */ - #define PURPLE_SWITCH_IDLE 0 - #define PURPLE_SWITCH_PRESSED 1 - #define PURPLE_SWITCH_TICKING 2 - #define PURPLE_SWITCH_UNPRESSED 3 - #define PURPLE_SWITCH_WAIT_FOR_MARIO_TO_GET_OFF 4 +/* 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 */ - #define PYRAMID_ELEVATOR_IDLE 0 - #define PYRAMID_ELEVATOR_START_MOVING 1 - #define PYRAMID_ELEVATOR_CONSTANT_VELOCITY 2 - #define PYRAMID_ELEVATOR_AT_BOTTOM 3 + /* 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 */ - #define PYRAMID_TOP_ACT_CHECK_IF_SOLVED 0 - #define PYRAMID_TOP_ACT_SPINNING 1 - #define PYRAMID_TOP_ACT_EXPLODE 2 + /* oAction */ + #define PYRAMID_TOP_ACT_CHECK_IF_SOLVED 0x0 + #define PYRAMID_TOP_ACT_SPINNING 0x1 + #define PYRAMID_TOP_ACT_EXPLODE 0x2 /* Pyramid wall */ - /* oAction */ - #define PYRAMID_WALL_ACT_MOVING_DOWN 0 - #define PYRAMID_WALL_ACT_MOVING_UP 1 - /* oBehParams2ndByte */ - #define PYRAMID_WALL_BP_POSITION_HIGH 0 - #define PYRAMID_WALL_BP_POSITION_MIDDLE 1 - #define PYRAMID_WALL_BP_POSITION_LOW 2 + #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 */ + /* oBehParams2ndByte */ + #define TOX_BOX_BP_PATTERN_1 0x0 + #define TOX_BOX_BP_PATTERN_2 0x1 + #define TOX_BOX_BP_PATTERN_3 0x2 + /* oAction */ + #define TOX_BOX_ACT_END -0x1 + #define TOX_BOX_ACT_INIT 0x0 + #define TOX_BOX_ACT_STEP 0x1 + #define TOX_BOX_ACT_WAIT 0x2 + #define TOX_BOX_ACT_MOVE_FORWARD 0x3 + #define TOX_BOX_ACT_MOVE_BACKWARD 0x4 + #define TOX_BOX_ACT_MOVE_DOWN 0x5 + #define TOX_BOX_ACT_MOVE_UP 0x6 /* Penguins (general) */ /* Walking sounds */ - #define PENGUIN_WALK_BABY 0 - #define PENGUIN_WALK_BIG 1 - + #define PENGUIN_SOUND_WALK_BABY 0x0 + #define PENGUIN_SOUND_WALK_BIG 0x1 + /* geo_switch_tuxie_mother_eyes */ + #define PENGUIN_ANIM_STATE_EYES_OPEN 0x0 + #define PENGUIN_ANIM_STATE_EYES_HALF_CLOSED 0x1 + #define PENGUIN_ANIM_STATE_EYES_CLOSED 0x2 + #define PENGUIN_ANIM_STATE_EYES_ANGRY 0x3 + #define PENGUIN_ANIM_STATE_EYES_SAD 0x4 /* Animations */ - #define PENGUIN_ANIM_WALK 0 - #define PENGUIN_ANIM_IDLE 3 + #define PENGUIN_ANIM_WALK 0x0 + #define PENGUIN_ANIM_DIVE_SLIDE 0x1 + #define PENGUIN_ANIM_STAND_UP 0x2 + #define PENGUIN_ANIM_IDLE 0x3 -/* Racing penguin */ +/* Racing Penguin */ + /* oBehParams2ndByte */ + #define RACING_PENGUIN_BP_NORMAL 0x0 + #define RACING_PENGUIN_BP_120_STARS 0x1 /* oAction */ - #define RACING_PENGUIN_ACT_WAIT_FOR_MARIO 0 - #define RACING_PENGUIN_ACT_SHOW_INIT_TEXT 1 - #define RACING_PENGUIN_ACT_PREPARE_FOR_RACE 2 - #define RACING_PENGUIN_ACT_RACE 3 - #define RACING_PENGUIN_ACT_FINISH_RACE 4 - #define RACING_PENGUIN_ACT_SHOW_FINAL_TEXT 5 + #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 -/* SL walking penguin */ +/* Mother Penguin */ /* oAction */ - #define SL_WALKING_PENGUIN_ACT_MOVING_FORWARDS 0 - #define SL_WALKING_PENGUIN_ACT_TURNING_BACK 1 - #define SL_WALKING_PENGUIN_ACT_RETURNING 2 - #define SL_WALKING_PENGUIN_ACT_TURNING_FORWARDS 3 + #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 0 - #define SL_SNOWMAN_WIND_ACT_TALKING 1 - #define SL_SNOWMAN_WIND_ACT_BLOWING 2 + #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 Head */ + /* oAction */ + #define SNOWMANS_HEAD_ACT_ASK 0x0 + #define SNOWMANS_HEAD_ACT_NONE 0x1 + #define SNOWMANS_HEAD_ACT_JUMPING 0x2 + #define SNOWMANS_HEAD_ACT_LAND 0x3 + #define SNOWMANS_HEAD_ACT_THANK 0x4 + +/* Snowman Bottom */ + /* oAction */ + #define SNOWMANS_BOTTOM_ACT_WAITING 0x0 + #define SNOWMANS_BOTTOM_ACT_FOLLOW_PATH 0x1 + #define SNOWMANS_BOTTOM_ACT_FINAL_STRETCH 0x2 + #define SNOWMANS_BOTTOM_ACT_REACH_END 0x3 + #define SNOWMANS_BOTTOM_ACT_COLLISION 0x4 + +/* 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 0 - #define WATER_BOMB_ACT_INIT 1 - #define WATER_BOMB_ACT_DROP 2 - #define WATER_BOMB_ACT_EXPLODE 3 + #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 0 - #define TTC_ROTATING_SOLID_BP_TRIANGULAR_PRISM 1 + #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 0 - #define TTC_MOVING_BAR_ACT_PULL_BACK 1 - #define TTC_MOVING_BAR_ACT_EXTEND 2 - #define TTC_MOVING_BAR_ACT_RETRACT 3 + #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 0x00000002 - #define TTC_COG_BP_SHAPE_HEXAGON (0 << 1) - #define TTC_COG_BP_SHAPE_TRIANGLE (1 << 1) - #define TTC_COG_BP_DIR_MASK 0x00000001 - #define TTC_COG_BP_DIR_CCW (0 << 0) // TODO: Check these - #define TTC_COG_BP_DIR_CW (1 << 0) + #define TTC_COG_BP_SHAPE_MASK 0x00000002 + #define TTC_COG_BP_SHAPE_HEXAGON (0 << 1) + #define TTC_COG_BP_SHAPE_TRIANGLE (1 << 1) + #define TTC_COG_BP_DIR_MASK 0x00000001 + #define TTC_COG_BP_DIR_CCW (0 << 0) // TODO: Check these + #define TTC_COG_BP_DIR_CW (1 << 0) /* TTC 2D Rotator */ /* oBehParams2ndByte */ - #define TTC_2D_ROTATOR_BP_HAND 0 - #define TTC_2D_ROTATOR_BP_2D_COG 1 + #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 /* Activated Back-and-Forth Platform */ - /* ((u16)(o->oBehParams >> 16) & 0x0300) >> 8 aka platform type */ - #define ACTIVATED_BF_PLAT_TYPE_BITS_ARROW_PLAT 0 - #define ACTIVATED_BF_PLAT_TYPE_BITFS_MESH_PLAT 1 - #define ACTIVATED_BF_PLAT_TYPE_BITFS_ELEVATOR 2 + /* ((u16)(o->oBehParams >> 16) & 0x0300) >> 8 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 + +/* 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 0 - #define DORRIE_ACT_LOWER_HEAD 1 - #define DORRIE_ACT_RAISE_HEAD 2 + #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 0 - #define MAD_PIANO_ACT_ATTACK 1 + #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 */ /* oAction */ - #define FIRE_PIRANHA_PLANT_ACT_HIDE 0 - #define FIRE_PIRANHA_PLANT_ACT_GROW 1 + #define FIRE_PIRANHA_PLANT_ACT_HIDE 0x0 + #define FIRE_PIRANHA_PLANT_ACT_GROW 0x1 + /* Animations */ + #define FIRE_PIRANHA_PLANT_ANIM_SHRINK 0x0 + #define FIRE_PIRANHA_PLANT_ANIM_UNUSED_1 0x1 + #define FIRE_PIRANHA_PLANT_ANIM_ATTACKED 0x2 + #define FIRE_PIRANHA_PLANT_ANIM_UNUSED_3 0x3 + #define FIRE_PIRANHA_PLANT_ANIM_GROW 0x4 /* Fire spitter */ /* oAction */ - #define FIRE_SPITTER_ACT_IDLE 0 - #define FIRE_SPITTER_ACT_SPIT_FIRE 1 + #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 0 - #define EYEROK_BOSS_ACT_WAKE_UP 1 - #define EYEROK_BOSS_ACT_SHOW_INTRO_TEXT 2 - #define EYEROK_BOSS_ACT_FIGHT 3 - #define EYEROK_BOSS_ACT_DIE 4 + #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 0 - #define EYEROK_HAND_ACT_IDLE 1 - #define EYEROK_HAND_ACT_OPEN 2 - #define EYEROK_HAND_ACT_SHOW_EYE 3 - #define EYEROK_HAND_ACT_CLOSE 4 - #define EYEROK_HAND_ACT_RETREAT 5 - #define EYEROK_HAND_ACT_TARGET_MARIO 6 - #define EYEROK_HAND_ACT_SMASH 7 - #define EYEROK_HAND_ACT_FIST_PUSH 8 - #define EYEROK_HAND_ACT_FIST_SWEEP 9 - #define EYEROK_HAND_ACT_BEGIN_DOUBLE_POUND 10 // raising for double smash - #define EYEROK_HAND_ACT_DOUBLE_POUND 11 // double smashing - #define EYEROK_HAND_ACT_ATTACKED 12 - #define EYEROK_HAND_ACT_RECOVER 13 - #define EYEROK_HAND_ACT_BECOME_ACTIVE 14 - #define EYEROK_HAND_ACT_DIE 15 + #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 0 - #define KLEPTO_ACT_APPROACH_TARGET_HOLDING 1 - #define KLEPTO_ACT_WAIT_FOR_MARIO 2 - #define KLEPTO_ACT_TURN_TOWARD_MARIO 3 - #define KLEPTO_ACT_DIVE_AT_MARIO 4 - #define KLEPTO_ACT_RESET_POSITION 5 - #define KLEPTO_ACT_STRUCK_BY_MARIO 6 - #define KLEPTO_ACT_RETREAT 7 - + #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 0 - #define KLEPTO_ANIM_STATE_HOLDING_CAP 1 - #define KLEPTO_ANIM_STATE_HOLDING_STAR 2 + #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 */ - /* oAction */ - #define BIRD_ACT_INACTIVE 0 - #define BIRD_ACT_FLY 1 - /* oBehParams2ndByte */ - #define BIRD_BP_SPAWNED 0 - #define BIRD_BP_SPAWNER 1 + #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 0 - #define SKEETER_ACT_LUNGE 1 - #define SKEETER_ACT_WALK 2 + #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 0 - #define SNUFIT_ACT_SHOOT 1 + #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 0 - #define TWEESTER_ACT_CHASE 1 - #define TWEESTER_ACT_HIDE 2 - + #define TWEESTER_ACT_IDLE 0x0 + #define TWEESTER_ACT_CHASE 0x1 + #define TWEESTER_ACT_HIDE 0x2 /* oSubAction */ - #define TWEESTER_SUB_ACT_WAIT 0 - - #define TWEESTER_SUB_ACT_CHASE 0 + /* 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 */ - /* oAction */ - #define TRIPLET_BUTTERFLY_ACT_INIT 0 - #define TRIPLET_BUTTERFLY_ACT_WANDER 1 - #define TRIPLET_BUTTERFLY_ACT_ACTIVATE 2 - #define TRIPLET_BUTTERFLY_ACT_EXPLODE 3 - /* oBehParams2ndByte */ - #define TRIPLET_BUTTERFLY_BP_BUTTERFLY_NUM 0x00000003 - #define TRIPLET_BUTTERFLY_BP_NO_BOMBS 0x00000004 - + #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 -1 - #define TRIPLET_BUTTERFLY_TYPE_EXPLODES 0 - #define TRIPLET_BUTTERFLY_TYPE_SPAWN_1UP 1 + #define TRIPLET_BUTTERFLY_TYPE_NORMAL -0x1 + #define TRIPLET_BUTTERFLY_TYPE_EXPLODES 0x0 + #define TRIPLET_BUTTERFLY_TYPE_SPAWN_1UP 0x1 -/* Water level diamond */ + +/* 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 0 + #define WATER_LEVEL_DIAMOND_ACT_INIT 0x0 // Idling when Mario isn't inside its hitbox - #define WATER_LEVEL_DIAMOND_ACT_IDLE 1 + #define WATER_LEVEL_DIAMOND_ACT_IDLE 0x1 // While the water level is changing - #define WATER_LEVEL_DIAMOND_ACT_CHANGE_WATER_LEVEL 2 + #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 3 + #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 0 - #define MIPS_ACT_FOLLOW_PATH 1 - #define MIPS_ACT_WAIT_FOR_ANIMATION_DONE 2 - #define MIPS_ACT_FALL_DOWN 3 - #define MIPS_ACT_IDLE 4 - + #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 0 - #define MIPS_STAR_STATUS_SHOULD_SPAWN_STAR 1 - #define MIPS_STAR_STATUS_ALREADY_SPAWNED_STAR 2 + #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 0 - #define FALLING_PILLAR_ACT_TURNING 1 - #define FALLING_PILLAR_ACT_FALLING 2 + #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 0 - #define BOWSER_PUZZLE_ACT_WAIT_FOR_COMPLETE 1 - #define BOWSER_PUZZLE_ACT_DONE 2 + #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 */ - /* oAction */ - #define MR_BLIZZARD_ACT_SPAWN_SNOWBALL 0 - #define MR_BLIZZARD_ACT_HIDE_UNHIDE 1 - #define MR_BLIZZARD_ACT_RISE_FROM_GROUND 2 - #define MR_BLIZZARD_ACT_ROTATE 3 - #define MR_BLIZZARD_ACT_THROW_SNOWBALL 4 - #define MR_BLIZZARD_ACT_BURROW 5 - #define MR_BLIZZARD_ACT_DEATH 6 - #define MR_BLIZZARD_ACT_JUMP 7 /* oBehParams2ndByte */ - #define MR_BLIZZARD_STYPE_NO_CAP 0 - #define MR_BLIZZARD_STYPE_JUMPING 1 + #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 */ + /* oAnimState */ + #define TINY_DIRT_PARTICLE_ANIM_STATE_RED 0x0 + #define TINY_DIRT_PARTICLE_ANIM_STATE_GREEN 0x1 + #define TINY_DIRT_PARTICLE_ANIM_STATE_BLUE 0x2 + #define TINY_DIRT_PARTICLE_ANIM_STATE_DIRT 0x3 + #define TINY_DIRT_PARTICLE_ANIM_STATE_YELLOW 0x4 + #define TINY_DIRT_PARTICLE_ANIM_STATE_BILLBOARD 0x5 + +/* Cartoon Star Particle */ + /* oAnimState */ + #define CARTOON_STAR_PARTICLE_ANIM_STATE_RED 0x0 + #define CARTOON_STAR_PARTICLE_ANIM_STATE_GREEN 0x1 + #define CARTOON_STAR_PARTICLE_ANIM_STATE_BLUE 0x2 + #define CARTOON_STAR_PARTICLE_ANIM_STATE_YELLOW 0x3 + #define CARTOON_STAR_PARTICLE_ANIM_STATE_BILLBOARD 0x4 + +/* Music Touch */ + /* oAction */ + #define MUSIC_TOUCH_ACT_PLAY_SOUND 0x0 + #define MUSIC_TOUCH_ACT_DONE 0x1 + +/* Intro Scene */ + /* gCutsceneObjSpawn */ + #define CUTSCENE_OBJ_NONE 0x0 + #define CUTSCENE_OBJ_BEGINNING_PEACH 0x5 + #define CUTSCENE_OBJ_BEGINNING_LAKITU 0x6 + #define CUTSCENE_OBJ_7_END_BIRDS_1 0x7 + #define CUTSCENE_OBJ_5_END_BIRDS_2 0x8 + #define CUTSCENE_OBJ_2_END_BIRDS_1 0x9 #endif // OBJECT_CONSTANTS_H diff --git a/include/special_presets.h b/include/special_presets.h index a9be6ec2..103e4060 100644 --- a/include/special_presets.h +++ b/include/special_presets.h @@ -17,7 +17,7 @@ struct SpecialPreset /*00*/ u8 preset_id; /*01*/ u8 type; // Determines whether object is 8, 10, 12 or 14 bytes long. /*02*/ u8 defParam; // Default parameter, only used when type is SPTYPE_DEF_PARAM_AND_YROT - /*03*/ ModelID model; + /*03*/ ModelID16 model; /*04*/ const BehaviorScript *behavior; }; diff --git a/include/types.h b/include/types.h index 5d22ebeb..32feca95 100644 --- a/include/types.h +++ b/include/types.h @@ -69,27 +69,104 @@ typedef f32 Mat2[2][2]; typedef f32 Mat3[3][3]; typedef f32 Mat4[4][4]; +// -- Scripts -- typedef uintptr_t GeoLayout; typedef uintptr_t LevelScript; -typedef s16 Movtex; -typedef s16 MacroObject; -typedef COLLISION_DATA_TYPE Collision; //Collision is by default an s16, but it's best to have it match the type of COLLISION_DATA_TYPE -typedef s16 Trajectory; -typedef s16 PaintingData; typedef uintptr_t BehaviorScript; -typedef u8 Texture; -typedef u16 ModelID; -typedef COLLISION_DATA_TYPE TerrainData; -typedef ROOM_DATA_TYPE RoomData; -typedef TerrainData Vec3t[3]; + +// -- Mario/Objects -- +typedef s32 MarioAction; +typedef s32 MarioActionArg; +typedef u32 MarioInteraction; +typedef u32 InteractType; +typedef u32 MarioStep; + +typedef s8 ObjAction8; +typedef s32 ObjAction32; +typedef s16 ColFlags; // -- Angle -- - typedef s16 Angle; typedef u16 UAngle; typedef s32 Angle32; typedef Angle Vec3a[3]; +// -- Collision -- +typedef ROOM_DATA_TYPE RoomData; +typedef COLLISION_DATA_TYPE Collision; // Collision is by default an s16, but it's best to have it match the type of COLLISION_DATA_TYPE +typedef Collision TerrainData; +typedef Collision Vec3t[3]; +typedef Collision SurfaceType; + +typedef f32 Normal; +typedef Normal Vec3n[3]; + +// -- Colors/Textures -- + +// 0.0f to 1.0f +typedef f32 ColorF; +typedef ColorF AlphaF; +typedef ColorF ColorRGBf[3]; +typedef ColorF ColorRGBAf[4]; +typedef ColorF ColorHSVf[3]; +typedef ColorF ColorHSVAf[4]; + +// 0 to 255 +typedef u8 Color; +typedef Color Alpha; +typedef Color ColorRGB[3]; +typedef Color ColorRGBA[4]; +typedef Color ColorHSV[3]; +typedef Color ColorHSVA[4]; + +// Formats: +typedef u32 CompositeColor; // to be casted to one of the following: +typedef u8 I4; // u4 +typedef u8 I8; +typedef u8 IA4; // u4, components u3 & u1 +typedef u8 IA8; +typedef u8 IA16Component; +typedef u16 IA16; +typedef u8 RGBA16Component; // components u5 & u1 +typedef u16 RGBA16; +typedef u32 RGBA16FILL; // RGBA16 but twice, Used for gDPSetFillColor +typedef u8 RGBA32Component; +typedef u32 RGBA32; +typedef u8 CI4; // u4 +typedef u8 CI8; +typedef Color Texture; + +typedef s16 TextureCoord; + +// -- Models -- + +typedef u8 ModelID8; +typedef u16 ModelID16; +typedef u32 ModelID32; + +// -- Animations -- +typedef s16 AnimValue; +typedef u16 AnimIndex; +typedef s16 AnimID16; +typedef s32 AnimID32; +typedef s16 AnimFrame16; +typedef s32 AnimFrame32; +typedef s32 AnimAccel; + +// -- Misc. Data -- + +typedef s16 DialogID16; +typedef s32 DialogID; +typedef s32 DrawingLayer; +typedef s16 PaintingData; +typedef s32 CameraTransitionAngle; +typedef s16 Movtex; +typedef s16 MacroObject; +typedef s16 Trajectory; +typedef u8 CutsceneID; + +typedef u8 uchar; + enum SpTaskState { SPTASK_STATE_NOT_STARTED, SPTASK_STATE_RUNNING, diff --git a/src/engine/level_script.c b/src/engine/level_script.c index c12b5509..bc2df6db 100644 --- a/src/engine/level_script.c +++ b/src/engine/level_script.c @@ -415,7 +415,7 @@ static void level_cmd_end_area(void) { } static void level_cmd_load_model_from_dl(void) { - ModelID model = CMD_GET(ModelID, 0xA); + ModelID16 model = CMD_GET(ModelID16, 0xA); s16 layer = CMD_GET(u16, 0x8); void *dl_ptr = CMD_GET(void *, 4); @@ -428,7 +428,7 @@ static void level_cmd_load_model_from_dl(void) { } static void level_cmd_load_model_from_geo(void) { - ModelID model = CMD_GET(ModelID, 2); + ModelID16 model = CMD_GET(ModelID16, 2); void *geo = CMD_GET(void *, 4); if (model < MODEL_ID_COUNT) { @@ -444,7 +444,7 @@ static void level_cmd_23(void) { f32 f; } arg2; - ModelID model = CMD_GET(s16, 2) & 0x0FFF; + ModelID16 model = CMD_GET(s16, 2) & 0x0FFF; s16 arg0H = ((u16)CMD_GET(s16, 2)) >> 12; void *arg1 = CMD_GET(void *, 4); // load an f32, but using an integer load instruction for some reason (hence the union) @@ -468,7 +468,7 @@ static void level_cmd_init_mario(void) { gMarioSpawnInfo->areaIndex = 0; gMarioSpawnInfo->behaviorArg = CMD_GET(u32, 4); gMarioSpawnInfo->behaviorScript = CMD_GET(void *, 8); - gMarioSpawnInfo->modelNode = gLoadedGraphNodes[CMD_GET(ModelID, 0x2)]; + gMarioSpawnInfo->modelNode = gLoadedGraphNodes[CMD_GET(ModelID16, 0x2)]; gMarioSpawnInfo->next = NULL; sCurrentCmd = CMD_NEXT; diff --git a/src/game/area.h b/src/game/area.h index 5ee2edad..74d08cff 100644 --- a/src/game/area.h +++ b/src/game/area.h @@ -118,6 +118,13 @@ struct WarpTransition /*0x04*/ struct WarpTransitionData data; }; +enum CurrSaveFileNum { + SAVE_FILE_NUM_A = 0x1, + SAVE_FILE_NUM_B, + SAVE_FILE_NUM_C, + SAVE_FILE_NUM_D, +}; + enum MenuOption { MENU_OPT_NONE, MENU_OPT_1, diff --git a/src/game/behavior_actions.c b/src/game/behavior_actions.c index 60f770e9..e3e2bcb1 100644 --- a/src/game/behavior_actions.c +++ b/src/game/behavior_actions.c @@ -59,7 +59,7 @@ struct TumblingBridgeParams { s16 numBridgeSections; s16 bridgeRelativeStartingXorZ; s16 platformWidth; - ModelID model; + ModelID16 model; const void *segAddr; }; @@ -67,7 +67,7 @@ struct ExclamationBoxContents { u8 id; u8 unk1; u8 behParams; - ModelID model; + ModelID16 model; const BehaviorScript *behavior; }; @@ -79,7 +79,7 @@ struct CheckerBoardPlatformInitPosition { struct OpenableGrill { s16 halfWidth; - ModelID modelID; + ModelID16 modelID; const Collision *collision; }; diff --git a/src/game/behaviors/animated_floor_switch.inc.c b/src/game/behaviors/animated_floor_switch.inc.c index a8577d17..27b87a4b 100644 --- a/src/game/behaviors/animated_floor_switch.inc.c +++ b/src/game/behaviors/animated_floor_switch.inc.c @@ -2,7 +2,7 @@ struct FloorSwitchTriggeredAnimationFrame { const void *collisionDataPtr; - ModelID model; + ModelID16 model; }; struct FloorSwitchTriggeredAnimationFrame sFloorSwitchTriggeredAnimationFrames[][5] = { diff --git a/src/game/behaviors/arrow_lift.inc.c b/src/game/behaviors/arrow_lift.inc.c index 127d3576..d867e316 100644 --- a/src/game/behaviors/arrow_lift.inc.c +++ b/src/game/behaviors/arrow_lift.inc.c @@ -13,7 +13,7 @@ * Move the arrow lift away from its original position. */ static s32 arrow_lift_move_away(void) { - s8 status = ARROW_LIFT_NOT_DONE_MOVING; + s8 doneMoving = FALSE; o->oMoveAngleYaw = o->oFaceAngleYaw - 0x4000; o->oVelY = 0; @@ -26,18 +26,18 @@ static s32 arrow_lift_move_away(void) { if (o->oArrowLiftDisplacement > 384) { o->oForwardVel = 0; o->oArrowLiftDisplacement = 384; - status = ARROW_LIFT_DONE_MOVING; + doneMoving = TRUE; } obj_move_xyz_using_fvel_and_yaw(o); - return status; + return doneMoving; } /** * Move the arrow lift back to its original position. */ static s8 arrow_lift_move_back(void) { - s8 status = ARROW_LIFT_NOT_DONE_MOVING; + s8 doneMoving = FALSE; o->oMoveAngleYaw = o->oFaceAngleYaw + 0x4000; o->oVelY = 0; @@ -48,11 +48,11 @@ static s8 arrow_lift_move_back(void) { if (o->oArrowLiftDisplacement < 0) { o->oForwardVel = 0; o->oArrowLiftDisplacement = 0; - status = ARROW_LIFT_DONE_MOVING; + doneMoving = TRUE; } obj_move_xyz_using_fvel_and_yaw(o); - return status; + return doneMoving; } /** @@ -71,7 +71,7 @@ void bhv_arrow_lift_loop(void) { break; case ARROW_LIFT_ACT_MOVING_AWAY: - if (arrow_lift_move_away() == ARROW_LIFT_DONE_MOVING) { + if (arrow_lift_move_away()) { o->oAction = ARROW_LIFT_ACT_MOVING_BACK; } @@ -80,7 +80,7 @@ void bhv_arrow_lift_loop(void) { case ARROW_LIFT_ACT_MOVING_BACK: // Wait 61 frames before moving (after stopping after moving forwards). if (o->oTimer > 60) { - if (arrow_lift_move_back() == ARROW_LIFT_DONE_MOVING) { + if (arrow_lift_move_back()) { o->oAction = ARROW_LIFT_ACT_IDLE; } } diff --git a/src/game/behaviors/bub.inc.c b/src/game/behaviors/bub.inc.c index 716e843d..a54536f8 100644 --- a/src/game/behaviors/bub.inc.c +++ b/src/game/behaviors/bub.inc.c @@ -4,13 +4,13 @@ // value. The later action functions seem to check Y distance to Mario and proceed // to do nothing, which indicates this behavior set is incomplete. -// TODO: Rename these. These have nothing to do with birds. void bub_spawner_act_0(void) { s32 i; s32 amt = o->oCheepCheepSpawnerSpawnAmount; if (o->oDistanceToMario < 1500.0f) { - for (i = 0; i < amt; i++) + for (i = 0; i < amt; i++) { spawn_object(o, MODEL_BUB, bhvBub); + } o->oAction = 1; } } diff --git a/src/game/behaviors/camera_lakitu.inc.c b/src/game/behaviors/camera_lakitu.inc.c index a848a2ce..60b10777 100644 --- a/src/game/behaviors/camera_lakitu.inc.c +++ b/src/game/behaviors/camera_lakitu.inc.c @@ -41,7 +41,7 @@ static void camera_lakitu_intro_act_trigger_cutscene(void) { */ static void camera_lakitu_intro_act_spawn_cloud(void) { if (set_mario_npc_dialog(MARIO_DIALOG_LOOK_UP) == MARIO_DIALOG_STATUS_SPEAK) { - o->oAction = CAMERA_LAKITU_INTRO_ACT_UNK2; + o->oAction = CAMERA_LAKITU_INTRO_ACT_SHOW_DIALOG; o->oPosX = 1800.0f; o->oPosY = 2400.0f; @@ -145,7 +145,7 @@ void bhv_camera_lakitu_update(void) { case CAMERA_LAKITU_INTRO_ACT_SPAWN_CLOUD: camera_lakitu_intro_act_spawn_cloud(); break; - case CAMERA_LAKITU_INTRO_ACT_UNK2: + case CAMERA_LAKITU_INTRO_ACT_SHOW_DIALOG: camera_lakitu_intro_act_show_dialog(); break; } diff --git a/src/game/behaviors/coffin.inc.c b/src/game/behaviors/coffin.inc.c index 8bc95a1f..081a6869 100644 --- a/src/game/behaviors/coffin.inc.c +++ b/src/game/behaviors/coffin.inc.c @@ -57,19 +57,17 @@ void bhv_coffin_spawner_loop(void) { } /** - * The main action for the coffins. Coffins with COFFIN_BP_STATIC skip the behavior, while + * The main action for the coffins. Coffins with COFFIN_BP_STATIONARY skip the behavior, while * the other coffins will enter a standing action when Mario is near. * Also controls laying the coffin down after it has stood up. */ void coffin_act_idle(void) { f32 yawCos; - f32 yawSin; - f32 dx; - f32 dz; - f32 distForwards; - f32 distSideways; + // f32 yawSin; + f32 dx, dz; + f32 distForwards, distSideways; - if (o->oBehParams2ndByte != COFFIN_BP_STATIC) { + if (o->oBehParams2ndByte != COFFIN_BP_STATIONARY) { // Lay down if standing if (o->oFaceAnglePitch != 0) { o->oAngleVelPitch = approach_s16_symmetric(o->oAngleVelPitch, -2000, 200); @@ -91,13 +89,13 @@ void coffin_act_idle(void) { } else { // Yaw never changes and is aligned, so yawCos = 1 or -1, yawSin = 0 yawCos = coss(o->oFaceAngleYaw); - yawSin = sins(o->oFaceAngleYaw); + // yawSin = sins(o->oFaceAngleYaw); dx = gMarioObject->oPosX - o->oPosX; dz = gMarioObject->oPosZ - o->oPosZ; - distForwards = dx * yawCos + dz * yawSin; - distSideways = dz * yawCos - dx * yawSin; + distForwards = dx * yawCos; // + dz * yawSin; + distSideways = dz * yawCos; // - dx * yawSin; // This checks a box around the coffin and if it has been a bit since it stood up. // It also checks in the case Mario is squished, so he doesn't get permanently squished. diff --git a/src/game/behaviors/koopa.inc.c b/src/game/behaviors/koopa.inc.c index 66376f64..14417a76 100644 --- a/src/game/behaviors/koopa.inc.c +++ b/src/game/behaviors/koopa.inc.c @@ -433,13 +433,6 @@ static void koopa_unshelled_act_dive(void) { end:; } -/** - * Unused action function. - */ -static void koopa_unshelled_act_unused3(void) { - cur_obj_init_anim_extend(0); -} - /** * Update function for koopa after losing his shell. */ @@ -455,9 +448,9 @@ static void koopa_unshelled_update(void) { case KOOPA_UNSHELLED_ACT_LYING: koopa_unshelled_act_dive(); break; - case KOOPA_UNSHELLED_ACT_UNUSED3: - koopa_unshelled_act_unused3(); - break; + // case KOOPA_UNSHELLED_ACT_UNUSED3: + // cur_obj_init_anim_extend(KOOPA_ANIM_SHELLED_UNUSED3); + // break; } obj_handle_attacks(&sKoopaHitbox, o->oAction, sKoopaUnshelledAttackHandlers); diff --git a/src/game/behaviors/purple_switch.inc.c b/src/game/behaviors/purple_switch.inc.c index ca22f816..135960aa 100644 --- a/src/game/behaviors/purple_switch.inc.c +++ b/src/game/behaviors/purple_switch.inc.c @@ -12,12 +12,12 @@ void bhv_purple_switch_loop(void) { * Set the switch's model and scale. If Mario is standing near the * switch's middle section, transition to the pressed state. */ - case PURPLE_SWITCH_IDLE: + case PURPLE_SWITCH_ACT_IDLE: cur_obj_set_model(MODEL_PURPLE_SWITCH); cur_obj_scale(1.5f); if (gMarioObject->platform == o && !(gMarioStates[0].action & MARIO_NO_PURPLE_SWITCH)) { if (lateral_dist_between_objects(o, gMarioObject) < 127.5f) { - o->oAction = PURPLE_SWITCH_PRESSED; + o->oAction = PURPLE_SWITCH_ACT_PRESSED; } } break; @@ -25,11 +25,11 @@ void bhv_purple_switch_loop(void) { * Collapse the switch downward, play a sound, and shake the screen. * Immediately transition to the ticking state. */ - case PURPLE_SWITCH_PRESSED: + case PURPLE_SWITCH_ACT_PRESSED: cur_obj_scale_over_time(2, 3, 1.5f, 0.2f); if (o->oTimer == 3) { cur_obj_play_sound_2(SOUND_GENERAL2_PURPLE_SWITCH); - o->oAction = PURPLE_SWITCH_TICKING; + o->oAction = PURPLE_SWITCH_ACT_TICKING; cur_obj_shake_screen(SHAKE_POS_SMALL); #if ENABLE_RUMBLE queue_rumble_data(5, 80); @@ -40,7 +40,7 @@ void bhv_purple_switch_loop(void) { * Play a continuous ticking sound that gets faster when time is almost * up. When time is up, move to a waiting-while-pressed state. */ - case PURPLE_SWITCH_TICKING: + case PURPLE_SWITCH_ACT_TICKING: if (o->oBehParams2ndByte != 0) { if (o->oBehParams2ndByte == 1 && gMarioObject->platform != o) { o->oAction++; @@ -51,7 +51,7 @@ void bhv_purple_switch_loop(void) { play_sound(SOUND_GENERAL2_SWITCH_TICK_SLOW, gGlobalSoundSource); } if (o->oTimer > 400) { - o->oAction = PURPLE_SWITCH_WAIT_FOR_MARIO_TO_GET_OFF; + o->oAction = PURPLE_SWITCH_ACT_WAIT_FOR_MARIO_TO_GET_OFF; } } } @@ -60,10 +60,10 @@ void bhv_purple_switch_loop(void) { * Make the switch look unpressed again, and transition back to the * idle state. */ - case PURPLE_SWITCH_UNPRESSED: + case PURPLE_SWITCH_ACT_UNPRESSED: cur_obj_scale_over_time(2, 3, 0.2f, 1.5f); if (o->oTimer == 3) { - o->oAction = PURPLE_SWITCH_IDLE; + o->oAction = PURPLE_SWITCH_ACT_IDLE; } break; /** @@ -71,9 +71,9 @@ void bhv_purple_switch_loop(void) { * him to get off the switch, and when he does so, transition to the * unpressed state. */ - case PURPLE_SWITCH_WAIT_FOR_MARIO_TO_GET_OFF: + case PURPLE_SWITCH_ACT_WAIT_FOR_MARIO_TO_GET_OFF: if (!cur_obj_is_mario_on_platform()) { - o->oAction = PURPLE_SWITCH_UNPRESSED; + o->oAction = PURPLE_SWITCH_ACT_UNPRESSED; } break; } diff --git a/src/game/behaviors/sl_walking_penguin.inc.c b/src/game/behaviors/sl_walking_penguin.inc.c index acd2ef16..6840ec37 100644 --- a/src/game/behaviors/sl_walking_penguin.inc.c +++ b/src/game/behaviors/sl_walking_penguin.inc.c @@ -98,7 +98,7 @@ void bhv_sl_walking_penguin_loop(void) { cur_obj_move_standard(-78); if (!cur_obj_hide_if_mario_far_away_y(1000.0f)) - play_penguin_walking_sound(PENGUIN_WALK_BIG); + play_penguin_walking_sound(PENGUIN_SOUND_WALK_BIG); // Adjust the position to get a point better lined up with the visual model, for stopping the wind. // The new point is 60 units behind the penguin and 100 units perpedicularly, away from the snowman. diff --git a/src/game/behaviors/tuxie.inc.c b/src/game/behaviors/tuxie.inc.c index f77fb605..b9264134 100644 --- a/src/game/behaviors/tuxie.inc.c +++ b/src/game/behaviors/tuxie.inc.c @@ -3,10 +3,11 @@ void play_penguin_walking_sound(s32 walk) { s32 sound; if (o->oSoundStateID == 0) { - if (walk == PENGUIN_WALK_BABY) + if (walk == PENGUIN_SOUND_WALK_BABY) { sound = SOUND_OBJ_BABY_PENGUIN_WALK; - else // PENGUIN_WALK_BIG + } else { // PENGUIN_SOUND_WALK_BIG sound = SOUND_OBJ_BIG_PENGUIN_WALK; + } set_obj_anim_with_accel_and_sound(1, 11, sound); } } @@ -133,7 +134,7 @@ void bhv_tuxies_mother_loop(void) { cur_obj_update_floor_and_walls(); cur_obj_call_action_function(sTuxiesMotherActions); cur_obj_move_standard(-78); - play_penguin_walking_sound(PENGUIN_WALK_BIG); + play_penguin_walking_sound(PENGUIN_SOUND_WALK_BIG); o->oInteractStatus = 0; } @@ -244,7 +245,7 @@ void small_penguin_free_actions(void) { cur_obj_update_floor_and_walls(); cur_obj_call_action_function(sSmallPenguinActions); cur_obj_move_standard(-78); - play_penguin_walking_sound(PENGUIN_WALK_BABY); + play_penguin_walking_sound(PENGUIN_SOUND_WALK_BABY); } void bhv_small_penguin_loop(void) { diff --git a/src/game/behaviors/tweester.inc.c b/src/game/behaviors/tweester.inc.c index d1c7b158..b6d334ab 100644 --- a/src/game/behaviors/tweester.inc.c +++ b/src/game/behaviors/tweester.inc.c @@ -72,7 +72,7 @@ void tweester_act_chase(void) { cur_obj_play_sound_1(SOUND_ENV_WIND1); if (cur_obj_lateral_dist_from_mario_to_home() < activationRadius - && o->oSubAction == TWEESTER_SUB_ACT_CHASE) { + && o->oSubAction == TWEESTER_SUB_ACT_CHASE_MARIO) { o->oForwardVel = 20.0f; cur_obj_rotate_yaw_toward(o->oAngleToMario, 0x200); diff --git a/src/game/macro_special_objects.c b/src/game/macro_special_objects.c index 3ee3a1cc..f75e82ef 100644 --- a/src/game/macro_special_objects.c +++ b/src/game/macro_special_objects.c @@ -80,7 +80,7 @@ void spawn_macro_abs_special(s32 model, const BehaviorScript *behavior, s16 x, s UNUSED static void spawn_macro_coin_unknown(const BehaviorScript *behavior, s16 a1[]) { struct Object *obj; - ModelID model = bhvYellowCoin == behavior ? MODEL_YELLOW_COIN : MODEL_NONE; + ModelID16 model = bhvYellowCoin == behavior ? MODEL_YELLOW_COIN : MODEL_NONE; obj = spawn_object_abs_with_rot(&gMacroObjectDefaultParent, 0, model, behavior, a1[1], a1[2], a1[3], 0, convert_rotation(a1[0]), 0); @@ -92,7 +92,7 @@ UNUSED static void spawn_macro_coin_unknown(const BehaviorScript *behavior, s16 struct LoadedPreset { /*0x00*/ const BehaviorScript *behavior; /*0x04*/ s16 param; // huh? why does the below function swap these.. just use the struct.. - /*0x06*/ ModelID model; + /*0x06*/ ModelID16 model; }; #define MACRO_OBJ_Y_ROT 0 @@ -237,7 +237,7 @@ void spawn_special_objects(s32 areaIndex, TerrainData **specialObjList) { s16 y; s16 z; s16 extraParams[4]; - ModelID model; + ModelID16 model; u8 type; u8 presetID; u8 defaultParam; diff --git a/src/game/object_helpers.h b/src/game/object_helpers.h index 0b79ce2c..aeef86ce 100644 --- a/src/game/object_helpers.h +++ b/src/game/object_helpers.h @@ -46,7 +46,7 @@ struct SpawnParticlesInfo { /*0x00*/ s8 behParam; /*0x01*/ s8 count; - /*0x02*/ ModelID model; + /*0x02*/ ModelID16 model; /*0x03*/ s8 offsetY; /*0x04*/ s8 forwardVelBase; /*0x05*/ s8 forwardVelRange; diff --git a/src/game/object_list_processor.c b/src/game/object_list_processor.c index 62c21907..70847dd1 100644 --- a/src/game/object_list_processor.c +++ b/src/game/object_list_processor.c @@ -188,7 +188,7 @@ s8 sObjectListUpdateOrder[] = { OBJ_LIST_SPAWNER, struct ParticleProperties { u32 particleFlag; u32 activeParticleFlag; - ModelID model; + ModelID16 model; const BehaviorScript *behavior; }; diff --git a/src/menu/file_select.c b/src/menu/file_select.c index 1fea9b24..d1d359a9 100644 --- a/src/menu/file_select.c +++ b/src/menu/file_select.c @@ -1069,8 +1069,7 @@ void load_score_menu_from_submenu(s16 prevMenuButtonID, struct Object *sourceBut // If the previous button is in default state if (sMainMenuButtons[prevMenuButtonID]->oMenuButtonState == MENU_BUTTON_STATE_DEFAULT) { // Hide buttons of corresponding button menu groups - if (prevMenuButtonID == MENU_BUTTON_SCORE) //! Not possible, this is checking if the score menu was opened from the score menu! - { + if (prevMenuButtonID == MENU_BUTTON_SCORE) { //! Not possible, this is checking if the score menu was opened from the score menu! for (buttonID = MENU_BUTTON_SCORE_MIN; buttonID < MENU_BUTTON_SCORE_MAX; buttonID++) { obj_mark_for_deletion(sMainMenuButtons[buttonID]); } @@ -1114,8 +1113,7 @@ void load_copy_menu_from_submenu(s16 prevMenuButtonID, struct Object *sourceButt obj_mark_for_deletion(sMainMenuButtons[buttonID]); } } - if (prevMenuButtonID == MENU_BUTTON_COPY) //! Not possible, this is checking if the copy menu was opened from the copy menu! - { + if (prevMenuButtonID == MENU_BUTTON_COPY) { //! Not possible, this is checking if the copy menu was opened from the copy menu! for (buttonID = MENU_BUTTON_COPY_MIN; buttonID < MENU_BUTTON_COPY_MAX; buttonID++) { obj_mark_for_deletion(sMainMenuButtons[buttonID]); } @@ -1159,8 +1157,7 @@ void load_erase_menu_from_submenu(s16 prevMenuButtonID, struct Object *sourceBut obj_mark_for_deletion(sMainMenuButtons[buttonID]); } } - if (prevMenuButtonID == MENU_BUTTON_ERASE) //! Not possible, this is checking if the erase menu was opened from the erase menu! - { + if (prevMenuButtonID == MENU_BUTTON_ERASE) { //! Not possible, this is checking if the erase menu was opened from the erase menu! for (buttonID = MENU_BUTTON_ERASE_MIN; buttonID < MENU_BUTTON_ERASE_MAX; buttonID++) { obj_mark_for_deletion(sMainMenuButtons[buttonID]); } @@ -1343,115 +1340,54 @@ void check_main_menu_clicked_buttons(void) { */ void bhv_menu_button_manager_loop(void) { switch (sSelectedButtonID) { - case MENU_BUTTON_NONE: - check_main_menu_clicked_buttons(); - break; - case MENU_BUTTON_PLAY_FILE_A: - load_main_menu_save_file(sMainMenuButtons[MENU_BUTTON_PLAY_FILE_A], 1); - break; - case MENU_BUTTON_PLAY_FILE_B: - load_main_menu_save_file(sMainMenuButtons[MENU_BUTTON_PLAY_FILE_B], 2); - break; - case MENU_BUTTON_PLAY_FILE_C: - load_main_menu_save_file(sMainMenuButtons[MENU_BUTTON_PLAY_FILE_C], 3); - break; - case MENU_BUTTON_PLAY_FILE_D: - load_main_menu_save_file(sMainMenuButtons[MENU_BUTTON_PLAY_FILE_D], 4); - break; - case MENU_BUTTON_SCORE: - check_score_menu_clicked_buttons(sMainMenuButtons[MENU_BUTTON_SCORE]); - break; - case MENU_BUTTON_COPY: - check_copy_menu_clicked_buttons(sMainMenuButtons[MENU_BUTTON_COPY]); - break; - case MENU_BUTTON_ERASE: - check_erase_menu_clicked_buttons(sMainMenuButtons[MENU_BUTTON_ERASE]); - break; + case MENU_BUTTON_NONE: check_main_menu_clicked_buttons(); break; - case MENU_BUTTON_SCORE_FILE_A: - exit_score_file_to_score_menu(sMainMenuButtons[MENU_BUTTON_SCORE_FILE_A], MENU_BUTTON_SCORE); - break; - case MENU_BUTTON_SCORE_FILE_B: - exit_score_file_to_score_menu(sMainMenuButtons[MENU_BUTTON_SCORE_FILE_B], MENU_BUTTON_SCORE); - break; - case MENU_BUTTON_SCORE_FILE_C: - exit_score_file_to_score_menu(sMainMenuButtons[MENU_BUTTON_SCORE_FILE_C], MENU_BUTTON_SCORE); - break; - case MENU_BUTTON_SCORE_FILE_D: - exit_score_file_to_score_menu(sMainMenuButtons[MENU_BUTTON_SCORE_FILE_D], MENU_BUTTON_SCORE); - break; - case MENU_BUTTON_SCORE_RETURN: - return_to_main_menu(MENU_BUTTON_SCORE, sMainMenuButtons[MENU_BUTTON_SCORE_RETURN]); - break; - case MENU_BUTTON_SCORE_COPY_FILE: - load_copy_menu_from_submenu(MENU_BUTTON_SCORE, - sMainMenuButtons[MENU_BUTTON_SCORE_COPY_FILE]); - break; - case MENU_BUTTON_SCORE_ERASE_FILE: - load_erase_menu_from_submenu(MENU_BUTTON_SCORE, - sMainMenuButtons[MENU_BUTTON_SCORE_ERASE_FILE]); - break; + case MENU_BUTTON_PLAY_FILE_A: load_main_menu_save_file(sMainMenuButtons[MENU_BUTTON_PLAY_FILE_A], 1); break; + case MENU_BUTTON_PLAY_FILE_B: load_main_menu_save_file(sMainMenuButtons[MENU_BUTTON_PLAY_FILE_B], 2); break; + case MENU_BUTTON_PLAY_FILE_C: load_main_menu_save_file(sMainMenuButtons[MENU_BUTTON_PLAY_FILE_C], 3); break; + case MENU_BUTTON_PLAY_FILE_D: load_main_menu_save_file(sMainMenuButtons[MENU_BUTTON_PLAY_FILE_D], 4); break; - case MENU_BUTTON_COPY_FILE_A: - break; - case MENU_BUTTON_COPY_FILE_B: - break; - case MENU_BUTTON_COPY_FILE_C: - break; - case MENU_BUTTON_COPY_FILE_D: - break; - case MENU_BUTTON_COPY_RETURN: - return_to_main_menu(MENU_BUTTON_COPY, sMainMenuButtons[MENU_BUTTON_COPY_RETURN]); - break; - case MENU_BUTTON_COPY_CHECK_SCORE: - load_score_menu_from_submenu(MENU_BUTTON_COPY, - sMainMenuButtons[MENU_BUTTON_COPY_CHECK_SCORE]); - break; - case MENU_BUTTON_COPY_ERASE_FILE: - load_erase_menu_from_submenu(MENU_BUTTON_COPY, - sMainMenuButtons[MENU_BUTTON_COPY_ERASE_FILE]); - break; + case MENU_BUTTON_SCORE: check_score_menu_clicked_buttons(sMainMenuButtons[MENU_BUTTON_SCORE]); break; + case MENU_BUTTON_COPY: check_copy_menu_clicked_buttons (sMainMenuButtons[MENU_BUTTON_COPY ]); break; + case MENU_BUTTON_ERASE: check_erase_menu_clicked_buttons(sMainMenuButtons[MENU_BUTTON_ERASE]); break; - case MENU_BUTTON_ERASE_FILE_A: - break; - case MENU_BUTTON_ERASE_FILE_B: - break; - case MENU_BUTTON_ERASE_FILE_C: - break; - case MENU_BUTTON_ERASE_FILE_D: - break; - case MENU_BUTTON_ERASE_RETURN: - return_to_main_menu(MENU_BUTTON_ERASE, sMainMenuButtons[MENU_BUTTON_ERASE_RETURN]); - break; - case MENU_BUTTON_ERASE_CHECK_SCORE: - load_score_menu_from_submenu(MENU_BUTTON_ERASE, - sMainMenuButtons[MENU_BUTTON_ERASE_CHECK_SCORE]); - break; - case MENU_BUTTON_ERASE_COPY_FILE: - load_copy_menu_from_submenu(MENU_BUTTON_ERASE, - sMainMenuButtons[MENU_BUTTON_ERASE_COPY_FILE]); - break; + case MENU_BUTTON_SCORE_FILE_A: exit_score_file_to_score_menu(sMainMenuButtons[MENU_BUTTON_SCORE_FILE_A], MENU_BUTTON_SCORE); break; + case MENU_BUTTON_SCORE_FILE_B: exit_score_file_to_score_menu(sMainMenuButtons[MENU_BUTTON_SCORE_FILE_B], MENU_BUTTON_SCORE); break; + case MENU_BUTTON_SCORE_FILE_C: exit_score_file_to_score_menu(sMainMenuButtons[MENU_BUTTON_SCORE_FILE_C], MENU_BUTTON_SCORE); break; + case MENU_BUTTON_SCORE_FILE_D: exit_score_file_to_score_menu(sMainMenuButtons[MENU_BUTTON_SCORE_FILE_D], MENU_BUTTON_SCORE); break; - case MENU_BUTTON_SOUND_MODE: - check_sound_mode_menu_clicked_buttons(sMainMenuButtons[MENU_BUTTON_SOUND_MODE]); - break; + case MENU_BUTTON_SCORE_RETURN: return_to_main_menu (MENU_BUTTON_SCORE, sMainMenuButtons[MENU_BUTTON_SCORE_RETURN ]); break; + case MENU_BUTTON_SCORE_COPY_FILE: load_copy_menu_from_submenu (MENU_BUTTON_SCORE, sMainMenuButtons[MENU_BUTTON_SCORE_COPY_FILE ]); break; + case MENU_BUTTON_SCORE_ERASE_FILE: load_erase_menu_from_submenu(MENU_BUTTON_SCORE, sMainMenuButtons[MENU_BUTTON_SCORE_ERASE_FILE]); break; - #if MULTILANG - case MENU_BUTTON_LANGUAGE_RETURN: - return_to_main_menu(MENU_BUTTON_SOUND_MODE, sMainMenuButtons[MENU_BUTTON_LANGUAGE_RETURN]); - break; - #endif + case MENU_BUTTON_COPY_FILE_A: break; + case MENU_BUTTON_COPY_FILE_B: break; + case MENU_BUTTON_COPY_FILE_C: break; + case MENU_BUTTON_COPY_FILE_D: break; + + case MENU_BUTTON_COPY_RETURN: return_to_main_menu (MENU_BUTTON_COPY, sMainMenuButtons[MENU_BUTTON_COPY_RETURN ]); break; + case MENU_BUTTON_COPY_CHECK_SCORE: load_score_menu_from_submenu(MENU_BUTTON_COPY, sMainMenuButtons[MENU_BUTTON_COPY_CHECK_SCORE]); break; + case MENU_BUTTON_COPY_ERASE_FILE: load_erase_menu_from_submenu(MENU_BUTTON_COPY, sMainMenuButtons[MENU_BUTTON_COPY_ERASE_FILE ]); break; + + case MENU_BUTTON_ERASE_FILE_A: break; + case MENU_BUTTON_ERASE_FILE_B: break; + case MENU_BUTTON_ERASE_FILE_C: break; + case MENU_BUTTON_ERASE_FILE_D: break; + + case MENU_BUTTON_ERASE_RETURN: return_to_main_menu (MENU_BUTTON_ERASE, sMainMenuButtons[MENU_BUTTON_ERASE_RETURN ]); break; + case MENU_BUTTON_ERASE_CHECK_SCORE: load_score_menu_from_submenu(MENU_BUTTON_ERASE, sMainMenuButtons[MENU_BUTTON_ERASE_CHECK_SCORE]); break; + case MENU_BUTTON_ERASE_COPY_FILE: load_copy_menu_from_submenu (MENU_BUTTON_ERASE, sMainMenuButtons[MENU_BUTTON_ERASE_COPY_FILE ]); break; + + case MENU_BUTTON_SOUND_MODE: check_sound_mode_menu_clicked_buttons(sMainMenuButtons[MENU_BUTTON_SOUND_MODE]); break; + +#if MULTILANG + case MENU_BUTTON_LANGUAGE_RETURN: return_to_main_menu(MENU_BUTTON_SOUND_MODE, sMainMenuButtons[MENU_BUTTON_LANGUAGE_RETURN]); break; +#endif // STEREO, MONO and HEADSET buttons are undefined so they can be selected without // exiting the Options menu, as a result they added a return button - case MENU_BUTTON_STEREO: - return_to_main_menu(MENU_BUTTON_SOUND_MODE, sMainMenuButtons[MENU_BUTTON_STEREO]); - break; - case MENU_BUTTON_MONO: - return_to_main_menu(MENU_BUTTON_SOUND_MODE, sMainMenuButtons[MENU_BUTTON_MONO]); - break; - case MENU_BUTTON_HEADSET: - return_to_main_menu(MENU_BUTTON_SOUND_MODE, sMainMenuButtons[MENU_BUTTON_HEADSET]); - break; + case MENU_BUTTON_STEREO: return_to_main_menu(MENU_BUTTON_SOUND_MODE, sMainMenuButtons[MENU_BUTTON_STEREO ]); break; + case MENU_BUTTON_MONO: return_to_main_menu(MENU_BUTTON_SOUND_MODE, sMainMenuButtons[MENU_BUTTON_MONO ]); break; + case MENU_BUTTON_HEADSET: return_to_main_menu(MENU_BUTTON_SOUND_MODE, sMainMenuButtons[MENU_BUTTON_HEADSET]); break; } sClickPos[0] = -10000; @@ -1494,12 +1430,8 @@ void handle_controller_cursor_input(void) { s16 rawStickY = gPlayer3Controller->rawStickY; // Handle deadzone - if (rawStickY > -2 && rawStickY < 2) { - rawStickY = 0; - } - if (rawStickX > -2 && rawStickX < 2) { - rawStickX = 0; - } + if (rawStickY > -2 && rawStickY < 2) rawStickY = 0; + if (rawStickX > -2 && rawStickX < 2) rawStickX = 0; // Move cursor sCursorPos[0] += rawStickX / 8; @@ -1595,10 +1527,9 @@ s32 update_text_fade_out(void) { void print_save_file_star_count(s8 fileIndex, s16 x, s16 y) { u8 starCountText[4]; s8 offset = 0; - s16 starCount; if (save_file_exists(fileIndex) == TRUE) { - starCount = save_file_get_total_star_count(fileIndex, COURSE_MIN - 1, COURSE_MAX - 1); + s16 starCount = save_file_get_total_star_count(fileIndex, COURSE_MIN - 1, COURSE_MAX - 1); // Print star icon print_hud_lut_string(HUD_LUT_GLOBAL, x, y, starIcon); // If star count is less than 100, print x icon and move @@ -1617,13 +1548,13 @@ void print_save_file_star_count(s8 fileIndex, s16 x, s16 y) { } #define SELECT_FILE_X 93 - #define SCORE_X 52 - #define COPY_X 117 - #define ERASE_X 177 + #define SCORE_X 52 + #define COPY_X 117 + #define ERASE_X 177 #define SOUNDMODE_X1 sSoundTextX - #define SAVEFILE_X1 92 - #define SAVEFILE_X2 209 - #define MARIOTEXT_X1 92 + #define SAVEFILE_X1 92 + #define SAVEFILE_X2 209 + #define MARIOTEXT_X1 92 #define MARIOTEXT_X2 207 /** @@ -2096,7 +2027,7 @@ void print_sound_mode_menu_strings(void) { SOUND_HUD_Y, LANGUAGE_ARRAY(textSoundModes[mode])); } - #if MULTILANG +#if MULTILANG // In EU, print language mode names for (mode = 0, textX = 90; mode < 3; textX += 70, mode++) { if (mode == LANGUAGE_FUNCTION) { @@ -2111,7 +2042,7 @@ void print_sound_mode_menu_strings(void) { gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); print_generic_string(182, 29, LANGUAGE_ARRAY(textReturn)); - #endif +#endif gSPDisplayList(gDisplayListHead++, dl_ia_text_end); } @@ -2126,8 +2057,7 @@ void print_score_file_castle_secret_stars(s8 fileIndex, s16 x, s16 y) { // Print "[star] x" print_menu_generic_string(x, y, textStarX); // Print number of castle secret stars - int_to_str(save_file_get_total_star_count(fileIndex, COURSE_BONUS_STAGES - 1, COURSE_MAX - 1), - secretStarsText); + int_to_str(save_file_get_total_star_count(fileIndex, COURSE_BONUS_STAGES - 1, COURSE_MAX - 1), secretStarsText); print_menu_generic_string(x + 16, y, secretStarsText); } @@ -2195,24 +2125,25 @@ void print_score_file_star_score(s8 fileIndex, s16 courseIndex, s16 x, s16 y) { print_menu_generic_string(x, y, starScoreText); } - #define MARIO_X 25 - #define FILE_LETTER_X 95 - #define LEVEL_NUM_PAD 3 + #define MARIO_X 25 + #define FILE_LETTER_X 95 + #define LEVEL_NUM_PAD 3 #define SECRET_STARS_PAD 6 - #define LEVEL_NAME_X 23 - #define STAR_SCORE_X 171 - #define MYSCORE_X 238 - #define HISCORE_X 231 + #define LEVEL_NAME_X 23 + #define STAR_SCORE_X 171 + #define MYSCORE_X 238 + #define HISCORE_X 231 /** * Prints save file score strings that shows when a save file is chosen inside the score menu. */ void print_save_file_scores(s8 fileIndex) { - unsigned char textMario[] = { TEXT_MARIO }; - unsigned char textHiScore[] = { TEXT_HI_SCORE }; - unsigned char textMyScore[] = { TEXT_MY_SCORE }; - unsigned char textFileLetter[] = { TEXT_ZERO }; + u32 i; + unsigned char textMario[] = { TEXT_MARIO }; + unsigned char textHiScore[] = { TEXT_HI_SCORE }; + unsigned char textMyScore[] = { TEXT_MY_SCORE }; + unsigned char textFileLetter[] = { TEXT_ZERO }; void **levelNameTable = segmented_to_virtual(languageTable[gInGameLanguage][1]); textFileLetter[0] = fileIndex + ASCII_TO_DIALOG('A'); // get letter of file selected @@ -2230,31 +2161,11 @@ void print_save_file_scores(s8 fileIndex) { gSPDisplayList(gDisplayListHead++, dl_menu_ia8_text_begin); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, sTextBaseAlpha); -//! Huge print list, for loops exist for a reason! -#define PRINT_COURSE_SCORES(courseIndex, pad) \ - print_menu_generic_string(LEVEL_NAME_X + (pad * LEVEL_NUM_PAD), 23 + 12 * courseIndex, \ - segmented_to_virtual(levelNameTable[courseIndex - 1])); \ - print_score_file_star_score(fileIndex, courseIndex - 1, STAR_SCORE_X, 23 + 12 * courseIndex); \ - print_score_file_course_coin_score(fileIndex, courseIndex - 1, 213, 23 + 12 * courseIndex); - - // Course values are indexed, from Bob-omb Battlefield to Rainbow Ride - PRINT_COURSE_SCORES(COURSE_BOB, 1) - PRINT_COURSE_SCORES(COURSE_WF, 1) - PRINT_COURSE_SCORES(COURSE_JRB, 1) - PRINT_COURSE_SCORES(COURSE_CCM, 1) - PRINT_COURSE_SCORES(COURSE_BBH, 1) - PRINT_COURSE_SCORES(COURSE_HMC, 1) - PRINT_COURSE_SCORES(COURSE_LLL, 1) - PRINT_COURSE_SCORES(COURSE_SSL, 1) - PRINT_COURSE_SCORES(COURSE_DDD, 1) - PRINT_COURSE_SCORES(COURSE_SL, 0) - PRINT_COURSE_SCORES(COURSE_WDW, 0) - PRINT_COURSE_SCORES(COURSE_TTM, 0) - PRINT_COURSE_SCORES(COURSE_THI, 0) - PRINT_COURSE_SCORES(COURSE_TTC, 0) - PRINT_COURSE_SCORES(COURSE_RR, 0) - -#undef PRINT_COURSE_SCORES + for ((i = 0); (i < COURSE_STAGES_MAX); (i++)) { + print_menu_generic_string((LEVEL_NAME_X + ((i < 9) * LEVEL_NUM_PAD)), (23 + (12 * (i + 1))), segmented_to_virtual(levelNameTable[i])); + print_score_file_star_score( fileIndex, i, STAR_SCORE_X, (23 + (12 * (i + 1)))); + print_score_file_course_coin_score( fileIndex, i, 213, (23 + (12 * (i + 1)))); + } // Print castle secret stars text print_menu_generic_string(LEVEL_NAME_X + SECRET_STARS_PAD, 23 + 12 * 16, @@ -2278,38 +2189,19 @@ void print_save_file_scores(s8 fileIndex) { void print_file_select_strings(void) { create_dl_ortho_matrix(); switch (sSelectedButtonID) { - case MENU_BUTTON_NONE: - print_main_menu_strings(); - break; - case MENU_BUTTON_SCORE: - print_score_menu_strings(); - sScoreFileCoinScoreMode = 0; - break; - case MENU_BUTTON_COPY: - print_copy_menu_strings(); - break; - case MENU_BUTTON_ERASE: - print_erase_menu_strings(); - break; - case MENU_BUTTON_SCORE_FILE_A: - print_save_file_scores(SAVE_FILE_A); - break; - case MENU_BUTTON_SCORE_FILE_B: - print_save_file_scores(SAVE_FILE_B); - break; - case MENU_BUTTON_SCORE_FILE_C: - print_save_file_scores(SAVE_FILE_C); - break; - case MENU_BUTTON_SCORE_FILE_D: - print_save_file_scores(SAVE_FILE_D); - break; - case MENU_BUTTON_SOUND_MODE: - print_sound_mode_menu_strings(); - break; + case MENU_BUTTON_NONE: print_main_menu_strings(); break; + case MENU_BUTTON_SCORE: print_score_menu_strings(); sScoreFileCoinScoreMode = 0; break; + case MENU_BUTTON_COPY: print_copy_menu_strings(); break; + case MENU_BUTTON_ERASE: print_erase_menu_strings(); break; + case MENU_BUTTON_SCORE_FILE_A: print_save_file_scores(SAVE_FILE_A); break; + case MENU_BUTTON_SCORE_FILE_B: print_save_file_scores(SAVE_FILE_B); break; + case MENU_BUTTON_SCORE_FILE_C: print_save_file_scores(SAVE_FILE_C); break; + case MENU_BUTTON_SCORE_FILE_D: print_save_file_scores(SAVE_FILE_D); break; + case MENU_BUTTON_SOUND_MODE: print_sound_mode_menu_strings(); break; } // If all 4 save file exists, define true to sAllFilesExist to prevent more copies in copy menu - if (save_file_exists(SAVE_FILE_A) == TRUE && save_file_exists(SAVE_FILE_B) == TRUE && - save_file_exists(SAVE_FILE_C) == TRUE && save_file_exists(SAVE_FILE_D) == TRUE) { + if (save_file_exists(SAVE_FILE_A) && save_file_exists(SAVE_FILE_B) && + save_file_exists(SAVE_FILE_C) && save_file_exists(SAVE_FILE_D)) { sAllFilesExist = TRUE; } else { sAllFilesExist = FALSE; @@ -2342,39 +2234,27 @@ Gfx *geo_file_select_strings_and_menu_cursor(s32 callContext, UNUSED struct Grap s32 lvl_init_menu_values_and_cursor_pos(UNUSED s32 arg, UNUSED s32 unused) { sSelectedButtonID = MENU_BUTTON_NONE; sCurrentMenuLevel = MENU_LAYER_MAIN; - sTextBaseAlpha = 0; + sTextBaseAlpha = 0; // Place the cursor over the save file that was being played. // gCurrSaveFileNum is 1 by default when the game boots, as such // the cursor will point on Mario A save file. switch (gCurrSaveFileNum) { - case 1: // File A - sCursorPos[0] = -94.0f; - sCursorPos[1] = 46.0f; - break; - case 2: // File B - sCursorPos[0] = 24.0f; - sCursorPos[1] = 46.0f; - break; - case 3: // File C - sCursorPos[0] = -94.0f; - sCursorPos[1] = 5.0f; - break; - case 4: // File D - sCursorPos[0] = 24.0f; - sCursorPos[1] = 5.0f; - break; + case SAVE_FILE_NUM_A: sCursorPos[0] = -94.0f; sCursorPos[1] = 46.0f; break; + case SAVE_FILE_NUM_B: sCursorPos[0] = 24.0f; sCursorPos[1] = 46.0f; break; + case SAVE_FILE_NUM_C: sCursorPos[0] = -94.0f; sCursorPos[1] = 5.0f; break; + case SAVE_FILE_NUM_D: sCursorPos[0] = 24.0f; sCursorPos[1] = 5.0f; break; } - sClickPos[0] = -10000; - sClickPos[1] = -10000; - sCursorClickingTimer = 0; - sSelectedFileNum = 0; - sSelectedFileIndex = MENU_BUTTON_NONE; - sFadeOutText = FALSE; - sStatusMessageID = 0; - sTextFadeAlpha = 0; - sMainMenuTimer = 0; + sClickPos[0] = -10000; + sClickPos[1] = -10000; + sCursorClickingTimer = 0; + sSelectedFileNum = 0; + sSelectedFileIndex = MENU_BUTTON_NONE; + sFadeOutText = FALSE; + sStatusMessageID = 0; + sTextFadeAlpha = 0; + sMainMenuTimer = 0; sEraseYesNoHoverState = MENU_ERASE_HOVER_NONE; - sSoundMode = save_file_get_sound_mode(); + sSoundMode = save_file_get_sound_mode(); return 0; }