1616in_files = [
1717 "src/audio/external.h" ,
1818 "src/engine/math_util.h" ,
19+ "src/engine/math_util.inl" ,
20+ "src/engine/math_util_vec3f.inl" ,
21+ "src/engine/math_util_vec3i.inl" ,
22+ "src/engine/math_util_vec3s.inl" ,
23+ "src/engine/math_util_mat4.inl" ,
1924 "src/engine/surface_collision.h" ,
2025 "src/engine/surface_load.h" ,
2126 "src/game/camera.h" ,
4954 "src/pc/lua/utils/smlua_camera_utils.h" ,
5055 "src/pc/lua/utils/smlua_gfx_utils.h" ,
5156 "src/pc/lua/utils/smlua_collision_utils.h" ,
52- "src/pc/lua/utils/smlua_math_utils.h" ,
5357 "src/pc/lua/utils/smlua_model_utils.h" ,
5458 "src/pc/lua/utils/smlua_text_utils.h" ,
5559 "src/pc/lua/utils/smlua_audio_utils.h" ,
7377 "src/game/first_person_cam.h" ,
7478 "src/engine/behavior_script.h" ,
7579 "src/audio/seqplayer.h" ,
76- "src/engine/lighting_engine.h"
80+ "src/engine/lighting_engine.h" ,
81+ "src/pc/network/sync_object.h"
7782]
7883
7984override_allowed_functions = {
9196 "src/game/area.h" : [ "get_mario_spawn_type" , "area_get_warp_node" , "area_get_any_warp_node" , "play_transition" ],
9297 "src/engine/level_script.h" : [ "area_create_warp_node" ],
9398 "src/game/ingame_menu.h" : [ "set_min_dialog_width" , "set_dialog_override_pos" , "reset_dialog_override_pos" , "set_dialog_override_color" , "reset_dialog_override_color" , "set_menu_mode" , "create_dialog_box" , "create_dialog_box_with_var" , "create_dialog_inverted_box" , "create_dialog_box_with_response" , "reset_dialog_render_state" , "set_dialog_box_state" , ],
94- "src/audio/seqplayer.h" : [ "sequence_player_set_tempo" , "sequence_player_set_tempo_acc" , "sequence_player_set_transposition" , "sequence_player_get_tempo" , "sequence_player_get_tempo_acc" , "sequence_player_get_transposition" , "sequence_player_get_volume" , "sequence_player_get_fade_volume" , "sequence_player_get_mute_volume_scale" ]
99+ "src/audio/seqplayer.h" : [ "sequence_player_set_tempo" , "sequence_player_set_tempo_acc" , "sequence_player_set_transposition" , "sequence_player_get_tempo" , "sequence_player_get_tempo_acc" , "sequence_player_get_transposition" , "sequence_player_get_volume" , "sequence_player_get_fade_volume" , "sequence_player_get_mute_volume_scale" ],
100+ "src/pc/network/sync_object.h" : [ "sync_object_is_initialized" , "sync_object_is_owned_locally" , "sync_object_get_object" ]
95101}
96102
97103override_disallowed_functions = {
98104 "src/audio/external.h" : [ " func_" ],
99- "src/engine/math_util.h" : [ "atan2f" , "vec3s_sub" ],
100105 "src/engine/surface_load.h" : [ "load_area_terrain" , "alloc_surface_pools" , "clear_dynamic_surfaces" , "get_area_terrain_size" ],
101106 "src/engine/surface_collision.h" : [ " debug_" , "f32_find_wall_collision" ],
102107 "src/game/mario_actions_airborne.c" : [ "^[us]32 act_.*" ],
@@ -892,9 +897,7 @@ def build_param(fid, param, i):
892897 else :
893898 s = ' ' + s
894899
895- sanity_check = ' if (lua_isnil(L, %d)) { return 0; }\n ' % (i )
896-
897- return sanity_check + s + '\n '
900+ return s + '\n '
898901
899902def build_param_after (param , i ):
900903 ptype = param ['type' ]
@@ -918,6 +921,9 @@ def build_call(function):
918921 elif ftype == 'void *' :
919922 return ' %s;\n ' % ccall
920923
924+ if ftype in VECP_TYPES :
925+ return ' %s;\n ' % ccall
926+
921927 flot = translate_type_to_lot (ftype )
922928
923929 lfunc = 'UNIMPLEMENTED -->'
@@ -991,6 +997,10 @@ def build_function(function, do_extern):
991997 i += 1
992998 s += '\n '
993999
1000+ # To allow chaining vector functions calls, return the table corresponding to `dest` parameter
1001+ if function ['type' ] in VECP_TYPES :
1002+ s += ' lua_settop(L, 1);\n '
1003+
9941004 s += ' return 1;\n }\n '
9951005
9961006 if fid in override_function_version_excludes :
@@ -1192,7 +1202,7 @@ def output_fuzz_file():
11921202 global fuzz_functions
11931203 with open (fuzz_from ) as f :
11941204 file_str = f .read ()
1195- with open (fuzz_to , 'w' ) as f :
1205+ with open (fuzz_to , 'w' , encoding = 'utf-8' , newline = ' \n ' ) as f :
11961206 f .write (file_str .replace ('-- $[FUNCS]' , fuzz_functions ))
11971207
11981208############################################################################
@@ -1381,7 +1391,7 @@ def doc_files(processed_files):
13811391
13821392 buffer = buffer .replace ('$[FUNCTION_NAV_HERE' , function_nav )
13831393
1384- with open (get_path (out_filename_docs % page_name ), 'w' , newline = '\n ' ) as out :
1394+ with open (get_path (out_filename_docs % page_name ), 'w' , encoding = 'utf-8' , newline = '\n ' ) as out :
13851395 out .write (buffer )
13861396
13871397############################################################################
@@ -1439,7 +1449,10 @@ def def_files(processed_files):
14391449 for def_pointer in def_pointers :
14401450 s += '--- @alias %s %s\n ' % (def_pointer , def_pointer [8 :])
14411451
1442- with open (get_path (out_filename_defs ), 'w' , newline = '\n ' ) as out :
1452+ for vecp_type , vec_type in VECP_TYPES .items ():
1453+ s += '--- @alias %s %s\n ' % (vecp_type , vec_type )
1454+
1455+ with open (get_path (out_filename_defs ), 'w' , encoding = 'utf-8' , newline = '\n ' ) as out :
14431456 out .write (s )
14441457
14451458############################################################################
@@ -1460,7 +1473,7 @@ def main():
14601473 .replace ("$[BINDS]" , built_binds ) \
14611474 .replace ("$[INCLUDES]" , built_includes )
14621475
1463- with open (filename , 'w' , newline = '\n ' ) as out :
1476+ with open (filename , 'w' , encoding = 'utf-8' , newline = '\n ' ) as out :
14641477 out .write (gen )
14651478
14661479 if rejects != "" :
0 commit comments