Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
Data Structures | Macros | Functions | Variables
behavior_actions.c File Reference
#include <ultra64.h>
#include "sm64.h"
#include "types.h"
#include "behavior_actions.h"
#include "game.h"
#include "main.h"
#include "mario.h"
#include "engine/behavior_script.h"
#include "engine/math_util.h"
#include "object_helpers.h"
#include "object_helpers2.h"
#include "behavior_data.h"
#include "obj_behaviors.h"
#include "engine/surface_collision.h"
#include "engine/surface_load.h"
#include "level_update.h"
#include "audio/external.h"
#include "seq_ids.h"
#include "save_file.h"
#include "area.h"
#include "engine/graph_node.h"
#include "camera.h"
#include "display.h"
#include "spawn_object.h"
#include "mario_actions_cutscene.h"
#include "object_list_processor.h"
#include "spawn_sound.h"
#include "debug.h"
#include "object_constants.h"
#include "mario_step.h"
#include "obj_behaviors_2.h"
#include "paintings.h"
#include "platform_displacement.h"
#include "interaction.h"
#include "ingame_menu.h"
#include "room.h"
#include "rendering_graph_node.h"
#include "behaviors/star_door.inc.c"
#include "behaviors/mr_i.inc.c"
#include "behaviors/pole.inc.c"
#include "behaviors/thi_top.inc.c"
#include "behaviors/capswitch.inc.c"
#include "behaviors/king_bobomb.inc.c"
#include "behaviors/beta_chest.inc.c"
#include "behaviors/water_objs.inc.c"
#include "behaviors/cannon.inc.c"
#include "behaviors/chuckya.inc.c"
#include "behaviors/breakable_wall.inc.c"
#include "behaviors/kickable_board.inc.c"
#include "behaviors/tower_door.inc.c"
#include "behaviors/rotating_platform.inc.c"
#include "behaviors/koopa_shell_underwater.inc.c"
#include "behaviors/warp.inc.c"
#include "behaviors/white_puff_explode.inc.c"
#include "behaviors/sparkle_spawn_star.inc.c"
#include "behaviors/coin.inc.c"
#include "behaviors/collide_particles.inc.c"
#include "behaviors/door.inc.c"
#include "behaviors/thwomp.inc.c"
#include "behaviors/tumbling_bridge.inc.c"
#include "behaviors/elevator.inc.c"
#include "behaviors/water_mist_particle.inc.c"
#include "behaviors/break_particles.inc.c"
#include "behaviors/water_mist.inc.c"
#include "behaviors/ground_particles.inc.c"
#include "behaviors/wind.inc.c"
#include "behaviors/unused_particle_spawn.inc.c"
#include "behaviors/little_cage.inc.c"
#include "behaviors/falling_rising_platform.inc.c"
#include "behaviors/fishing_boo.inc.c"
#include "behaviors/flamethrower.inc.c"
#include "behaviors/bouncing_fireball.inc.c"
#include "behaviors/shock_wave.inc.c"
#include "behaviors/flame_mario.inc.c"
#include "behaviors/beta_fish_splash_spawner.inc.c"
#include "behaviors/spindrift.inc.c"
#include "behaviors/tower_platform.inc.c"
#include "behaviors/tree_particles.inc.c"
#include "behaviors/square_platform_cycle.inc.c"
#include "behaviors/piranha_bubbles.inc.c"
#include "behaviors/purple_switch.inc.c"
#include "behaviors/metal_box.inc.c"
#include "behaviors/switch_hidden_objects.inc.c"
#include "behaviors/breakable_box.inc.c"
#include "behaviors/heave_ho.inc.c"
#include "behaviors/spawn_star_exit.inc.c"
#include "behaviors/unused_poundable_platform.inc.c"
#include "behaviors/beta_trampoline.inc.c"
#include "behaviors/jumping_box.inc.c"
#include "behaviors/boo_cage.inc.c"
#include "behaviors/beta_boo_key.inc.c"
#include "behaviors/grand_star.inc.c"
#include "behaviors/bowser_key.inc.c"
#include "behaviors/bullet_bill.inc.c"
#include "behaviors/bowser.inc.c"
#include "behaviors/blue_fish.inc.c"
#include "behaviors/checkerboard_platform.inc.c"
#include "behaviors/ddd_warp.inc.c"
#include "behaviors/water_pillar.inc.c"
#include "behaviors/moat_drainer.inc.c"
#include "behaviors/bowser_key_cutscene.inc.c"
#include "behaviors/moat_grill.inc.c"
#include "behaviors/clock_arm.inc.c"
#include "behaviors/ukiki_cage.inc.c"
#include "behaviors/lll_octagonal_rotating_mesh.inc.c"
#include "behaviors/lll_sinking_rock_block.inc.c"
#include "behaviors/lll_rotating_hex_flame.inc.c"
#include "behaviors/lll_floating_wood_piece.inc.c"
#include "behaviors/lll_volcano_flames.inc.c"
#include "behaviors/lll_hexagonal_ring.inc.c"
#include "behaviors/lll_sinking_rectangle.inc.c"
#include "behaviors/lll_tilting_platform.inc.c"
#include "behaviors/koopa_shell.inc.c"
#include "behaviors/tox_box.inc.c"
#include "behaviors/piranha_plant.inc.c"
#include "behaviors/bowser_puzzle_piece.inc.c"
#include "behaviors/tuxie.inc.c"
#include "behaviors/fish.inc.c"
#include "behaviors/express_elevator.inc.c"
#include "behaviors/bub.inc.c"
#include "behaviors/exclamation_box.inc.c"
#include "behaviors/sound_spawner.inc.c"
#include "behaviors/ddd_sub.inc.c"
#include "behaviors/sushi.inc.c"
#include "behaviors/jrb_ship.inc.c"
#include "behaviors/white_puff.inc.c"
#include "behaviors/blue_coin.inc.c"
#include "behaviors/grill_door.inc.c"
#include "behaviors/wdw_water_level.inc.c"
#include "behaviors/tweester.inc.c"
#include "behaviors/boo.inc.c"
#include "behaviors/bbh_tilting_trap.inc.c"
#include "behaviors/bbh_haunted_bookshelf.inc.c"
#include "behaviors/bbh_merry_go_round.inc.c"
#include "behaviors/static_checkered_platform.inc.c"
#include "behaviors/beta_bowser_anchor.inc.c"
#include "behaviors/music_touch.inc.c"
#include "behaviors/castle_floor_trap.inc.c"
#include "behaviors/sparkle_spawn.inc.c"
#include "behaviors/scuttlebug.inc.c"
#include "behaviors/whomp.inc.c"
#include "behaviors/water_splash.inc.c"
#include "behaviors/wind_particle.inc.c"
#include "behaviors/snowman_wind.inc.c"
#include "behaviors/walking_penguin.inc.c"

