From 29da1ba21923a53c9296a1ffdf63b0d2c7513f98 Mon Sep 17 00:00:00 2001
From: Agent X <44549182+AgentXLP@users.noreply.github.com>
Date: Sun, 3 May 2026 20:26:32 -0400
Subject: [PATCH] Update function names
---
autogen/lua_definitions/functions.lua | 24 +-
docs/lua/functions-6.md | 1144 -----------------------
docs/lua/functions-7.md | 1211 +++++++++++++++++++++++++
docs/lua/functions.md | 101 ++-
src/pc/lua/smlua_functions_autogen.c | 78 +-
src/pc/lua/utils/smlua_gfx_utils.c | 18 +-
src/pc/lua/utils/smlua_gfx_utils.h | 10 +-
7 files changed, 1374 insertions(+), 1212 deletions(-)
diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua
index 425cbebb2..672fafe62 100644
--- a/autogen/lua_definitions/functions.lua
+++ b/autogen/lua_definitions/functions.lua
@@ -10790,10 +10790,24 @@ function surface_is_painting_warp(surf)
-- ...
end
+--- @param flag ShaderFlag
+--- @return boolean
+--- Gets if a custom shader flag (`SHADER_FLAG_*`) is enabled or not
+function get_shader_flag_enabled(flag)
+ -- ...
+end
+
--- @param flag ShaderFlag
--- @param enabled boolean
--- Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer
-function enable_shader_flag(flag, enabled)
+function set_shader_flag_enabled(flag, enabled)
+ -- ...
+end
+
+--- @param flag ShaderFlag
+--- @return number
+--- Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer
+function get_shader_flag_value(flag)
-- ...
end
@@ -10804,9 +10818,15 @@ function set_shader_flag_value(flag, value)
-- ...
end
+--- @return boolean
+--- Gets if custom shader flags are enabled globally
+function get_global_shader_flags_enabled()
+ -- ...
+end
+
--- @param enabled boolean
--- Enables custom shader flags as a global toggle, useful for disabling without manually going through every effect
-function enable_shader_flags_global(enabled)
+function set_global_shader_flags_enabled(enabled)
-- ...
end
diff --git a/docs/lua/functions-6.md b/docs/lua/functions-6.md
index 7deb9be1b..7a2ee4482 100644
--- a/docs/lua/functions-6.md
+++ b/docs/lua/functions-6.md
@@ -7576,1150 +7576,6 @@ Checks if the surface is a painting warp
-
----
-# functions from smlua_gfx_utils.h
-
-
-
-
-## [enable_shader_flag](#enable_shader_flag)
-
-### Description
-Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer
-
-### Lua Example
-`enable_shader_flag(flag, enabled)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) |
-| enabled | `boolean` |
-
-### Returns
-- None
-
-### C Prototype
-`void enable_shader_flag(enum ShaderFlag flag, bool enabled);`
-
-[:arrow_up_small:](#)
-
-
-
-## [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_shader_flag_value(flag, value)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) |
-| value | `number` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_shader_flag_value(enum ShaderFlag flag, f32 value);`
-
-[:arrow_up_small:](#)
-
-
-
-## [enable_shader_flags_global](#enable_shader_flags_global)
-
-### Description
-Enables custom shader flags as a global toggle, useful for disabling without manually going through every effect
-
-### Lua Example
-`enable_shader_flags_global(enabled)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| enabled | `boolean` |
-
-### Returns
-- None
-
-### C Prototype
-`void enable_shader_flags_global(bool enabled);`
-
-[:arrow_up_small:](#)
-
-
-
-## [clear_all_shader_flags](#clear_all_shader_flags)
-
-### Description
-Clears all custom shader flags (`SHADER_FLAG_*`) for the renderer
-
-### Lua Example
-`clear_all_shader_flags()`
-
-### Parameters
-- None
-
-### Returns
-- None
-
-### C Prototype
-`void clear_all_shader_flags(void);`
-
-[:arrow_up_small:](#)
-
-
-
-## [set_override_fov](#set_override_fov)
-
-### Description
-Sets the override FOV
-
-### Lua Example
-`set_override_fov(fov)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| fov | `number` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_override_fov(f32 fov);`
-
-[:arrow_up_small:](#)
-
-
-
-## [set_override_near](#set_override_near)
-
-### Description
-Sets the override near plane
-
-### Lua Example
-`set_override_near(near)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| near | `number` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_override_near(f32 near);`
-
-[:arrow_up_small:](#)
-
-
-
-## [set_override_far](#set_override_far)
-
-### Description
-Sets the override far plane
-
-### Lua Example
-`set_override_far(far)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| far | `number` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_override_far(f32 far);`
-
-[:arrow_up_small:](#)
-
-
-
-## [get_lighting_dir](#get_lighting_dir)
-
-### Description
-Gets a value of the global lighting direction
-
-### Lua Example
-`local numberValue = get_lighting_dir(index)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-
-### Returns
-- `number`
-
-### C Prototype
-`f32 get_lighting_dir(u8 index);`
-
-[:arrow_up_small:](#)
-
-
-
-## [set_lighting_dir](#set_lighting_dir)
-
-### Description
-Sets a value of the global lighting direction
-
-### Lua Example
-`set_lighting_dir(index, value)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-| value | `number` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_lighting_dir(u8 index, f32 value);`
-
-[:arrow_up_small:](#)
-
-
-
-## [get_lighting_color](#get_lighting_color)
-
-### Description
-Gets a value of the global lighting color
-
-### Lua Example
-`local integerValue = get_lighting_color(index)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-
-### Returns
-- `integer`
-
-### C Prototype
-`u8 get_lighting_color(u8 index);`
-
-[:arrow_up_small:](#)
-
-
-
-## [get_lighting_color_ambient](#get_lighting_color_ambient)
-
-### Description
-Gets a value of the global ambient lighting color
-
-### Lua Example
-`local integerValue = get_lighting_color_ambient(index)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-
-### Returns
-- `integer`
-
-### C Prototype
-`u8 get_lighting_color_ambient(u8 index);`
-
-[:arrow_up_small:](#)
-
-
-
-## [set_lighting_color](#set_lighting_color)
-
-### Description
-Sets a value of the global lighting color
-
-### Lua Example
-`set_lighting_color(index, value)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-| value | `integer` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_lighting_color(u8 index, u8 value);`
-
-[:arrow_up_small:](#)
-
-
-
-## [set_lighting_color_ambient](#set_lighting_color_ambient)
-
-### Description
-Sets a value of the global lighting color (run this after `set_lighting_color` for the ambient color to not be overriden)
-
-### Lua Example
-`set_lighting_color_ambient(index, value)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-| value | `integer` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_lighting_color_ambient(u8 index, u8 value);`
-
-[:arrow_up_small:](#)
-
-
-
-## [get_vertex_color](#get_vertex_color)
-
-### Description
-Gets a value of the global vertex shading color
-
-### Lua Example
-`local integerValue = get_vertex_color(index)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-
-### Returns
-- `integer`
-
-### C Prototype
-`u8 get_vertex_color(u8 index);`
-
-[:arrow_up_small:](#)
-
-
-
-## [set_vertex_color](#set_vertex_color)
-
-### Description
-Sets a value of the global vertex shading color
-
-### Lua Example
-`set_vertex_color(index, value)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-| value | `integer` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_vertex_color(u8 index, u8 value);`
-
-[:arrow_up_small:](#)
-
-
-
-## [get_fog_color](#get_fog_color)
-
-### Description
-Gets a value of the global fog color
-
-### Lua Example
-`local integerValue = get_fog_color(index)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-
-### Returns
-- `integer`
-
-### C Prototype
-`u8 get_fog_color(u8 index);`
-
-[:arrow_up_small:](#)
-
-
-
-## [set_fog_color](#set_fog_color)
-
-### Description
-Sets a value of the global fog color
-
-### Lua Example
-`set_fog_color(index, value)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-| value | `integer` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_fog_color(u8 index, u8 value);`
-
-[:arrow_up_small:](#)
-
-
-
-## [get_fog_intensity](#get_fog_intensity)
-
-### Description
-Gets the intensity of the fog
-
-### Lua Example
-`local numberValue = get_fog_intensity()`
-
-### Parameters
-- None
-
-### Returns
-- `number`
-
-### C Prototype
-`f32 get_fog_intensity(void);`
-
-[:arrow_up_small:](#)
-
-
-
-## [set_fog_intensity](#set_fog_intensity)
-
-### Description
-Sets the intensity of the fog (this value scales very quickly, 1.0 to 1.1 is a desirable range)
-
-### Lua Example
-`set_fog_intensity(intensity)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| intensity | `number` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_fog_intensity(f32 intensity);`
-
-[:arrow_up_small:](#)
-
-
-
-## [get_skybox](#get_skybox)
-
-### Description
-Gets the current skybox
-
-### Lua Example
-`local integerValue = get_skybox()`
-
-### Parameters
-- None
-
-### Returns
-- `integer`
-
-### C Prototype
-`s8 get_skybox(void);`
-
-[:arrow_up_small:](#)
-
-
-
-## [set_override_skybox](#set_override_skybox)
-
-### Description
-Sets the override skybox
-
-### Lua Example
-`set_override_skybox(background)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| background | `integer` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_override_skybox(s8 background);`
-
-[:arrow_up_small:](#)
-
-
-
-## [get_skybox_color](#get_skybox_color)
-
-### Description
-Gets a value of the global skybox color
-
-### Lua Example
-`local integerValue = get_skybox_color(index)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-
-### Returns
-- `integer`
-
-### C Prototype
-`u8 get_skybox_color(u8 index);`
-
-[:arrow_up_small:](#)
-
-
-
-## [set_skybox_color](#set_skybox_color)
-
-### Description
-Sets a value of the global skybox color
-
-### Lua Example
-`set_skybox_color(index, value)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| index | `integer` |
-| value | `integer` |
-
-### Returns
-- None
-
-### C Prototype
-`void set_skybox_color(u8 index, u8 value);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_parse](#gfx_parse)
-
-### Description
-Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op`
-
-### Lua Example
-`gfx_parse(cmd, func)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| cmd | `Pointer` <`Gfx`> |
-| func | `Lua Function` () |
-
-### Returns
-- None
-
-### C Prototype
-`void gfx_parse(Gfx *cmd, LuaFunction func);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_get_op](#gfx_get_op)
-
-### Description
-Gets the op of the display list command
-
-### Lua Example
-`local integerValue = gfx_get_op(cmd)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| cmd | `Pointer` <`Gfx`> |
-
-### Returns
-- `integer`
-
-### C Prototype
-`u32 gfx_get_op(Gfx *cmd);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_get_display_list](#gfx_get_display_list)
-
-### Description
-Gets the display list from a display list command if it has the op `G_DL`
-
-### Lua Example
-`local pointerValue = gfx_get_display_list(cmd)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| cmd | `Pointer` <`Gfx`> |
-
-### Returns
-- `Pointer` <`Gfx`>
-
-### C Prototype
-`Gfx *gfx_get_display_list(Gfx *cmd);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_get_vertex_buffer](#gfx_get_vertex_buffer)
-
-### Description
-Gets the vertex buffer from a display list command if it has the op `G_VTX`
-
-### Lua Example
-`local pointerValue = gfx_get_vertex_buffer(cmd)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| cmd | `Pointer` <`Gfx`> |
-
-### Returns
-- `Pointer` <`Vtx`>
-
-### C Prototype
-`Vtx *gfx_get_vertex_buffer(Gfx *cmd);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_get_vertex_count](#gfx_get_vertex_count)
-
-### Description
-Gets the number of vertices from a display list command if it has the op `G_VTX`
-
-### Lua Example
-`local integerValue = gfx_get_vertex_count(cmd)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| cmd | `Pointer` <`Gfx`> |
-
-### Returns
-- `integer`
-
-### C Prototype
-`u16 gfx_get_vertex_count(Gfx *cmd);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_get_texture](#gfx_get_texture)
-
-### Description
-Gets the texture from a display list command if it has an image related op
-
-### Lua Example
-`local pointerValue = gfx_get_texture(cmd)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| cmd | `Pointer` <`Gfx`> |
-
-### Returns
-- `Pointer` <`Texture`>
-
-### C Prototype
-`Texture *gfx_get_texture(Gfx *cmd);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_get_from_name](#gfx_get_from_name)
-
-### Description
-Gets a display list of the current mod from its name. Returns a pointer to the display list and its length
-
-### Lua Example
-`local pointerValue, length = gfx_get_from_name(name)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| name | `string` |
-
-### Returns
-- `Pointer` <`Gfx`>
-- `integer`
-
-### C Prototype
-`Gfx *gfx_get_from_name(const char *name, RET u32 *length);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_get_name](#gfx_get_name)
-
-### Description
-Gets the name of a display list
-
-### Lua Example
-`local stringValue = gfx_get_name(gfx)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| gfx | `Pointer` <`Gfx`> |
-
-### Returns
-- `string`
-
-### C Prototype
-`const char *gfx_get_name(Gfx *gfx);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_get_length](#gfx_get_length)
-
-### Description
-Gets the max length of a display list
-
-### Lua Example
-`local integerValue = gfx_get_length(gfx)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| gfx | `Pointer` <`Gfx`> |
-
-### Returns
-- `integer`
-
-### C Prototype
-`u32 gfx_get_length(Gfx *gfx);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_get_command](#gfx_get_command)
-
-### Description
-Gets a command of a display list at position `offset`
-
-### Lua Example
-`local pointerValue = gfx_get_command(gfx, offset)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| gfx | `Pointer` <`Gfx`> |
-| offset | `integer` |
-
-### Returns
-- `Pointer` <`Gfx`>
-
-### C Prototype
-`Gfx *gfx_get_command(Gfx *gfx, u32 offset);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_get_next_command](#gfx_get_next_command)
-
-### Description
-Gets the next command of a given display list pointer. Intended to use in a for loop
-
-### Lua Example
-`local pointerValue = gfx_get_next_command(gfx)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| gfx | `Pointer` <`Gfx`> |
-
-### Returns
-- `Pointer` <`Gfx`>
-
-### C Prototype
-`Gfx *gfx_get_next_command(Gfx *gfx);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_copy](#gfx_copy)
-
-### Description
-Copies `length` commands from display list `src` to display list `dest`
-
-### Lua Example
-`gfx_copy(dest, src, length)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| dest | `Pointer` <`Gfx`> |
-| src | `Pointer` <`Gfx`> |
-| length | `integer` |
-
-### Returns
-- None
-
-### C Prototype
-`void gfx_copy(Gfx *dest, Gfx *src, u32 length);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_create](#gfx_create)
-
-### Description
-Creates a new named display list of `length` commands
-
-### Lua Example
-`local pointerValue = gfx_create(name, length)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| name | `string` |
-| length | `integer` |
-
-### Returns
-- `Pointer` <`Gfx`>
-
-### C Prototype
-`Gfx *gfx_create(const char *name, u32 length);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_resize](#gfx_resize)
-
-### Description
-Resizes a display list created by `gfx_create`
-
-### Lua Example
-`gfx_resize(gfx, newLength)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| gfx | `Pointer` <`Gfx`> |
-| newLength | `integer` |
-
-### Returns
-- None
-
-### C Prototype
-`void gfx_resize(Gfx *gfx, u32 newLength);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_delete](#gfx_delete)
-
-### Description
-Deletes a display list created by `gfx_create`
-
-### Lua Example
-`gfx_delete(gfx)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| gfx | `Pointer` <`Gfx`> |
-
-### Returns
-- None
-
-### C Prototype
-`void gfx_delete(Gfx *gfx);`
-
-[:arrow_up_small:](#)
-
-
-
-## [gfx_delete_all](#gfx_delete_all)
-
-### Description
-Deletes all display lists created by `gfx_create`
-
-### Lua Example
-`gfx_delete_all()`
-
-### Parameters
-- None
-
-### Returns
-- None
-
-### C Prototype
-`void gfx_delete_all();`
-
-[:arrow_up_small:](#)
-
-
-
-## [vtx_get_from_name](#vtx_get_from_name)
-
-### Description
-Gets a vertex buffer of the current mod from its name. Returns a pointer to the vertex buffering and its vertex count
-
-### Lua Example
-`local pointerValue, count = vtx_get_from_name(name)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| name | `string` |
-
-### Returns
-- `Pointer` <`Vtx`>
-- `integer`
-
-### C Prototype
-`Vtx *vtx_get_from_name(const char *name, RET u32 *count);`
-
-[:arrow_up_small:](#)
-
-
-
-## [vtx_get_name](#vtx_get_name)
-
-### Description
-Gets the name of a vertex buffer
-
-### Lua Example
-`local stringValue = vtx_get_name(vtx)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| vtx | `Pointer` <`Vtx`> |
-
-### Returns
-- `string`
-
-### C Prototype
-`const char *vtx_get_name(Vtx *vtx);`
-
-[:arrow_up_small:](#)
-
-
-
-## [vtx_get_count](#vtx_get_count)
-
-### Description
-Gets the max count of vertices of a vertex buffer
-
-### Lua Example
-`local integerValue = vtx_get_count(vtx)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| vtx | `Pointer` <`Vtx`> |
-
-### Returns
-- `integer`
-
-### C Prototype
-`u32 vtx_get_count(Vtx *vtx);`
-
-[:arrow_up_small:](#)
-
-
-
-## [vtx_get_vertex](#vtx_get_vertex)
-
-### Description
-Gets a vertex of a vertex buffer at position `offset`
-
-### Lua Example
-`local pointerValue = vtx_get_vertex(vtx, offset)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| vtx | `Pointer` <`Vtx`> |
-| offset | `integer` |
-
-### Returns
-- `Pointer` <`Vtx`>
-
-### C Prototype
-`Vtx *vtx_get_vertex(Vtx *vtx, u32 offset);`
-
-[:arrow_up_small:](#)
-
-
-
-## [vtx_get_next_vertex](#vtx_get_next_vertex)
-
-### Description
-Gets the next vertex of a given vertex pointer. Intended to use in a for loop
-
-### Lua Example
-`local pointerValue = vtx_get_next_vertex(vtx)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| vtx | `Pointer` <`Vtx`> |
-
-### Returns
-- `Pointer` <`Vtx`>
-
-### C Prototype
-`Vtx *vtx_get_next_vertex(Vtx *vtx);`
-
-[:arrow_up_small:](#)
-
-
-
-## [vtx_copy](#vtx_copy)
-
-### Description
-Copies `count` vertices from vertex buffer `src` to vertex buffer `dest`
-
-### Lua Example
-`vtx_copy(dest, src, count)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| dest | `Pointer` <`Vtx`> |
-| src | `Pointer` <`Vtx`> |
-| count | `integer` |
-
-### Returns
-- None
-
-### C Prototype
-`void vtx_copy(Vtx *dest, Vtx *src, u32 count);`
-
-[:arrow_up_small:](#)
-
-
-
-## [vtx_create](#vtx_create)
-
-### Description
-Creates a new named vertex buffer of `count` vertices
-
-### Lua Example
-`local pointerValue = vtx_create(name, count)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| name | `string` |
-| count | `integer` |
-
-### Returns
-- `Pointer` <`Vtx`>
-
-### C Prototype
-`Vtx *vtx_create(const char *name, u32 count);`
-
-[:arrow_up_small:](#)
-
-
-
-## [vtx_resize](#vtx_resize)
-
-### Description
-Resizes a vertex buffer created by `vtx_create`
-
-### Lua Example
-`vtx_resize(vtx, newCount)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| vtx | `Pointer` <`Vtx`> |
-| newCount | `integer` |
-
-### Returns
-- None
-
-### C Prototype
-`void vtx_resize(Vtx *vtx, u32 newCount);`
-
-[:arrow_up_small:](#)
-
-
-
-## [vtx_delete](#vtx_delete)
-
-### Description
-Deletes a vertex buffer created by `vtx_create`
-
-### Lua Example
-`vtx_delete(vtx)`
-
-### Parameters
-| Field | Type |
-| ----- | ---- |
-| vtx | `Pointer` <`Vtx`> |
-
-### Returns
-- None
-
-### C Prototype
-`void vtx_delete(Vtx *vtx);`
-
-[:arrow_up_small:](#)
-
-
-
-## [vtx_delete_all](#vtx_delete_all)
-
-### Description
-Deletes all vertex buffers created by `vtx_create`
-
-### Lua Example
-`vtx_delete_all()`
-
-### Parameters
-- None
-
-### Returns
-- None
-
-### C Prototype
-`void vtx_delete_all();`
-
-[:arrow_up_small:](#)
-
-
---
[< prev](functions-5.md) | [1](functions.md) | [2](functions-2.md) | [3](functions-3.md) | [4](functions-4.md) | [5](functions-5.md) | 6 | [7](functions-7.md) | [next >](functions-7.md)]
diff --git a/docs/lua/functions-7.md b/docs/lua/functions-7.md
index 35b669390..c388517f1 100644
--- a/docs/lua/functions-7.md
+++ b/docs/lua/functions-7.md
@@ -5,6 +5,1217 @@
[< prev](functions-6.md) | [1](functions.md) | [2](functions-2.md) | [3](functions-3.md) | [4](functions-4.md) | [5](functions-5.md) | [6](functions-6.md) | 7]
+---
+# functions from smlua_gfx_utils.h
+
+
+
+
+## [get_shader_flag_enabled](#get_shader_flag_enabled)
+
+### Description
+Gets if a custom shader flag (`SHADER_FLAG_*`) is enabled or not
+
+### Lua Example
+`local booleanValue = get_shader_flag_enabled(flag)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) |
+
+### Returns
+- `boolean`
+
+### C Prototype
+`bool get_shader_flag_enabled(enum ShaderFlag flag);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_shader_flag_enabled](#set_shader_flag_enabled)
+
+### Description
+Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer
+
+### Lua Example
+`set_shader_flag_enabled(flag, enabled)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) |
+| enabled | `boolean` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_shader_flag_enabled(enum ShaderFlag flag, bool enabled);`
+
+[:arrow_up_small:](#)
+
+
+
+## [get_shader_flag_value](#get_shader_flag_value)
+
+### Description
+Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer
+
+### Lua Example
+`local numberValue = get_shader_flag_value(flag)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) |
+
+### Returns
+- `number`
+
+### C Prototype
+`f32 get_shader_flag_value(enum ShaderFlag flag);`
+
+[:arrow_up_small:](#)
+
+
+
+## [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_shader_flag_value(flag, value)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| flag | [enum ShaderFlag](constants.md#enum-ShaderFlag) |
+| value | `number` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_shader_flag_value(enum ShaderFlag flag, f32 value);`
+
+[:arrow_up_small:](#)
+
+
+
+## [get_global_shader_flags_enabled](#get_global_shader_flags_enabled)
+
+### Description
+Gets if custom shader flags are enabled globally
+
+### Lua Example
+`local booleanValue = get_global_shader_flags_enabled()`
+
+### Parameters
+- None
+
+### Returns
+- `boolean`
+
+### C Prototype
+`bool get_global_shader_flags_enabled(void);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_global_shader_flags_enabled](#set_global_shader_flags_enabled)
+
+### Description
+Enables custom shader flags as a global toggle, useful for disabling without manually going through every effect
+
+### Lua Example
+`set_global_shader_flags_enabled(enabled)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| enabled | `boolean` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_global_shader_flags_enabled(bool enabled);`
+
+[:arrow_up_small:](#)
+
+
+
+## [clear_all_shader_flags](#clear_all_shader_flags)
+
+### Description
+Clears all custom shader flags (`SHADER_FLAG_*`) for the renderer
+
+### Lua Example
+`clear_all_shader_flags()`
+
+### Parameters
+- None
+
+### Returns
+- None
+
+### C Prototype
+`void clear_all_shader_flags(void);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_override_fov](#set_override_fov)
+
+### Description
+Sets the override FOV
+
+### Lua Example
+`set_override_fov(fov)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| fov | `number` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_override_fov(f32 fov);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_override_near](#set_override_near)
+
+### Description
+Sets the override near plane
+
+### Lua Example
+`set_override_near(near)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| near | `number` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_override_near(f32 near);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_override_far](#set_override_far)
+
+### Description
+Sets the override far plane
+
+### Lua Example
+`set_override_far(far)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| far | `number` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_override_far(f32 far);`
+
+[:arrow_up_small:](#)
+
+
+
+## [get_lighting_dir](#get_lighting_dir)
+
+### Description
+Gets a value of the global lighting direction
+
+### Lua Example
+`local numberValue = get_lighting_dir(index)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+
+### Returns
+- `number`
+
+### C Prototype
+`f32 get_lighting_dir(u8 index);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_lighting_dir](#set_lighting_dir)
+
+### Description
+Sets a value of the global lighting direction
+
+### Lua Example
+`set_lighting_dir(index, value)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+| value | `number` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_lighting_dir(u8 index, f32 value);`
+
+[:arrow_up_small:](#)
+
+
+
+## [get_lighting_color](#get_lighting_color)
+
+### Description
+Gets a value of the global lighting color
+
+### Lua Example
+`local integerValue = get_lighting_color(index)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+
+### Returns
+- `integer`
+
+### C Prototype
+`u8 get_lighting_color(u8 index);`
+
+[:arrow_up_small:](#)
+
+
+
+## [get_lighting_color_ambient](#get_lighting_color_ambient)
+
+### Description
+Gets a value of the global ambient lighting color
+
+### Lua Example
+`local integerValue = get_lighting_color_ambient(index)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+
+### Returns
+- `integer`
+
+### C Prototype
+`u8 get_lighting_color_ambient(u8 index);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_lighting_color](#set_lighting_color)
+
+### Description
+Sets a value of the global lighting color
+
+### Lua Example
+`set_lighting_color(index, value)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+| value | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_lighting_color(u8 index, u8 value);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_lighting_color_ambient](#set_lighting_color_ambient)
+
+### Description
+Sets a value of the global lighting color (run this after `set_lighting_color` for the ambient color to not be overriden)
+
+### Lua Example
+`set_lighting_color_ambient(index, value)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+| value | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_lighting_color_ambient(u8 index, u8 value);`
+
+[:arrow_up_small:](#)
+
+
+
+## [get_vertex_color](#get_vertex_color)
+
+### Description
+Gets a value of the global vertex shading color
+
+### Lua Example
+`local integerValue = get_vertex_color(index)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+
+### Returns
+- `integer`
+
+### C Prototype
+`u8 get_vertex_color(u8 index);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_vertex_color](#set_vertex_color)
+
+### Description
+Sets a value of the global vertex shading color
+
+### Lua Example
+`set_vertex_color(index, value)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+| value | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_vertex_color(u8 index, u8 value);`
+
+[:arrow_up_small:](#)
+
+
+
+## [get_fog_color](#get_fog_color)
+
+### Description
+Gets a value of the global fog color
+
+### Lua Example
+`local integerValue = get_fog_color(index)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+
+### Returns
+- `integer`
+
+### C Prototype
+`u8 get_fog_color(u8 index);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_fog_color](#set_fog_color)
+
+### Description
+Sets a value of the global fog color
+
+### Lua Example
+`set_fog_color(index, value)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+| value | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_fog_color(u8 index, u8 value);`
+
+[:arrow_up_small:](#)
+
+
+
+## [get_fog_intensity](#get_fog_intensity)
+
+### Description
+Gets the intensity of the fog
+
+### Lua Example
+`local numberValue = get_fog_intensity()`
+
+### Parameters
+- None
+
+### Returns
+- `number`
+
+### C Prototype
+`f32 get_fog_intensity(void);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_fog_intensity](#set_fog_intensity)
+
+### Description
+Sets the intensity of the fog (this value scales very quickly, 1.0 to 1.1 is a desirable range)
+
+### Lua Example
+`set_fog_intensity(intensity)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| intensity | `number` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_fog_intensity(f32 intensity);`
+
+[:arrow_up_small:](#)
+
+
+
+## [get_skybox](#get_skybox)
+
+### Description
+Gets the current skybox
+
+### Lua Example
+`local integerValue = get_skybox()`
+
+### Parameters
+- None
+
+### Returns
+- `integer`
+
+### C Prototype
+`s8 get_skybox(void);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_override_skybox](#set_override_skybox)
+
+### Description
+Sets the override skybox
+
+### Lua Example
+`set_override_skybox(background)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| background | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_override_skybox(s8 background);`
+
+[:arrow_up_small:](#)
+
+
+
+## [get_skybox_color](#get_skybox_color)
+
+### Description
+Gets a value of the global skybox color
+
+### Lua Example
+`local integerValue = get_skybox_color(index)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+
+### Returns
+- `integer`
+
+### C Prototype
+`u8 get_skybox_color(u8 index);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_skybox_color](#set_skybox_color)
+
+### Description
+Sets a value of the global skybox color
+
+### Lua Example
+`set_skybox_color(index, value)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| index | `integer` |
+| value | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_skybox_color(u8 index, u8 value);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_parse](#gfx_parse)
+
+### Description
+Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op`
+
+### Lua Example
+`gfx_parse(cmd, func)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| cmd | `Pointer` <`Gfx`> |
+| func | `Lua Function` () |
+
+### Returns
+- None
+
+### C Prototype
+`void gfx_parse(Gfx *cmd, LuaFunction func);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_get_op](#gfx_get_op)
+
+### Description
+Gets the op of the display list command
+
+### Lua Example
+`local integerValue = gfx_get_op(cmd)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| cmd | `Pointer` <`Gfx`> |
+
+### Returns
+- `integer`
+
+### C Prototype
+`u32 gfx_get_op(Gfx *cmd);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_get_display_list](#gfx_get_display_list)
+
+### Description
+Gets the display list from a display list command if it has the op `G_DL`
+
+### Lua Example
+`local pointerValue = gfx_get_display_list(cmd)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| cmd | `Pointer` <`Gfx`> |
+
+### Returns
+- `Pointer` <`Gfx`>
+
+### C Prototype
+`Gfx *gfx_get_display_list(Gfx *cmd);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_get_vertex_buffer](#gfx_get_vertex_buffer)
+
+### Description
+Gets the vertex buffer from a display list command if it has the op `G_VTX`
+
+### Lua Example
+`local pointerValue = gfx_get_vertex_buffer(cmd)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| cmd | `Pointer` <`Gfx`> |
+
+### Returns
+- `Pointer` <`Vtx`>
+
+### C Prototype
+`Vtx *gfx_get_vertex_buffer(Gfx *cmd);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_get_vertex_count](#gfx_get_vertex_count)
+
+### Description
+Gets the number of vertices from a display list command if it has the op `G_VTX`
+
+### Lua Example
+`local integerValue = gfx_get_vertex_count(cmd)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| cmd | `Pointer` <`Gfx`> |
+
+### Returns
+- `integer`
+
+### C Prototype
+`u16 gfx_get_vertex_count(Gfx *cmd);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_get_texture](#gfx_get_texture)
+
+### Description
+Gets the texture from a display list command if it has an image related op
+
+### Lua Example
+`local pointerValue = gfx_get_texture(cmd)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| cmd | `Pointer` <`Gfx`> |
+
+### Returns
+- `Pointer` <`Texture`>
+
+### C Prototype
+`Texture *gfx_get_texture(Gfx *cmd);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_get_from_name](#gfx_get_from_name)
+
+### Description
+Gets a display list of the current mod from its name. Returns a pointer to the display list and its length
+
+### Lua Example
+`local pointerValue, length = gfx_get_from_name(name)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| name | `string` |
+
+### Returns
+- `Pointer` <`Gfx`>
+- `integer`
+
+### C Prototype
+`Gfx *gfx_get_from_name(const char *name, RET u32 *length);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_get_name](#gfx_get_name)
+
+### Description
+Gets the name of a display list
+
+### Lua Example
+`local stringValue = gfx_get_name(gfx)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| gfx | `Pointer` <`Gfx`> |
+
+### Returns
+- `string`
+
+### C Prototype
+`const char *gfx_get_name(Gfx *gfx);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_get_length](#gfx_get_length)
+
+### Description
+Gets the max length of a display list
+
+### Lua Example
+`local integerValue = gfx_get_length(gfx)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| gfx | `Pointer` <`Gfx`> |
+
+### Returns
+- `integer`
+
+### C Prototype
+`u32 gfx_get_length(Gfx *gfx);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_get_command](#gfx_get_command)
+
+### Description
+Gets a command of a display list at position `offset`
+
+### Lua Example
+`local pointerValue = gfx_get_command(gfx, offset)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| gfx | `Pointer` <`Gfx`> |
+| offset | `integer` |
+
+### Returns
+- `Pointer` <`Gfx`>
+
+### C Prototype
+`Gfx *gfx_get_command(Gfx *gfx, u32 offset);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_get_next_command](#gfx_get_next_command)
+
+### Description
+Gets the next command of a given display list pointer. Intended to use in a for loop
+
+### Lua Example
+`local pointerValue = gfx_get_next_command(gfx)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| gfx | `Pointer` <`Gfx`> |
+
+### Returns
+- `Pointer` <`Gfx`>
+
+### C Prototype
+`Gfx *gfx_get_next_command(Gfx *gfx);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_copy](#gfx_copy)
+
+### Description
+Copies `length` commands from display list `src` to display list `dest`
+
+### Lua Example
+`gfx_copy(dest, src, length)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| dest | `Pointer` <`Gfx`> |
+| src | `Pointer` <`Gfx`> |
+| length | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void gfx_copy(Gfx *dest, Gfx *src, u32 length);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_create](#gfx_create)
+
+### Description
+Creates a new named display list of `length` commands
+
+### Lua Example
+`local pointerValue = gfx_create(name, length)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| name | `string` |
+| length | `integer` |
+
+### Returns
+- `Pointer` <`Gfx`>
+
+### C Prototype
+`Gfx *gfx_create(const char *name, u32 length);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_resize](#gfx_resize)
+
+### Description
+Resizes a display list created by `gfx_create`
+
+### Lua Example
+`gfx_resize(gfx, newLength)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| gfx | `Pointer` <`Gfx`> |
+| newLength | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void gfx_resize(Gfx *gfx, u32 newLength);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_delete](#gfx_delete)
+
+### Description
+Deletes a display list created by `gfx_create`
+
+### Lua Example
+`gfx_delete(gfx)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| gfx | `Pointer` <`Gfx`> |
+
+### Returns
+- None
+
+### C Prototype
+`void gfx_delete(Gfx *gfx);`
+
+[:arrow_up_small:](#)
+
+
+
+## [gfx_delete_all](#gfx_delete_all)
+
+### Description
+Deletes all display lists created by `gfx_create`
+
+### Lua Example
+`gfx_delete_all()`
+
+### Parameters
+- None
+
+### Returns
+- None
+
+### C Prototype
+`void gfx_delete_all();`
+
+[:arrow_up_small:](#)
+
+
+
+## [vtx_get_from_name](#vtx_get_from_name)
+
+### Description
+Gets a vertex buffer of the current mod from its name. Returns a pointer to the vertex buffering and its vertex count
+
+### Lua Example
+`local pointerValue, count = vtx_get_from_name(name)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| name | `string` |
+
+### Returns
+- `Pointer` <`Vtx`>
+- `integer`
+
+### C Prototype
+`Vtx *vtx_get_from_name(const char *name, RET u32 *count);`
+
+[:arrow_up_small:](#)
+
+
+
+## [vtx_get_name](#vtx_get_name)
+
+### Description
+Gets the name of a vertex buffer
+
+### Lua Example
+`local stringValue = vtx_get_name(vtx)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| vtx | `Pointer` <`Vtx`> |
+
+### Returns
+- `string`
+
+### C Prototype
+`const char *vtx_get_name(Vtx *vtx);`
+
+[:arrow_up_small:](#)
+
+
+
+## [vtx_get_count](#vtx_get_count)
+
+### Description
+Gets the max count of vertices of a vertex buffer
+
+### Lua Example
+`local integerValue = vtx_get_count(vtx)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| vtx | `Pointer` <`Vtx`> |
+
+### Returns
+- `integer`
+
+### C Prototype
+`u32 vtx_get_count(Vtx *vtx);`
+
+[:arrow_up_small:](#)
+
+
+
+## [vtx_get_vertex](#vtx_get_vertex)
+
+### Description
+Gets a vertex of a vertex buffer at position `offset`
+
+### Lua Example
+`local pointerValue = vtx_get_vertex(vtx, offset)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| vtx | `Pointer` <`Vtx`> |
+| offset | `integer` |
+
+### Returns
+- `Pointer` <`Vtx`>
+
+### C Prototype
+`Vtx *vtx_get_vertex(Vtx *vtx, u32 offset);`
+
+[:arrow_up_small:](#)
+
+
+
+## [vtx_get_next_vertex](#vtx_get_next_vertex)
+
+### Description
+Gets the next vertex of a given vertex pointer. Intended to use in a for loop
+
+### Lua Example
+`local pointerValue = vtx_get_next_vertex(vtx)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| vtx | `Pointer` <`Vtx`> |
+
+### Returns
+- `Pointer` <`Vtx`>
+
+### C Prototype
+`Vtx *vtx_get_next_vertex(Vtx *vtx);`
+
+[:arrow_up_small:](#)
+
+
+
+## [vtx_copy](#vtx_copy)
+
+### Description
+Copies `count` vertices from vertex buffer `src` to vertex buffer `dest`
+
+### Lua Example
+`vtx_copy(dest, src, count)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| dest | `Pointer` <`Vtx`> |
+| src | `Pointer` <`Vtx`> |
+| count | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void vtx_copy(Vtx *dest, Vtx *src, u32 count);`
+
+[:arrow_up_small:](#)
+
+
+
+## [vtx_create](#vtx_create)
+
+### Description
+Creates a new named vertex buffer of `count` vertices
+
+### Lua Example
+`local pointerValue = vtx_create(name, count)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| name | `string` |
+| count | `integer` |
+
+### Returns
+- `Pointer` <`Vtx`>
+
+### C Prototype
+`Vtx *vtx_create(const char *name, u32 count);`
+
+[:arrow_up_small:](#)
+
+
+
+## [vtx_resize](#vtx_resize)
+
+### Description
+Resizes a vertex buffer created by `vtx_create`
+
+### Lua Example
+`vtx_resize(vtx, newCount)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| vtx | `Pointer` <`Vtx`> |
+| newCount | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void vtx_resize(Vtx *vtx, u32 newCount);`
+
+[:arrow_up_small:](#)
+
+
+
+## [vtx_delete](#vtx_delete)
+
+### Description
+Deletes a vertex buffer created by `vtx_create`
+
+### Lua Example
+`vtx_delete(vtx)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| vtx | `Pointer` <`Vtx`> |
+
+### Returns
+- None
+
+### C Prototype
+`void vtx_delete(Vtx *vtx);`
+
+[:arrow_up_small:](#)
+
+
+
+## [vtx_delete_all](#vtx_delete_all)
+
+### Description
+Deletes all vertex buffers created by `vtx_create`
+
+### Lua Example
+`vtx_delete_all()`
+
+### Parameters
+- None
+
+### Returns
+- None
+
+### C Prototype
+`void vtx_delete_all();`
+
+[:arrow_up_small:](#)
+
+
+
---
# functions from smlua_level_utils.h
diff --git a/docs/lua/functions.md b/docs/lua/functions.md
index 0b2740bb2..a286da56d 100644
--- a/docs/lua/functions.md
+++ b/docs/lua/functions.md
@@ -1937,55 +1937,58 @@
- smlua_gfx_utils.h
- - [enable_shader_flag](functions-6.md#enable_shader_flag)
- - [set_shader_flag_value](functions-6.md#set_shader_flag_value)
- - [enable_shader_flags_global](functions-6.md#enable_shader_flags_global)
- - [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)
- - [get_lighting_dir](functions-6.md#get_lighting_dir)
- - [set_lighting_dir](functions-6.md#set_lighting_dir)
- - [get_lighting_color](functions-6.md#get_lighting_color)
- - [get_lighting_color_ambient](functions-6.md#get_lighting_color_ambient)
- - [set_lighting_color](functions-6.md#set_lighting_color)
- - [set_lighting_color_ambient](functions-6.md#set_lighting_color_ambient)
- - [get_vertex_color](functions-6.md#get_vertex_color)
- - [set_vertex_color](functions-6.md#set_vertex_color)
- - [get_fog_color](functions-6.md#get_fog_color)
- - [set_fog_color](functions-6.md#set_fog_color)
- - [get_fog_intensity](functions-6.md#get_fog_intensity)
- - [set_fog_intensity](functions-6.md#set_fog_intensity)
- - [get_skybox](functions-6.md#get_skybox)
- - [set_override_skybox](functions-6.md#set_override_skybox)
- - [get_skybox_color](functions-6.md#get_skybox_color)
- - [set_skybox_color](functions-6.md#set_skybox_color)
- - [gfx_parse](functions-6.md#gfx_parse)
- - [gfx_get_op](functions-6.md#gfx_get_op)
- - [gfx_get_display_list](functions-6.md#gfx_get_display_list)
- - [gfx_get_vertex_buffer](functions-6.md#gfx_get_vertex_buffer)
- - [gfx_get_vertex_count](functions-6.md#gfx_get_vertex_count)
- - [gfx_get_texture](functions-6.md#gfx_get_texture)
- - [gfx_get_from_name](functions-6.md#gfx_get_from_name)
- - [gfx_get_name](functions-6.md#gfx_get_name)
- - [gfx_get_length](functions-6.md#gfx_get_length)
- - [gfx_get_command](functions-6.md#gfx_get_command)
- - [gfx_get_next_command](functions-6.md#gfx_get_next_command)
- - [gfx_copy](functions-6.md#gfx_copy)
- - [gfx_create](functions-6.md#gfx_create)
- - [gfx_resize](functions-6.md#gfx_resize)
- - [gfx_delete](functions-6.md#gfx_delete)
- - [gfx_delete_all](functions-6.md#gfx_delete_all)
- - [vtx_get_from_name](functions-6.md#vtx_get_from_name)
- - [vtx_get_name](functions-6.md#vtx_get_name)
- - [vtx_get_count](functions-6.md#vtx_get_count)
- - [vtx_get_vertex](functions-6.md#vtx_get_vertex)
- - [vtx_get_next_vertex](functions-6.md#vtx_get_next_vertex)
- - [vtx_copy](functions-6.md#vtx_copy)
- - [vtx_create](functions-6.md#vtx_create)
- - [vtx_resize](functions-6.md#vtx_resize)
- - [vtx_delete](functions-6.md#vtx_delete)
- - [vtx_delete_all](functions-6.md#vtx_delete_all)
+ - [get_shader_flag_enabled](functions-7.md#get_shader_flag_enabled)
+ - [set_shader_flag_enabled](functions-7.md#set_shader_flag_enabled)
+ - [get_shader_flag_value](functions-7.md#get_shader_flag_value)
+ - [set_shader_flag_value](functions-7.md#set_shader_flag_value)
+ - [get_global_shader_flags_enabled](functions-7.md#get_global_shader_flags_enabled)
+ - [set_global_shader_flags_enabled](functions-7.md#set_global_shader_flags_enabled)
+ - [clear_all_shader_flags](functions-7.md#clear_all_shader_flags)
+ - [set_override_fov](functions-7.md#set_override_fov)
+ - [set_override_near](functions-7.md#set_override_near)
+ - [set_override_far](functions-7.md#set_override_far)
+ - [get_lighting_dir](functions-7.md#get_lighting_dir)
+ - [set_lighting_dir](functions-7.md#set_lighting_dir)
+ - [get_lighting_color](functions-7.md#get_lighting_color)
+ - [get_lighting_color_ambient](functions-7.md#get_lighting_color_ambient)
+ - [set_lighting_color](functions-7.md#set_lighting_color)
+ - [set_lighting_color_ambient](functions-7.md#set_lighting_color_ambient)
+ - [get_vertex_color](functions-7.md#get_vertex_color)
+ - [set_vertex_color](functions-7.md#set_vertex_color)
+ - [get_fog_color](functions-7.md#get_fog_color)
+ - [set_fog_color](functions-7.md#set_fog_color)
+ - [get_fog_intensity](functions-7.md#get_fog_intensity)
+ - [set_fog_intensity](functions-7.md#set_fog_intensity)
+ - [get_skybox](functions-7.md#get_skybox)
+ - [set_override_skybox](functions-7.md#set_override_skybox)
+ - [get_skybox_color](functions-7.md#get_skybox_color)
+ - [set_skybox_color](functions-7.md#set_skybox_color)
+ - [gfx_parse](functions-7.md#gfx_parse)
+ - [gfx_get_op](functions-7.md#gfx_get_op)
+ - [gfx_get_display_list](functions-7.md#gfx_get_display_list)
+ - [gfx_get_vertex_buffer](functions-7.md#gfx_get_vertex_buffer)
+ - [gfx_get_vertex_count](functions-7.md#gfx_get_vertex_count)
+ - [gfx_get_texture](functions-7.md#gfx_get_texture)
+ - [gfx_get_from_name](functions-7.md#gfx_get_from_name)
+ - [gfx_get_name](functions-7.md#gfx_get_name)
+ - [gfx_get_length](functions-7.md#gfx_get_length)
+ - [gfx_get_command](functions-7.md#gfx_get_command)
+ - [gfx_get_next_command](functions-7.md#gfx_get_next_command)
+ - [gfx_copy](functions-7.md#gfx_copy)
+ - [gfx_create](functions-7.md#gfx_create)
+ - [gfx_resize](functions-7.md#gfx_resize)
+ - [gfx_delete](functions-7.md#gfx_delete)
+ - [gfx_delete_all](functions-7.md#gfx_delete_all)
+ - [vtx_get_from_name](functions-7.md#vtx_get_from_name)
+ - [vtx_get_name](functions-7.md#vtx_get_name)
+ - [vtx_get_count](functions-7.md#vtx_get_count)
+ - [vtx_get_vertex](functions-7.md#vtx_get_vertex)
+ - [vtx_get_next_vertex](functions-7.md#vtx_get_next_vertex)
+ - [vtx_copy](functions-7.md#vtx_copy)
+ - [vtx_create](functions-7.md#vtx_create)
+ - [vtx_resize](functions-7.md#vtx_resize)
+ - [vtx_delete](functions-7.md#vtx_delete)
+ - [vtx_delete_all](functions-7.md#vtx_delete_all)
diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c
index 25a7d42b6..86c6d90df 100644
--- a/src/pc/lua/smlua_functions_autogen.c
+++ b/src/pc/lua/smlua_functions_autogen.c
@@ -32124,21 +32124,55 @@ int smlua_func_network_player_palette_to_color(lua_State* L) {
// smlua_gfx_utils.h //
///////////////////////
-int smlua_func_enable_shader_flag(lua_State* L) {
+int smlua_func_get_shader_flag_enabled(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_shader_flag", 2, top);
+ if (top != 1) {
+ LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "get_shader_flag_enabled", 1, top);
return 0;
}
int flag = smlua_to_integer(L, 1);
- 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_shader_flag"); return 0; }
+ if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "get_shader_flag_enabled"); return 0; }
- enable_shader_flag(flag, enabled);
+ lua_pushboolean(L, get_shader_flag_enabled(flag));
+
+ return 1;
+}
+
+int smlua_func_set_shader_flag_enabled(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_shader_flag_enabled", 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_shader_flag_enabled"); return 0; }
+ bool enabled = smlua_to_boolean(L, 2);
+ if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "set_shader_flag_enabled"); return 0; }
+
+ set_shader_flag_enabled(flag, enabled);
+
+ return 1;
+}
+
+int smlua_func_get_shader_flag_value(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", "get_shader_flag_value", 1, top);
+ return 0;
+ }
+
+ int flag = smlua_to_integer(L, 1);
+ if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "get_shader_flag_value"); return 0; }
+
+ lua_pushnumber(L, get_shader_flag_value(flag));
return 1;
}
@@ -32162,19 +32196,34 @@ int smlua_func_set_shader_flag_value(lua_State* L) {
return 1;
}
-int smlua_func_enable_shader_flags_global(lua_State* L) {
+int smlua_func_get_global_shader_flags_enabled(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", "get_global_shader_flags_enabled", 0, top);
+ return 0;
+ }
+
+
+ lua_pushboolean(L, get_global_shader_flags_enabled());
+
+ return 1;
+}
+
+int smlua_func_set_global_shader_flags_enabled(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_shader_flags_global", 1, top);
+ LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "set_global_shader_flags_enabled", 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_shader_flags_global"); return 0; }
+ if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "set_global_shader_flags_enabled"); return 0; }
- enable_shader_flags_global(enabled);
+ set_global_shader_flags_enabled(enabled);
return 1;
}
@@ -38872,9 +38921,12 @@ 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_shader_flag", smlua_func_enable_shader_flag);
+ smlua_bind_function(L, "get_shader_flag_enabled", smlua_func_get_shader_flag_enabled);
+ smlua_bind_function(L, "set_shader_flag_enabled", smlua_func_set_shader_flag_enabled);
+ smlua_bind_function(L, "get_shader_flag_value", smlua_func_get_shader_flag_value);
smlua_bind_function(L, "set_shader_flag_value", smlua_func_set_shader_flag_value);
- smlua_bind_function(L, "enable_shader_flags_global", smlua_func_enable_shader_flags_global);
+ smlua_bind_function(L, "get_global_shader_flags_enabled", smlua_func_get_global_shader_flags_enabled);
+ smlua_bind_function(L, "set_global_shader_flags_enabled", smlua_func_set_global_shader_flags_enabled);
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);
diff --git a/src/pc/lua/utils/smlua_gfx_utils.c b/src/pc/lua/utils/smlua_gfx_utils.c
index 6bc75b4ae..8d18ad889 100644
--- a/src/pc/lua/utils/smlua_gfx_utils.c
+++ b/src/pc/lua/utils/smlua_gfx_utils.c
@@ -4,17 +4,31 @@
#include "game/skybox.h"
#include "geo_commands.h"
-void enable_shader_flag(enum ShaderFlag flag, bool enabled) {
+bool get_shader_flag_enabled(enum ShaderFlag flag) {
+ if (flag < 0 || flag >= SHADER_FLAG_MAX) { return false; }
+ return gShaderFlags[flag];
+}
+
+void set_shader_flag_enabled(enum ShaderFlag flag, bool enabled) {
if (flag < 0 || flag >= SHADER_FLAG_MAX) { return; }
gShaderFlags[flag] = enabled ? 1 : 0;
}
+f32 get_shader_flag_value(enum ShaderFlag flag) {
+ if (flag < 0 || flag >= SHADER_FLAG_MAX) { return 0.0f; }
+ return gShaderFlagValues[flag];
+}
+
void set_shader_flag_value(enum ShaderFlag flag, f32 value) {
if (flag < 0 || flag >= SHADER_FLAG_MAX) { return; }
gShaderFlagValues[flag] = value;
}
-void enable_shader_flags_global(bool enabled) {
+bool get_global_shader_flags_enabled(void) {
+ return gShaderFlagsEnabled;
+}
+
+void set_global_shader_flags_enabled(bool enabled) {
gShaderFlagsEnabled = enabled;
}
diff --git a/src/pc/lua/utils/smlua_gfx_utils.h b/src/pc/lua/utils/smlua_gfx_utils.h
index 801da6936..117dd52f3 100644
--- a/src/pc/lua/utils/smlua_gfx_utils.h
+++ b/src/pc/lua/utils/smlua_gfx_utils.h
@@ -13,12 +13,18 @@ Gfx *gfx_allocate_internal(Gfx *gfx, u32 length);
Vtx *vtx_allocate_internal(Vtx *vtx, u32 count);
u32 gfx_get_length_no_sentinel(const Gfx *gfx);
+/* |description|Gets if a custom shader flag (`SHADER_FLAG_*`) is enabled or not|descriptionEnd| */
+bool get_shader_flag_enabled(enum ShaderFlag flag);
/* |description|Enables a custom shader flag (`SHADER_FLAG_*`) for the renderer|descriptionEnd| */
-void enable_shader_flag(enum ShaderFlag flag, bool enabled);
+void set_shader_flag_enabled(enum ShaderFlag flag, bool enabled);
+/* |description|Gets a value for one of the custom shader flags (`SHADER_FLAG_*`)*/
+f32 get_shader_flag_value(enum ShaderFlag flag);
/* |description|Sets a value for one of the custom shader flags (`SHADER_FLAG_*`) for the renderer|descriptionEnd| */
void set_shader_flag_value(enum ShaderFlag flag, f32 value);
+/* |description|Gets if custom shader flags are enabled globally|descriptionEnd| */
+bool get_global_shader_flags_enabled(void);
/* |description|Enables custom shader flags as a global toggle, useful for disabling without manually going through every effect|descriptionEnd| */
-void enable_shader_flags_global(bool enabled);
+void set_global_shader_flags_enabled(bool enabled);
/* |description|Clears all custom shader flags (`SHADER_FLAG_*`) for the renderer|descriptionEnd| */
void clear_all_shader_flags(void);