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;