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);