From 916d59e9b5345c4c86e05d2fef851cce1f5d7bc6 Mon Sep 17 00:00:00 2001 From: Agent X <44549182+Agent-11@users.noreply.github.com> Date: Thu, 25 Aug 2022 20:42:30 -0400 Subject: [PATCH] is_transition_playing() (#171) Can be useful for people making HUD mods or anything like that. --- autogen/lua_definitions/functions.lua | 5 +++++ docs/lua/functions-4.md | 18 ++++++++++++++++++ docs/lua/functions.md | 1 + src/pc/lua/smlua_functions_autogen.c | 10 ++++++++++ src/pc/lua/utils/smlua_misc_utils.c | 16 ++++++++++++++++ src/pc/lua/utils/smlua_misc_utils.h | 1 + 6 files changed, 51 insertions(+) diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index c9aa21a4..16b5f34b 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -7750,6 +7750,11 @@ function is_game_paused() -- ... end +--- @return boolean +function is_transition_playing() + -- ... +end + --- @param name string --- @param level integer --- @param area integer diff --git a/docs/lua/functions-4.md b/docs/lua/functions-4.md index dd91a66e..43069451 100644 --- a/docs/lua/functions-4.md +++ b/docs/lua/functions-4.md @@ -7042,6 +7042,24 @@
+## [is_transition_playing](#is_transition_playing) + +### Lua Example +`local booleanValue = is_transition_playing()` + +### Parameters +- None + +### Returns +- `boolean` + +### C Prototype +`bool is_transition_playing(void);` + +[:arrow_up_small:](#) + +
+ ## [movtexqc_register](#movtexqc_register) ### Lua Example diff --git a/docs/lua/functions.md b/docs/lua/functions.md index 014ca32d..93ca199b 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -1443,6 +1443,7 @@ - [hud_set_value](functions-4.md#hud_set_value) - [hud_show](functions-4.md#hud_show) - [is_game_paused](functions-4.md#is_game_paused) + - [is_transition_playing](functions-4.md#is_transition_playing) - [movtexqc_register](functions-4.md#movtexqc_register) - [play_transition](functions-4.md#play_transition) - [save_file_set_using_backup_slot](functions-4.md#save_file_set_using_backup_slot) diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 2299f8a7..c3c2810f 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -17046,6 +17046,15 @@ int smlua_func_is_game_paused(UNUSED lua_State* L) { return 1; } +int smlua_func_is_transition_playing(UNUSED lua_State* L) { + if(!smlua_functions_valid_param_count(L, 0)) { return 0; } + + + lua_pushboolean(L, is_transition_playing()); + + return 1; +} + int smlua_func_movtexqc_register(lua_State* L) { if(!smlua_functions_valid_param_count(L, 4)) { return 0; } @@ -19476,6 +19485,7 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "hud_set_value", smlua_func_hud_set_value); smlua_bind_function(L, "hud_show", smlua_func_hud_show); smlua_bind_function(L, "is_game_paused", smlua_func_is_game_paused); + smlua_bind_function(L, "is_transition_playing", smlua_func_is_transition_playing); smlua_bind_function(L, "movtexqc_register", smlua_func_movtexqc_register); smlua_bind_function(L, "play_transition", smlua_func_play_transition); smlua_bind_function(L, "save_file_set_using_backup_slot", smlua_func_save_file_set_using_backup_slot); diff --git a/src/pc/lua/utils/smlua_misc_utils.c b/src/pc/lua/utils/smlua_misc_utils.c index 6f6e8e6c..f2819156 100644 --- a/src/pc/lua/utils/smlua_misc_utils.c +++ b/src/pc/lua/utils/smlua_misc_utils.c @@ -273,6 +273,12 @@ bool is_game_paused(void) { /// +bool is_transition_playing(void) { + return sTransitionUpdate != NULL || gWarpTransition.isActive; +} + +/// + u32 allocate_mario_action(u32 actFlags) { actFlags = actFlags & (~((u32)0x3F)); return actFlags | ACT_FLAG_CUSTOM_ACTION | gLuaMarioActionIndex++; @@ -313,6 +319,8 @@ void movtexqc_register(const char* name, s16 level, s16 area, s16 type) { dynos_movtexqc_register(name, level, area, type); } +/// + f32 get_environment_region(u8 index) { if (gEnvironmentRegions != NULL && index <= gEnvironmentRegions[0]) { return gEnvironmentRegions[6 * (int)index]; @@ -320,20 +328,28 @@ f32 get_environment_region(u8 index) { return -11000; } +/// + void set_environment_region(u8 index, s32 value) { if (gEnvironmentRegions != NULL && index <= gEnvironmentRegions[0]) { gEnvironmentRegions[6 * (int)index] = value; } } +/// + void set_override_fov(f32 fov) { gOverrideFOV = fov; } +/// + void set_override_near(f32 near) { gOverrideNear = near; } +/// + void set_override_far(f32 far) { gOverrideFar = far; } diff --git a/src/pc/lua/utils/smlua_misc_utils.h b/src/pc/lua/utils/smlua_misc_utils.h index 4d9408a1..d4c4c628 100644 --- a/src/pc/lua/utils/smlua_misc_utils.h +++ b/src/pc/lua/utils/smlua_misc_utils.h @@ -62,6 +62,7 @@ void camera_config_set_pan_level(u32 value); void camera_config_set_deceleration(u32 value); bool is_game_paused(void); +bool is_transition_playing(void); s16 get_dialog_id(void);