Add mod_file_exists

This commit is contained in:
Agent X 2024-12-05 18:40:42 -05:00
parent 856a828229
commit 69241bd3d9
6 changed files with 60 additions and 0 deletions

View file

@ -8563,6 +8563,12 @@ function is_transition_playing()
-- ...
end
--- @param filename string
--- @return boolean
function mod_file_exists(filename)
-- ...
end
--- @param name string
--- @param level integer
--- @param area integer

View file

@ -3042,6 +3042,26 @@
<br />
## [mod_file_exists](#mod_file_exists)
### Lua Example
`local booleanValue = mod_file_exists(filename)`
### Parameters
| Field | Type |
| ----- | ---- |
| filename | `string` |
### Returns
- `boolean`
### C Prototype
`bool mod_file_exists(const char* filename);`
[:arrow_up_small:](#)
<br />
## [movtexqc_register](#movtexqc_register)
### Lua Example

View file

@ -1792,6 +1792,7 @@
- [hud_show](functions-5.md#hud_show)
- [is_game_paused](functions-5.md#is_game_paused)
- [is_transition_playing](functions-5.md#is_transition_playing)
- [mod_file_exists](functions-5.md#mod_file_exists)
- [movtexqc_register](functions-5.md#movtexqc_register)
- [play_transition](functions-5.md#play_transition)
- [reset_window_title](functions-5.md#reset_window_title)

View file

@ -31295,6 +31295,23 @@ int smlua_func_is_transition_playing(UNUSED lua_State* L) {
return 1;
}
int smlua_func_mod_file_exists(lua_State* L) {
if (L == NULL) { return 0; }
int top = lua_gettop(L);
if (top != 1) {
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "mod_file_exists", 1, top);
return 0;
}
const char* filename = smlua_to_string(L, 1);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "mod_file_exists"); return 0; }
lua_pushboolean(L, mod_file_exists(filename));
return 1;
}
int smlua_func_movtexqc_register(lua_State* L) {
if (L == NULL) { return 0; }
@ -35149,6 +35166,7 @@ void smlua_bind_functions_autogen(void) {
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, "mod_file_exists", smlua_func_mod_file_exists);
smlua_bind_function(L, "movtexqc_register", smlua_func_movtexqc_register);
smlua_bind_function(L, "play_transition", smlua_func_play_transition);
smlua_bind_function(L, "reset_window_title", smlua_func_reset_window_title);

View file

@ -508,6 +508,19 @@ void set_environment_region(u8 index, s32 value) {
///
bool mod_file_exists(const char* filename) {
if (gLuaActiveMod == NULL) { return false; }
for (s32 i = 0; i < gLuaActiveMod->fileCount; i++) {
struct ModFile* file = &gLuaActiveMod->files[i];
return !strcmp(file->relativePath, filename);
}
return false;
}
///
void set_window_title(const char* title) {
WAPI.set_window_title(title);
}

View file

@ -127,6 +127,8 @@ void set_volume_env(f32 volume);
f32 get_environment_region(u8 index);
void set_environment_region(u8 index, s32 value);
bool mod_file_exists(const char* filename);
void set_window_title(const char* title);
void reset_window_title(void);