Data Structures

struct  Struct8032F24A
 
struct  Struct8032F34C
 
struct  Struct8032F698
 
struct  Struct802C0DF0
 
struct  Struct8032FE4C
 
struct  Struct8032F754
 
struct  Struct8032FCE8
 

Macros

#define o   gCurrentObject
 

Functions

void BehClimbDetectLoop ()
 
void func_802A8D18 (f32, f32, s32)
 
s32 mario_moving_fast_enough_to_make_piranha_plant_bite (void)
 Check whether the player is moving fast enough to cause the Piranha Plant to start biting. More...
 
void func_802C49E0 (void)
 
void func_802AA618 (s32 sp18, s32 sp1C, f32 sp20)
 
s32 Geo18_802B1BB0 (s32 run, UNUSED struct GraphNode *node, Mat4 mtx)
 
void func_802B2328 (s32 n, s32 a1, s32 a2, s32 r)
 

Variables

s16 D_8035FF10
 
s16 gDebugInfo [][8]
 An array of debug controls that could be used to tweak in-game parameters. More...
 
s8 gDoorAdjacentRooms [][2]
 
u8 inside_castle_seg7_collision_ddd_warp_2 []
 
u8 inside_castle_seg7_collision_ddd_warp []
 
s32 gDialogResponse
 
