From 3c86c0c83b99be5b01c6b9251fb0ee5eed13b65e Mon Sep 17 00:00:00 2001
From: Agent X <44549182+AgentXLP@users.noreply.github.com>
Date: Sun, 12 May 2024 08:28:33 -0400
Subject: [PATCH] Add is_playerlist_open()
---
autogen/lua_definitions/functions.lua | 5 +++++
docs/lua/functions-5.md | 20 +++++++++++++++++++-
docs/lua/functions.md | 1 +
src/pc/lua/smlua_functions_autogen.c | 16 ++++++++++++++++
src/pc/lua/utils/smlua_misc_utils.c | 9 ++++++++-
src/pc/lua/utils/smlua_misc_utils.h | 4 +++-
6 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua
index 545fb5ea1..0ef368e80 100644
--- a/autogen/lua_definitions/functions.lua
+++ b/autogen/lua_definitions/functions.lua
@@ -9178,6 +9178,11 @@ function is_game_paused()
-- ...
end
+--- @return boolean
+function is_playerlist_open()
+ -- ...
+end
+
--- @return boolean
function is_transition_playing()
-- ...
diff --git a/docs/lua/functions-5.md b/docs/lua/functions-5.md
index 692c48651..ebb57338a 100644
--- a/docs/lua/functions-5.md
+++ b/docs/lua/functions-5.md
@@ -1329,7 +1329,7 @@
- `integer`
### C Prototype
-`s32 get_dialog_response();`
+`s32 get_dialog_response(void);`
[:arrow_up_small:](#)
@@ -1955,6 +1955,24 @@
+## [is_playerlist_open](#is_playerlist_open)
+
+### Lua Example
+`local booleanValue = is_playerlist_open()`
+
+### Parameters
+- None
+
+### Returns
+- `boolean`
+
+### C Prototype
+`bool is_playerlist_open(void);`
+
+[:arrow_up_small:](#)
+
+
+
## [is_transition_playing](#is_transition_playing)
### Lua Example
diff --git a/docs/lua/functions.md b/docs/lua/functions.md
index bb7aec868..09c036345 100644
--- a/docs/lua/functions.md
+++ b/docs/lua/functions.md
@@ -1699,6 +1699,7 @@
- [hud_set_value](functions-5.md#hud_set_value)
- [hud_show](functions-5.md#hud_show)
- [is_game_paused](functions-5.md#is_game_paused)
+ - [is_playerlist_open](functions-5.md#is_playerlist_open)
- [is_transition_playing](functions-5.md#is_transition_playing)
- [movtexqc_register](functions-5.md#movtexqc_register)
- [play_transition](functions-5.md#play_transition)
diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c
index bb3f88612..ac8db44b9 100644
--- a/src/pc/lua/smlua_functions_autogen.c
+++ b/src/pc/lua/smlua_functions_autogen.c
@@ -30072,6 +30072,21 @@ int smlua_func_is_game_paused(UNUSED lua_State* L) {
return 1;
}
+int smlua_func_is_playerlist_open(UNUSED lua_State* L) {
+ if (L == NULL) { return 0; }
+
+ int top = lua_gettop(L);
+ if (top != 0) {
+ LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "is_playerlist_open", 0, top);
+ return 0;
+ }
+
+
+ lua_pushboolean(L, is_playerlist_open());
+
+ return 1;
+}
+
int smlua_func_is_transition_playing(UNUSED lua_State* L) {
if (L == NULL) { return 0; }
@@ -33761,6 +33776,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_playerlist_open", smlua_func_is_playerlist_open);
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);
diff --git a/src/pc/lua/utils/smlua_misc_utils.c b/src/pc/lua/utils/smlua_misc_utils.c
index 7df4588c2..bf9a394b1 100644
--- a/src/pc/lua/utils/smlua_misc_utils.c
+++ b/src/pc/lua/utils/smlua_misc_utils.c
@@ -18,6 +18,7 @@
#include "game/level_update.h"
#include "pc/djui/djui_console.h"
#include "pc/djui/djui_hud_utils.h"
+#include "pc/djui/djui_panel_playerlist.h"
#include "game/skybox.h"
#include "pc/gfx/gfx_pc.h"
#include "include/course_table.h"
@@ -631,12 +632,18 @@ u32 get_global_timer(void) {
///
-s32 get_dialog_response() {
+s32 get_dialog_response(void) {
return gDialogResponse;
}
///
+bool is_playerlist_open(void) {
+ return gDjuiPlayerList->base.visible;
+}
+
+///
+
void set_window_title(const char* title) {
WAPI.set_window_title(title);
}
diff --git a/src/pc/lua/utils/smlua_misc_utils.h b/src/pc/lua/utils/smlua_misc_utils.h
index cc9f331d5..1753cf3ef 100644
--- a/src/pc/lua/utils/smlua_misc_utils.h
+++ b/src/pc/lua/utils/smlua_misc_utils.h
@@ -156,7 +156,9 @@ void set_override_envfx(s32 envfx);
u32 get_global_timer(void);
-s32 get_dialog_response();
+s32 get_dialog_response(void);
+
+bool is_playerlist_open(void);
void set_window_title(const char* title);
void reset_window_title(void);