diff --git a/autogen/common.py b/autogen/common.py
index 1c3575b02..2c325cae1 100644
--- a/autogen/common.py
+++ b/autogen/common.py
@@ -253,6 +253,13 @@ def translate_type_to_lot(ptype, allowArrays=True):
return 'LOT_???'
def translate_type_to_lua(ptype):
+ if type(ptype) is list:
+ rt, rl = [], []
+ for _t in ptype:
+ t, l = translate_type_to_lua(_t)
+ rt.append(t); rl.append(l)
+ return rt, rl
+
if ptype == 'const char*':
return '`string`', None
@@ -359,6 +366,9 @@ def gen_comment_header(f):
return s
def translate_to_def(ptype):
+ if type(ptype) is list:
+ return [translate_to_def(t) for t in ptype]
+
if ptype == None:
return 'nil'
if 'Lua Function' in ptype:
diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py
index ba1b753fa..497143b6e 100644
--- a/autogen/convert_functions.py
+++ b/autogen/convert_functions.py
@@ -751,6 +751,10 @@ def normalize_type(t):
return t
def alter_type(t):
+ if type(t) is list:
+ if len(t) > 1:
+ return 'void'
+ t = t[0]
if t.startswith('enum '):
return 'int'
return t
@@ -954,13 +958,14 @@ def build_function(function, do_extern):
s += '\n'
# To allow chaining vector functions calls, return the table corresponding to the `OUT` parameter
- if function['type'] in VECP_TYPES:
+ ftype = function['type']
+ if len(ftype) == 1 and ftype[0] in VECP_TYPES:
for i, param in enumerate(function['params']):
if 'OUT' in param:
s += ' lua_settop(L, %d);\n' % (i + 1)
break
- s += ' return 1;\n}\n'
+ s += ' return %i;\n}\n' % len(ftype)
if fid in override_function_version_excludes:
s += '#endif\n'
@@ -1046,7 +1051,11 @@ def process_function(fname, line, description):
line = line.replace('UNUSED', '')
match = re.search(r'[a-zA-Z0-9_]+\(', line)
- function['type'] = normalize_type(line[0:match.span()[0]])
+ if match.group() == "RETURNS(":
+ function['type'] = [t.strip() for t in line.split('(', 1)[1].split(')', 1)[0].split(',')]
+ line = re.sub(r'RETURNS\(.*?\)', 'void', line)
+ match = re.search(r'[a-zA-Z0-9_]+\(', line)
+ else: function['type'] = [normalize_type(line[0:match.span()[0]])]
function['identifier'] = match.group()[0:-1]
function['params'] = []
@@ -1259,8 +1268,8 @@ def doc_function(fname, function):
s += f'{description}\n'
s += "\n### Lua Example\n"
- if rtype != None:
- s += "`local %sValue = %s(%s)`\n" % (rtype.replace('`', '').split(' ')[0], fid, param_str)
+ if None not in rtype:
+ s += "`local %s = %s(%s)`\n" % (", ".join([t.replace('`', '').split(' ')[0] + "Value" for t in rtype]), fid, param_str)
else:
s += "`%s(%s)`\n" % (fid, param_str)
@@ -1288,10 +1297,11 @@ def doc_function(fname, function):
s += '\n### Returns\n'
if rtype != None:
- if rlink:
- s += '[%s](%s)\n' % (rtype, rlink)
- else:
- s += '- %s\n' % rtype
+ for t, l in zip(rtype, rlink):
+ if l:
+ s += '- [%s](%s)\n' % (t, l)
+ else:
+ s += '- %s\n' % t
else:
s += '- None\n'
@@ -1383,8 +1393,8 @@ def def_function(fname, function):
rtype, rlink = translate_type_to_lua(function['type'])
param_str = ', '.join([x['identifier'] for x in function['params']])
- if rtype == None:
- rtype = 'nil'
+ if None in rtype:
+ rtype[0] = 'nil'
if function['description'].startswith("[DEPRECATED"):
s += "--- @deprecated\n"
@@ -1401,11 +1411,12 @@ def def_function(fname, function):
s += '--- @param %s%s %s\n' % (pid, ('?' if 'OPTIONAL' in param else ''), ptype)
rtype = translate_to_def(rtype)
- if rtype.startswith('Pointer_') and rtype not in def_pointers:
- def_pointers.append(rtype)
+ for t in rtype:
+ if t.startswith('Pointer_') and t not in def_pointers:
+ def_pointers.append(t)
- if rtype != "nil":
- s += '--- @return %s\n' % rtype
+ if t != "nil":
+ s += '--- @return %s\n' % t
if function['description'] != "":
s += "--- %s\n" % (function['description'])
s += "function %s(%s)\n -- ...\nend\n\n" % (fid, param_str)
diff --git a/autogen/extract_functions.py b/autogen/extract_functions.py
index a73db339d..0baa09621 100644
--- a/autogen/extract_functions.py
+++ b/autogen/extract_functions.py
@@ -75,8 +75,8 @@ def extract_functions(filename):
while (' ' in txt):
txt = txt.replace(' ', ' ')
- # strip macros
- txt = re.sub(r'[^a-zA-Z0-9_][A-Z0-9_]+\(.*\)', '', txt)
+ # strip macros (except RETURNS(...))
+ txt = re.sub(r'((?!RETURNS)[^a-zA-Z0-9_][A-Z0-9_])+\(.*\)', '', txt)
# strip blocks
tmp = txt
diff --git a/docs/lua/functions-2.md b/docs/lua/functions-2.md
index 6bd635827..85c8c8b95 100644
--- a/docs/lua/functions-2.md
+++ b/docs/lua/functions-2.md
@@ -12021,7 +12021,7 @@ Spawns a Star with an ID corresponding to the current object's first behavior pa
| z | `number` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object* spawn_default_star(f32 x, f32 y, f32 z);`
@@ -12046,7 +12046,7 @@ Spawns a Red Coin cutscene star with an ID corresponding to the current object's
| z | `number` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object* spawn_red_coin_cutscene_star(f32 x, f32 y, f32 z);`
@@ -12071,7 +12071,7 @@ Spawns a Star that won't make Mario exit the level with an ID corresponding to t
| z | `number` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object* spawn_no_exit_star(f32 x, f32 y, f32 z);`
diff --git a/docs/lua/functions-3.md b/docs/lua/functions-3.md
index 3a2751af1..481206533 100644
--- a/docs/lua/functions-3.md
+++ b/docs/lua/functions-3.md
@@ -180,7 +180,7 @@ Gets a behavior ID from a behavior script
| behavior | `Pointer` <`BehaviorScript`> |
### Returns
-[enum BehaviorId](constants.md#enum-BehaviorId)
+- [enum BehaviorId](constants.md#enum-BehaviorId)
### C Prototype
`enum BehaviorId get_id_from_behavior(const BehaviorScript* behavior);`
@@ -203,7 +203,7 @@ Gets a behavior ID from only vanilla behavior scripts
| behavior | `Pointer` <`BehaviorScript`> |
### Returns
-[enum BehaviorId](constants.md#enum-BehaviorId)
+- [enum BehaviorId](constants.md#enum-BehaviorId)
### C Prototype
`enum BehaviorId get_id_from_vanilla_behavior(const BehaviorScript* behavior);`
@@ -272,7 +272,7 @@ gets a behavior ID from a behavior name
| name | `string` |
### Returns
-[enum BehaviorId](constants.md#enum-BehaviorId)
+- [enum BehaviorId](constants.md#enum-BehaviorId)
### C Prototype
`enum BehaviorId get_id_from_behavior_name(const char* name);`
@@ -2502,7 +2502,7 @@ Gets a Character struct from `m`
| m | [MarioState](structs.md#MarioState) |
### Returns
-[Character](structs.md#Character)
+- [Character](structs.md#Character)
### C Prototype
`struct Character* get_character(struct MarioState* m);`
@@ -2861,7 +2861,7 @@ Gets the current DJUI HUD color
- None
### Returns
-[DjuiColor](structs.md#DjuiColor)
+- [DjuiColor](structs.md#DjuiColor)
### C Prototype
`struct DjuiColor* djui_hud_get_color(void);`
@@ -2929,7 +2929,7 @@ Gets the current DJUI HUD rotation
- None
### Returns
-[HudUtilsRotation](structs.md#HudUtilsRotation)
+- [HudUtilsRotation](structs.md#HudUtilsRotation)
### C Prototype
`struct HudUtilsRotation* djui_hud_get_rotation(void);`
@@ -6123,7 +6123,7 @@ Returns a collided object that matches a given interaction type from Mario's cur
| interactType | `integer` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *mario_get_collided_object(struct MarioState *m, u32 interactType);`
@@ -6338,7 +6338,7 @@ Gets the local Mario's state stored in lag compensation history
| otherNp | [NetworkPlayer](structs.md#NetworkPlayer) |
### Returns
-[MarioState](structs.md#MarioState)
+- [MarioState](structs.md#MarioState)
### C Prototype
`struct MarioState* lag_compensation_get_local_state(struct NetworkPlayer* otherNp);`
@@ -6571,7 +6571,7 @@ Creates a warp node in the current level and area with id `id` that goes to the
| o | [Object](structs.md#Object) |
### Returns
-[ObjectWarpNode](structs.md#ObjectWarpNode)
+- [ObjectWarpNode](structs.md#ObjectWarpNode)
### C Prototype
`struct ObjectWarpNode *area_create_warp_node(u8 id, u8 destLevel, u8 destArea, u8 destNode, u8 checkpoint, struct Object *o);`
@@ -6666,7 +6666,7 @@ Gets an instant warp from the current area's instant warp array (0-3)
| index | `integer` |
### Returns
-[InstantWarp](structs.md#InstantWarp)
+- [InstantWarp](structs.md#InstantWarp)
### C Prototype
`struct InstantWarp *get_instant_warp(u8 index);`
@@ -6687,7 +6687,7 @@ Gets a painting warp node from the local mario's floor type
- None
### Returns
-[WarpNode](structs.md#WarpNode)
+- [WarpNode](structs.md#WarpNode)
### C Prototype
`struct WarpNode *get_painting_warp_node(void);`
diff --git a/docs/lua/functions-4.md b/docs/lua/functions-4.md
index d439877c6..727ad4068 100644
--- a/docs/lua/functions-4.md
+++ b/docs/lua/functions-4.md
@@ -67,7 +67,7 @@ Gets the lighting engine mode
- None
### Returns
-[enum LEMode](constants.md#enum-LEMode)
+- [enum LEMode](constants.md#enum-LEMode)
### C Prototype
`enum LEMode le_get_mode(void);`
@@ -1249,7 +1249,7 @@ Checks for and resolves wall collisions at a given position `pos`, returning the
| radius | `number` |
### Returns
-[Surface](structs.md#Surface)
+- [Surface](structs.md#Surface)
### C Prototype
`struct Surface *resolve_and_return_wall_collisions(OUT Vec3f pos, f32 offset, f32 radius);`
@@ -1845,7 +1845,7 @@ Gets the MarioState corresponding to the provided object if the object is a Mari
| o | [Object](structs.md#Object) |
### Returns
-[MarioState](structs.md#MarioState)
+- [MarioState](structs.md#MarioState)
### C Prototype
`struct MarioState *get_mario_state_from_object(struct Object *o);`
@@ -4397,7 +4397,7 @@ When used in a geo function, retrieve the MarioState associated to the current p
- None
### Returns
-[MarioState](structs.md#MarioState)
+- [MarioState](structs.md#MarioState)
### C Prototype
`struct MarioState *geo_get_mario_state(void);`
@@ -4418,7 +4418,7 @@ When used in a geo function, retrieve the MarioBodyState associated to the curre
- None
### Returns
-[MarioBodyState](structs.md#MarioBodyState)
+- [MarioBodyState](structs.md#MarioBodyState)
### C Prototype
`struct MarioBodyState *geo_get_body_state(void);`
@@ -4930,7 +4930,7 @@ Rotates the 3D floating-point vector `v` by the angles specified in the 3D signe
| rotate | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_rotate_zxy(OUT Vec3f v, Vec3s rotate);`
@@ -4956,7 +4956,7 @@ Rotates the 3D floating-point vector `v` around the vector `n`, given a rotation
| r | `integer` |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_rotate_around_n(OUT Vec3f dest, Vec3f v, Vec3f n, s16 r);`
@@ -4981,7 +4981,7 @@ Projects the 3D floating-point vector `v` onto another 3D floating-point vector
| onto | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_project(OUT Vec3f dest, Vec3f v, Vec3f onto);`
@@ -5008,7 +5008,7 @@ Scales the 3D floating-point vector `v` by the vector `scale`, then rotates it b
| scale | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_transform(OUT Vec3f dest, Vec3f v, Vec3f translation, Vec3s rotation, Vec3f scale);`
@@ -5088,7 +5088,7 @@ Determines a vector that is perpendicular (normal) to the plane defined by three
| c | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp find_vector_perpendicular_to_plane(OUT Vec3f dest, Vec3f a, Vec3f b, Vec3f c);`
@@ -5317,7 +5317,7 @@ Multiplies the 3D signed-integer vector `b` with the 4x4 floating-point matrix `
| b | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp mtxf_mul_vec3s(Mat4 mtx, OUT Vec3s b);`
@@ -5414,7 +5414,7 @@ Extracts the position (translation component) from the transformation matrix `ob
| camMtx | [Mat4](structs.md#Mat4) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp get_pos_from_transform_mtx(OUT Vec3f dest, Mat4 objMtx, Mat4 camMtx);`
@@ -5690,7 +5690,7 @@ Sets the components of the 3D floating-point vector `v` to 0
| v | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_zero(OUT Vec3f v);`
@@ -5714,7 +5714,7 @@ Copies the contents of a 3D floating-point vector (`src`) into another 3D floati
| src | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_copy(OUT Vec3f dest, Vec3f src);`
@@ -5740,7 +5740,7 @@ Sets the values of the 3D floating-point vector `dest` to the given x, y, and z
| z | `number` |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_set(OUT Vec3f dest, f32 x, f32 y, f32 z);`
@@ -5764,7 +5764,7 @@ Adds the components of the 3D floating-point vector `a` to `dest`
| a | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_add(OUT Vec3f dest, Vec3f a);`
@@ -5789,7 +5789,7 @@ Adds the components of two 3D floating-point vectors `a` and `b` and stores the
| b | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_sum(OUT Vec3f dest, Vec3f a, Vec3f b);`
@@ -5813,7 +5813,7 @@ Subtracts the components of the 3D floating-point vector `a` from `dest`
| a | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_sub(OUT Vec3f dest, Vec3f a);`
@@ -5838,7 +5838,7 @@ Subtracts the components of the 3D floating-point vector `b` from the components
| b | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_dif(OUT Vec3f dest, Vec3f a, Vec3f b);`
@@ -5862,7 +5862,7 @@ Multiplies each component of the 3D floating-point vector `dest` by the scalar v
| a | `number` |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_mul(OUT Vec3f dest, f32 a);`
@@ -5886,7 +5886,7 @@ Multiplies the components of the 3D floating-point vector `dest` with the compon
| a | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_mult(OUT Vec3f dest, Vec3f a);`
@@ -5911,7 +5911,7 @@ Multiplies the components of two 3D floating-point vectors `a` and `b` and store
| b | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_prod(OUT Vec3f dest, Vec3f a, Vec3f b);`
@@ -5935,7 +5935,7 @@ Divides each component of the 3D floating-point vector `dest` by the scalar valu
| a | `number` |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_div(OUT Vec3f dest, f32 a);`
@@ -5981,7 +5981,7 @@ Normalizes the 3D floating-point vector `v` so that its length (magnitude) becom
| v | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_normalize(OUT Vec3f v);`
@@ -6005,7 +6005,7 @@ Sets the length (magnitude) of 3D floating-point vector `v`, while retaining its
| mag | `number` |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_set_magnitude(OUT Vec3f v, f32 mag);`
@@ -6054,7 +6054,7 @@ Computes the cross product of two 3D floating-point vectors `a` and `b` and stor
| b | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_cross(OUT Vec3f dest, Vec3f a, Vec3f b);`
@@ -6081,7 +6081,7 @@ Takes two 3D floating-point vectors `vecA` and `vecB`, multiplies them by `sclA`
| sclB | `number` |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3f_combine(OUT Vec3f dest, Vec3f vecA, Vec3f vecB, f32 sclA, f32 sclB);`
@@ -6176,7 +6176,7 @@ Converts a 3D floating-point vector `a` into a 3D integer vector and stores the
| a | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3f_to_vec3i(OUT Vec3i dest, Vec3f a);`
@@ -6200,7 +6200,7 @@ Converts a 3D floating-point vector `a` into a 3D short integer vector and store
| a | [Vec3f](structs.md#Vec3f) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3f_to_vec3s(OUT Vec3s dest, Vec3f a);`
@@ -6229,7 +6229,7 @@ Sets the components of the 3D integer vector `v` to 0
| v | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_zero(OUT Vec3i v);`
@@ -6253,7 +6253,7 @@ Copies the contents of a 3D integer vector (`src`) into another 3D integer vecto
| src | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_copy(OUT Vec3i dest, Vec3i src);`
@@ -6279,7 +6279,7 @@ Sets the values of the 3D integer vector `dest` to the given x, y, and z values
| z | `integer` |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_set(OUT Vec3i dest, s32 x, s32 y, s32 z);`
@@ -6303,7 +6303,7 @@ Adds the components of the 3D integer vector `a` to `dest`
| a | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_add(OUT Vec3i dest, Vec3i a);`
@@ -6328,7 +6328,7 @@ Adds the components of two 3D integer vectors `a` and `b` and stores the result
| b | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_sum(OUT Vec3i dest, Vec3i a, Vec3i b);`
@@ -6352,7 +6352,7 @@ Subtracts the components of the 3D integer vector `a` from `dest`
| a | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_sub(OUT Vec3i dest, Vec3i a);`
@@ -6377,7 +6377,7 @@ Subtracts the components of the 3D integer vector `b` from the components of `a`
| b | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_dif(OUT Vec3i dest, Vec3i a, Vec3i b);`
@@ -6401,7 +6401,7 @@ Multiplies each component of the 3D integer vector `dest` by the scalar value `a
| a | `number` |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_mul(OUT Vec3i dest, f32 a);`
@@ -6425,7 +6425,7 @@ Multiplies the components of the 3D integer vector `dest` with the components of
| a | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_mult(OUT Vec3i dest, Vec3i a);`
@@ -6450,7 +6450,7 @@ Multiplies the components of two 3D integer vectors `a` and `b` and stores the r
| b | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_prod(OUT Vec3i dest, Vec3i a, Vec3i b);`
@@ -6474,7 +6474,7 @@ Divides each component of the 3D integer vector `dest` by the scalar value `a`
| a | `number` |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_div(OUT Vec3i dest, f32 a);`
@@ -6520,7 +6520,7 @@ Normalizes the 3D integer vector `v` so that its length (magnitude) becomes 1, w
| v | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_normalize(OUT Vec3i v);`
@@ -6544,7 +6544,7 @@ Sets the length (magnitude) of 3D integer vector `v`, while retaining its direct
| mag | `number` |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_set_magnitude(OUT Vec3i v, f32 mag);`
@@ -6593,7 +6593,7 @@ Computes the cross product of two 3D integer vectors `a` and `b` and stores the
| b | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_cross(OUT Vec3i dest, Vec3i a, Vec3i b);`
@@ -6620,7 +6620,7 @@ Takes two 3D integer vectors `vecA` and `vecB`, multiplies them by `sclA` and `s
| sclB | `number` |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3i_combine(OUT Vec3i dest, Vec3i vecA, Vec3i vecB, f32 sclA, f32 sclB);`
@@ -6715,7 +6715,7 @@ Converts a 3D integer vector `a` into a 3D floating-point vector and stores the
| a | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3i_to_vec3f(OUT Vec3f dest, Vec3i a);`
@@ -6739,7 +6739,7 @@ Converts a 3D integer vector `a` into a 3D short integer vector and stores the r
| a | [Vec3i](structs.md#Vec3i) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3i_to_vec3s(OUT Vec3s dest, Vec3i a);`
diff --git a/docs/lua/functions-5.md b/docs/lua/functions-5.md
index 21ef90e6f..82eb9ced9 100644
--- a/docs/lua/functions-5.md
+++ b/docs/lua/functions-5.md
@@ -25,7 +25,7 @@ Sets the components of the 3D short integer vector `v` to 0
| v | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_zero(OUT Vec3s v);`
@@ -49,7 +49,7 @@ Copies the contents of a 3D short integer vector (`src`) into another 3D short i
| src | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_copy(OUT Vec3s dest, Vec3s src);`
@@ -75,7 +75,7 @@ Sets the values of the 3D short integer vector `dest` to the given x, y, and z v
| z | `integer` |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_set(OUT Vec3s dest, s16 x, s16 y, s16 z);`
@@ -99,7 +99,7 @@ Adds the components of the 3D short integer vector `a` to `dest`
| a | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_add(OUT Vec3s dest, Vec3s a);`
@@ -124,7 +124,7 @@ Adds the components of two 3D short integer vectors `a` and `b` and stores the r
| b | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_sum(OUT Vec3s dest, Vec3s a, Vec3s b);`
@@ -148,7 +148,7 @@ Subtracts the components of the 3D short integer vector `a` from `dest`
| a | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_sub(OUT Vec3s dest, Vec3s a);`
@@ -173,7 +173,7 @@ Subtracts the components of the 3D short integer vector `b` from the components
| b | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_dif(OUT Vec3s dest, Vec3s a, Vec3s b);`
@@ -197,7 +197,7 @@ Multiplies each component of the 3D short integer vector `dest` by the scalar va
| a | `number` |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_mul(OUT Vec3s dest, f32 a);`
@@ -221,7 +221,7 @@ Multiplies the components of the 3D short integer vector `dest` with the compone
| a | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_mult(OUT Vec3s dest, Vec3s a);`
@@ -246,7 +246,7 @@ Multiplies the components of two 3D short integer vectors `a` and `b` and stores
| b | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_prod(OUT Vec3s dest, Vec3s a, Vec3s b);`
@@ -270,7 +270,7 @@ Divides each component of the 3D short integer vector `dest` by the scalar value
| a | `number` |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_div(OUT Vec3s dest, f32 a);`
@@ -316,7 +316,7 @@ Normalizes the 3D short integer vector `v` so that its length (magnitude) become
| v | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_normalize(OUT Vec3s v);`
@@ -340,7 +340,7 @@ Sets the length (magnitude) of 3D short integer vector `v`, while retaining its
| mag | `number` |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_set_magnitude(OUT Vec3s v, f32 mag);`
@@ -389,7 +389,7 @@ Computes the cross product of two 3D short integer vectors `a` and `b` and store
| b | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_cross(OUT Vec3s dest, Vec3s a, Vec3s b);`
@@ -416,7 +416,7 @@ Takes two 3D short integer vectors `vecA` and `vecB`, multiplies them by `sclA`
| sclB | `number` |
### Returns
-[Vec3s](structs.md#Vec3s)
+- [Vec3s](structs.md#Vec3s)
### C Prototype
`Vec3sp vec3s_combine(OUT Vec3s dest, Vec3s vecA, Vec3s vecB, f32 sclA, f32 sclB);`
@@ -511,7 +511,7 @@ Converts a 3D short integer vector `a` into a 3D floating-point vector and store
| a | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3f](structs.md#Vec3f)
+- [Vec3f](structs.md#Vec3f)
### C Prototype
`Vec3fp vec3s_to_vec3f(OUT Vec3f dest, Vec3s a);`
@@ -535,7 +535,7 @@ Converts a 3D short integer vector `a` into a 3D integer vector and stores the r
| a | [Vec3s](structs.md#Vec3s) |
### Returns
-[Vec3i](structs.md#Vec3i)
+- [Vec3i](structs.md#Vec3i)
### C Prototype
`Vec3ip vec3s_to_vec3i(OUT Vec3i dest, Vec3s a);`
@@ -828,7 +828,7 @@ Gets the modfs object at path `modPath` or the active mod one if not provided. T
| modPath | `string` |
### Returns
-[ModFs](structs.md#ModFs)
+- [ModFs](structs.md#ModFs)
### C Prototype
`struct ModFs *mod_fs_get(OPTIONAL const char *modPath);`
@@ -851,7 +851,7 @@ Reloads the modfs object at path `modPath`. This function will return nil for a
| modPath | `string` |
### Returns
-[ModFs](structs.md#ModFs)
+- [ModFs](structs.md#ModFs)
### C Prototype
`struct ModFs *mod_fs_reload(OPTIONAL const char *modPath);`
@@ -872,7 +872,7 @@ Creates a modfs object for the active mod if it doesn't exist. Returns the modfs
- None
### Returns
-[ModFs](structs.md#ModFs)
+- [ModFs](structs.md#ModFs)
### C Prototype
`struct ModFs *mod_fs_create();`
@@ -920,7 +920,7 @@ Gets the file object at path `filepath` of the provided `modFs`. This function w
| filepath | `string` |
### Returns
-[ModFsFile](structs.md#ModFsFile)
+- [ModFsFile](structs.md#ModFsFile)
### C Prototype
`struct ModFsFile *mod_fs_get_file(struct ModFs *modFs, const char *filepath);`
@@ -945,7 +945,7 @@ Creates a new file at path `filepath` for the provided `modFs`. Set `text` to tr
| text | `boolean` |
### Returns
-[ModFsFile](structs.md#ModFsFile)
+- [ModFsFile](structs.md#ModFsFile)
### C Prototype
`struct ModFsFile *mod_fs_create_file(struct ModFs *modFs, const char *filepath, bool text);`
@@ -1950,7 +1950,7 @@ Gets a network player from `globalIndex`
| globalIndex | `integer` |
### Returns
-[NetworkPlayer](structs.md#NetworkPlayer)
+- [NetworkPlayer](structs.md#NetworkPlayer)
### C Prototype
`struct NetworkPlayer* network_player_from_global_index(u8 globalIndex);`
@@ -1975,7 +1975,7 @@ Gets the first network player whose information matches `courseNum`, `actNum`, a
| levelNum | `integer` |
### Returns
-[NetworkPlayer](structs.md#NetworkPlayer)
+- [NetworkPlayer](structs.md#NetworkPlayer)
### C Prototype
`struct NetworkPlayer* get_network_player_from_level(s16 courseNum, s16 actNum, s16 levelNum);`
@@ -2001,7 +2001,7 @@ Gets the first network player whose information matches `courseNum`, `actNum`, `
| areaIndex | `integer` |
### Returns
-[NetworkPlayer](structs.md#NetworkPlayer)
+- [NetworkPlayer](structs.md#NetworkPlayer)
### C Prototype
`struct NetworkPlayer* get_network_player_from_area(s16 courseNum, s16 actNum, s16 levelNum, s16 areaIndex);`
@@ -2022,7 +2022,7 @@ Gets the active network player with the smallest global index. Useful for assign
- None
### Returns
-[NetworkPlayer](structs.md#NetworkPlayer)
+- [NetworkPlayer](structs.md#NetworkPlayer)
### C Prototype
`struct NetworkPlayer* get_network_player_smallest_global(void);`
@@ -2712,7 +2712,7 @@ Gets the nearest active Mario who isn't bubbled to `obj`
| obj | [Object](structs.md#Object) |
### Returns
-[MarioState](structs.md#MarioState)
+- [MarioState](structs.md#MarioState)
### C Prototype
`struct MarioState* nearest_mario_state_to_object(struct Object *obj);`
@@ -2735,7 +2735,7 @@ Gets the nearest possible Mario to `obj` despite anything like bubbled state or
| obj | [Object](structs.md#Object) |
### Returns
-[MarioState](structs.md#MarioState)
+- [MarioState](structs.md#MarioState)
### C Prototype
`struct MarioState* nearest_possible_mario_state_to_object(struct Object *obj);`
@@ -2758,7 +2758,7 @@ Gets the nearest player (Mario Object) to `obj`
| obj | [Object](structs.md#Object) |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object* nearest_player_to_object(struct Object *obj);`
@@ -2781,7 +2781,7 @@ Gets the nearest interacting Mario to `obj`
| obj | [Object](structs.md#Object) |
### Returns
-[MarioState](structs.md#MarioState)
+- [MarioState](structs.md#MarioState)
### C Prototype
`struct MarioState *nearest_interacting_mario_state_to_object(struct Object *obj);`
@@ -2804,7 +2804,7 @@ Gets the nearest interacting player (Mario Object) to `obj`
| obj | [Object](structs.md#Object) |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *nearest_interacting_player_to_object(struct Object *obj);`
@@ -4230,7 +4230,7 @@ Moves the current object for specifically one second (`oTimer` < 30)
| movePitch | `integer` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object* obj_spit_fire(s16 relativePosX, s16 relativePosY, s16 relativePosZ, f32 scale, s32 model, f32 startSpeed, f32 endSpeed, s16 movePitch);`
diff --git a/docs/lua/functions-6.md b/docs/lua/functions-6.md
index 4a9c4010f..c54d779d1 100644
--- a/docs/lua/functions-6.md
+++ b/docs/lua/functions-6.md
@@ -597,7 +597,7 @@ Overrides the current room Mario is in. Set to -1 to reset override
| params | [WaterDropletParams](structs.md#WaterDropletParams) |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *spawn_water_droplet(struct Object *parent, struct WaterDropletParams *params);`
@@ -1251,7 +1251,7 @@ Multiplies a vector by the transpose of a matrix of the form: `| ? ? ? 0 |` `| ?
| behavior | `Pointer` <`BehaviorScript`> |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *cur_obj_nearest_object_with_behavior(const BehaviorScript *behavior);`
@@ -1289,7 +1289,7 @@ Multiplies a vector by the transpose of a matrix of the form: `| ? ? ? 0 |` `| ?
- None
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object* cur_obj_find_nearest_pole(void);`
@@ -1310,7 +1310,7 @@ Multiplies a vector by the transpose of a matrix of the form: `| ? ? ? 0 |` `| ?
| dist | `Pointer` <`number`> |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *cur_obj_find_nearest_object_with_behavior(const BehaviorScript *behavior, f32 *dist);`
@@ -1349,7 +1349,7 @@ Multiplies a vector by the transpose of a matrix of the form: `| ? ? ? 0 |` `| ?
- None
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *find_unimportant_object(void);`
@@ -1407,7 +1407,7 @@ Multiplies a vector by the transpose of a matrix of the form: `| ? ? ? 0 |` `| ?
| behavior | `Pointer` <`BehaviorScript`> |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *find_object_with_behavior(const BehaviorScript *behavior);`
@@ -1428,7 +1428,7 @@ Multiplies a vector by the transpose of a matrix of the form: `| ? ? ? 0 |` `| ?
| maxDist | `number` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *cur_obj_find_nearby_held_actor(const BehaviorScript *behavior, f32 maxDist);`
@@ -1937,7 +1937,7 @@ Marks an object to be unloaded at the end of the frame
- None
### Returns
-[Surface](structs.md#Surface)
+- [Surface](structs.md#Surface)
### C Prototype
`struct Surface *cur_obj_update_floor_height_and_get_floor(void);`
@@ -3739,7 +3739,7 @@ Transforms the vector at `localTranslateIndex` into the object's local coordinat
| sp24 | `integer` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *spawn_star_with_no_lvl_exit(s32 sp20, s32 sp24);`
@@ -5502,7 +5502,7 @@ Gets a vanilla mario Animation with `index`
| index | `integer` |
### Returns
-[Animation](structs.md#Animation)
+- [Animation](structs.md#Animation)
### C Prototype
`struct Animation *get_mario_vanilla_animation(u16 index);`
@@ -5625,7 +5625,7 @@ Loads an `audio` stream by `filename` (with extension)
| filename | `string` |
### Returns
-[ModAudio](structs.md#ModAudio)
+- [ModAudio](structs.md#ModAudio)
### C Prototype
`struct ModAudio* audio_stream_load(const char* filename);`
@@ -5955,7 +5955,7 @@ Loads an `audio` sample
| filename | `string` |
### Returns
-[ModAudio](structs.md#ModAudio)
+- [ModAudio](structs.md#ModAudio)
### C Prototype
`struct ModAudio* audio_sample_load(const char* filename);`
@@ -6451,7 +6451,7 @@ Gets the current romhack camera override status
- None
### Returns
-[enum RomhackCameraOverride](constants.md#enum-RomhackCameraOverride)
+- [enum RomhackCameraOverride](constants.md#enum-RomhackCameraOverride)
### C Prototype
`enum RomhackCameraOverride camera_get_romhack_override(void);`
@@ -7182,7 +7182,7 @@ Finds a potential floor at the given `x`, `y`, and `z` values
| z | `number` |
### Returns
-[Surface](structs.md#Surface)
+- [Surface](structs.md#Surface)
### C Prototype
`struct Surface* collision_find_floor(f32 x, f32 y, f32 z);`
@@ -7207,7 +7207,7 @@ Finds a potential ceiling at the given `x`, `y`, and `z` values
| z | `number` |
### Returns
-[Surface](structs.md#Surface)
+- [Surface](structs.md#Surface)
### C Prototype
`struct Surface* collision_find_ceil(f32 x, f32 y, f32 z);`
@@ -7228,7 +7228,7 @@ Gets the generated water floor surface used when riding a shell
- None
### Returns
-[Surface](structs.md#Surface)
+- [Surface](structs.md#Surface)
### C Prototype
`struct Surface* get_water_surface_pseudo_floor(void);`
@@ -7272,7 +7272,7 @@ Returns a temporary wall collision data pointer
- None
### Returns
-[WallCollisionData](structs.md#WallCollisionData)
+- [WallCollisionData](structs.md#WallCollisionData)
### C Prototype
`struct WallCollisionData* collision_get_temp_wall_collision_data(void);`
@@ -7296,7 +7296,7 @@ Gets the surface corresponding to `index` from `wcd`
| index | `integer` |
### Returns
-[Surface](structs.md#Surface)
+- [Surface](structs.md#Surface)
### C Prototype
`struct Surface* get_surface_from_wcd_index(struct WallCollisionData* wcd, s8 index);`
diff --git a/docs/lua/functions-7.md b/docs/lua/functions-7.md
index 3a762659f..dbeceafb1 100644
--- a/docs/lua/functions-7.md
+++ b/docs/lua/functions-7.md
@@ -48,7 +48,7 @@ Gets information on a custom level from `levelNum`
| levelNum | `integer` |
### Returns
-[CustomLevelInfo](structs.md#CustomLevelInfo)
+- [CustomLevelInfo](structs.md#CustomLevelInfo)
### C Prototype
`struct CustomLevelInfo* smlua_level_util_get_info(s16 levelNum);`
@@ -71,7 +71,7 @@ Gets information on a custom level from `shortName`
| shortName | `string` |
### Returns
-[CustomLevelInfo](structs.md#CustomLevelInfo)
+- [CustomLevelInfo](structs.md#CustomLevelInfo)
### C Prototype
`struct CustomLevelInfo* smlua_level_util_get_info_from_short_name(const char* shortName);`
@@ -94,7 +94,7 @@ Gets information on a custom level from `courseNum`
| courseNum | `integer` |
### Returns
-[CustomLevelInfo](structs.md#CustomLevelInfo)
+- [CustomLevelInfo](structs.md#CustomLevelInfo)
### C Prototype
`struct CustomLevelInfo* smlua_level_util_get_info_from_course_num(u8 courseNum);`
@@ -574,7 +574,7 @@ Gets the DJUI menu font
- None
### Returns
-[enum DjuiFontType](constants.md#enum-DjuiFontType)
+- [enum DjuiFontType](constants.md#enum-DjuiFontType)
### C Prototype
`enum DjuiFontType djui_menu_get_font(void);`
@@ -595,7 +595,7 @@ Gets the DJUI menu theme
- None
### Returns
-[DjuiTheme](structs.md#DjuiTheme)
+- [DjuiTheme](structs.md#DjuiTheme)
### C Prototype
`struct DjuiTheme* djui_menu_get_theme(void);`
@@ -1655,7 +1655,7 @@ Gets the system clock's date and time
- None
### Returns
-[DateTime](structs.md#DateTime)
+- [DateTime](structs.md#DateTime)
### C Prototype
`struct DateTime* get_date_and_time(void);`
@@ -2052,7 +2052,7 @@ Gets the mod currently being processed
- None
### Returns
-[Mod](structs.md#Mod)
+- [Mod](structs.md#Mod)
### C Prototype
`struct Mod* get_active_mod(void);`
@@ -2138,7 +2138,7 @@ Gets the current GraphNodeRoot
- None
### Returns
-[GraphNodeRoot](structs.md#GraphNodeRoot)
+- [GraphNodeRoot](structs.md#GraphNodeRoot)
### C Prototype
`struct GraphNodeRoot* geo_get_current_root(void);`
@@ -2159,7 +2159,7 @@ Gets the current GraphNodeMasterList
- None
### Returns
-[GraphNodeMasterList](structs.md#GraphNodeMasterList)
+- [GraphNodeMasterList](structs.md#GraphNodeMasterList)
### C Prototype
`struct GraphNodeMasterList* geo_get_current_master_list(void);`
@@ -2180,7 +2180,7 @@ Gets the current GraphNodePerspective
- None
### Returns
-[GraphNodePerspective](structs.md#GraphNodePerspective)
+- [GraphNodePerspective](structs.md#GraphNodePerspective)
### C Prototype
`struct GraphNodePerspective* geo_get_current_perspective(void);`
@@ -2201,7 +2201,7 @@ Gets the current GraphNodeCamera
- None
### Returns
-[GraphNodeCamera](structs.md#GraphNodeCamera)
+- [GraphNodeCamera](structs.md#GraphNodeCamera)
### C Prototype
`struct GraphNodeCamera* geo_get_current_camera(void);`
@@ -2222,7 +2222,7 @@ Gets the current GraphNodeHeldObject
- None
### Returns
-[GraphNodeHeldObject](structs.md#GraphNodeHeldObject)
+- [GraphNodeHeldObject](structs.md#GraphNodeHeldObject)
### C Prototype
`struct GraphNodeHeldObject* geo_get_current_held_object(void);`
@@ -2297,7 +2297,7 @@ Gets the extended model ID for the `name` of a `GeoLayout`
| name | `string` |
### Returns
-[enum ModelExtendedId](constants.md#enum-ModelExtendedId)
+- [enum ModelExtendedId](constants.md#enum-ModelExtendedId)
### C Prototype
`enum ModelExtendedId smlua_model_util_get_id(const char* name);`
@@ -2331,7 +2331,7 @@ Spawns a synchronized object at `x`, `y`, and `z` as a child object of the local
| objSetupFunction | `Lua Function` () |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object* spawn_sync_object(enum BehaviorId behaviorId, enum ModelExtendedId modelId, f32 x, f32 y, f32 z, LuaFunction objSetupFunction);`
@@ -2359,7 +2359,7 @@ Spawns a non-synchronized object at `x`, `y`, and `z` as a child object of the l
| objSetupFunction | `Lua Function` () |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object* spawn_non_sync_object(enum BehaviorId behaviorId, enum ModelExtendedId modelId, f32 x, f32 y, f32 z, LuaFunction objSetupFunction);`
@@ -2430,7 +2430,7 @@ Returns an object's extended model id
| o | [Object](structs.md#Object) |
### Returns
-[enum ModelExtendedId](constants.md#enum-ModelExtendedId)
+- [enum ModelExtendedId](constants.md#enum-ModelExtendedId)
### C Prototype
`enum ModelExtendedId obj_get_model_id_extended(struct Object *o);`
@@ -2498,7 +2498,7 @@ When used in a geo function, retrieve the current processed object
- None
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *geo_get_current_object(void);`
@@ -2519,7 +2519,7 @@ Gets the object currently being processed
- None
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *get_current_object(void);`
@@ -2540,7 +2540,7 @@ Gets the NPC object Mario is talking to
- None
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *get_dialog_object(void);`
@@ -2561,7 +2561,7 @@ Gets the cutscene focus object
- None
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *get_cutscene_focus(void);`
@@ -2582,7 +2582,7 @@ Gets the secondary camera focus object
- None
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *get_secondary_camera_focus(void);`
@@ -2651,7 +2651,7 @@ Gets the first object in an object list
| objList | [enum ObjectList](constants.md#enum-ObjectList) |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_first(enum ObjectList objList);`
@@ -2674,7 +2674,7 @@ Gets the first object loaded with `behaviorId`
| behaviorId | [enum BehaviorId](constants.md#enum-BehaviorId) |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_first_with_behavior_id(enum BehaviorId behaviorId);`
@@ -2699,7 +2699,7 @@ Gets the first object loaded with `behaviorId` and object signed 32-bit integer
| value | `integer` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_first_with_behavior_id_and_field_s32(enum BehaviorId behaviorId, s32 fieldIndex, s32 value);`
@@ -2724,7 +2724,7 @@ Gets the first object loaded with `behaviorId` and object float field (look in `
| value | `number` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_first_with_behavior_id_and_field_f32(enum BehaviorId behaviorId, s32 fieldIndex, f32 value);`
@@ -2747,7 +2747,7 @@ Gets the next object in an object list
| o | [Object](structs.md#Object) |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_next(struct Object *o);`
@@ -2770,7 +2770,7 @@ Gets the next object loaded with the same behavior ID
| o | [Object](structs.md#Object) |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_next_with_same_behavior_id(struct Object *o);`
@@ -2795,7 +2795,7 @@ Gets the next object loaded with the same behavior ID and object signed 32-bit i
| value | `integer` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_next_with_same_behavior_id_and_field_s32(struct Object *o, s32 fieldIndex, s32 value);`
@@ -2820,7 +2820,7 @@ Gets the next object loaded with the same behavior ID and object float field (lo
| value | `number` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_next_with_same_behavior_id_and_field_f32(struct Object *o, s32 fieldIndex, f32 value);`
@@ -2844,7 +2844,7 @@ Gets the nearest object with `behaviorId` to `o`
| behaviorId | [enum BehaviorId](constants.md#enum-BehaviorId) |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_nearest_object_with_behavior_id(struct Object *o, enum BehaviorId behaviorId);`
@@ -2891,7 +2891,7 @@ Gets the corresponding collided object to an index from `o`
| index | `integer` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_collided_object(struct Object *o, s16 index);`
@@ -3112,7 +3112,7 @@ Returns a temporary particle spawn info pointer with its model loaded in from `m
| modelId | [enum ModelExtendedId](constants.md#enum-ModelExtendedId) |
### Returns
-[SpawnParticlesInfo](structs.md#SpawnParticlesInfo)
+- [SpawnParticlesInfo](structs.md#SpawnParticlesInfo)
### C Prototype
`struct SpawnParticlesInfo* obj_get_temp_spawn_particles_info(enum ModelExtendedId modelId);`
@@ -3136,7 +3136,7 @@ Returns a temporary water droplet params pointer with its model and behavior loa
| behaviorId | [enum BehaviorId](constants.md#enum-BehaviorId) |
### Returns
-[WaterDropletParams](structs.md#WaterDropletParams)
+- [WaterDropletParams](structs.md#WaterDropletParams)
### C Prototype
`struct WaterDropletParams* obj_get_temp_water_droplet_params(enum ModelExtendedId modelId, enum BehaviorId behaviorId);`
@@ -3157,7 +3157,7 @@ Returns a temporary object hitbox pointer
- None
### Returns
-[ObjectHitbox](structs.md#ObjectHitbox)
+- [ObjectHitbox](structs.md#ObjectHitbox)
### C Prototype
`struct ObjectHitbox* get_temp_object_hitbox(void);`
@@ -3547,7 +3547,7 @@ Gets the DialogEntry struct for the given `dialogId`
| dialogId | [enum DialogId](constants.md#enum-DialogId) |
### Returns
-[DialogEntry](structs.md#DialogEntry)
+- [DialogEntry](structs.md#DialogEntry)
### C Prototype
`struct DialogEntry* smlua_text_utils_dialog_get(enum DialogId dialogId);`
@@ -4813,7 +4813,7 @@ Loads the object's collision data into static collision. You may run this only o
- None
### Returns
-[StaticObjectCollision](structs.md#StaticObjectCollision)
+- [StaticObjectCollision](structs.md#StaticObjectCollision)
### C Prototype
`struct StaticObjectCollision *load_static_object_collision();`
@@ -4861,7 +4861,7 @@ Gets a surface corresponding to `index` from the static object collision
| index | `integer` |
### Returns
-[Surface](structs.md#Surface)
+- [Surface](structs.md#Surface)
### C Prototype
`struct Surface *get_static_object_surface(struct StaticObjectCollision *col, u32 index);`
@@ -4885,7 +4885,7 @@ Gets a surface corresponding to `index` from the surface pool buffer
| index | `integer` |
### Returns
-[Surface](structs.md#Surface)
+- [Surface](structs.md#Surface)
### C Prototype
`struct Surface *obj_get_surface_from_index(struct Object *o, u32 index);`
@@ -4937,7 +4937,7 @@ Retrieves an object from a sync ID
| syncId | `integer` |
### Returns
-[Object](structs.md#Object)
+- [Object](structs.md#Object)
### C Prototype
`struct Object* sync_object_get_object(u32 syncId);`
diff --git a/docs/lua/functions-8.md b/docs/lua/functions-8.md
new file mode 100644
index 000000000..20ee85bee
--- /dev/null
+++ b/docs/lua/functions-8.md
@@ -0,0 +1,620 @@
+## [:rewind: Lua Functions](functions.md)
+
+---
+
+[< prev](functions-7.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-7.md) | 8]
+
+
+---
+# functions from spawn_sound.h
+
+
+
+
+## [cur_obj_play_sound_1](#cur_obj_play_sound_1)
+
+### Description
+Plays a sound if the current object is visible
+
+### Lua Example
+`local . at 0x000001e039c74f20> = cur_obj_play_sound_1(soundMagic)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| soundMagic | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void cur_obj_play_sound_1(s32 soundMagic);`
+
+[:arrow_up_small:](#)
+
+
+
+## [cur_obj_play_sound_2](#cur_obj_play_sound_2)
+
+### Description
+Plays a sound if the current object is visible and queues rumble for specific sounds
+
+### Lua Example
+`local . at 0x000001e039c75000> = cur_obj_play_sound_2(soundMagic)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| soundMagic | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void cur_obj_play_sound_2(s32 soundMagic);`
+
+[:arrow_up_small:](#)
+
+
+
+## [create_sound_spawner](#create_sound_spawner)
+
+### Description
+Create a sound spawner for objects that need a sound play once. (Breakable walls, King Bobomb exploding, etc)
+
+### Lua Example
+`local . at 0x000001e039c74f20> = create_sound_spawner(soundMagic)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| soundMagic | `integer` |
+
+### Returns
+- None
+
+### C Prototype
+`void create_sound_spawner(s32 soundMagic);`
+
+[:arrow_up_small:](#)
+
+
+
+## [calc_dist_to_volume_range_1](#calc_dist_to_volume_range_1)
+
+### Description
+Unused vanilla function, calculates a volume based on `distance`. If `distance` is less than 500 then 127, if `distance` is greater than 1500 then 0, if `distance` is between 500 and 1500 then it ranges linearly from 60 to 124. What an even more strange and confusing function
+
+### Lua Example
+`local . at 0x000001e039c74f20> = calc_dist_to_volume_range_1(distance)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| distance | `number` |
+
+### Returns
+- `integer`
+
+### C Prototype
+`s32 calc_dist_to_volume_range_1(f32 distance);`
+
+[:arrow_up_small:](#)
+
+
+
+## [calc_dist_to_volume_range_2](#calc_dist_to_volume_range_2)
+
+### Description
+Unused vanilla function, calculates a volume based on `distance`. If `distance` is less than 1300 then 127, if `distance` is greater than 2300 then 0, if `distance` is between 1300 and 2300 then it ranges linearly from 60 to 127. What a strange and confusing function
+
+### Lua Example
+`local . at 0x000001e039c74f20> = calc_dist_to_volume_range_2(distance)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| distance | `number` |
+
+### Returns
+- `integer`
+
+### C Prototype
+`s32 calc_dist_to_volume_range_2(f32 distance);`
+
+[:arrow_up_small:](#)
+
+
+
+---
+# functions from surface_collision.h
+
+
+
+
+## [find_wall_collisions](#find_wall_collisions)
+
+### Description
+Detects wall collisions at a given position and adjusts the position based on the walls found. Returns the number of wall collisions detected
+
+### Lua Example
+`local . at 0x000001e039c74f20> = find_wall_collisions(colData)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| colData | [WallCollisionData](structs.md#WallCollisionData) |
+
+### Returns
+- `integer`
+
+### C Prototype
+`s32 find_wall_collisions(struct WallCollisionData *colData);`
+
+[:arrow_up_small:](#)
+
+
+
+## [find_ceil](#find_ceil)
+
+### Lua Example
+`local . at 0x000001e039c74f20> = find_ceil(posX, posY, posZ, pceil)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| posX | `number` |
+| posY | `number` |
+| posZ | `number` |
+| pceil | [Surface](structs.md#Surface) |
+
+### Returns
+- `number`
+
+### C Prototype
+`f32 find_ceil(f32 posX, f32 posY, f32 posZ, struct Surface **pceil);`
+
+[:arrow_up_small:](#)
+
+
+
+## [find_ceil_height](#find_ceil_height)
+
+### Description
+Finds the height of the highest ceiling above a given position (x, y, z). If no ceiling is found, returns the default height limit of `gLevelValues.cellHeightLimit`(20000 by default)
+
+### Lua Example
+`local . at 0x000001e039c74f20> = find_ceil_height(x, y, z)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| x | `number` |
+| y | `number` |
+| z | `number` |
+
+### Returns
+- `number`
+
+### C Prototype
+`f32 find_ceil_height(f32 x, f32 y, f32 z);`
+
+[:arrow_up_small:](#)
+
+
+
+## [find_floor_height_and_data](#find_floor_height_and_data)
+
+### Lua Example
+`local . at 0x000001e039c74f20> = find_floor_height_and_data(xPos, yPos, zPos, floorGeo)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| xPos | `number` |
+| yPos | `number` |
+| zPos | `number` |
+| floorGeo | [FloorGeometry](structs.md#FloorGeometry) |
+
+### Returns
+- `number`
+
+### C Prototype
+`f32 find_floor_height_and_data(f32 xPos, f32 yPos, f32 zPos, struct FloorGeometry **floorGeo);`
+
+[:arrow_up_small:](#)
+
+
+
+## [find_floor_height](#find_floor_height)
+
+### Description
+Finds the height of the highest floor below a given position (x, y, z). If no floor is found, returns the default floor height of `gLevelValues.floorLowerLimit`(-11000 by default)
+
+### Lua Example
+`local . at 0x000001e039c74f20> = find_floor_height(x, y, z)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| x | `number` |
+| y | `number` |
+| z | `number` |
+
+### Returns
+- `number`
+
+### C Prototype
+`f32 find_floor_height(f32 x, f32 y, f32 z);`
+
+[:arrow_up_small:](#)
+
+
+
+## [find_floor](#find_floor)
+
+### Lua Example
+`local . at 0x000001e039c74f20> = find_floor(xPos, yPos, zPos, pfloor)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| xPos | `number` |
+| yPos | `number` |
+| zPos | `number` |
+| pfloor | [Surface](structs.md#Surface) |
+
+### Returns
+- `number`
+
+### C Prototype
+`f32 find_floor(f32 xPos, f32 yPos, f32 zPos, struct Surface **pfloor);`
+
+[:arrow_up_small:](#)
+
+
+
+## [find_water_level](#find_water_level)
+
+### Description
+Finds the height of water at a given position (x, z), if the position is within a water region. If no water is found, returns the default height of `gLevelValues.floorLowerLimit`(-11000 by default)
+
+### Lua Example
+`local . at 0x000001e039c74f20> = find_water_level(x, z)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| x | `number` |
+| z | `number` |
+
+### Returns
+- `number`
+
+### C Prototype
+`f32 find_water_level(f32 x, f32 z);`
+
+[:arrow_up_small:](#)
+
+
+
+## [find_poison_gas_level](#find_poison_gas_level)
+
+### Description
+Finds the height of the poison gas at a given position (x, z), if the position is within a gas region. If no gas is found, returns the default height of `gLevelValues.floorLowerLimit`(-11000 by default)
+
+### Lua Example
+`local . at 0x000001e039c74f20> = find_poison_gas_level(x, z)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| x | `number` |
+| z | `number` |
+
+### Returns
+- `number`
+
+### C Prototype
+`f32 find_poison_gas_level(f32 x, f32 z);`
+
+[:arrow_up_small:](#)
+
+
+
+## [find_surface_on_ray](#find_surface_on_ray)
+
+### Lua Example
+`local . at 0x000001e039c74f20> = find_surface_on_ray(orig, dir, hit_surface, hit_pos, precision)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| orig | [Vec3f](structs.md#Vec3f) |
+| dir | [Vec3f](structs.md#Vec3f) |
+| hit_surface | [Surface](structs.md#Surface) |
+| hit_pos | [Vec3f](structs.md#Vec3f) |
+| precision | `number` |
+
+### Returns
+- None
+
+### C Prototype
+`void find_surface_on_ray(Vec3f orig, Vec3f dir, struct Surface **hit_surface, Vec3f hit_pos, f32 precision);`
+
+[:arrow_up_small:](#)
+
+
+
+## [set_find_wall_direction](#set_find_wall_direction)
+
+### Description
+Sets whether collision finding functions should check wall directions.
+
+### Lua Example
+`local . at 0x000001e039c74f20> = set_find_wall_direction(dir, active, airborne)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| dir | [Vec3f](structs.md#Vec3f) |
+| active | `boolean` |
+| airborne | `boolean` |
+
+### Returns
+- None
+
+### C Prototype
+`void set_find_wall_direction(Vec3f dir, bool active, bool airborne);`
+
+[:arrow_up_small:](#)
+
+
+
+## [closest_point_to_triangle](#closest_point_to_triangle)
+
+### Description
+Gets the closest point of the triangle to `src` and returns it in `out`.
+
+### Lua Example
+`local . at 0x000001e039c74f20> = closest_point_to_triangle(surf, src, out)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| surf | [Surface](structs.md#Surface) |
+| src | [Vec3f](structs.md#Vec3f) |
+| out | [Vec3f](structs.md#Vec3f) |
+
+### Returns
+- None
+
+### C Prototype
+`void closest_point_to_triangle(struct Surface* surf, Vec3f src, OUT Vec3f out);`
+
+[:arrow_up_small:](#)
+
+
+
+---
+# functions from surface_load.h
+
+
+
+
+## [load_object_collision_model](#load_object_collision_model)
+
+### Description
+Loads the object's collision data into dynamic collision. You must run this every frame in your object's behavior loop for it to have collision
+
+### Lua Example
+`local . at 0x000001e039c74f20> = load_object_collision_model()`
+
+### Parameters
+- None
+
+### Returns
+- None
+
+### C Prototype
+`void load_object_collision_model(void);`
+
+[:arrow_up_small:](#)
+
+
+
+## [load_static_object_collision](#load_static_object_collision)
+
+### Description
+Loads the object's collision data into static collision. You may run this only once to capture the object's collision at that frame.
+
+### Lua Example
+`local . at 0x000001e039c74f20> = load_static_object_collision()`
+
+### Parameters
+- None
+
+### Returns
+- [StaticObjectCollision](structs.md#StaticObjectCollision)
+
+### C Prototype
+`struct StaticObjectCollision *load_static_object_collision();`
+
+[:arrow_up_small:](#)
+
+
+
+## [toggle_static_object_collision](#toggle_static_object_collision)
+
+### Description
+Toggles a collection of static object surfaces
+
+### Lua Example
+`local . at 0x000001e039c74f20> = toggle_static_object_collision(col, tangible)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| col | [StaticObjectCollision](structs.md#StaticObjectCollision) |
+| tangible | `boolean` |
+
+### Returns
+- None
+
+### C Prototype
+`void toggle_static_object_collision(struct StaticObjectCollision *col, bool tangible);`
+
+[:arrow_up_small:](#)
+
+
+
+## [get_static_object_surface](#get_static_object_surface)
+
+### Description
+Gets a surface corresponding to `index` from the static object collision
+
+### Lua Example
+`local . at 0x000001e039c74f20> = get_static_object_surface(col, index)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| col | [StaticObjectCollision](structs.md#StaticObjectCollision) |
+| index | `integer` |
+
+### Returns
+- [Surface](structs.md#Surface)
+
+### C Prototype
+`struct Surface *get_static_object_surface(struct StaticObjectCollision *col, u32 index);`
+
+[:arrow_up_small:](#)
+
+
+
+## [obj_get_surface_from_index](#obj_get_surface_from_index)
+
+### Description
+Gets a surface corresponding to `index` from the surface pool buffer
+
+### Lua Example
+`local . at 0x000001e039c74f20> = obj_get_surface_from_index(o, index)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| o | [Object](structs.md#Object) |
+| index | `integer` |
+
+### Returns
+- [Surface](structs.md#Surface)
+
+### C Prototype
+`struct Surface *obj_get_surface_from_index(struct Object *o, u32 index);`
+
+[:arrow_up_small:](#)
+
+
+
+## [surface_has_force](#surface_has_force)
+
+### Description
+Checks if a surface has force
+
+### Lua Example
+`local . at 0x000001e039c74f20> = surface_has_force(surfaceType)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| surfaceType | `integer` |
+
+### Returns
+- `boolean`
+
+### C Prototype
+`bool surface_has_force(s16 surfaceType);`
+
+[:arrow_up_small:](#)
+
+
+
+---
+# functions from sync_object.h
+
+
+
+
+## [sync_object_get_object](#sync_object_get_object)
+
+### Description
+Retrieves an object from a sync ID
+
+### Lua Example
+`local . at 0x000001e039c74f20> = sync_object_get_object(syncId)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| syncId | `integer` |
+
+### Returns
+- [Object](structs.md#Object)
+
+### C Prototype
+`struct Object* sync_object_get_object(u32 syncId);`
+
+[:arrow_up_small:](#)
+
+
+
+## [sync_object_is_initialized](#sync_object_is_initialized)
+
+### Description
+Checks if a sync object is initialized using a `syncId`
+
+### Lua Example
+`local . at 0x000001e039c74f20> = sync_object_is_initialized(syncId)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| syncId | `integer` |
+
+### Returns
+- `boolean`
+
+### C Prototype
+`bool sync_object_is_initialized(u32 syncId);`
+
+[:arrow_up_small:](#)
+
+
+
+## [sync_object_is_owned_locally](#sync_object_is_owned_locally)
+
+### Description
+Checks if a sync object is owned locally using a `syncId`
+
+### Lua Example
+`local . at 0x000001e039c74f20> = sync_object_is_owned_locally(syncId)`
+
+### Parameters
+| Field | Type |
+| ----- | ---- |
+| syncId | `integer` |
+
+### Returns
+- `boolean`
+
+### C Prototype
+`bool sync_object_is_owned_locally(u32 syncId);`
+
+[:arrow_up_small:](#)
+
+
+
+---
+
+[< prev](functions-7.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-7.md) | 8]
+
diff --git a/docs/lua/functions.md b/docs/lua/functions.md
index 0236b2dbf..e64fc7dde 100644
--- a/docs/lua/functions.md
+++ b/docs/lua/functions.md
@@ -2747,7 +2747,7 @@ Finds a warp node in the current area by its ID. The warp node must exist in the
| id | `integer` |
### Returns
-[ObjectWarpNode](structs.md#ObjectWarpNode)
+- [ObjectWarpNode](structs.md#ObjectWarpNode)
### C Prototype
`struct ObjectWarpNode *area_get_warp_node(u8 id);`
@@ -2768,7 +2768,7 @@ Gets the first warp node found in the area, otherwise returns nil
- None
### Returns
-[ObjectWarpNode](structs.md#ObjectWarpNode)
+- [ObjectWarpNode](structs.md#ObjectWarpNode)
### C Prototype
`struct ObjectWarpNode *area_get_any_warp_node(void);`
@@ -2791,7 +2791,7 @@ Finds a warp node in the current area using parameters from the provided object.
| o | [Object](structs.md#Object) |
### Returns
-[ObjectWarpNode](structs.md#ObjectWarpNode)
+- [ObjectWarpNode](structs.md#ObjectWarpNode)
### C Prototype
`struct ObjectWarpNode *area_get_warp_node_from_params(struct Object *o);`
diff --git a/src/pc/lua/smlua_autogen.h b/src/pc/lua/smlua_autogen.h
index 5267c76e6..7b1aa4c4c 100644
--- a/src/pc/lua/smlua_autogen.h
+++ b/src/pc/lua/smlua_autogen.h
@@ -13,6 +13,10 @@
// Optional parameters must be contiguous until the last parameter (a mandatory parameter following an optional parameter is not allowed)
#define OPTIONAL
+// A macro to tell autogen this function returns more than one value
+// Fill this in with the types returned
+#define RETURNS(...) void
+
// A macro to tell autogen the field `name` is a function member of the struct that calls `c_function`
#define FUNCTION(name, c_function)