s32 gCutsceneActive
 
u8 gCutsceneNumber
 
s8D_8032F96C []
 
u32 bowser_seg6_unkmoveshorts_060576FC []
 
u32 blue_fish_seg3_anims_0301C2B0 []
 
u32 cyan_fish_seg6_anims_0600E264 []
 
s32 D_8032F0C0 [] = { SAVE_FLAG_HAVE_WING_CAP, SAVE_FLAG_HAVE_METAL_CAP, SAVE_FLAG_HAVE_VANISH_CAP }
 
s16 D_8032F0CC []
 
struct SpawnParticlesInfo D_8032F270 = { 2, 20, MODEL_MIST, 0, 40, 5, 30, 20, 252, 30, 330.0f, 10.0f }
 

Macro Definition Documentation

◆ o

#define o   gCurrentObject

Function Documentation

◆ BehClimbDetectLoop()

void BehClimbDetectLoop ( void  )

◆ func_802A8D18()

void func_802A8D18 ( f32  ,
f32  ,
s32   
)

◆ func_802AA618()

void func_802AA618 ( s32  sp18,
s32  sp1C,
f32  sp20 
)

◆ func_802B2328()

void func_802B2328 ( s32  n,
s32  a1,
s32  a2,
s32  r 
)

◆ func_802C49E0()

void func_802C49E0 ( void  )

◆ Geo18_802B1BB0()

s32 Geo18_802B1BB0 ( s32  run,
UNUSED struct GraphNode node,
Mat4  mtx 
)

◆ mario_moving_fast_enough_to_make_piranha_plant_bite()

s32 mario_moving_fast_enough_to_make_piranha_plant_bite ( void  )

Check whether the player is moving fast enough to cause the Piranha Plant to start biting.

This is called from both the "stopped biting" state and the "sleeping" state.

Variable Documentation

◆ blue_fish_seg3_anims_0301C2B0

u32 blue_fish_seg3_anims_0301C2B0

◆ bowser_seg6_unkmoveshorts_060576FC

u32 bowser_seg6_unkmoveshorts_060576FC[]

◆ cyan_fish_seg6_anims_0600E264

u32 cyan_fish_seg6_anims_0600E264[]

◆ D_8032F0C0

◆ D_8032F0CC

s16 D_8032F0CC[]
Initial value:
= { 6047, 5664, 5292, 4934, 4587, 4254, 3933, 3624, 3329, 3046, 2775,
2517, 2271, 2039, 1818, 1611, 1416, 1233, 1063, 906, 761, 629,
509, 402, 308, 226, 157, 100, 56, 25, 4, 0 }

◆ D_8032F270

struct SpawnParticlesInfo D_8032F270 = { 2, 20, MODEL_MIST, 0, 40, 5, 30, 20, 252, 30, 330.0f, 10.0f }

◆ D_8032F96C

s8* D_8032F96C[]

◆ D_8035FF10

s16 D_8035FF10

◆ gCutsceneActive

s32 gCutsceneActive

◆ gCutsceneNumber

u8 gCutsceneNumber

◆ gDebugInfo

s16 gDebugInfo[][8]

An array of debug controls that could be used to tweak in-game parameters.

The only used rows are [4] and [5] (effectinfo and enemyinfo).

◆ gDialogResponse

s32 gDialogResponse

◆ gDoorAdjacentRooms

s8 gDoorAdjacentRooms[][2]

◆ inside_castle_seg7_collision_ddd_warp

u8 inside_castle_seg7_collision_ddd_warp[]

◆ inside_castle_seg7_collision_ddd_warp_2

u8 inside_castle_seg7_collision_ddd_warp_2[]