diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index b54d9366c..1a9893a25 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -10687,25 +10687,25 @@ end --- @param flag ShaderFlag --- @param enabled boolean --- Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer -function enable_gfx_shader_flag(flag, enabled) +function enable_shader_flag(flag, enabled) -- ... end --- @param flag ShaderFlag --- @param value number --- Sets a value for one of the custom shader flags (`SHADER_FLAG_*`) for the renderer -function set_gfx_shader_flag_value(flag, value) +function set_shader_flag_value(flag, value) -- ... end --- @param enabled boolean --- Enables custom shader flags applying to everything, including HUD elements and menus -function enable_gfx_shader_flags_screen(enabled) +function enable_shader_flags_screen(enabled) -- ... end --- Clears all custom shader flags (`SHADER_FLAG_*`) for the renderer -function clear_all_gfx_shader_flags() +function clear_all_shader_flags() -- ... end diff --git a/docs/lua/functions-6.md b/docs/lua/functions-6.md index 4f779b247..c5f0b6b41 100644 --- a/docs/lua/functions-6.md +++ b/docs/lua/functions-6.md @@ -7459,13 +7459,13 @@ Checks if the surface is a painting warp
-## [enable_gfx_shader_flag](#enable_gfx_shader_flag) +## [enable_shader_flag](#enable_shader_flag) ### Description Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer ### Lua Example -`enable_gfx_shader_flag(flag, enabled)` +`enable_shader_flag(flag, enabled)` ### Parameters | Field | Type | @@ -7477,19 +7477,19 @@ Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer - None ### C Prototype -`void enable_gfx_shader_flag(enum ShaderFlag flag, bool enabled);` +`void enable_shader_flag(enum ShaderFlag flag, bool enabled);` [:arrow_up_small:](#)
-## [set_gfx_shader_flag_value](#set_gfx_shader_flag_value) +## [set_shader_flag_value](#set_shader_flag_value) ### Description Sets a value for one of the custom shader flags (`SHADER_FLAG_*`) for the renderer ### Lua Example -`set_gfx_shader_flag_value(flag, value)` +`set_shader_flag_value(flag, value)` ### Parameters | Field | Type | @@ -7501,19 +7501,19 @@ Sets a value for one of the custom shader flags (`SHADER_FLAG_*`) for the render - None ### C Prototype -`void set_gfx_shader_flag_value(enum ShaderFlag flag, f32 value);` +`void set_shader_flag_value(enum ShaderFlag flag, f32 value);` [:arrow_up_small:](#)
-## [enable_gfx_shader_flags_screen](#enable_gfx_shader_flags_screen) +## [enable_shader_flags_screen](#enable_shader_flags_screen) ### Description Enables custom shader flags applying to everything, including HUD elements and menus ### Lua Example -`enable_gfx_shader_flags_screen(enabled)` +`enable_shader_flags_screen(enabled)` ### Parameters | Field | Type | @@ -7524,19 +7524,19 @@ Enables custom shader flags applying to everything, including HUD elements and m - None ### C Prototype -`void enable_gfx_shader_flags_screen(bool enabled);` +`void enable_shader_flags_screen(bool enabled);` [:arrow_up_small:](#)
-## [clear_all_gfx_shader_flags](#clear_all_gfx_shader_flags) +## [clear_all_shader_flags](#clear_all_shader_flags) ### Description Clears all custom shader flags (`SHADER_FLAG_*`) for the renderer ### Lua Example -`clear_all_gfx_shader_flags()` +`clear_all_shader_flags()` ### Parameters - None @@ -7545,7 +7545,7 @@ Clears all custom shader flags (`SHADER_FLAG_*`) for the renderer - None ### C Prototype -`void clear_all_gfx_shader_flags(void);` +`void clear_all_shader_flags(void);` [:arrow_up_small:](#) diff --git a/docs/lua/functions.md b/docs/lua/functions.md index 442f0afb5..cf9a29fcb 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -1916,10 +1916,10 @@
- smlua_gfx_utils.h - - [enable_gfx_shader_flag](functions-6.md#enable_gfx_shader_flag) - - [set_gfx_shader_flag_value](functions-6.md#set_gfx_shader_flag_value) - - [enable_gfx_shader_flags_screen](functions-6.md#enable_gfx_shader_flags_screen) - - [clear_all_gfx_shader_flags](functions-6.md#clear_all_gfx_shader_flags) + - [enable_shader_flag](functions-6.md#enable_shader_flag) + - [set_shader_flag_value](functions-6.md#set_shader_flag_value) + - [enable_shader_flags_screen](functions-6.md#enable_shader_flags_screen) + - [clear_all_shader_flags](functions-6.md#clear_all_shader_flags) - [set_override_fov](functions-6.md#set_override_fov) - [set_override_near](functions-6.md#set_override_near) - [set_override_far](functions-6.md#set_override_far) diff --git a/src/pc/gfx/gfx_pc.c b/src/pc/gfx/gfx_pc.c index c33a4beba..4f8f1fbb5 100644 --- a/src/pc/gfx/gfx_pc.c +++ b/src/pc/gfx/gfx_pc.c @@ -126,6 +126,7 @@ Color gFogColor = { 0xFF, 0xFF, 0xFF }; f32 gFogIntensity = 1; int gShaderFlags[SHADER_FLAG_MAX] = { 0 }; +f32 gDefaultShaderFlagValues[SHADER_FLAG_MAX] = { 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 8.0f }; f32 gShaderFlagValues[SHADER_FLAG_MAX] = { 0 }; bool gShaderFlagsScreen = false; diff --git a/src/pc/gfx/gfx_pc.h b/src/pc/gfx/gfx_pc.h index bbb3fa7b9..f3047988c 100644 --- a/src/pc/gfx/gfx_pc.h +++ b/src/pc/gfx/gfx_pc.h @@ -25,6 +25,7 @@ extern Color gFogColor; extern f32 gFogIntensity; extern int gShaderFlags[SHADER_FLAG_MAX]; +extern f32 gDefaultShaderFlagValues[SHADER_FLAG_MAX]; extern f32 gShaderFlagValues[SHADER_FLAG_MAX]; extern bool gShaderFlagsScreen; diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 2844496a3..769e4ffc5 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -32258,72 +32258,72 @@ int smlua_func_network_player_palette_to_color(lua_State* L) { // smlua_gfx_utils.h // /////////////////////// -int smlua_func_enable_gfx_shader_flag(lua_State* L) { +int smlua_func_enable_shader_flag(lua_State* L) { if (L == NULL) { return 0; } int top = lua_gettop(L); if (top != 2) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "enable_gfx_shader_flag", 2, top); + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "enable_shader_flag", 2, top); return 0; } int flag = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "enable_gfx_shader_flag"); return 0; } + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "enable_shader_flag"); return 0; } bool enabled = smlua_to_boolean(L, 2); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "enable_gfx_shader_flag"); return 0; } + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "enable_shader_flag"); return 0; } - enable_gfx_shader_flag(flag, enabled); + enable_shader_flag(flag, enabled); return 1; } -int smlua_func_set_gfx_shader_flag_value(lua_State* L) { +int smlua_func_set_shader_flag_value(lua_State* L) { if (L == NULL) { return 0; } int top = lua_gettop(L); if (top != 2) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "set_gfx_shader_flag_value", 2, top); + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "set_shader_flag_value", 2, top); return 0; } int flag = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "set_gfx_shader_flag_value"); return 0; } + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "set_shader_flag_value"); return 0; } f32 value = smlua_to_number(L, 2); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "set_gfx_shader_flag_value"); return 0; } + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "set_shader_flag_value"); return 0; } - set_gfx_shader_flag_value(flag, value); + set_shader_flag_value(flag, value); return 1; } -int smlua_func_enable_gfx_shader_flags_screen(lua_State* L) { +int smlua_func_enable_shader_flags_screen(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", "enable_gfx_shader_flags_screen", 1, top); + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "enable_shader_flags_screen", 1, top); return 0; } bool enabled = smlua_to_boolean(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "enable_gfx_shader_flags_screen"); return 0; } + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "enable_shader_flags_screen"); return 0; } - enable_gfx_shader_flags_screen(enabled); + enable_shader_flags_screen(enabled); return 1; } -int smlua_func_clear_all_gfx_shader_flags(UNUSED lua_State* L) { +int smlua_func_clear_all_shader_flags(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", "clear_all_gfx_shader_flags", 0, top); + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "clear_all_shader_flags", 0, top); return 0; } - clear_all_gfx_shader_flags(); + clear_all_shader_flags(); return 1; } @@ -38900,10 +38900,10 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "network_player_palette_to_color", smlua_func_network_player_palette_to_color); // smlua_gfx_utils.h - smlua_bind_function(L, "enable_gfx_shader_flag", smlua_func_enable_gfx_shader_flag); - smlua_bind_function(L, "set_gfx_shader_flag_value", smlua_func_set_gfx_shader_flag_value); - smlua_bind_function(L, "enable_gfx_shader_flags_screen", smlua_func_enable_gfx_shader_flags_screen); - smlua_bind_function(L, "clear_all_gfx_shader_flags", smlua_func_clear_all_gfx_shader_flags); + smlua_bind_function(L, "enable_shader_flag", smlua_func_enable_shader_flag); + smlua_bind_function(L, "set_shader_flag_value", smlua_func_set_shader_flag_value); + smlua_bind_function(L, "enable_shader_flags_screen", smlua_func_enable_shader_flags_screen); + smlua_bind_function(L, "clear_all_shader_flags", smlua_func_clear_all_shader_flags); smlua_bind_function(L, "set_override_fov", smlua_func_set_override_fov); smlua_bind_function(L, "set_override_near", smlua_func_set_override_near); smlua_bind_function(L, "set_override_far", smlua_func_set_override_far); diff --git a/src/pc/lua/utils/smlua_gfx_utils.c b/src/pc/lua/utils/smlua_gfx_utils.c index 1d5361db2..6ca5473d6 100644 --- a/src/pc/lua/utils/smlua_gfx_utils.c +++ b/src/pc/lua/utils/smlua_gfx_utils.c @@ -1,26 +1,26 @@ #include "smlua_gfx_utils.h" -#include "pc/gfx/gfx_pc.h" +#include "pc/pc_main.h" #include "game/rendering_graph_node.h" #include "game/skybox.h" #include "geo_commands.h" -void enable_gfx_shader_flag(enum ShaderFlag flag, bool enabled) { +void enable_shader_flag(enum ShaderFlag flag, bool enabled) { if (flag < 0 || flag >= SHADER_FLAG_MAX) { return; } gShaderFlags[flag] = enabled ? 1 : 0; } -void set_gfx_shader_flag_value(enum ShaderFlag flag, f32 value) { +void set_shader_flag_value(enum ShaderFlag flag, f32 value) { if (flag < 0 || flag >= SHADER_FLAG_MAX) { return; } gShaderFlagValues[flag] = value; } -void enable_gfx_shader_flags_screen(bool enabled) { +void enable_shader_flags_screen(bool enabled) { gShaderFlagsScreen = enabled; } -void clear_all_gfx_shader_flags(void) { - memset(gShaderFlags, 0, sizeof(gShaderFlags)); - memset(gShaderFlagValues, 0, sizeof(gShaderFlagValues)); +AT_STARTUP void clear_all_shader_flags(void) { + memset(gShaderFlags, 0, sizeof(s32) * SHADER_FLAG_MAX); + memcpy(gShaderFlagValues, gDefaultShaderFlagValues, sizeof(f32) * SHADER_FLAG_MAX); } /// diff --git a/src/pc/lua/utils/smlua_gfx_utils.h b/src/pc/lua/utils/smlua_gfx_utils.h index 28e3db937..a83d53c22 100644 --- a/src/pc/lua/utils/smlua_gfx_utils.h +++ b/src/pc/lua/utils/smlua_gfx_utils.h @@ -14,13 +14,13 @@ Vtx *vtx_allocate_internal(Vtx *vtx, u32 count); u32 gfx_get_length_no_sentinel(const Gfx *gfx); /* |description|Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer|descriptionEnd| */ -void enable_gfx_shader_flag(enum ShaderFlag flag, bool enabled); +void enable_shader_flag(enum ShaderFlag flag, bool enabled); /* |description|Sets a value for one of the custom shader flags (`SHADER_FLAG_*`) for the renderer|descriptionEnd| */ -void set_gfx_shader_flag_value(enum ShaderFlag flag, f32 value); +void set_shader_flag_value(enum ShaderFlag flag, f32 value); /* |description|Enables custom shader flags applying to everything, including HUD elements and menus|descriptionEnd| */ -void enable_gfx_shader_flags_screen(bool enabled); +void enable_shader_flags_screen(bool enabled); /* |description|Clears all custom shader flags (`SHADER_FLAG_*`) for the renderer|descriptionEnd| */ -void clear_all_gfx_shader_flags(void); +void clear_all_shader_flags(void); /* |description|Sets the override FOV|descriptionEnd| */ void set_override_fov(f32 fov); diff --git a/src/pc/network/network.c b/src/pc/network/network.c index aba3d8376..5873b89bf 100644 --- a/src/pc/network/network.c +++ b/src/pc/network/network.c @@ -722,7 +722,7 @@ void network_shutdown(bool sendLeaving, bool exiting, bool popup, bool reconnect color_set(gSkyboxColor, 0xFF, 0xFF, 0xFF); color_set(gFogColor, 0xFF, 0xFF, 0xFF); gFogIntensity = 1.0f; - clear_all_gfx_shader_flags(); + clear_all_shader_flags(); gOverrideBackground = -1; gOverrideEnvFx = ENVFX_MODE_NO_OVERRIDE; gRomhackCameraSettings.centering = FALSE;