Improved level_info.c and added functions to LUA: const char *get_level_name_ascii(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase): Return a level name as an ascii string. If charCase is 1, capitalize all letters. If charCase is -1, decapitalize all letters except the first one of each word. const u8 *get_level_name_sm64(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase): Return a level name as an sm64 u8 string. If charCase is 1, capitalize all letters. If charCase is -1, decapitalize all letters except the first one of each word. const char *get_level_name(s16 courseNum, s16 levelNum, s16 areaIndex): Shortcut for get_level_name_ascii(courseNum, levelNum, areaIndex, -1). const char *get_star_name_ascii(s16 courseNum, s16 starNum, s16 charCase): Return a star name as an ascii string. If charCase is 1, capitalize all letters. If charCase is -1, decapitalize all letters except the first one of each word. const u8 *get_star_name_sm64(s16 courseNum, s16 starNum, s16 charCase): Return a star name as an sm64 u8 string. If charCase is 1, capitalize all letters. If charCase is -1, decapitalize all letters except the first one of each word. const char *get_star_name(s16 courseNum, s16 starNum): Shortcut for get_star_name_ascii(courseNum, starNum, -1). Added play_transition function to LUA. I chose to copy the function declaration to smlua_misc_utils.h instead of adding area.h to the autogen tool, as most structures, variables and functions in area.h aren't meant to be used by LUA scripts. Added a dev-only warp chat command. This command signature is /warp [LEVEL] [AREA] [ACT]. Level can be either a number or a shorthand name (bob, wf, ccm...). Area and Act are numbers. This command is available only when building the game with DEBUG and DEVELOPMENT. This command cannot be used if hosting through Discord. Fixed a bug with moving sounds when they are played via a lua script. Bug: Moving sounds (including terrain sounds, flying sound, quicksand sound) are not played correctly when a lua script play them via a call of play_sound or play_sound_with_freq_scale. This is due to how the moving sounds are handled internally. They use the f32 pointer provided to the play_sound functions to decide if the sound must be kept playing, stopped or restarted. Most of the time, the pointer provided is the cameraToObject field of Mario's object graph node. Since smlua uses a circular buffer for Vec3f conversion, this pointer is lost, and the sound engine can't decide what to do with the sound, resulting in a weird and incorrect sound effect. Fix: play_sound and play_sound_with_freq_scale now calls smlua_get_vec3f_for_play_sound before filling the sound request queue, to retrieve the correct pointer from the Vec3f provided by smlua.
95 KiB
⏪ Lua Reference
Supported Functions
- manually written functions
- behavior_actions.h
- arc_to_goal_pos
- bhv_1up_common_init
- bhv_1up_hidden_in_pole_loop
- bhv_1up_hidden_in_pole_spawner_loop
- bhv_1up_hidden_in_pole_trigger_loop
- bhv_1up_hidden_loop
- bhv_1up_hidden_trigger_loop
- bhv_1up_init
- bhv_1up_jump_on_approach_loop
- bhv_1up_loop
- bhv_1up_running_away_loop
- bhv_1up_sliding_loop
- bhv_1up_walking_loop
- bhv_act_selector_init
- bhv_act_selector_loop
- bhv_act_selector_star_type_loop
- bhv_activated_back_and_forth_platform_init
- bhv_activated_back_and_forth_platform_update
- bhv_alpha_boo_key_loop
- bhv_ambient_sounds_init
- bhv_animated_texture_loop
- bhv_animates_on_floor_switch_press_init
- bhv_animates_on_floor_switch_press_loop
- bhv_arrow_lift_loop
- bhv_bbh_tilting_trap_platform_loop
- bhv_beta_boo_key_loop
- bhv_beta_bowser_anchor_loop
- bhv_beta_chest_bottom_init
- bhv_beta_chest_bottom_loop
- bhv_beta_chest_lid_loop
- bhv_beta_fish_splash_spawner_loop
- bhv_beta_holdable_object_init
- bhv_beta_holdable_object_loop
- bhv_beta_moving_flames_loop
- bhv_beta_moving_flames_spawn_loop
- bhv_beta_trampoline_spring_loop
- bhv_beta_trampoline_top_loop
- bhv_big_boo_loop
- bhv_big_boulder_generator_loop
- bhv_big_boulder_init
- bhv_big_boulder_loop
- bhv_big_bully_init
- bhv_big_bully_with_minions_init
- bhv_big_bully_with_minions_loop
- bhv_bird_update
- bhv_birds_sound_loop
- bhv_bitfs_sinking_cage_platform_loop
- bhv_bitfs_sinking_platform_loop
- bhv_black_smoke_bowser_loop
- bhv_black_smoke_mario_loop
- bhv_black_smoke_upward_loop
- bhv_blue_bowser_flame_init
- bhv_blue_bowser_flame_loop
- bhv_blue_coin_jumping_loop
- bhv_blue_coin_sliding_jumping_init
- bhv_blue_coin_sliding_loop
- bhv_blue_coin_switch_loop
- bhv_blue_fish_movement_loop
- bhv_blue_flames_group_loop
- bhv_bob_pit_bowling_ball_init
- bhv_bob_pit_bowling_ball_loop
- bhv_bobomb_anchor_mario_loop
- bhv_bobomb_buddy_init
- bhv_bobomb_buddy_loop
- bhv_bobomb_bully_death_smoke_init
- bhv_bobomb_explosion_bubble_init
- bhv_bobomb_explosion_bubble_loop
- bhv_bobomb_fuse_smoke_init
- bhv_bobomb_init
- bhv_bobomb_loop
- bhv_boo_boss_spawned_bridge_loop
- bhv_boo_cage_init
- bhv_boo_cage_loop
- bhv_boo_in_castle_loop
- bhv_boo_init
- bhv_boo_loop
- bhv_boo_with_cage_init
- bhv_boo_with_cage_loop
- bhv_book_switch_loop
- bhv_bookend_spawn_loop
- bhv_bouncing_fireball_flame_loop
- bhv_bouncing_fireball_loop
- bhv_bowling_ball_init
- bhv_bowling_ball_loop
- bhv_bowser_body_anchor_init
- bhv_bowser_body_anchor_loop
- bhv_bowser_bomb_explosion_loop
- bhv_bowser_bomb_loop
- bhv_bowser_bomb_smoke_loop
- bhv_bowser_course_red_coin_star_loop
- bhv_bowser_flame_spawn_loop
- bhv_bowser_init
- bhv_bowser_key_course_exit_loop
- bhv_bowser_key_init
- bhv_bowser_key_loop
- bhv_bowser_key_unlock_door_loop
- bhv_bowser_loop
- bhv_bowser_shock_wave_loop
- bhv_bowser_tail_anchor_init
- bhv_bowser_tail_anchor_loop
- bhv_bowsers_sub_loop
- bhv_breakable_box_loop
- bhv_breakable_box_small_init
- bhv_breakable_box_small_loop
- bhv_bub_loop
- bhv_bub_spawner_loop
- bhv_bubba_loop
- bhv_bubble_cannon_barrel_loop
- bhv_bubble_maybe_loop
- bhv_bubble_player_loop
- bhv_bubble_splash_init
- bhv_bubble_wave_init
- bhv_bullet_bill_init
- bhv_bullet_bill_loop
- bhv_bully_loop
- bhv_butterfly_init
- bhv_butterfly_loop
- bhv_camera_lakitu_init
- bhv_camera_lakitu_update
- bhv_cannon_barrel_loop
- bhv_cannon_base_loop
- bhv_cannon_base_unused_loop
- bhv_cannon_closed_init
- bhv_cannon_closed_loop
- bhv_cap_switch_loop
- bhv_castle_cannon_grate_init
- bhv_castle_flag_init
- bhv_castle_floor_trap_init
- bhv_castle_floor_trap_loop
- bhv_ccm_touched_star_spawn_loop
- bhv_celebration_star_init
- bhv_celebration_star_loop
- bhv_celebration_star_sparkle_loop
- bhv_chain_chomp_chain_part_update
- bhv_chain_chomp_gate_init
- bhv_chain_chomp_gate_update
- bhv_chain_chomp_update
- bhv_checkerboard_elevator_group_init
- bhv_checkerboard_elevator_group_loop
- bhv_checkerboard_platform_init
- bhv_checkerboard_platform_loop
- bhv_chuckya_anchor_mario_loop
- bhv_chuckya_loop
- bhv_circling_amp_init
- bhv_circling_amp_loop
- bhv_clam_loop
- bhv_cloud_part_update
- bhv_cloud_update
- bhv_coffin_loop
- bhv_coffin_spawner_loop
- bhv_coin_formation_init
- bhv_coin_formation_loop
- bhv_coin_formation_spawn_loop
- bhv_coin_init
- bhv_coin_inside_boo_loop
- bhv_coin_loop
- bhv_coin_sparkles_loop
- bhv_collect_star_init
- bhv_collect_star_loop
- bhv_controllable_platform_init
- bhv_controllable_platform_loop
- bhv_controllable_platform_sub_loop
- bhv_courtyard_boo_triplet_init
- bhv_ddd_moving_pole_loop
- bhv_ddd_pole_init
- bhv_ddd_pole_update
- bhv_ddd_warp_loop
- bhv_decorative_pendulum_init
- bhv_decorative_pendulum_loop
- bhv_donut_platform_spawner_update
- bhv_donut_platform_update
- bhv_door_init
- bhv_door_loop
- bhv_dorrie_update
- bhv_elevator_init
- bhv_elevator_loop
- bhv_end_birds_1_loop
- bhv_end_birds_2_loop
- bhv_enemy_lakitu_update
- bhv_exclamation_box_init
- bhv_exclamation_box_loop
- bhv_explosion_init
- bhv_explosion_loop
- bhv_eyerok_boss_init
- bhv_eyerok_boss_loop
- bhv_eyerok_hand_loop
- bhv_fading_warp_loop
- bhv_falling_bowser_platform_loop
- bhv_falling_pillar_hitbox_loop
- bhv_falling_pillar_init
- bhv_falling_pillar_loop
- bhv_ferris_wheel_axle_init
- bhv_ferris_wheel_platform_update
- bhv_fire_piranha_plant_init
- bhv_fire_piranha_plant_update
- bhv_fire_spitter_update
- bhv_fish_group_loop
- bhv_fish_loop
- bhv_fish_spawner_loop
- bhv_flame_bouncing_init
- bhv_flame_bouncing_loop
- bhv_flame_bowser_init
- bhv_flame_bowser_loop
- bhv_flame_floating_landing_init
- bhv_flame_floating_landing_loop
- bhv_flame_large_burning_out_init
- bhv_flame_mario_loop
- bhv_flame_moving_forward_growing_init
- bhv_flame_moving_forward_growing_loop
- bhv_flamethrower_flame_loop
- bhv_flamethrower_loop
- bhv_floating_platform_loop
- bhv_floor_trap_in_castle_loop
- bhv_fly_guy_flame_loop
- bhv_fly_guy_update
- bhv_flying_bookend_loop
- bhv_free_bowling_ball_init
- bhv_free_bowling_ball_loop
- bhv_generic_bowling_ball_spawner_init
- bhv_generic_bowling_ball_spawner_loop
- bhv_giant_pole_loop
- bhv_golden_coin_sparkles_loop
- bhv_goomba_init
- bhv_goomba_triplet_spawner_update
- bhv_goomba_update
- bhv_grand_star_init
- bhv_grand_star_loop
- bhv_grindel_thwomp_loop
- bhv_ground_sand_init
- bhv_ground_snow_init
- bhv_haunted_bookshelf_loop
- bhv_haunted_bookshelf_manager_loop
- bhv_haunted_chair_init
- bhv_haunted_chair_loop
- bhv_heave_ho_loop
- bhv_heave_ho_throw_mario_loop
- bhv_hidden_blue_coin_loop
- bhv_hidden_object_loop
- bhv_hidden_red_coin_star_init
- bhv_hidden_red_coin_star_loop
- bhv_hidden_star_init
- bhv_hidden_star_loop
- bhv_hidden_star_trigger_loop
- bhv_homing_amp_init
- bhv_homing_amp_loop
- bhv_hoot_init
- bhv_hoot_loop
- bhv_horizontal_grindel_init
- bhv_horizontal_grindel_update
- bhv_idle_water_wave_loop
- bhv_init_changing_water_level_loop
- bhv_intro_lakitu_loop
- bhv_intro_peach_loop
- bhv_intro_scene_loop
- bhv_invisible_objects_under_bridge_init
- bhv_invisible_objects_under_bridge_loop
- bhv_jet_stream_loop
- bhv_jet_stream_ring_spawner_loop
- bhv_jet_stream_water_ring_init
- bhv_jet_stream_water_ring_loop
- bhv_jrb_floating_box_loop
- bhv_jrb_sliding_box_loop
- bhv_jumping_box_loop
- bhv_kickable_board_loop
- bhv_king_bobomb_loop
- bhv_klepto_init
- bhv_klepto_update
- bhv_koopa_init
- bhv_koopa_race_endpoint_update
- bhv_koopa_shell_flame_loop
- bhv_koopa_shell_loop
- bhv_koopa_shell_underwater_loop
- bhv_koopa_update
- bhv_large_bomp_init
- bhv_large_bomp_loop
- bhv_lll_bowser_puzzle_loop
- bhv_lll_bowser_puzzle_piece_loop
- bhv_lll_drawbridge_loop
- bhv_lll_drawbridge_spawner_init
- bhv_lll_drawbridge_spawner_loop
- bhv_lll_floating_wood_bridge_loop
- bhv_lll_moving_octagonal_mesh_platform_loop
- bhv_lll_rolling_log_init
- bhv_lll_rotating_block_fire_bars_loop
- bhv_lll_rotating_hex_flame_loop
- bhv_lll_rotating_hexagonal_ring_loop
- bhv_lll_sinking_rectangular_platform_loop
- bhv_lll_sinking_rock_block_loop
- bhv_lll_sinking_square_platforms_loop
- bhv_lll_wood_piece_loop
- bhv_mad_piano_update
- bhv_manta_ray_init
- bhv_manta_ray_loop
- bhv_manta_ray_water_ring_init
- bhv_manta_ray_water_ring_loop
- bhv_menu_button_init
- bhv_menu_button_loop
- bhv_menu_button_manager_init
- bhv_menu_button_manager_loop
- bhv_merry_go_round_boo_manager_loop
- bhv_merry_go_round_loop
- bhv_metal_cap_init
- bhv_metal_cap_loop
- bhv_mips_init
- bhv_mips_loop
- bhv_moat_grills_loop
- bhv_moneybag_hidden_loop
- bhv_moneybag_init
- bhv_moneybag_loop
- bhv_monty_mole_hole_update
- bhv_monty_mole_init
- bhv_monty_mole_rock_update
- bhv_monty_mole_update
- bhv_moving_blue_coin_init
- bhv_moving_blue_coin_loop
- bhv_moving_yellow_coin_init
- bhv_moving_yellow_coin_loop
- bhv_mr_blizzard_init
- bhv_mr_blizzard_snowball
- bhv_mr_blizzard_update
- bhv_mr_i_body_loop
- bhv_mr_i_loop
- bhv_mr_i_particle_loop
- bhv_normal_cap_init
- bhv_normal_cap_loop
- bhv_object_bubble_init
- bhv_object_bubble_loop
- bhv_object_water_wave_init
- bhv_object_water_wave_loop
- bhv_openable_cage_door_loop
- bhv_openable_grill_loop
- bhv_orange_number_init
- bhv_orange_number_loop
- bhv_particle_init
- bhv_particle_loop
- bhv_penguin_race_finish_line_update
- bhv_penguin_race_shortcut_check_update
- bhv_piranha_particle_loop
- bhv_piranha_plant_bubble_loop
- bhv_piranha_plant_loop
- bhv_piranha_plant_waking_bubbles_loop
- bhv_platform_normals_init
- bhv_platform_on_track_init
- bhv_platform_on_track_update
- bhv_play_music_track_when_touched_loop
- bhv_pokey_body_part_update
- bhv_pokey_update
- bhv_pole_base_loop
- bhv_pole_init
- bhv_pound_tiny_star_particle_init
- bhv_pound_tiny_star_particle_loop
- bhv_pound_white_puffs_init
- bhv_punch_tiny_triangle_init
- bhv_punch_tiny_triangle_loop
- bhv_purple_switch_loop
- bhv_pushable_loop
- bhv_pyramid_elevator_init
- bhv_pyramid_elevator_loop
- bhv_pyramid_elevator_trajectory_marker_ball_loop
- bhv_pyramid_pillar_touch_detector_loop
- bhv_pyramid_top_fragment_init
- bhv_pyramid_top_fragment_loop
- bhv_pyramid_top_init
- bhv_pyramid_top_loop
- bhv_racing_penguin_init
- bhv_racing_penguin_update
- bhv_recovery_heart_loop
- bhv_red_coin_init
- bhv_red_coin_loop
- bhv_red_coin_star_marker_init
- bhv_respawner_loop
- bhv_rolling_log_loop
- bhv_rotating_clock_arm_loop
- bhv_rotating_exclamation_box_loop
- bhv_rotating_octagonal_plat_init
- bhv_rotating_octagonal_plat_loop
- bhv_rotating_platform_loop
- bhv_rr_cruiser_wing_init
- bhv_rr_cruiser_wing_loop
- bhv_rr_rotating_bridge_platform_loop
- bhv_sand_sound_loop
- bhv_scuttlebug_loop
- bhv_scuttlebug_spawn_loop
- bhv_seaweed_bundle_init
- bhv_seaweed_init
- bhv_seesaw_platform_init
- bhv_seesaw_platform_update
- bhv_shallow_water_splash_init
- bhv_ship_part_3_loop
- bhv_skeeter_update
- bhv_skeeter_wave_update
- bhv_sl_snowman_wind_loop
- bhv_sl_walking_penguin_loop
- bhv_sliding_plat_2_init
- bhv_sliding_plat_2_loop
- bhv_sliding_snow_mound_loop
- bhv_small_bomp_init
- bhv_small_bomp_loop
- bhv_small_bubbles_loop
- bhv_small_bully_init
- bhv_small_penguin_loop
- bhv_small_piranha_flame_loop
- bhv_small_water_wave_loop
- bhv_snow_leaf_particle_spawn_init
- bhv_snow_mound_spawn_loop
- bhv_snowmans_body_checkpoint_loop
- bhv_snowmans_bottom_init
- bhv_snowmans_bottom_loop
- bhv_snowmans_head_init
- bhv_snowmans_head_loop
- bhv_snufit_balls_loop
- bhv_snufit_loop
- bhv_sound_spawner_init
- bhv_sparkle_spawn_loop
- bhv_spawn_star_no_level_exit
- bhv_spawned_star_init
- bhv_spawned_star_loop
- bhv_spindel_init
- bhv_spindel_loop
- bhv_spindrift_loop
- bhv_spiny_update
- bhv_squarish_path_moving_loop
- bhv_squarish_path_parent_init
- bhv_squarish_path_parent_loop
- bhv_squishable_platform_loop
- bhv_ssl_moving_pyramid_wall_init
- bhv_ssl_moving_pyramid_wall_loop
- bhv_star_door_loop
- bhv_star_door_loop_2
- bhv_star_key_collection_puff_spawner_loop
- bhv_star_spawn_init
- bhv_star_spawn_loop
- bhv_static_checkered_platform_loop
- bhv_strong_wind_particle_loop
- bhv_sunken_ship_part_loop
- bhv_sushi_shark_collision_loop
- bhv_sushi_shark_loop
- bhv_swing_platform_init
- bhv_swing_platform_update
- bhv_swoop_update
- bhv_tank_fish_group_loop
- bhv_temp_coin_loop
- bhv_thi_bowling_ball_spawner_loop
- bhv_thi_huge_island_top_loop
- bhv_thi_tiny_island_top_loop
- bhv_tilting_bowser_lava_platform_init
- bhv_tilting_inverted_pyramid_loop
- bhv_tiny_star_particles_init
- bhv_tower_door_loop
- bhv_tower_platform_group_init
- bhv_tower_platform_group_loop
- bhv_tox_box_loop
- bhv_track_ball_update
- bhv_treasure_chest_bottom_init
- bhv_treasure_chest_bottom_loop
- bhv_treasure_chest_init
- bhv_treasure_chest_jrb_init
- bhv_treasure_chest_jrb_loop
- bhv_treasure_chest_loop
- bhv_treasure_chest_ship_init
- bhv_treasure_chest_ship_loop
- bhv_treasure_chest_top_loop
- bhv_tree_snow_or_leaf_loop
- bhv_triplet_butterfly_update
- bhv_ttc_2d_rotator_init
- bhv_ttc_2d_rotator_update
- bhv_ttc_cog_init
- bhv_ttc_cog_update
- bhv_ttc_elevator_init
- bhv_ttc_elevator_update
- bhv_ttc_moving_bar_init
- bhv_ttc_moving_bar_update
- bhv_ttc_pendulum_init
- bhv_ttc_pendulum_update
- bhv_ttc_pit_block_init
- bhv_ttc_pit_block_update
- bhv_ttc_rotating_solid_init
- bhv_ttc_rotating_solid_update
- bhv_ttc_spinner_update
- bhv_ttc_treadmill_init
- bhv_ttc_treadmill_update
- bhv_ttm_rolling_log_init
- bhv_tumbling_bridge_loop
- bhv_tumbling_bridge_platform_loop
- bhv_tuxies_mother_loop
- bhv_tweester_loop
- bhv_tweester_sand_particle_loop
- bhv_ukiki_cage_loop
- bhv_ukiki_cage_star_loop
- bhv_ukiki_init
- bhv_ukiki_loop
- bhv_unagi_init
- bhv_unagi_loop
- bhv_unagi_subobject_loop
- bhv_unused_particle_spawn_loop
- bhv_unused_poundable_platform
- bhv_vanish_cap_init
- bhv_volcano_flames_loop
- bhv_volcano_sound_loop
- bhv_volcano_trap_loop
- bhv_wall_tiny_star_particle_loop
- bhv_warp_loop
- bhv_water_air_bubble_init
- bhv_water_air_bubble_loop
- bhv_water_bomb_cannon_loop
- bhv_water_bomb_shadow_update
- bhv_water_bomb_spawner_update
- bhv_water_bomb_update
- bhv_water_droplet_loop
- bhv_water_droplet_splash_init
- bhv_water_level_diamond_loop
- bhv_water_level_pillar_init
- bhv_water_level_pillar_loop
- bhv_water_mist_2_loop
- bhv_water_mist_loop
- bhv_water_mist_spawn_loop
- bhv_water_splash_spawn_droplets
- bhv_water_waves_init
- bhv_waterfall_sound_loop
- bhv_wave_trail_shrink
- bhv_wdw_express_elevator_loop
- bhv_wf_breakable_wall_loop
- bhv_wf_elevator_tower_platform_loop
- bhv_wf_rotating_wooden_platform_init
- bhv_wf_rotating_wooden_platform_loop
- bhv_wf_sliding_platform_init
- bhv_wf_sliding_platform_loop
- bhv_wf_sliding_tower_platform_loop
- bhv_wf_solid_tower_platform_loop
- bhv_whirlpool_init
- bhv_whirlpool_loop
- bhv_white_puff_1_loop
- bhv_white_puff_2_loop
- bhv_white_puff_exploding_loop
- bhv_white_puff_smoke_init
- bhv_whomp_loop
- bhv_wiggler_body_part_update
- bhv_wiggler_update
- bhv_wind_loop
- bhv_wing_cap_init
- bhv_wing_vanish_cap_loop
- bhv_wooden_post_update
- bhv_yellow_coin_init
- bhv_yellow_coin_loop
- bhv_yoshi_init
- bhv_yoshi_loop
- check_if_moving_over_floor
- clear_particle_flags
- common_anchor_mario_behavior
- cur_obj_spawn_strong_wind_particles
- mario_moving_fast_enough_to_make_piranha_plant_bite
- obj_set_secondary_camera_focus
- play_penguin_walking_sound
- spawn_default_star
- spawn_mist_from_global
- spawn_mist_particles_variable
- spawn_no_exit_star
- spawn_red_coin_cutscene_star
- spawn_triangle_break_particles
- spawn_wind_particles
- tox_box_move
- update_angle_from_move_flags
- vec3f_copy_2
- behavior_table.h
- camera.h
- approach_camera_height
- approach_f32_asymptotic
- approach_f32_asymptotic_bool
- approach_s16_asymptotic
- approach_s16_asymptotic_bool
- approach_vec3f_asymptotic
- calc_abs_dist
- calc_hor_dist
- calculate_angles
- calculate_pitch
- calculate_yaw
- cam_select_alt_mode
- camera_approach_f32_symmetric
- camera_approach_f32_symmetric_bool
- camera_approach_s16_symmetric_bool
- camera_course_processing
- camera_set_use_course_specific_settings
- clamp_pitch
- clamp_positions_and_find_yaw
- collide_with_walls
- cutscene_object
- cutscene_object_with_dialog
- cutscene_object_without_dialog
- cutscene_set_fov_shake_preset
- cutscene_spawn_obj
- find_c_buttons_pressed
- find_mario_floor_and_ceil
- get_cutscene_from_mario_status
- handle_c_button_movement
- is_range_behind_surface
- is_within_100_units_of_mario
- move_mario_head_c_up
- next_lakitu_state
- obj_rotate_towards_point
- object_pos_to_vec3f
- offset_rotated
- offset_yaw_outward_radial
- play_camera_buzz_if_c_sideways
- play_camera_buzz_if_cbutton
- play_camera_buzz_if_cdown
- play_cutscene
- play_sound_button_change_blocked
- play_sound_cbutton_down
- play_sound_cbutton_side
- play_sound_cbutton_up
- play_sound_if_cam_switched_to_lakitu_or_mario
- play_sound_rbutton_changed
- radial_camera_input
- random_vec3s
- reset_camera
- resolve_geometry_collisions
- rotate_camera_around_walls
- rotate_in_xz
- rotate_in_yz
- scale_along_line
- select_mario_cam_mode
- set_cam_angle
- set_camera_mode
- set_camera_mode_fixed
- set_camera_pitch_shake
- set_camera_roll_shake
- set_camera_shake_from_hit
- set_camera_shake_from_point
- set_camera_yaw_shake
- set_environmental_camera_shake
- set_fixed_cam_axis_sa_lobby
- set_fov_function
- set_fov_shake
- set_fov_shake_from_point_preset
- set_handheld_shake
- set_or_approach_f32_asymptotic
- set_or_approach_s16_symmetric
- set_or_approach_vec3f_asymptotic
- set_pitch_shake_from_point
- shake_camera_handheld
- shake_camera_pitch
- shake_camera_roll
- shake_camera_yaw
- soft_reset_camera
- start_cutscene
- start_object_cutscene_without_focus
- transition_next_state
- trigger_cutscene_dialog
- vec3f_sub
- vec3f_to_object_pos
- warp_camera
- characters.h
- djui_chat_message.h
- djui_hud_utils.h
- djui_popup.h
- external.h
- fade_volume_scale
- fadeout_background_music
- play_course_clear
- play_dialog_sound
- play_music
- play_peachs_jingle
- play_power_star_jingle
- play_puzzle_jingle
- play_race_fanfare
- play_secondary_music
- play_sound
- play_sound_with_freq_scale
- play_star_fanfare
- play_toads_jingle
- seq_player_fade_out
- seq_player_lower_volume
- seq_player_unlower_volume
- interaction.h
- does_mario_have_normal_cap_on_head
- get_door_save_file_flag
- interact_damage
- mario_blow_off_cap
- mario_check_object_grab
- mario_drop_held_object
- mario_get_collided_object
- mario_grab_used_object
- mario_lose_cap_to_enemy
- mario_obj_angle_to_object
- mario_retrieve_cap
- mario_stop_riding_and_holding
- mario_stop_riding_object
- mario_throw_held_object
- passes_pvp_interaction_checks
- take_damage_and_knock_back
- level_info.h
- mario.h
- adjust_sound_for_speed
- check_common_action_exits
- check_common_hold_action_exits
- drop_and_set_mario_action
- execute_mario_action
- find_floor_height_relative_polar
- find_floor_slope
- find_mario_anim_flags_and_translation
- force_idle_state
- hurt_and_set_mario_action
- init_single_mario
- is_anim_at_end
- is_anim_past_end
- is_anim_past_frame
- mario_can_bubble
- mario_facing_downhill
- mario_floor_is_slippery
- mario_floor_is_slope
- mario_floor_is_steep
- mario_get_floor_class
- mario_get_terrain_sound_addend
- mario_set_bubbled
- mario_set_forward_vel
- play_mario_action_sound
- play_mario_heavy_landing_sound
- play_mario_heavy_landing_sound_once
- play_mario_jump_sound
- play_mario_landing_sound
- play_mario_landing_sound_once
- play_mario_sound
- play_sound_and_spawn_particles
- play_sound_if_no_flag
- resolve_and_return_wall_collisions
- return_mario_anim_y_translation
- set_anim_to_frame
- set_jump_from_landing
- set_jumping_action
- set_mario_action
- set_mario_anim_with_accel
- set_mario_animation
- set_mario_y_vel_based_on_fspeed
- set_steep_jump_action
- set_water_plunge_action
- transition_submerged_to_walking
- update_mario_pos_for_anim
- update_mario_sound_and_camera
- mario_actions_airborne.c
- check_common_airborne_cancels
- check_fall_damage
- check_fall_damage_or_get_stuck
- check_horizontal_wind
- check_kick_or_dive_in_air
- check_wall_kick
- common_air_action_step
- common_air_knockback_step
- lava_boost_on_wall
- mario_execute_airborne_action
- play_far_fall_sound
- play_flip_sounds
- play_knockback_sound
- should_get_stuck_in_ground
- update_air_with_turn
- update_air_without_turn
- update_flying
- update_flying_pitch
- update_flying_yaw
- update_lava_boost_or_twirling
- mario_actions_automatic.c
- mario_actions_cutscene.c
- bhv_end_peach_loop
- bhv_end_toad_loop
- common_death_handler
- cutscene_put_cap_on
- cutscene_take_cap_off
- general_star_dance_handler
- generate_yellow_sparkles
- get_star_collection_dialog
- handle_save_menu
- launch_mario_until_land
- mario_execute_cutscene_action
- mario_ready_to_speak
- print_displaying_credits_entry
- should_start_or_continue_dialog
- stuck_in_ground_handler
- mario_actions_moving.c
- align_with_floor
- analog_stick_held_back
- anim_and_audio_for_heavy_walk
- anim_and_audio_for_hold_walk
- anim_and_audio_for_walk
- apply_landing_accel
- apply_slope_accel
- apply_slope_decel
- begin_braking_action
- begin_walking_action
- check_common_moving_cancels
- check_ground_dive_or_punch
- check_ledge_climb_down
- common_ground_knockback_action
- common_landing_action
- common_slide_action
- common_slide_action_with_jump
- mario_execute_moving_action
- play_step_sound
- push_or_sidle_wall
- quicksand_jump_land_action
- set_triple_jump_action
- should_begin_sliding
- slide_bonk
- stomach_slide_action
- tilt_body_butt_slide
- tilt_body_ground_shell
- tilt_body_running
- tilt_body_walking
- update_decelerating_speed
- update_shell_speed
- update_sliding
- update_sliding_angle
- update_walking_speed
- mario_actions_object.c
- mario_actions_stationary.c
- mario_actions_submerged.c
- mario_misc.h
- mario_step.h
- network_player.h
- network_utils.h
- obj_behaviors.c
- absf_2
- calc_new_obj_vel_and_pos_y
- calc_new_obj_vel_and_pos_y_underwater
- calc_obj_friction
- current_mario_room_check
- is_nearest_mario_state_to_object
- is_nearest_player_to_object
- is_other_player_active
- is_player_active
- is_player_in_local_area
- is_point_close_to_object
- is_point_within_radius_of_mario
- nearest_interacting_mario_state_to_object
- nearest_interacting_player_to_object
- nearest_mario_state_to_object
- nearest_player_to_object
- obj_check_floor_death
- obj_check_if_facing_toward_angle
- obj_find_wall
- obj_find_wall_displacement
- obj_flicker_and_disappear
- obj_lava_death
- obj_move_xyz_using_fvel_and_yaw
- obj_orient_graph
- obj_return_and_displace_home
- obj_return_home_if_safe
- obj_spawn_yellow_coins
- obj_splash
- obj_update_pos_vel_xz
- object_step
- object_step_without_floor_orient
- set_object_visibility
- set_yoshi_as_not_dead
- spawn_orange_number
- turn_obj_away_from_steep_floor
- turn_obj_away_from_surface
- obj_behaviors_2.c
- approach_f32_ptr
- cur_obj_init_anim_and_check_if_end
- cur_obj_init_anim_check_frame
- cur_obj_init_anim_extend
- cur_obj_play_sound_at_anim_range
- cur_obj_set_anim_if_at_end
- cur_obj_spin_all_dimensions
- obj_act_knockback
- obj_act_squished
- obj_bounce_off_walls_edges_objects
- obj_check_attacks
- obj_compute_vel_from_move_pitch
- obj_die_if_above_lava_and_health_non_positive
- obj_die_if_health_non_positive
- obj_face_pitch_approach
- obj_face_roll_approach
- obj_face_yaw_approach
- obj_forward_vel_approach
- obj_get_pitch_from_vel
- obj_get_pitch_to_home
- obj_grow_then_shrink
- obj_handle_attacks
- obj_is_near_to_and_facing_mario
- obj_is_rendering_enabled
- obj_move_for_one_second
- obj_move_pitch_approach
- obj_random_fixed_turn
- obj_resolve_collisions_and_turn
- obj_resolve_object_collisions
- obj_roll_to_match_yaw_turn
- obj_rotate_yaw_and_bounce_off_walls
- obj_set_dist_from_home
- obj_set_knockback_action
- obj_set_squished_action
- obj_smooth_turn
- obj_spit_fire
- obj_turn_pitch_toward_mario
- obj_unused_die
- obj_update_blinking
- obj_update_standard_actions
- obj_y_vel_approach
- oscillate_toward
- platform_on_track_update_pos_or_spawn_ball
- random_linear_offset
- random_mod_offset
- treat_far_home_as_mario
- object_helpers.c
- abs_angle_diff
- apply_drag_to_value
- approach_f32_signed
- approach_f32_symmetric
- approach_s16_symmetric
- bhv_dust_smoke_loop
- bhv_init_room
- bit_shift_left
- chain_segment_init
- clear_move_flag
- clear_time_stop_flags
- count_objects_with_behavior
- count_unimportant_objects
- cur_obj_abs_y_dist_to_home
- cur_obj_advance_looping_anim
- cur_obj_align_gfx_with_floor
- cur_obj_angle_to_home
- cur_obj_apply_drag_xz
- cur_obj_become_intangible
- cur_obj_become_tangible
- cur_obj_can_mario_activate_textbox
- cur_obj_can_mario_activate_textbox_2
- cur_obj_change_action
- cur_obj_check_anim_frame
- cur_obj_check_anim_frame_in_range
- cur_obj_check_frame_prior_current_frame
- cur_obj_check_grabbed_mario
- cur_obj_check_if_at_animation_end
- cur_obj_check_if_near_animation_end
- cur_obj_check_interacted
- cur_obj_clear_interact_status_flag
- cur_obj_compute_vel_xz
- cur_obj_count_objects_with_behavior
- cur_obj_detect_steep_floor
- cur_obj_disable
- cur_obj_disable_rendering
- cur_obj_disable_rendering_and_become_intangible
- cur_obj_dist_to_nearest_object_with_behavior
- cur_obj_enable_rendering
- cur_obj_enable_rendering_2
- cur_obj_enable_rendering_and_become_tangible
- cur_obj_enable_rendering_if_mario_in_room
- cur_obj_end_dialog
- cur_obj_extend_animation_if_at_end
- cur_obj_find_nearby_held_actor
- cur_obj_find_nearest_object_with_behavior
- cur_obj_find_nearest_pole
- cur_obj_follow_path
- cur_obj_forward_vel_approach_upward
- cur_obj_get_dropped
- cur_obj_get_thrown_or_placed
- cur_obj_has_behavior
- cur_obj_has_model
- cur_obj_hide
- cur_obj_hide_if_mario_far_away_y
- cur_obj_if_hit_wall_bounce_away
- cur_obj_init_animation
- cur_obj_init_animation_and_anim_frame
- cur_obj_init_animation_and_check_if_near_end
- cur_obj_init_animation_and_extend_if_at_end
- cur_obj_init_animation_with_accel_and_sound
- cur_obj_init_animation_with_sound
- cur_obj_is_any_player_on_platform
- cur_obj_is_mario_ground_pounding_platform
- cur_obj_is_mario_on_platform
- cur_obj_lateral_dist_from_mario_to_home
- cur_obj_lateral_dist_from_obj_to_home
- cur_obj_lateral_dist_to_home
- cur_obj_mario_far_away
- cur_obj_move_after_thrown_or_dropped
- cur_obj_move_standard
- cur_obj_move_up_and_down
- cur_obj_move_update_ground_air_flags
- cur_obj_move_update_underwater_flags
- cur_obj_move_using_fvel_and_gravity
- cur_obj_move_using_vel
- cur_obj_move_using_vel_and_gravity
- cur_obj_move_xz
- cur_obj_move_xz_using_fvel_and_yaw
- cur_obj_move_y
- cur_obj_move_y_and_get_water_level
- cur_obj_move_y_with_terminal_vel
- cur_obj_nearest_object_with_behavior
- cur_obj_outside_home_rectangle
- cur_obj_outside_home_square
- cur_obj_progress_direction_table
- cur_obj_push_mario_away
- cur_obj_push_mario_away_from_cylinder
- cur_obj_reflect_move_angle_off_wall
- cur_obj_reset_timer_and_subaction
- cur_obj_resolve_wall_collisions
- cur_obj_reverse_animation
- cur_obj_rotate_face_angle_using_vel
- cur_obj_rotate_move_angle_using_vel
- cur_obj_rotate_yaw_toward
- cur_obj_scale
- cur_obj_scale_over_time
- cur_obj_set_behavior
- cur_obj_set_direction_table
- cur_obj_set_face_angle_to_move_angle
- cur_obj_set_hitbox_and_die_if_attacked
- cur_obj_set_hitbox_radius_and_height
- cur_obj_set_hurtbox_radius_and_height
- cur_obj_set_pos_relative
- cur_obj_set_pos_relative_to_parent
- cur_obj_set_pos_to_home
- cur_obj_set_pos_to_home_and_stop
- cur_obj_set_pos_to_home_with_debug
- cur_obj_set_pos_via_transform
- cur_obj_set_vel_from_mario_vel
- cur_obj_set_y_vel_and_animation
- cur_obj_shake_screen
- cur_obj_shake_y
- cur_obj_shake_y_until
- cur_obj_spawn_loot_blue_coin
- cur_obj_spawn_loot_coin_at_mario_pos
- cur_obj_spawn_particles
- cur_obj_spawn_star_at_y_offset
- cur_obj_start_cam_event
- cur_obj_unhide
- cur_obj_unrender_and_reset_state
- cur_obj_unused_init_on_floor
- cur_obj_unused_play_footstep_sound
- cur_obj_unused_resolve_wall_collisions
- cur_obj_update_floor
- cur_obj_update_floor_and_resolve_wall_collisions
- cur_obj_update_floor_and_walls
- cur_obj_update_floor_height
- cur_obj_update_floor_height_and_get_floor
- cur_obj_wait_then_blink
- cur_obj_was_attacked_or_ground_pounded
- cur_obj_within_12k_bounds
- disable_time_stop
- disable_time_stop_including_mario
- dist_between_object_and_point
- dist_between_objects
- enable_time_stop
- enable_time_stop_if_alone
- enable_time_stop_including_mario
- find_object_with_behavior
- find_unimportant_object
- geo_offset_klepto_debug
- get_object_list_from_behavior
- increment_velocity_toward_range
- is_item_in_array
- is_mario_moving_fast_or_in_air
- lateral_dist_between_objects
- mario_is_dive_sliding
- mario_is_in_air_action
- mario_is_within_rectangle
- mario_set_flag
- obj_angle_to_object
- obj_angle_to_point
- obj_apply_scale_to_transform
- obj_attack_collided_from_other_object
- obj_become_tangible
- obj_build_relative_transform
- obj_build_transform_from_pos_and_angle
- obj_build_transform_relative_to_parent
- obj_build_vel_from_transform
- obj_check_if_collided_with_object
- obj_copy_angle
- obj_copy_behavior_params
- obj_copy_graph_y_offset
- obj_copy_pos
- obj_copy_pos_and_angle
- obj_copy_scale
- obj_create_transform_from_self
- obj_explode_and_spawn_coins
- obj_has_behavior
- obj_init_animation
- obj_is_hidden
- obj_mark_for_deletion
- obj_pitch_to_object
- obj_scale
- obj_scale_random
- obj_scale_xyz
- obj_set_angle
- obj_set_behavior
- obj_set_billboard
- obj_set_cylboard
- obj_set_face_angle_to_move_angle
- obj_set_gfx_pos_at_obj_pos
- obj_set_gfx_pos_from_pos
- obj_set_held_state
- obj_set_hitbox
- obj_set_parent_relative_pos
- obj_set_pos
- obj_set_pos_relative
- obj_set_throw_matrix_from_transform
- obj_spawn_loot_blue_coins
- obj_spawn_loot_coins
- obj_spawn_loot_yellow_coins
- obj_translate_local
- obj_translate_xyz_random
- obj_translate_xz_random
- obj_turn_toward_object
- player_performed_grab_escape_action
- random_f32_around_zero
- set_mario_interact_hoot_if_in_range
- set_time_stop_flags
- set_time_stop_flags_if_alone
- signum_positive
- spawn_base_star_with_no_lvl_exit
- spawn_mist_particles
- spawn_mist_particles_with_sound
- spawn_star_with_no_lvl_exit
- spawn_water_droplet
- stub_obj_helpers_3
- stub_obj_helpers_4
- object_list_processor.h
- rumble_init.c
- save_file.h
- smlua_audio_utils.h
- smlua_collision_utils.h
- smlua_misc_utils.h
- allocate_mario_action
- deref_s32_pointer
- get_current_save_file_num
- get_environment_region
- get_hand_foot_pos_x
- get_hand_foot_pos_y
- get_hand_foot_pos_z
- get_network_area_timer
- get_temp_s32_pointer
- hud_hide
- hud_show
- movtexqc_register
- play_transition
- save_file_set_using_backup_slot
- set_environment_region
- warp_exit_level
- warp_restart_level
- warp_to_castle
- warp_to_level
- smlua_model_utils.h
- smlua_obj_utils.h
- get_temp_object_hitbox
- get_trajectory
- obj_check_hitbox_overlap
- obj_get_first
- obj_get_first_with_behavior_id
- obj_get_first_with_behavior_id_and_field_f32
- obj_get_first_with_behavior_id_and_field_s32
- obj_get_next
- obj_get_next_with_same_behavior_id
- obj_get_next_with_same_behavior_id_and_field_f32
- obj_get_next_with_same_behavior_id_and_field_s32
- obj_get_temp_spawn_particles_info
- obj_has_behavior_id
- obj_has_model_extended
- obj_is_valid_for_interaction
- obj_move_xyz
- obj_set_model_extended
- obj_set_vel
- spawn_non_sync_object
- spawn_sync_object
- smlua_text_utils.h
- sound_init.h
- disable_background_sound
- enable_background_sound
- fadeout_cap_music
- fadeout_level_music
- fadeout_music
- lower_background_noise
- play_cap_music
- play_cutscene_music
- play_infinite_stairs_music
- play_menu_sounds
- play_painting_eject_sound
- play_shell_music
- raise_background_noise
- reset_volume
- set_background_music
- stop_cap_music
- stop_shell_music
- spawn_sound.c
- surface_collision.h
- surface_load.h
manually written functions
define_custom_obj_fields
Defines a custom set of overlapping object fields.
The fieldTable
table's keys must start with the letter o
and the values must be either u32
, s32
, or f32
.
Lua Example
define_custom_obj_fields({ oCustomField1 = 'u32', oCustomField2 = 's32', oCustomField3 = 'f32' })
Parameters
Field | Type |
---|---|
fieldTable | Lua Table |
C Prototype
N/A
network_init_object
Enables synchronization on an object.
- Setting
standardSync
totrue
will automatically synchronize the object at a rate that is determined based on player distance. The commonly used object fields will be automatically synchronized. - Setting
standardSync
tofalse
will not automatically synchronize the object, or add commonly used object fields. The mod must manually callnetwork_send_object()
when fields have changed.
The fieldTable
parameter can be nil
, or a list of object fields.
Lua Example
network_init_object(obj, true, { 'oCustomField1', 'oCustomField2', 'oCustomField3' })
Parameters
Field | Type |
---|---|
object | Object |
standardSync | bool |
fieldTable | Lua Table |
C Prototype
N/A
network_send_object
Sends a packet that synchronizes an object. This does not need to be called when standardSync
is enabled.
The reliable
field will ensure that the packet arrives, but should be used sparingly and only when missing a packet would cause a desync.
Lua Example
network_send_object(obj, false)
Parameters
Field | Type |
---|---|
object | Object |
reliable | bool |
C Prototype
N/A
network_send_to
Sends a packet to a particular player (using their local index) containing whatever data you want.
dataTable
can only contain strings, integers, numbers, booleans, and nil
The reliable
field will ensure that the packet arrives, but should be used sparingly and only when missing a packet would cause a desync.
Lua Example
network_send_to(localPlayerIndex, reliable, { data1 = 'hello', data2 = 10})
Parameters
Field | Type |
---|---|
localPlayerIndex | integer |
reliable | bool |
dataTable | table |
C Prototype
N/A
network_send
Sends a packet to all players containing whatever data you want.
dataTable
can only contain strings, integers, numbers, booleans, and nil
The reliable
field will ensure that the packet arrives, but should be used sparingly and only when missing a packet would cause a desync.
Lua Example
network_send(reliable, { data1 = 'hello', data2 = 10})
Parameters
Field | Type |
---|---|
reliable | bool |
dataTable | table |
C Prototype
N/A