Adjusted autogen to pull functions directly from src

This commit is contained in:
MysterD 2022-02-03 00:41:07 -08:00
parent 7059605ab7
commit d82dc207aa
19 changed files with 1030 additions and 252 deletions

View File

@ -1,5 +1,6 @@
import os
import re
from extract_functions import *
from common import *
rejects = ""
@ -9,6 +10,46 @@ param_override_build = {}
out_filename = 'src/pc/lua/smlua_functions_autogen.c'
docs_lua_functions = 'docs/lua/functions.md'
in_files = [
"src/audio/external.h",
"src/engine/surface_collision.h",
"src/game/camera.h",
"src/game/characters.h",
"src/game/mario_actions_airborne.c",
"src/game/mario_actions_automatic.c",
"src/game/mario_actions_cutscene.c",
"src/game/mario_actions_moving.c",
"src/game/mario_actions_object.c",
"src/game/mario_actions_stationary.c",
"src/game/mario_actions_submerged.c",
"src/game/mario_step.h",
"src/game/mario.h",
"src/game/thread6.c",
"src/pc/djui/djui_popup.h",
"src/pc/network/network_utils.h",
]
override_allowed_functions = {
"src/audio/external.h": [ " play_", "fade" ],
"src/game/camera.h": [ "set_.*camera_.*shake" ],
"src/game/thread6.c": [ "queue_rumble_"],
"src/pc/djui/djui_popup.h" : [ "create" ],
}
override_disallowed_functions = {
"src/audio/external.h": [ " func_" ],
"src/engine/surface_collision.h": [ " debug_" ],
"src/game/mario_actions_airborne.c": [ "^[us]32 act_.*" ],
"src/game/mario_actions_automatic.c": [ "^[us]32 act_.*" ],
"src/game/mario_actions_cutscene.c": [ "^[us]32 act_.*", " geo_" ],
"src/game/mario_actions_moving.c": [ "^[us]32 act_.*" ],
"src/game/mario_actions_object.c": [ "^[us]32 act_.*" ],
"src/game/mario_actions_stationary.c": [ "^[us]32 act_.*" ],
"src/game/mario_actions_submerged.c": [ "^[us]32 act_.*" ],
"src/game/mario_step.h": [ " stub_mario_step", "transfer_bully_speed"],
"src/game/mario.h": [ " init_mario" ],
}
###########################################################
template = """/* THIS FILE IS AUTOGENERATED */
@ -221,7 +262,21 @@ def build_binds(processed_files):
############################################################################
def process_function(line):
def process_function(fname, line):
if fname in override_allowed_functions:
found_match = False
for pattern in override_allowed_functions[fname]:
if re.search(pattern, line) != None:
found_match = True
break
if not found_match:
return None
if fname in override_disallowed_functions:
for pattern in override_disallowed_functions[fname]:
if re.search(pattern, line) != None:
return None
function = {}
line = line.strip()
@ -246,24 +301,37 @@ def process_function(line):
param['type'] = normalize_type(param_str)
param['identifier'] = 'arg%d' % param_index
else:
match = re.search('[a-zA-Z0-9_]+$', param_str)
match = re.search('[a-zA-Z0-9_\[\]]+$', param_str)
if match == None:
return None
param['type'] = normalize_type(param_str[0:match.span()[0]])
param['identifier'] = match.group()
# override Vec3s/f
if param['identifier'] == 'pos':
if param['type'].replace(' ', '') == 'f32*':
param['type'] = 'Vec3f'
if param['type'].replace(' ', '') == 's16*':
param['type'] = 'Vec3s'
function['params'].append(param)
param_index += 1
return function
def process_functions(file_str):
def process_functions(fname, file_str):
functions = []
for line in file_str.splitlines():
if reject_line(line):
global rejects
rejects += line + '\n'
continue
functions.append(process_function(line))
fn = process_function(fname, line)
if fn == None:
continue
functions.append(fn)
functions = sorted(functions, key=lambda d: d['identifier'])
functions = sorted(functions, key=lambda d: d['identifier'])
return functions
def process_file(fname):
@ -271,17 +339,16 @@ def process_file(fname):
processed_file['filename'] = fname.replace('\\', '/').split('/')[-1]
processed_file['extern'] = fname.endswith('.c')
with open(fname) as file:
processed_file['functions'] = process_functions(file.read())
extracted_str = extract_functions(fname)
processed_file['functions'] = process_functions(fname, extracted_str)
return processed_file
def process_files():
processed_files = []
dir_path = os.path.dirname(os.path.realpath(__file__)) + '/lua_functions/'
files = sorted(os.listdir(dir_path))
files = sorted(in_files, key=lambda d: d.split('/')[-1])
for f in files:
processed_files.append(process_file(dir_path + f))
processed_files.append(process_file(f))
return processed_files
############################################################################
@ -291,8 +358,11 @@ def doc_function_index(processed_files):
for processed_file in processed_files:
s += '- %s\n' % processed_file['filename']
for function in processed_file['functions']:
if not function['implemented']:
continue
s += ' - [%s](#%s)\n' % (function['identifier'], function['identifier'])
s += '\n<br />\n\n'
return s
def doc_function(function):

View File

@ -2,67 +2,70 @@ import os
import re
import sys
with open('./src/audio/external.h') as file:
lines = file.readlines()
def extract_functions(filename):
with open(filename) as file:
lines = file.readlines()
# strip directives and comments
txt = ''
for line in lines:
if line.strip().startswith('#'):
continue
if '//' in line:
line = line.split('//', 1)[0]
txt += line
# strip directives and comments
in_directive = False
txt = ''
for line in lines:
if line.strip().startswith('#') or in_directive:
in_directive = line.strip().endswith('\\')
continue
if '//' in line:
line = line.split('//', 1)[0]
txt += line
while ('/*' in txt):
s1 = txt.split('/*', 1)
s2 = s1[1].split('*/', 1)
txt = s1[0] + s2[-1]
while ('/*' in txt):
s1 = txt.split('/*', 1)
s2 = s1[1].split('*/', 1)
txt = s1[0] + s2[-1]
# normalize newlines
txt = txt.replace('\n', ' ')
txt = txt.replace(';', ';\n')
txt = txt.replace('{', '{\n')
while (' ' in txt):
txt = txt.replace(' ', ' ')
# normalize newlines
txt = txt.replace('\n', ' ')
txt = txt.replace(';', ';\n')
txt = txt.replace('{', '{\n')
while (' ' in txt):
txt = txt.replace(' ', ' ')
# strip macros
txt = re.sub(r'[^a-zA-Z0-9_][A-Z0-9_]+\(.*\)', '', txt)
# strip macros
txt = re.sub(r'[^a-zA-Z0-9_][A-Z0-9_]+\(.*\)', '', txt)
# strip blocks
tmp = txt
txt = ''
inside = 0
for character in tmp:
if inside == 0:
txt += character
# strip blocks
tmp = txt
txt = ''
inside = 0
for character in tmp:
if inside == 0:
txt += character
if character == '{':
txt += '\n'
inside += 1
if character == '{':
txt += '\n'
inside += 1
if character == '}':
inside -= 1
if character == '}':
inside -= 1
# cull obvious non-functions, statics, and externs
tmp = txt
txt = ''
for line in tmp.splitlines():
line = line.strip()
if '(' not in line:
continue
if ')' not in line:
continue
if '=' in line:
continue
#if '{' not in line:
# continue
if line.startswith('static '):
continue
if line.startswith('extern '):
continue
txt += line + '\n'
# cull obvious non-functions, statics, and externs
tmp = txt
txt = ''
for line in tmp.splitlines():
line = line.strip()
if '(' not in line:
continue
if ')' not in line:
continue
if '=' in line:
continue
#if '{' not in line:
# continue
if line.startswith('static '):
continue
if line.startswith('extern '):
continue
txt += line + '\n'
# normalize function ending
txt = txt.replace(' {', ';')
print('-'* 80 + '\n' + txt)
# normalize function ending
txt = txt.replace(' {', ';')
return txt

View File

@ -1,3 +0,0 @@
void set_camera_shake_from_hit(s16 shake);
void set_environmental_camera_shake(s16 shake);
void set_camera_shake_from_point(s16 shake, f32 posX, f32 posY, f32 posZ);

View File

@ -1,6 +0,0 @@
struct Character* get_character(struct MarioState* m);
void play_character_sound(struct MarioState* m, enum CharacterSound characterSound);
void play_character_sound_offset(struct MarioState* m, enum CharacterSound characterSound, u32 offset);
void play_character_sound_if_no_flag(struct MarioState* m, enum CharacterSound characterSound, u32 flags);
f32 get_character_anim_offset(struct MarioState* m);
void update_character_anim_offset(struct MarioState* m);

View File

@ -1 +0,0 @@
void play_sound(s32 soundBits, Vec3f pos);

View File

@ -1,44 +0,0 @@
s32 is_anim_at_end(struct MarioState *m);
s32 is_anim_past_end(struct MarioState *m);
s16 set_mario_animation(struct MarioState *m, s32 targetAnimID);
s16 set_mario_anim_with_accel(struct MarioState *m, s32 targetAnimID, s32 accel);
void set_anim_to_frame(struct MarioState *m, s16 animFrame);
s32 is_anim_past_frame(struct MarioState *m, s16 animFrame);
s16 find_mario_anim_flags_and_translation(struct Object *o, s32 yaw, Vec3s translation);
void update_mario_pos_for_anim(struct MarioState *m);
s16 return_mario_anim_y_translation(struct MarioState *m);
void play_sound_if_no_flag(struct MarioState *m, u32 soundBits, u32 flags);
void play_mario_jump_sound(struct MarioState *m);
void adjust_sound_for_speed(struct MarioState *m);
void play_sound_and_spawn_particles(struct MarioState *m, u32 soundBits, u32 waveParticleType);
void play_mario_action_sound(struct MarioState *m, u32 soundBits, u32 waveParticleType);
void play_mario_landing_sound(struct MarioState *m, u32 soundBits);
void play_mario_landing_sound_once(struct MarioState *m, u32 soundBits);
void play_mario_heavy_landing_sound(struct MarioState *m, u32 soundBits);
void play_mario_heavy_landing_sound_once(struct MarioState *m, u32 soundBits);
void play_mario_sound(struct MarioState *m, s32 primarySoundBits, s32 scondarySoundBits);
void mario_set_bubbled(struct MarioState* m);
void mario_set_forward_vel(struct MarioState *m, f32 speed);
s32 mario_get_floor_class(struct MarioState *m);
u32 mario_get_terrain_sound_addend(struct MarioState *m);
struct Surface *resolve_and_return_wall_collisions(Vec3f pos, f32 offset, f32 radius);
f32 vec3f_find_ceil(Vec3f pos, f32 height, struct Surface **ceil);
s32 mario_facing_downhill(struct MarioState *m, s32 turnYaw);
u32 mario_floor_is_slippery(struct MarioState *m);
s32 mario_floor_is_slope(struct MarioState *m);
s32 mario_floor_is_steep(struct MarioState *m);
f32 find_floor_height_relative_polar(struct MarioState *m, s16 angleFromMario, f32 distFromMario);
s16 find_floor_slope(struct MarioState *m, s16 yawOffset);
void update_mario_sound_and_camera(struct MarioState *m);
void set_steep_jump_action(struct MarioState *m);
u32 set_mario_action(struct MarioState *m, u32 action, u32 actionArg);
s32 set_jump_from_landing(struct MarioState *m);
s32 set_jumping_action(struct MarioState *m, u32 action, u32 actionArg);
s32 drop_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg);
s32 hurt_and_set_mario_action(struct MarioState *m, u32 action, u32 actionArg, s16 hurtCounter);
s32 check_common_action_exits(struct MarioState *m);
s32 check_common_hold_action_exits(struct MarioState *m);
s32 transition_submerged_to_walking(struct MarioState *m);
s32 set_water_plunge_action(struct MarioState *m);
s32 execute_mario_action(UNUSED struct Object *o);
s32 force_idle_state(struct MarioState* m);

View File

@ -1,20 +0,0 @@
void play_flip_sounds(struct MarioState *m, s16 frame1, s16 frame2, s16 frame3);
void play_far_fall_sound(struct MarioState *m);
void play_knockback_sound(struct MarioState *m);
s32 lava_boost_on_wall(struct MarioState *m);
s32 check_fall_damage(struct MarioState *m, u32 hardFallAction);
s32 check_kick_or_dive_in_air(struct MarioState *m);
s32 should_get_stuck_in_ground(struct MarioState *m);
s32 check_fall_damage_or_get_stuck(struct MarioState *m, u32 hardFallAction);
s32 check_horizontal_wind(struct MarioState *m);
void update_air_with_turn(struct MarioState *m);
void update_air_without_turn(struct MarioState *m);
void update_lava_boost_or_twirling(struct MarioState *m);
void update_flying_yaw(struct MarioState *m);
void update_flying_pitch(struct MarioState *m);
void update_flying(struct MarioState *m);
u32 common_air_action_step(struct MarioState *m, u32 landAction, s32 animation, u32 stepArg);
u32 common_air_knockback_step(struct MarioState *m, u32 landAction, u32 hardFallAction, s32 animation, f32 speed);
s32 check_wall_kick(struct MarioState *m);
s32 check_common_airborne_cancels(struct MarioState *m);
s32 mario_execute_airborne_action(struct MarioState *m);

View File

@ -1,12 +0,0 @@
void add_tree_leaf_particles(struct MarioState *m);
void play_climbing_sounds(struct MarioState *m, s32 b);
s32 set_pole_position(struct MarioState *m, f32 offsetY);
s32 perform_hanging_step(struct MarioState *m, Vec3f nextPos);
s32 update_hang_moving(struct MarioState *m);
void update_hang_stationary(struct MarioState *m);
s32 let_go_of_ledge(struct MarioState *m);
void climb_up_ledge(struct MarioState *m);
void update_ledge_climb_camera(struct MarioState *m);
void update_ledge_climb(struct MarioState *m, s32 animation, u32 endAction);
s32 check_common_automatic_cancels(struct MarioState *m);
s32 mario_execute_automatic_action(struct MarioState *m);

View File

@ -1,11 +0,0 @@
void print_displaying_credits_entry(void);
void bhv_end_peach_loop(void);
void bhv_end_toad_loop(void);
void handle_save_menu(struct MarioState *m);
struct Object *spawn_obj_at_mario_rel_yaw(struct MarioState *m, s32 model, BehaviorScript *behavior, s16 relYaw);
void cutscene_take_cap_off(struct MarioState *m);
void cutscene_put_cap_on(struct MarioState *m);
u8 should_start_or_continue_dialog(struct MarioState* m, struct Object* object);
void general_star_dance_handler(struct MarioState *m, s32 isInWater);
void stuck_in_ground_handler(struct MarioState *m, s32 animation, s32 unstuckFrame, s32 target2, s32 target3, s32 endAction);
void generate_yellow_sparkles(s16 x, s16 y, s16 z, f32 radius);

View File

@ -1,34 +0,0 @@
s16 tilt_body_running(struct MarioState *m);
void play_step_sound(struct MarioState *m, s16 frame1, s16 frame2);
void align_with_floor(struct MarioState *m);
s32 begin_walking_action(struct MarioState *m, f32 forwardVel, u32 action, u32 actionArg);
void check_ledge_climb_down(struct MarioState *m);
void slide_bonk(struct MarioState *m, u32 fastAction, u32 slowAction);
s32 set_triple_jump_action(struct MarioState *m, UNUSED u32 action, UNUSED u32 actionArg);
void update_sliding_angle(struct MarioState *m, f32 accel, f32 lossFactor);
s32 update_sliding(struct MarioState *m, f32 stopSpeed);
void apply_slope_accel(struct MarioState *m);
s32 apply_landing_accel(struct MarioState *m, f32 frictionFactor);
void update_shell_speed(struct MarioState *m);
s32 apply_slope_decel(struct MarioState *m, f32 decelCoef);
s32 update_decelerating_speed(struct MarioState *m);
void update_walking_speed(struct MarioState *m);
s32 should_begin_sliding(struct MarioState *m);
s32 analog_stick_held_back(struct MarioState *m);
s32 check_ground_dive_or_punch(struct MarioState *m);
s32 begin_braking_action(struct MarioState *m);
void anim_and_audio_for_walk(struct MarioState *m);
void anim_and_audio_for_hold_walk(struct MarioState *m);
void anim_and_audio_for_heavy_walk(struct MarioState *m);
void push_or_sidle_wall(struct MarioState *m, Vec3f startPos);
void tilt_body_walking(struct MarioState *m, s16 startYaw);
void tilt_body_ground_shell(struct MarioState *m, s16 startYaw);
void tilt_body_butt_slide(struct MarioState *m);
void common_slide_action(struct MarioState *m, u32 endAction, u32 airAction, s32 animation);
s32 common_slide_action_with_jump(struct MarioState *m, u32 stopAction, u32 jumpAction, u32 airAction, s32 animation);
s32 stomach_slide_action(struct MarioState *m, u32 stopAction, u32 airAction, s32 animation);
s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2, s32 arg3, s32 arg4);
u32 common_landing_action(struct MarioState *m, s16 animation, u32 airAction);
s32 quicksand_jump_land_action(struct MarioState *m, s32 animation1, s32 animation2, u32 endAction, u32 airAction);
s32 check_common_moving_cancels(struct MarioState *m);
s32 mario_execute_moving_action(struct MarioState *m);

View File

@ -1,4 +0,0 @@
void animated_stationary_ground_step(struct MarioState *m, s32 animation, u32 endAction);
s32 mario_update_punch_sequence(struct MarioState *m);
s32 check_common_object_cancels(struct MarioState *m);
s32 mario_execute_object_action(struct MarioState *m);

View File

@ -1,8 +0,0 @@
s32 check_common_idle_cancels(struct MarioState *m);
s32 check_common_hold_idle_cancels(struct MarioState *m);
void play_anim_sound(struct MarioState *m, u32 actionState, s32 animFrame, u32 sound);
void stopping_step(struct MarioState *m, s32 animID, u32 action);
s32 landing_step(struct MarioState *m, s32 arg1, u32 action);
s32 check_common_landing_cancels(struct MarioState *m, u32 action);
s32 check_common_stationary_cancels(struct MarioState *m);
s32 mario_execute_stationary_action(struct MarioState *m);

View File

@ -1,6 +0,0 @@
void set_swimming_at_surface_particles(struct MarioState *m, u32 particleFlag);
u32 perform_water_step(struct MarioState *m);
u32 perform_water_full_step(struct MarioState *m, Vec3f nextPos);
s32 mario_execute_submerged_action(struct MarioState *m);
void float_surface_gfx(struct MarioState *m);
void apply_water_current(struct MarioState *m, Vec3f step);

View File

@ -1,11 +0,0 @@
f32 get_additive_y_vel_for_jumps(void);
void mario_bonk_reflection(struct MarioState *, u32);
u32 mario_update_quicksand(struct MarioState *, f32);
u32 mario_push_off_steep_floor(struct MarioState *, u32, u32);
u32 mario_update_moving_sand(struct MarioState *);
u32 mario_update_windy_ground(struct MarioState *);
void stop_and_set_height_to_floor(struct MarioState *);
s32 stationary_ground_step(struct MarioState *);
s32 perform_ground_step(struct MarioState *);
s32 perform_air_step(struct MarioState *, u32);
void set_vel_from_pitch_and_yaw(struct MarioState* m);

View File

@ -1,3 +0,0 @@
bool network_is_server(void);
u8 network_global_index_from_local(u8 localIndex);
u8 network_local_index_from_global(u8 globalIndex);

View File

@ -1,9 +0,0 @@
s32 f32_find_wall_collision(f32 *xPtr, f32 *yPtr, f32 *zPtr, f32 offsetY, f32 radius);
s32 find_wall_collisions(struct WallCollisionData *colData);
f32 find_ceil(f32 posX, f32 posY, f32 posZ, struct Surface **pceil);
f32 find_floor_height_and_data(f32 xPos, f32 yPos, f32 zPos, struct FloorGeometry **floorGeo);
f32 find_floor_height(f32 x, f32 y, f32 z);
f32 find_floor(f32 xPos, f32 yPos, f32 zPos, struct Surface **pfloor);
f32 find_water_level(f32 x, f32 z);
f32 find_poison_gas_level(f32 x, f32 z);
void find_surface_on_ray(Vec3f orig, Vec3f dir, struct Surface **hit_surface, Vec3f hit_pos);

View File

@ -1,3 +0,0 @@
void queue_rumble_data(s16 a0, s16 a1);
void queue_rumble_data_object(struct Object* object, s16 a0, s16 a1);
void queue_rumble_data_mario(struct MarioState* m, s16 a0, s16 a1);

View File

@ -2,14 +2,16 @@
# Supported Functions
- camera.h
- [set_camera_pitch_shake](#set_camera_pitch_shake)
- [set_camera_roll_shake](#set_camera_roll_shake)
- [set_camera_shake_from_hit](#set_camera_shake_from_hit)
- [set_camera_shake_from_point](#set_camera_shake_from_point)
- [set_camera_yaw_shake](#set_camera_yaw_shake)
- [set_environmental_camera_shake](#set_environmental_camera_shake)
<br />
- characters.h
- [get_character](#get_character)
- [get_character_anim_offset](#get_character_anim_offset)
- [play_character_sound](#play_character_sound)
- [play_character_sound_if_no_flag](#play_character_sound_if_no_flag)
@ -18,8 +20,27 @@
<br />
- djui_popup.h
<br />
- external.h
- [fade_volume_scale](#fade_volume_scale)
- [fadeout_background_music](#fadeout_background_music)
- [play_course_clear](#play_course_clear)
- [play_dialog_sound](#play_dialog_sound)
- [play_music](#play_music)
- [play_peachs_jingle](#play_peachs_jingle)
- [play_power_star_jingle](#play_power_star_jingle)
- [play_puzzle_jingle](#play_puzzle_jingle)
- [play_race_fanfare](#play_race_fanfare)
- [play_secondary_music](#play_secondary_music)
- [play_sound](#play_sound)
- [play_sound_with_freq_scale](#play_sound_with_freq_scale)
- [play_star_fanfare](#play_star_fanfare)
- [play_toads_jingle](#play_toads_jingle)
- [sequence_player_fade_out](#sequence_player_fade_out)
- [sequence_player_unlower](#sequence_player_unlower)
<br />
@ -54,7 +75,6 @@
- [play_mario_sound](#play_mario_sound)
- [play_sound_and_spawn_particles](#play_sound_and_spawn_particles)
- [play_sound_if_no_flag](#play_sound_if_no_flag)
- [resolve_and_return_wall_collisions](#resolve_and_return_wall_collisions)
- [return_mario_anim_y_translation](#return_mario_anim_y_translation)
- [set_anim_to_frame](#set_anim_to_frame)
- [set_jump_from_landing](#set_jump_from_landing)
@ -67,7 +87,6 @@
- [transition_submerged_to_walking](#transition_submerged_to_walking)
- [update_mario_pos_for_anim](#update_mario_pos_for_anim)
- [update_mario_sound_and_camera](#update_mario_sound_and_camera)
- [vec3f_find_ceil](#vec3f_find_ceil)
<br />
@ -114,14 +133,18 @@
- mario_actions_cutscene.c
- [bhv_end_peach_loop](#bhv_end_peach_loop)
- [bhv_end_toad_loop](#bhv_end_toad_loop)
- [common_death_handler](#common_death_handler)
- [cutscene_put_cap_on](#cutscene_put_cap_on)
- [cutscene_take_cap_off](#cutscene_take_cap_off)
- [general_star_dance_handler](#general_star_dance_handler)
- [generate_yellow_sparkles](#generate_yellow_sparkles)
- [get_star_collection_dialog](#get_star_collection_dialog)
- [handle_save_menu](#handle_save_menu)
- [launch_mario_until_land](#launch_mario_until_land)
- [mario_execute_cutscene_action](#mario_execute_cutscene_action)
- [mario_ready_to_speak](#mario_ready_to_speak)
- [print_displaying_credits_entry](#print_displaying_credits_entry)
- [should_start_or_continue_dialog](#should_start_or_continue_dialog)
- [spawn_obj_at_mario_rel_yaw](#spawn_obj_at_mario_rel_yaw)
- [stuck_in_ground_handler](#stuck_in_ground_handler)
<br />
@ -217,13 +240,8 @@
<br />
- surface_collision.h
- [f32_find_wall_collision](#f32_find_wall_collision)
- [find_ceil](#find_ceil)
- [find_floor](#find_floor)
- [find_floor_height](#find_floor_height)
- [find_floor_height_and_data](#find_floor_height_and_data)
- [find_poison_gas_level](#find_poison_gas_level)
- [find_surface_on_ray](#find_surface_on_ray)
- [find_wall_collisions](#find_wall_collisions)
- [find_water_level](#find_water_level)
@ -243,6 +261,50 @@
<br />
## [set_camera_pitch_shake](#set_camera_pitch_shake)
### Lua Example
`set_camera_pitch_shake(mag, decay, inc)`
### Parameters
| Field | Type |
| ----- | ---- |
| mag | integer |
| decay | integer |
| inc | integer |
### Returns
- None
### C Prototype
`void set_camera_pitch_shake(s16 mag, s16 decay, s16 inc);`
[:arrow_up_small:](#)
<br />
## [set_camera_roll_shake](#set_camera_roll_shake)
### Lua Example
`set_camera_roll_shake(mag, decay, inc)`
### Parameters
| Field | Type |
| ----- | ---- |
| mag | integer |
| decay | integer |
| inc | integer |
### Returns
- None
### C Prototype
`void set_camera_roll_shake(s16 mag, s16 decay, s16 inc);`
[:arrow_up_small:](#)
<br />
## [set_camera_shake_from_hit](#set_camera_shake_from_hit)
### Lua Example
@ -286,6 +348,28 @@
<br />
## [set_camera_yaw_shake](#set_camera_yaw_shake)
### Lua Example
`set_camera_yaw_shake(mag, decay, inc)`
### Parameters
| Field | Type |
| ----- | ---- |
| mag | integer |
| decay | integer |
| inc | integer |
### Returns
- None
### C Prototype
`void set_camera_yaw_shake(s16 mag, s16 decay, s16 inc);`
[:arrow_up_small:](#)
<br />
## [set_environmental_camera_shake](#set_environmental_camera_shake)
### Lua Example
@ -417,12 +501,218 @@
<br />
---
# functions from djui_popup.h
<br />
---
# functions from external.h
<br />
## [fade_volume_scale](#fade_volume_scale)
### Lua Example
`fade_volume_scale(player, targetScale, fadeTimer)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | integer |
| targetScale | integer |
| fadeTimer | integer |
### Returns
- None
### C Prototype
`void fade_volume_scale(u8 player, u8 targetScale, u16 fadeTimer);`
[:arrow_up_small:](#)
<br />
## [fadeout_background_music](#fadeout_background_music)
### Lua Example
`fadeout_background_music(arg0, fadeOut)`
### Parameters
| Field | Type |
| ----- | ---- |
| arg0 | integer |
| fadeOut | integer |
### Returns
- None
### C Prototype
`void fadeout_background_music(u16 arg0, u16 fadeOut);`
[:arrow_up_small:](#)
<br />
## [play_course_clear](#play_course_clear)
### Lua Example
`play_course_clear()`
### Parameters
- None
### Returns
- None
### C Prototype
`void play_course_clear(void);`
[:arrow_up_small:](#)
<br />
## [play_dialog_sound](#play_dialog_sound)
### Lua Example
`play_dialog_sound(dialogID)`
### Parameters
| Field | Type |
| ----- | ---- |
| dialogID | integer |
### Returns
- None
### C Prototype
`void play_dialog_sound(u8 dialogID);`
[:arrow_up_small:](#)
<br />
## [play_music](#play_music)
### Lua Example
`play_music(player, seqArgs, fadeTimer)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | integer |
| seqArgs | integer |
| fadeTimer | integer |
### Returns
- None
### C Prototype
`void play_music(u8 player, u16 seqArgs, u16 fadeTimer);`
[:arrow_up_small:](#)
<br />
## [play_peachs_jingle](#play_peachs_jingle)
### Lua Example
`play_peachs_jingle()`
### Parameters
- None
### Returns
- None
### C Prototype
`void play_peachs_jingle(void);`
[:arrow_up_small:](#)
<br />
## [play_power_star_jingle](#play_power_star_jingle)
### Lua Example
`play_power_star_jingle(arg0)`
### Parameters
| Field | Type |
| ----- | ---- |
| arg0 | integer |
### Returns
- None
### C Prototype
`void play_power_star_jingle(u8 arg0);`
[:arrow_up_small:](#)
<br />
## [play_puzzle_jingle](#play_puzzle_jingle)
### Lua Example
`play_puzzle_jingle()`
### Parameters
- None
### Returns
- None
### C Prototype
`void play_puzzle_jingle(void);`
[:arrow_up_small:](#)
<br />
## [play_race_fanfare](#play_race_fanfare)
### Lua Example
`play_race_fanfare()`
### Parameters
- None
### Returns
- None
### C Prototype
`void play_race_fanfare(void);`
[:arrow_up_small:](#)
<br />
## [play_secondary_music](#play_secondary_music)
### Lua Example
`play_secondary_music(seqId, bgMusicVolume, volume, fadeTimer)`
### Parameters
| Field | Type |
| ----- | ---- |
| seqId | integer |
| bgMusicVolume | integer |
| volume | integer |
| fadeTimer | integer |
### Returns
- None
### C Prototype
`void play_secondary_music(u8 seqId, u8 bgMusicVolume, u8 volume, u16 fadeTimer);`
[:arrow_up_small:](#)
<br />
## [play_sound](#play_sound)
### Lua Example
@ -438,7 +728,107 @@
- None
### C Prototype
`void play_sound(s32 soundBits, Vec3f pos);`
`void play_sound(s32 soundBits, f32 *pos);`
[:arrow_up_small:](#)
<br />
## [play_sound_with_freq_scale](#play_sound_with_freq_scale)
### Lua Example
`play_sound_with_freq_scale(soundBits, pos, freqScale)`
### Parameters
| Field | Type |
| ----- | ---- |
| soundBits | integer |
| pos | [Vec3f](structs.md#Vec3f) |
| freqScale | number |
### Returns
- None
### C Prototype
`void play_sound_with_freq_scale(s32 soundBits, f32* pos, f32 freqScale);`
[:arrow_up_small:](#)
<br />
## [play_star_fanfare](#play_star_fanfare)
### Lua Example
`play_star_fanfare()`
### Parameters
- None
### Returns
- None
### C Prototype
`void play_star_fanfare(void);`
[:arrow_up_small:](#)
<br />
## [play_toads_jingle](#play_toads_jingle)
### Lua Example
`play_toads_jingle()`
### Parameters
- None
### Returns
- None
### C Prototype
`void play_toads_jingle(void);`
[:arrow_up_small:](#)
<br />
## [sequence_player_fade_out](#sequence_player_fade_out)
### Lua Example
`sequence_player_fade_out(player, fadeTimer)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | integer |
| fadeTimer | integer |
### Returns
- None
### C Prototype
`void sequence_player_fade_out(u8 player, u16 fadeTimer);`
[:arrow_up_small:](#)
<br />
## [sequence_player_unlower](#sequence_player_unlower)
### Lua Example
`sequence_player_unlower(player, fadeTimer)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | integer |
| fadeTimer | integer |
### Returns
- None
### C Prototype
`void sequence_player_unlower(u8 player, u16 fadeTimer);`
[:arrow_up_small:](#)
@ -2034,6 +2424,28 @@
<br />
## [common_death_handler](#common_death_handler)
### Lua Example
`local integerValue = common_death_handler(m, animation, frameToDeathWarp)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
| animation | integer |
| frameToDeathWarp | integer |
### Returns
- integer
### C Prototype
`s32 common_death_handler(struct MarioState *m, s32 animation, s32 frameToDeathWarp);`
[:arrow_up_small:](#)
<br />
## [cutscene_put_cap_on](#cutscene_put_cap_on)
### Lua Example
@ -2118,6 +2530,26 @@
<br />
## [get_star_collection_dialog](#get_star_collection_dialog)
### Lua Example
`local integerValue = get_star_collection_dialog(m)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
### Returns
- integer
### C Prototype
`s32 get_star_collection_dialog(struct MarioState *m);`
[:arrow_up_small:](#)
<br />
## [handle_save_menu](#handle_save_menu)
### Lua Example
@ -2138,6 +2570,69 @@
<br />
## [launch_mario_until_land](#launch_mario_until_land)
### Lua Example
`local integerValue = launch_mario_until_land(m, endAction, animation, forwardVel)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
| endAction | integer |
| animation | integer |
| forwardVel | number |
### Returns
- integer
### C Prototype
`s32 launch_mario_until_land(struct MarioState *m, s32 endAction, s32 animation, f32 forwardVel);`
[:arrow_up_small:](#)
<br />
## [mario_execute_cutscene_action](#mario_execute_cutscene_action)
### Lua Example
`local integerValue = mario_execute_cutscene_action(m)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
### Returns
- integer
### C Prototype
`s32 mario_execute_cutscene_action(struct MarioState *m);`
[:arrow_up_small:](#)
<br />
## [mario_ready_to_speak](#mario_ready_to_speak)
### Lua Example
`local integerValue = mario_ready_to_speak(m)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
### Returns
- integer
### C Prototype
`s32 mario_ready_to_speak(struct MarioState* m);`
[:arrow_up_small:](#)
<br />
## [print_displaying_credits_entry](#print_displaying_credits_entry)
### Lua Example

View File

@ -18,6 +18,36 @@
// camera.h //
//////////////
int smlua_func_set_camera_pitch_shake(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
s16 mag = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
s16 decay = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
s16 inc = smlua_to_integer(L, 3);
if (!gSmLuaConvertSuccess) { return 0; }
set_camera_pitch_shake(mag, decay, inc);
return 1;
}
int smlua_func_set_camera_roll_shake(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
s16 mag = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
s16 decay = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
s16 inc = smlua_to_integer(L, 3);
if (!gSmLuaConvertSuccess) { return 0; }
set_camera_roll_shake(mag, decay, inc);
return 1;
}
int smlua_func_set_camera_shake_from_hit(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
@ -46,6 +76,21 @@ int smlua_func_set_camera_shake_from_point(lua_State* L) {
return 1;
}
int smlua_func_set_camera_yaw_shake(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
s16 mag = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
s16 decay = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
s16 inc = smlua_to_integer(L, 3);
if (!gSmLuaConvertSuccess) { return 0; }
set_camera_yaw_shake(mag, decay, inc);
return 1;
}
int smlua_func_set_environmental_camera_shake(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
@ -139,10 +184,147 @@ int smlua_func_update_character_anim_offset(lua_State* L) {
return 1;
}
//////////////////
// djui_popup.h //
//////////////////
/*
int smlua_func_djui_popup_create(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
// const char* message = (const char*)smlua_to_cobject(L, 1, LOT_???); <--- UNIMPLEMENTED
if (!gSmLuaConvertSuccess) { return 0; }
int lines = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
UNIMPLEMENTED -->(L, djui_popup_create(message, lines));
return 1;
}
*/
////////////////
// external.h //
////////////////
int smlua_func_fade_volume_scale(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
u8 player = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
u8 targetScale = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
u16 fadeTimer = smlua_to_integer(L, 3);
if (!gSmLuaConvertSuccess) { return 0; }
fade_volume_scale(player, targetScale, fadeTimer);
return 1;
}
int smlua_func_fadeout_background_music(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
u16 arg0 = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
u16 fadeOut = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
fadeout_background_music(arg0, fadeOut);
return 1;
}
int smlua_func_play_course_clear(UNUSED lua_State* L) {
if(!smlua_functions_valid_param_count(L, 0)) { return 0; }
play_course_clear();
return 1;
}
int smlua_func_play_dialog_sound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
u8 dialogID = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
play_dialog_sound(dialogID);
return 1;
}
int smlua_func_play_music(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
u8 player = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
u16 seqArgs = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
u16 fadeTimer = smlua_to_integer(L, 3);
if (!gSmLuaConvertSuccess) { return 0; }
play_music(player, seqArgs, fadeTimer);
return 1;
}
int smlua_func_play_peachs_jingle(UNUSED lua_State* L) {
if(!smlua_functions_valid_param_count(L, 0)) { return 0; }
play_peachs_jingle();
return 1;
}
int smlua_func_play_power_star_jingle(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
u8 arg0 = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
play_power_star_jingle(arg0);
return 1;
}
int smlua_func_play_puzzle_jingle(UNUSED lua_State* L) {
if(!smlua_functions_valid_param_count(L, 0)) { return 0; }
play_puzzle_jingle();
return 1;
}
int smlua_func_play_race_fanfare(UNUSED lua_State* L) {
if(!smlua_functions_valid_param_count(L, 0)) { return 0; }
play_race_fanfare();
return 1;
}
int smlua_func_play_secondary_music(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
u8 seqId = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
u8 bgMusicVolume = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
u8 volume = smlua_to_integer(L, 3);
if (!gSmLuaConvertSuccess) { return 0; }
u16 fadeTimer = smlua_to_integer(L, 4);
if (!gSmLuaConvertSuccess) { return 0; }
play_secondary_music(seqId, bgMusicVolume, volume, fadeTimer);
return 1;
}
int smlua_func_play_sound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
@ -166,6 +348,75 @@ int smlua_func_play_sound(lua_State* L) {
return 1;
}
int smlua_func_play_sound_with_freq_scale(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
s32 soundBits = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
f32* pos = smlua_get_vec3f_from_buffer();
pos[0] = smlua_get_number_field(2, "x");
if (!gSmLuaConvertSuccess) { return 0; }
pos[1] = smlua_get_number_field(2, "y");
if (!gSmLuaConvertSuccess) { return 0; }
pos[2] = smlua_get_number_field(2, "z");
if (!gSmLuaConvertSuccess) { return 0; }
f32 freqScale = smlua_to_number(L, 3);
if (!gSmLuaConvertSuccess) { return 0; }
play_sound_with_freq_scale(soundBits, pos, freqScale);
smlua_push_number_field(2, "x", pos[0]);
smlua_push_number_field(2, "y", pos[1]);
smlua_push_number_field(2, "z", pos[2]);
return 1;
}
int smlua_func_play_star_fanfare(UNUSED lua_State* L) {
if(!smlua_functions_valid_param_count(L, 0)) { return 0; }
play_star_fanfare();
return 1;
}
int smlua_func_play_toads_jingle(UNUSED lua_State* L) {
if(!smlua_functions_valid_param_count(L, 0)) { return 0; }
play_toads_jingle();
return 1;
}
int smlua_func_sequence_player_fade_out(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
u8 player = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
u16 fadeTimer = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
sequence_player_fade_out(player, fadeTimer);
return 1;
}
int smlua_func_sequence_player_unlower(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
u8 player = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
u16 fadeTimer = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
sequence_player_unlower(player, fadeTimer);
return 1;
}
/////////////
// mario.h //
/////////////
@ -1222,6 +1473,22 @@ int smlua_func_bhv_end_toad_loop(UNUSED lua_State* L) {
return 1;
}
int smlua_func_common_death_handler(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 animation = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
s32 frameToDeathWarp = smlua_to_integer(L, 3);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 common_death_handler(struct MarioState *m, s32 animation, s32 frameToDeathWarp);
lua_pushinteger(L, common_death_handler(m, animation, frameToDeathWarp));
return 1;
}
int smlua_func_cutscene_put_cap_on(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
@ -1278,6 +1545,32 @@ int smlua_func_generate_yellow_sparkles(lua_State* L) {
return 1;
}
/*
int smlua_func_get_credits_str_width(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
// char * str = (char *)smlua_to_cobject(L, 1, LOT_???); <--- UNIMPLEMENTED
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 get_credits_str_width(char *str);
lua_pushinteger(L, get_credits_str_width(str));
return 1;
}
*/
int smlua_func_get_star_collection_dialog(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 get_star_collection_dialog(struct MarioState *m);
lua_pushinteger(L, get_star_collection_dialog(m));
return 1;
}
int smlua_func_handle_save_menu(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
@ -1290,6 +1583,48 @@ int smlua_func_handle_save_menu(lua_State* L) {
return 1;
}
int smlua_func_launch_mario_until_land(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 endAction = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
s32 animation = smlua_to_integer(L, 3);
if (!gSmLuaConvertSuccess) { return 0; }
f32 forwardVel = smlua_to_number(L, 4);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 launch_mario_until_land(struct MarioState *m, s32 endAction, s32 animation, f32 forwardVel);
lua_pushinteger(L, launch_mario_until_land(m, endAction, animation, forwardVel));
return 1;
}
int smlua_func_mario_execute_cutscene_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 mario_execute_cutscene_action(struct MarioState *m);
lua_pushinteger(L, mario_execute_cutscene_action(m));
return 1;
}
int smlua_func_mario_ready_to_speak(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 mario_ready_to_speak(struct MarioState* m);
lua_pushinteger(L, mario_ready_to_speak(m));
return 1;
}
int smlua_func_print_displaying_credits_entry(UNUSED lua_State* L) {
if(!smlua_functions_valid_param_count(L, 0)) { return 0; }
@ -1322,12 +1657,12 @@ int smlua_func_spawn_obj_at_mario_rel_yaw(lua_State* L) {
if (!gSmLuaConvertSuccess) { return 0; }
s32 model = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
// BehaviorScript * behavior = (BehaviorScript *)smlua_to_cobject(L, 3, LOT_???); <--- UNIMPLEMENTED
// const BehaviorScript* behavior = (const BehaviorScript*)smlua_to_cobject(L, 3, LOT_???); <--- UNIMPLEMENTED
if (!gSmLuaConvertSuccess) { return 0; }
s16 relYaw = smlua_to_integer(L, 4);
if (!gSmLuaConvertSuccess) { return 0; }
extern struct Object *spawn_obj_at_mario_rel_yaw(struct MarioState *m, s32 model, BehaviorScript *behavior, s16 relYaw);
extern struct Object *spawn_obj_at_mario_rel_yaw(struct MarioState *m, s32 model, const BehaviorScript *behavior, s16 relYaw);
UNIMPLEMENTED -->(L, spawn_obj_at_mario_rel_yaw(m, model, behavior, relYaw));
return 1;
@ -1562,6 +1897,28 @@ int smlua_func_common_landing_action(lua_State* L) {
return 1;
}
/*
int smlua_func_common_landing_cancels(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 5)) { return 0; }
struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
struct LandingAction* landingAction = (struct LandingAction*)smlua_to_cobject(L, 2, LOT_LANDINGACTION);
if (!gSmLuaConvertSuccess) { return 0; }
// s32 (*setAPressAction)(structMarioState* arg2 = (s32 (*setAPressAction)(structMarioState*)smlua_to_cobject(L, 3, LVT_???); <--- UNIMPLEMENTED
if (!gSmLuaConvertSuccess) { return 0; }
u32 arg3 = smlua_to_integer(L, 4);
if (!gSmLuaConvertSuccess) { return 0; }
// u32) arg4 = (u32))smlua_to_cobject(L, 5, LOT_???); <--- UNIMPLEMENTED
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 common_landing_cancels(struct MarioState *m, struct LandingAction *landingAction, s32 (*setAPressAction)(struct MarioState *, u32, u32));
lua_pushinteger(L, common_landing_cancels(m, landingAction, arg2, arg3, arg4));
return 1;
}
*/
int smlua_func_common_slide_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
@ -2533,8 +2890,11 @@ void smlua_bind_functions_autogen(void) {
lua_State* L = gLuaState;
// camera.h
smlua_bind_function(L, "set_camera_pitch_shake", smlua_func_set_camera_pitch_shake);
smlua_bind_function(L, "set_camera_roll_shake", smlua_func_set_camera_roll_shake);
smlua_bind_function(L, "set_camera_shake_from_hit", smlua_func_set_camera_shake_from_hit);
smlua_bind_function(L, "set_camera_shake_from_point", smlua_func_set_camera_shake_from_point);
smlua_bind_function(L, "set_camera_yaw_shake", smlua_func_set_camera_yaw_shake);
smlua_bind_function(L, "set_environmental_camera_shake", smlua_func_set_environmental_camera_shake);
// characters.h
@ -2545,8 +2905,26 @@ void smlua_bind_functions_autogen(void) {
smlua_bind_function(L, "play_character_sound_offset", smlua_func_play_character_sound_offset);
smlua_bind_function(L, "update_character_anim_offset", smlua_func_update_character_anim_offset);
// djui_popup.h
//smlua_bind_function(L, "djui_popup_create", smlua_func_djui_popup_create); <--- UNIMPLEMENTED
// external.h
smlua_bind_function(L, "fade_volume_scale", smlua_func_fade_volume_scale);
smlua_bind_function(L, "fadeout_background_music", smlua_func_fadeout_background_music);
smlua_bind_function(L, "play_course_clear", smlua_func_play_course_clear);
smlua_bind_function(L, "play_dialog_sound", smlua_func_play_dialog_sound);
smlua_bind_function(L, "play_music", smlua_func_play_music);
smlua_bind_function(L, "play_peachs_jingle", smlua_func_play_peachs_jingle);
smlua_bind_function(L, "play_power_star_jingle", smlua_func_play_power_star_jingle);
smlua_bind_function(L, "play_puzzle_jingle", smlua_func_play_puzzle_jingle);
smlua_bind_function(L, "play_race_fanfare", smlua_func_play_race_fanfare);
smlua_bind_function(L, "play_secondary_music", smlua_func_play_secondary_music);
smlua_bind_function(L, "play_sound", smlua_func_play_sound);
smlua_bind_function(L, "play_sound_with_freq_scale", smlua_func_play_sound_with_freq_scale);
smlua_bind_function(L, "play_star_fanfare", smlua_func_play_star_fanfare);
smlua_bind_function(L, "play_toads_jingle", smlua_func_play_toads_jingle);
smlua_bind_function(L, "sequence_player_fade_out", smlua_func_sequence_player_fade_out);
smlua_bind_function(L, "sequence_player_unlower", smlua_func_sequence_player_unlower);
// mario.h
smlua_bind_function(L, "adjust_sound_for_speed", smlua_func_adjust_sound_for_speed);
@ -2633,11 +3011,17 @@ void smlua_bind_functions_autogen(void) {
// mario_actions_cutscene.c
smlua_bind_function(L, "bhv_end_peach_loop", smlua_func_bhv_end_peach_loop);
smlua_bind_function(L, "bhv_end_toad_loop", smlua_func_bhv_end_toad_loop);
smlua_bind_function(L, "common_death_handler", smlua_func_common_death_handler);
smlua_bind_function(L, "cutscene_put_cap_on", smlua_func_cutscene_put_cap_on);
smlua_bind_function(L, "cutscene_take_cap_off", smlua_func_cutscene_take_cap_off);
smlua_bind_function(L, "general_star_dance_handler", smlua_func_general_star_dance_handler);
smlua_bind_function(L, "generate_yellow_sparkles", smlua_func_generate_yellow_sparkles);
//smlua_bind_function(L, "get_credits_str_width", smlua_func_get_credits_str_width); <--- UNIMPLEMENTED
smlua_bind_function(L, "get_star_collection_dialog", smlua_func_get_star_collection_dialog);
smlua_bind_function(L, "handle_save_menu", smlua_func_handle_save_menu);
smlua_bind_function(L, "launch_mario_until_land", smlua_func_launch_mario_until_land);
smlua_bind_function(L, "mario_execute_cutscene_action", smlua_func_mario_execute_cutscene_action);
smlua_bind_function(L, "mario_ready_to_speak", smlua_func_mario_ready_to_speak);
smlua_bind_function(L, "print_displaying_credits_entry", smlua_func_print_displaying_credits_entry);
smlua_bind_function(L, "should_start_or_continue_dialog", smlua_func_should_start_or_continue_dialog);
//smlua_bind_function(L, "spawn_obj_at_mario_rel_yaw", smlua_func_spawn_obj_at_mario_rel_yaw); <--- UNIMPLEMENTED
@ -2659,6 +3043,7 @@ void smlua_bind_functions_autogen(void) {
smlua_bind_function(L, "check_ledge_climb_down", smlua_func_check_ledge_climb_down);
smlua_bind_function(L, "common_ground_knockback_action", smlua_func_common_ground_knockback_action);
smlua_bind_function(L, "common_landing_action", smlua_func_common_landing_action);
//smlua_bind_function(L, "common_landing_cancels", smlua_func_common_landing_cancels); <--- UNIMPLEMENTED
smlua_bind_function(L, "common_slide_action", smlua_func_common_slide_action);
smlua_bind_function(L, "common_slide_action_with_jump", smlua_func_common_slide_action_with_jump);
smlua_bind_function(L, "mario_execute_moving_action", smlua_func_mario_execute_moving_action);