diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py index c6777c0b1..b1d4c56c1 100644 --- a/autogen/convert_functions.py +++ b/autogen/convert_functions.py @@ -47,6 +47,7 @@ in_files = [ "src/engine/surface_load.h", "src/game/object_list_processor.h", "src/game/behavior_actions.h", + "src/game/mario_misc.h", ] override_allowed_functions = { @@ -56,6 +57,7 @@ override_allowed_functions = { "src/game/save_file.h": [ "save_file_get_", "save_file_set_flags", "save_file_clear_flags" ], "src/pc/lua/utils/smlua_model_utils.h": [ "smlua_model_util_get_id" ], "src/game/object_list_processor.h": [ "set_object_respawn_info_bits" ], + "src/game/mario_misc.h": [ "bhv_toad.*", "bhv_unlock_door.*" ] } override_disallowed_functions = { diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index 1a5fb1b10..8be73f8fc 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -4812,6 +4812,26 @@ function set_swimming_at_surface_particles(m, particleFlag) -- ... end +--- @return nil +function bhv_toad_message_init() + -- ... +end + +--- @return nil +function bhv_toad_message_loop() + -- ... +end + +--- @return nil +function bhv_unlock_door_star_init() + -- ... +end + +--- @return nil +function bhv_unlock_door_star_loop() + -- ... +end + --- @return number function get_additive_y_vel_for_jumps() -- ... @@ -7025,6 +7045,11 @@ function deref_s32_pointer(pointer) -- ... end +--- @return integer +function get_current_save_file_num() + -- ... +end + --- @param index integer --- @return number function get_environment_region(index) diff --git a/docs/lua/functions.md b/docs/lua/functions.md index ff97eab44..c37aaef1c 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -926,6 +926,14 @@
+- mario_misc.h + - [bhv_toad_message_init](#bhv_toad_message_init) + - [bhv_toad_message_loop](#bhv_toad_message_loop) + - [bhv_unlock_door_star_init](#bhv_unlock_door_star_init) + - [bhv_unlock_door_star_loop](#bhv_unlock_door_star_loop) + +
+ - mario_step.h - [get_additive_y_vel_for_jumps](#get_additive_y_vel_for_jumps) - [init_bully_collision_data](#init_bully_collision_data) @@ -1303,6 +1311,7 @@ - smlua_misc_utils.h - [allocate_mario_action](#allocate_mario_action) - [deref_s32_pointer](#deref_s32_pointer) + - [get_current_save_file_num](#get_current_save_file_num) - [get_environment_region](#get_environment_region) - [get_hand_foot_pos_x](#get_hand_foot_pos_x) - [get_hand_foot_pos_y](#get_hand_foot_pos_y) @@ -17648,6 +17657,84 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
+--- +# functions from mario_misc.h + +
+ + +## [bhv_toad_message_init](#bhv_toad_message_init) + +### Lua Example +`bhv_toad_message_init()` + +### Parameters +- None + +### Returns +- None + +### C Prototype +`void bhv_toad_message_init(void);` + +[:arrow_up_small:](#) + +
+ +## [bhv_toad_message_loop](#bhv_toad_message_loop) + +### Lua Example +`bhv_toad_message_loop()` + +### Parameters +- None + +### Returns +- None + +### C Prototype +`void bhv_toad_message_loop(void);` + +[:arrow_up_small:](#) + +
+ +## [bhv_unlock_door_star_init](#bhv_unlock_door_star_init) + +### Lua Example +`bhv_unlock_door_star_init()` + +### Parameters +- None + +### Returns +- None + +### C Prototype +`void bhv_unlock_door_star_init(void);` + +[:arrow_up_small:](#) + +
+ +## [bhv_unlock_door_star_loop](#bhv_unlock_door_star_loop) + +### Lua Example +`bhv_unlock_door_star_loop()` + +### Parameters +- None + +### Returns +- None + +### C Prototype +`void bhv_unlock_door_star_loop(void);` + +[:arrow_up_small:](#) + +
+ --- # functions from mario_step.h @@ -24545,6 +24632,24 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
+## [get_current_save_file_num](#get_current_save_file_num) + +### Lua Example +`local integerValue = get_current_save_file_num()` + +### Parameters +- None + +### Returns +- `integer` + +### C Prototype +`s16 get_current_save_file_num(void);` + +[:arrow_up_small:](#) + +
+ ## [get_environment_region](#get_environment_region) ### Lua Example diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 228942d6d..8f48dd3eb 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -26,6 +26,7 @@ #include "src/engine/surface_load.h" #include "src/game/object_list_processor.h" #include "src/game/behavior_actions.h" +#include "src/game/mario_misc.h" //////////////////////// @@ -9897,6 +9898,46 @@ int smlua_func_set_swimming_at_surface_particles(lua_State* L) { return 1; } + ////////////////// + // mario_misc.h // +////////////////// + +int smlua_func_bhv_toad_message_init(UNUSED lua_State* L) { + if(!smlua_functions_valid_param_count(L, 0)) { return 0; } + + + bhv_toad_message_init(); + + return 1; +} + +int smlua_func_bhv_toad_message_loop(UNUSED lua_State* L) { + if(!smlua_functions_valid_param_count(L, 0)) { return 0; } + + + bhv_toad_message_loop(); + + return 1; +} + +int smlua_func_bhv_unlock_door_star_init(UNUSED lua_State* L) { + if(!smlua_functions_valid_param_count(L, 0)) { return 0; } + + + bhv_unlock_door_star_init(); + + return 1; +} + +int smlua_func_bhv_unlock_door_star_loop(UNUSED lua_State* L) { + if(!smlua_functions_valid_param_count(L, 0)) { return 0; } + + + bhv_unlock_door_star_loop(); + + return 1; +} + ////////////////// // mario_step.h // ////////////////// @@ -14615,6 +14656,15 @@ int smlua_func_deref_s32_pointer(lua_State* L) { return 1; } +int smlua_func_get_current_save_file_num(UNUSED lua_State* L) { + if(!smlua_functions_valid_param_count(L, 0)) { return 0; } + + + lua_pushinteger(L, get_current_save_file_num()); + + return 1; +} + int smlua_func_get_environment_region(lua_State* L) { if(!smlua_functions_valid_param_count(L, 1)) { return 0; } @@ -16375,6 +16425,12 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "perform_water_step", smlua_func_perform_water_step); smlua_bind_function(L, "set_swimming_at_surface_particles", smlua_func_set_swimming_at_surface_particles); + // mario_misc.h + smlua_bind_function(L, "bhv_toad_message_init", smlua_func_bhv_toad_message_init); + smlua_bind_function(L, "bhv_toad_message_loop", smlua_func_bhv_toad_message_loop); + smlua_bind_function(L, "bhv_unlock_door_star_init", smlua_func_bhv_unlock_door_star_init); + smlua_bind_function(L, "bhv_unlock_door_star_loop", smlua_func_bhv_unlock_door_star_loop); + // mario_step.h smlua_bind_function(L, "get_additive_y_vel_for_jumps", smlua_func_get_additive_y_vel_for_jumps); smlua_bind_function(L, "init_bully_collision_data", smlua_func_init_bully_collision_data); @@ -16745,6 +16801,7 @@ void smlua_bind_functions_autogen(void) { // smlua_misc_utils.h smlua_bind_function(L, "allocate_mario_action", smlua_func_allocate_mario_action); smlua_bind_function(L, "deref_s32_pointer", smlua_func_deref_s32_pointer); + smlua_bind_function(L, "get_current_save_file_num", smlua_func_get_current_save_file_num); smlua_bind_function(L, "get_environment_region", smlua_func_get_environment_region); smlua_bind_function(L, "get_hand_foot_pos_x", smlua_func_get_hand_foot_pos_x); smlua_bind_function(L, "get_hand_foot_pos_y", smlua_func_get_hand_foot_pos_y); diff --git a/src/pc/lua/utils/smlua_misc_utils.c b/src/pc/lua/utils/smlua_misc_utils.c index d49848f1f..2ec45694a 100644 --- a/src/pc/lua/utils/smlua_misc_utils.c +++ b/src/pc/lua/utils/smlua_misc_utils.c @@ -83,6 +83,13 @@ f32 get_hand_foot_pos_z(struct MarioState* m, u8 index) { /// +s16 get_current_save_file_num(void) { + extern s16 gCurrSaveFileNum; + return gCurrSaveFileNum; +} + +/// + LevelScript* smlua_level_util_get(const char* name) { return dynos_level_get(name); } diff --git a/src/pc/lua/utils/smlua_misc_utils.h b/src/pc/lua/utils/smlua_misc_utils.h index 591976018..37a99530e 100644 --- a/src/pc/lua/utils/smlua_misc_utils.h +++ b/src/pc/lua/utils/smlua_misc_utils.h @@ -20,7 +20,10 @@ f32 get_hand_foot_pos_x(struct MarioState* m, u8 index); f32 get_hand_foot_pos_y(struct MarioState* m, u8 index); f32 get_hand_foot_pos_z(struct MarioState* m, u8 index); +s16 get_current_save_file_num(void); + LevelScript* smlua_level_util_get(const char* name); + f32 get_environment_region(u8 index); void set_environment_region(u8 index, s32 value);