diff --git a/autogen/__pycache__/extract_structs.cpython-39.pyc b/autogen/__pycache__/extract_structs.cpython-39.pyc
new file mode 100644
index 00000000..057647f0
Binary files /dev/null and b/autogen/__pycache__/extract_structs.cpython-39.pyc differ
diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py
new file mode 100644
index 00000000..767476fd
--- /dev/null
+++ b/autogen/convert_functions.py
@@ -0,0 +1,284 @@
+import os
+import re
+
+rejects = ""
+integer_types = ["u8", "u16", "u32", "u64", "s8", "s16", "s32", "s64", "int"]
+number_types = ["f32", "float"]
+cobject_types = ["struct MarioState*", "struct Object*", "struct Surface*"]
+cobject_lot_types = ["LOT_MARIO_STATE", "LOT_OBJECT", "LOT_SURFACE"]
+param_override_build = {}
+
+###########################################################
+
+template = """/* THIS FILE IS AUTOGENERATED */
+/* SHOULD NOT BE MANUALLY CHANGED */
+
+#include "smlua.h"
+
+#include "game/level_update.h"
+#include "game/area.h"
+#include "game/mario.h"
+#include "game/mario_step.h"
+#include "game/mario_actions_stationary.h"
+#include "audio/external.h"
+#include "object_fields.h"
+#include "engine/math_util.h"
+#include "engine/surface_collision.h"
+
+$[FUNCTIONS]
+
+void smlua_bind_functions_autogen(void) {
+ lua_State* L = gLuaState;
+$[BINDS]
+}
+"""
+
+###########################################################
+
+param_vec3f_before_call = """
+ f32* $[IDENTIFIER] = smlua_get_vec3f_from_buffer();
+ $[IDENTIFIER][0] = smlua_get_number_field($[INDEX], "x");
+ if (!gSmLuaConvertSuccess) { return 0; }
+ $[IDENTIFIER][1] = smlua_get_number_field($[INDEX], "y");
+ if (!gSmLuaConvertSuccess) { return 0; }
+ $[IDENTIFIER][2] = smlua_get_number_field($[INDEX], "z");
+"""
+
+param_vec3f_after_call = """
+ smlua_push_number_field($[INDEX], "x", $[IDENTIFIER][0]);
+ smlua_push_number_field($[INDEX], "y", $[IDENTIFIER][1]);
+ smlua_push_number_field($[INDEX], "z", $[IDENTIFIER][2]);
+"""
+
+param_override_build['Vec3f'] = {
+ 'before': param_vec3f_before_call,
+ 'after': param_vec3f_after_call
+}
+
+param_vec3s_before_call = """
+ s16* $[IDENTIFIER] = smlua_get_vec3s_from_buffer();
+ $[IDENTIFIER][0] = smlua_get_integer_field($[INDEX], "x");
+ if (!gSmLuaConvertSuccess) { return 0; }
+ $[IDENTIFIER][1] = smlua_get_integer_field($[INDEX], "y");
+ if (!gSmLuaConvertSuccess) { return 0; }
+ $[IDENTIFIER][2] = smlua_get_integer_field($[INDEX], "z");
+"""
+
+param_vec3s_after_call = """
+ smlua_push_integer_field($[INDEX], "x", $[IDENTIFIER][0]);
+ smlua_push_integer_field($[INDEX], "y", $[IDENTIFIER][1]);
+ smlua_push_integer_field($[INDEX], "z", $[IDENTIFIER][2]);
+"""
+
+param_override_build['Vec3s'] = {
+ 'before': param_vec3s_before_call,
+ 'after': param_vec3s_after_call
+}
+
+###########################################################
+
+built_functions = ""
+built_binds = ""
+
+#######
+
+do_extern = False
+header_h = ""
+
+functions = []
+
+def reject_line(line):
+ if len(line) == 0:
+ return True
+ if '(' not in line:
+ return True
+ if ')' not in line:
+ return True
+ if ';' not in line:
+ return True
+
+def normalize_type(t):
+ t = t.strip()
+ if ' ' in t:
+ parts = t.split(' ', 1)
+ t = parts[0] + ' ' + parts[1].replace(' ', '')
+ return t
+
+def gen_comment_header(f):
+ comment_h = "// " + f + " //"
+ comment_l = "/" * len(comment_h)
+ s = ""
+ s += " " + comment_l + "\n"
+ s += " " + comment_h + "\n"
+ s += "" + comment_l + "\n"
+ s += "\n"
+ return s
+
+def process_line(line):
+ function = {}
+
+ line = line.strip()
+ function['line'] = line
+
+ line = line.replace('UNUSED', '')
+
+ match = re.search('[a-zA-Z0-9_]+\(', line)
+ function['type'] = normalize_type(line[0:match.span()[0]])
+ function['identifier'] = match.group()[0:-1]
+
+ function['params'] = []
+ params_str = line.split('(', 1)[1].rsplit(')', 1)[0].strip()
+ if len(params_str) == 0 or params_str == 'void':
+ pass
+ else:
+ param_index = 0
+ for param_str in params_str.split(','):
+ param = {}
+ param_str = param_str.strip()
+ if param_str.endswith('*') or ' ' not in param_str:
+ param['type'] = normalize_type(param_str)
+ param['identifier'] = 'arg%d' % param_index
+ else:
+ match = re.search('[a-zA-Z0-9_]+$', param_str)
+ param['type'] = normalize_type(param_str[0:match.span()[0]])
+ param['identifier'] = match.group()
+ function['params'].append(param)
+ param_index += 1
+
+ functions.append(function)
+
+def process_lines(file_str):
+ for line in file_str.splitlines():
+ if reject_line(line):
+ global rejects
+ rejects += line + '\n'
+ continue
+ process_line(line)
+
+def build_param(param, i):
+ ptype = param['type']
+ pid = param['identifier']
+
+ if ptype in param_override_build:
+ return param_override_build[ptype]['before'].replace('$[IDENTIFIER]', str(pid)).replace('$[INDEX]', str(i))
+ elif ptype in integer_types:
+ return ' %s %s = smlua_to_integer(L, %d);\n' % (ptype, pid, i)
+ elif ptype in number_types:
+ return ' %s %s = smlua_to_number(L, %d);\n' % (ptype, pid, i)
+ elif ptype in cobject_types:
+ index = cobject_types.index(ptype)
+ return ' %s %s = (%s)smlua_to_cobject(L, %d, %s);\n' % (ptype, pid, ptype, i, cobject_lot_types[index])
+ else:
+ return ' ' + ptype + ' ' + pid + ' <--- UNIMPLEMENTED' + '\n'
+
+def build_param_after(param, i):
+ ptype = param['type']
+ pid = param['identifier']
+
+ if ptype in param_override_build:
+ return param_override_build[ptype]['after'].replace('$[IDENTIFIER]', str(pid)).replace('$[INDEX]', str(i))
+ else:
+ return ''
+
+def build_call(function):
+ ftype = function['type']
+ fid = function['identifier']
+
+ ccall = '%s(%s)' % (fid, ', '.join([x['identifier'] for x in function['params']]))
+
+ if ftype == 'void':
+ return ' %s;\n' % ccall
+
+ lfunc = 'UNIMPLEMENTED -->'
+ if ftype in integer_types:
+ lfunc = 'lua_pushinteger'
+ elif ftype in number_types:
+ lfunc = 'lua_pushnumber'
+
+ return ' %s(L, %s);\n' % (lfunc, ccall)
+
+def build_function(function):
+ if len(function['params']) <= 0:
+ s = 'int smlua_func_%s(UNUSED lua_State* L) {\n' % function['identifier']
+ else:
+ s = 'int smlua_func_%s(lua_State* L) {\n' % function['identifier']
+
+ s += ' if(!smlua_functions_valid_param_count(L, %d)) { return 0; }\n\n' % len(function['params'])
+
+ i = 1
+ for param in function['params']:
+ s += build_param(param, i)
+ s += ' if (!gSmLuaConvertSuccess) { return 0; }\n'
+ i += 1
+ s += '\n'
+
+ global do_extern
+ if do_extern:
+ s += ' extern %s\n' % function['line']
+
+ s += build_call(function)
+
+ i = 1
+ for param in function['params']:
+ s += build_param_after(param, i)
+ i += 1
+ s += '\n'
+
+ s += ' return 1;\n}\n'
+
+ function['implemented'] = 'UNIMPLEMENTED' not in s
+ if 'UNIMPLEMENTED' in s:
+ s = "/*\n" + s + "*/\n"
+
+ global built_functions
+ built_functions += s + "\n"
+
+def build_functions():
+ for function in functions:
+ build_function(function)
+
+def build_bind(function):
+ s = 'smlua_bind_function(L, "%s", smlua_func_%s);' % (function['identifier'], function['identifier'])
+ if function['implemented']:
+ s = ' ' + s
+ else:
+ s = ' //' + s + ' <--- UNIMPLEMENTED'
+ global built_binds
+ built_binds += s + "\n"
+
+def build_binds(fname):
+ global built_binds
+ built_binds += "\n // " + fname.split('/')[-1] + "\n"
+ for function in functions:
+ build_bind(function)
+
+def process_file(fname):
+ functions.clear()
+ global do_extern
+ do_extern = fname.endswith(".c")
+ with open(fname) as file:
+ process_lines(file.read())
+ build_functions()
+ build_binds(fname)
+
+def process_files():
+ dir_path = os.path.dirname(os.path.realpath(__file__)) + '/lua_functions/'
+ files = os.listdir(dir_path)
+ for f in files:
+ comment_header = "// " + f + " //"
+ comment_line = "/" * len(comment_header)
+
+ global built_functions
+ built_functions += gen_comment_header(f)
+
+ process_file(dir_path + f)
+
+def main():
+ process_files()
+ filename = os.path.dirname(os.path.realpath(__file__)) + '/../src/pc/lua/smlua_functions_autogen.c'
+ with open(filename, 'w') as out:
+ out.write(template.replace("$[FUNCTIONS]", built_functions).replace("$[BINDS]", built_binds))
+ print('REJECTS:')
+ print(rejects)
+
+main()
diff --git a/autogen/convert_header.py b/autogen/convert_header.py
index 767476fd..82a17247 100644
--- a/autogen/convert_header.py
+++ b/autogen/convert_header.py
@@ -4,8 +4,10 @@ import re
rejects = ""
integer_types = ["u8", "u16", "u32", "u64", "s8", "s16", "s32", "s64", "int"]
number_types = ["f32", "float"]
+smlua_functions_autogen_c = 'src/pc/lua/smlua_functions_autogen.c'
+
cobject_types = ["struct MarioState*", "struct Object*", "struct Surface*"]
-cobject_lot_types = ["LOT_MARIO_STATE", "LOT_OBJECT", "LOT_SURFACE"]
+cobject_lot_types = ["LOT_MARIOSTATE", "LOT_OBJECT", "LOT_SURFACE"]
param_override_build = {}
###########################################################
@@ -275,7 +277,7 @@ def process_files():
def main():
process_files()
- filename = os.path.dirname(os.path.realpath(__file__)) + '/../src/pc/lua/smlua_functions_autogen.c'
+ filename = os.path.dirname(os.path.realpath(__file__)) + '/../' + smlua_functions_autogen_c
with open(filename, 'w') as out:
out.write(template.replace("$[FUNCTIONS]", built_functions).replace("$[BINDS]", built_binds))
print('REJECTS:')
diff --git a/autogen/convert_structs.py b/autogen/convert_structs.py
new file mode 100644
index 00000000..6a57c44a
--- /dev/null
+++ b/autogen/convert_structs.py
@@ -0,0 +1,313 @@
+import os
+import re
+import sys
+from extract_structs import *
+
+usf_types = ['u8', 'u16', 'u32', 'u64', 's8', 's16', 's32', 's64', 'f32']
+vec3_types = ['Vec3s', 'Vec3f']
+
+in_files = [
+ 'include/types.h',
+ 'src/game/area.h',
+ 'src/game/camera.h',
+ 'src/game/characters.h'
+]
+
+exclude_structs = [
+ 'SPTask',
+ 'VblankHandler',
+ 'GraphNodeRoot',
+ 'MarioAnimDmaRelatedThing',
+ 'UnusedArea28',
+]
+
+smlua_cobject_autogen = 'src/pc/lua/smlua_cobject_autogen'
+
+c_template = """$[INCLUDES]
+$[BODY]
+struct LuaObjectField* smlua_get_object_field_autogen(u16 lot, const char* key) {
+ struct LuaObjectTable* ot = &sLuaObjectAutogenTable[lot - LOT_AUTOGEN_MIN - 1];
+ // TODO: change this to binary search or hash table or something
+ for (int i = 0; i < ot->fieldCount; i++) {
+ if (!strcmp(ot->fields[i].key, key)) {
+ return &ot->fields[i];
+ }
+ }
+ return NULL;
+}
+
+"""
+
+h_template = """#ifndef SMLUA_COBJECT_AUTOGEN_H
+#define SMLUA_COBJECT_AUTOGEN_H
+
+$[BODY]
+struct LuaObjectField* smlua_get_object_field_autogen(u16 lot, const char* key);
+
+#endif
+"""
+
+override_field_names = {
+ "Animation": { "unk02": "animYTransDivisor", "unk04": "startFrame", "unk06": "loopStart", "unk08": "loopEnd", "unk0A": "unusedBoneCount" },
+ "GraphNodeObject": { "unk38": "animInfo" },
+}
+
+override_field_types = {
+ "Surface": { "normal": "Vec3f" },
+}
+
+############################################################################
+
+def get_path(p):
+ return os.path.dirname(os.path.realpath(__file__)) + '/../' + p
+
+def strip_internal_blocks(body):
+ # strip internal structs/enums/etc
+ tmp = body
+ body = ''
+ inside = 0
+ for character in tmp:
+ if character == '{':
+ body += '{ ... }'
+ inside += 1
+
+ if inside == 0:
+ body += character
+
+ if character == '}':
+ inside -= 1
+
+ return body
+
+def identifier_to_caps(identifier):
+ caps = ''
+ was_cap = True
+ for c in identifier:
+ if c >= 'A' and c <= 'Z':
+ if not was_cap:
+ caps += '_'
+ was_cap = True
+ else:
+ was_cap = False
+ caps += c.upper()
+ return caps
+
+def translate_type_to_lvt(ptype):
+ if ptype in usf_types:
+ return 'LVT_' + ptype.upper()
+ if ptype in vec3_types:
+ return 'LVT_COBJECT'
+ if ptype == 'float':
+ return 'LVT_F32'
+ if 'struct' in ptype:
+ if '*' in ptype:
+ return 'LVT_COBJECT_P'
+ return 'LVT_COBJECT'
+ return 'LVT_???'
+
+def translate_type_to_lot(ptype):
+ if '[' in ptype or '{' in ptype:
+ return 'LOT_???'
+ if ptype in usf_types:
+ return 'LOT_NONE'
+ if ptype in vec3_types:
+ return 'LOT_' + ptype.upper()
+ if ptype == 'float':
+ return 'LOT_NONE'
+ if 'struct' in ptype:
+ struct_id = ptype.split(' ')[1].replace('*', '')
+ if struct_id in exclude_structs:
+ return 'LOT_???'
+ return 'LOT_' + struct_id.upper()
+
+ return 'LOT_???'
+
+def table_to_string(table):
+ count = 0
+ columns = 0
+ column_width = []
+ for c in table[0]:
+ column_width.append(0)
+ columns += 1
+
+ for row in table:
+ for i in range(columns):
+ if len(row[i]) > column_width[i]:
+ column_width[i] = len(row[i])
+
+ s = ''
+ for row in table:
+ line = ''
+ for i in range(columns):
+ line += row[i].ljust(column_width[i])
+ if '???' in line:
+ line = '//' + line[2:] + ' <--- UNIMPLEMENTED'
+ else:
+ count += 1
+ s += line + '\n'
+ return s, count
+
+############################################################################
+
+def parse_struct(struct_str):
+ struct = {}
+ identifier = struct_str.split(' ')[1]
+ struct['identifier'] = identifier
+
+ body = struct_str.split('{', 1)[1].rsplit('}', 1)[0]
+ body = strip_internal_blocks(body)
+
+ struct['fields'] = []
+ field_strs = body.split(';')
+ for field_str in field_strs:
+ if len(field_str.strip()) == 0:
+ continue
+
+ if '*' in field_str:
+ field_type, field_id = field_str.strip().rsplit('*', 1)
+ field_type = field_type.strip() + '*'
+ else:
+ field_type, field_id = field_str.strip().rsplit(' ', 1)
+
+ if '[' in field_id:
+ array_str = '[' + field_id.split('[', 1)[1]
+ field_id = field_id.split('[', 1)[0]
+ if array_str != '[1]':
+ field_type += ' ' + array_str
+
+ field = {}
+ field['type'] = field_type.strip()
+ field['identifier'] = field_id.strip()
+ field['field_str'] = field_str
+
+ struct['fields'].append(field)
+
+ return struct
+
+def parse_structs(struct_strs):
+ structs = []
+ for struct_str in struct_strs:
+ structs.append(parse_struct(struct_str))
+ return structs
+
+############################################################################
+
+sLuaObjectTable = []
+sLotAutoGenList = []
+
+def build_struct(struct):
+ sid = struct['identifier']
+
+ # build up table and track column width
+ field_table = []
+ for field in struct['fields']:
+ fid = field['identifier']
+ ftype = field['type']
+
+ if sid in override_field_names and fid in override_field_names[sid]:
+ fid = override_field_names[sid][fid]
+
+ if sid in override_field_types and fid in override_field_types[sid]:
+ ftype = override_field_types[sid][fid]
+
+ lvt = translate_type_to_lvt(ftype)
+ lot = translate_type_to_lot(ftype)
+ row = []
+ row.append(' { ' )
+ row.append('"%s", ' % fid )
+ row.append('%s, ' % lvt )
+ row.append('offsetof(struct %s, %s), ' % (sid, field['identifier']) )
+ row.append('%s, ' % str(lvt == 'LVT_COBJECT').lower() )
+ row.append("%s" % lot )
+ row.append(' },' )
+ field_table.append(row)
+
+ field_table_str, field_count = table_to_string(field_table)
+ field_count_define = 'LUA_%s_FIELD_COUNT' % identifier_to_caps(sid)
+ struct_lot = 'LOT_%s' % sid.upper()
+
+ s = "#define %s $[STRUCTFIELDCOUNT]\n" % field_count_define
+ s += "static struct LuaObjectField s%sFields[%s] = {\n" % (sid, field_count_define)
+ s += field_table_str
+ s += '};\n'
+
+ s = s.replace('$[STRUCTFIELDCOUNT]', str(field_count))
+
+ global sLuaObjectTable
+ struct_row = []
+ struct_row.append(' { ' )
+ struct_row.append('%s, ' % struct_lot )
+ struct_row.append('s%sFields, ' % sid )
+ struct_row.append('%s ' % field_count_define )
+ struct_row.append('},' )
+ sLuaObjectTable.append(struct_row)
+
+ global sLotAutoGenList
+ sLotAutoGenList.append(struct_lot)
+
+ return s
+
+def build_structs(structs):
+ global sLuaObjectTable
+ sLuaObjectTable = []
+
+ global sLotAutoGenList
+ sLotAutoGenList = []
+
+ s = ''
+ for struct in structs:
+ if struct['identifier'] in exclude_structs:
+ continue
+ s += build_struct(struct) + '\n'
+ return s
+
+def build_body(parsed):
+ built = build_structs(parsed)
+ obj_table_row_built, obj_table_count = table_to_string(sLuaObjectTable)
+
+ obj_table_built = 'struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] = {\n'
+ obj_table_built += obj_table_row_built
+ obj_table_built += '};\n'
+
+ return built + obj_table_built
+
+def build_lot_enum():
+ s = 'enum LuaObjectAutogenType {\n'
+ s += ' LOT_AUTOGEN_MIN = 1000,\n'
+
+ global sLotAutoGenList
+ for lot in sLotAutoGenList:
+ s += ' ' + lot + ',\n'
+
+ s += ' LOT_AUTOGEN_MAX,\n'
+ s += '};\n'
+ return s
+
+def build_includes():
+ s = '#include "smlua.h"\n'
+ for in_file in in_files:
+ s += '#include "%s"\n' % in_file
+ return s
+
+############################################################################
+
+def build_files():
+ extracted = []
+ for in_file in in_files:
+ path = get_path(in_file)
+ extracted.extend(extract_structs(path))
+
+ parsed = parse_structs(extracted)
+ built_body = build_body(parsed)
+ built_enum = build_lot_enum()
+ built_include = build_includes()
+
+ out_c_filename = get_path(smlua_cobject_autogen + '.c')
+ with open(out_c_filename, 'w') as out:
+ out.write(c_template.replace("$[BODY]", built_body).replace('$[INCLUDES]', built_include))
+
+ out_h_filename = get_path(smlua_cobject_autogen + '.h')
+ with open(out_h_filename, 'w') as out:
+ out.write(h_template.replace("$[BODY]", built_enum))
+
+build_files()
diff --git a/autogen/extract_functions.py b/autogen/extract_functions.py
new file mode 100644
index 00000000..11d4b547
--- /dev/null
+++ b/autogen/extract_functions.py
@@ -0,0 +1,68 @@
+import os
+import re
+import sys
+
+with open('./src/audio/external.h') as file:
+ lines = file.readlines()
+
+# strip directives and comments
+txt = ''
+for line in lines:
+ if line.strip().startswith('#'):
+ continue
+ if '//' in line:
+ line = line.split('//', 1)[0]
+ txt += line
+
+while ('/*' in txt):
+ s1 = txt.split('/*', 1)
+ s2 = s1[1].split('*/', 1)
+ txt = s1[0] + s2[-1]
+
+# normalize newlines
+txt = txt.replace('\n', ' ')
+txt = txt.replace(';', ';\n')
+txt = txt.replace('{', '{\n')
+while (' ' in txt):
+ txt = txt.replace(' ', ' ')
+
+# strip macros
+txt = re.sub(r'[^a-zA-Z0-9_][A-Z0-9_]+\(.*\)', '', txt)
+
+# strip blocks
+tmp = txt
+txt = ''
+inside = 0
+for character in tmp:
+ if inside == 0:
+ txt += character
+
+ if character == '{':
+ txt += '\n'
+ inside += 1
+
+ if character == '}':
+ inside -= 1
+
+# cull obvious non-functions, statics, and externs
+tmp = txt
+txt = ''
+for line in tmp.splitlines():
+ line = line.strip()
+ if '(' not in line:
+ continue
+ if ')' not in line:
+ continue
+ if '=' in line:
+ continue
+ #if '{' not in line:
+ # continue
+ if line.startswith('static '):
+ continue
+ if line.startswith('extern '):
+ continue
+ txt += line + '\n'
+
+# normalize function ending
+txt = txt.replace(' {', ';')
+print('-'* 80 + '\n' + txt)
diff --git a/autogen/extract_structs.py b/autogen/extract_structs.py
new file mode 100644
index 00000000..a31b92f1
--- /dev/null
+++ b/autogen/extract_structs.py
@@ -0,0 +1,74 @@
+import os
+import re
+import sys
+
+def extract_structs(filename):
+ with open(filename) as file:
+ lines = file.readlines()
+
+ txt = ''
+ # strip line continuation
+ for line in lines:
+ if line.strip().endswith('\\'):
+ txt += line.strip()[:-1] + ' '
+ else:
+ txt += line
+
+ # strip directives and comments
+ tmp = txt
+ txt = ''
+ for line in tmp.splitlines():
+ if line.strip().startswith('#'):
+ continue
+ if '//' in line:
+ line = line.split('//', 1)[0]
+ txt += line + '\n'
+
+ while ('/*' in txt):
+ s1 = txt.split('/*', 1)
+ s2 = s1[1].split('*/', 1)
+ txt = s1[0] + s2[-1]
+
+ # normalize newlines
+ txt = txt.replace('\n', ' ')
+ txt = txt.replace(';', ';\n')
+ txt = txt.replace('{', '{\n')
+ while (' ' in txt):
+ txt = txt.replace(' ', ' ')
+
+ # strip macros
+ txt = re.sub(r'[^a-zA-Z0-9_][A-Z0-9_]+\(.*\)', '', txt)
+
+ # strip blocks
+ tmp = txt
+ txt = ''
+ inside = 0
+ for character in tmp:
+ if character == '\n':
+ if inside == 0:
+ txt += character
+ else:
+ txt += character
+
+ if character == '{':
+ inside += 1
+
+ if character == '}':
+ inside -= 1
+
+ # extract structs
+ tmp = txt
+ txt = ''
+ for line in tmp.splitlines():
+ line = line.strip()
+ if '{' not in line:
+ continue
+ if '}' not in line:
+ continue
+ if ';' not in line:
+ continue
+ if not line.startswith('struct '):
+ continue
+ txt += line + '\n'
+
+ return txt.splitlines()
diff --git a/build-windows-visual-studio/sm64ex.vcxproj b/build-windows-visual-studio/sm64ex.vcxproj
index e5f56dbc..edb9beb0 100644
--- a/build-windows-visual-studio/sm64ex.vcxproj
+++ b/build-windows-visual-studio/sm64ex.vcxproj
@@ -514,6 +514,7 @@
+
@@ -970,6 +971,7 @@
+
diff --git a/build-windows-visual-studio/sm64ex.vcxproj.filters b/build-windows-visual-studio/sm64ex.vcxproj.filters
index ae381596..8cd9c3c9 100644
--- a/build-windows-visual-studio/sm64ex.vcxproj.filters
+++ b/build-windows-visual-studio/sm64ex.vcxproj.filters
@@ -4863,6 +4863,9 @@
Source Files\src\pc\lua
+
+ Source Files\src\pc\lua
+
@@ -6007,5 +6010,8 @@
Source Files\src\pc\lua
+
+ Source Files\src\pc\lua
+
\ No newline at end of file
diff --git a/src/pc/lua/smlua.c b/src/pc/lua/smlua.c
index f4e17d37..5a9f3fca 100644
--- a/src/pc/lua/smlua.c
+++ b/src/pc/lua/smlua.c
@@ -57,7 +57,7 @@ static void smlua_init_mario_states(void) {
int t = lua_gettop(gLuaState);
for (int i = 0; i < MAX_PLAYERS; i++) {
lua_pushinteger(L, i);
- smlua_push_object(L, LOT_MARIO_STATE, &gMarioStates[i]);
+ smlua_push_object(L, LOT_MARIOSTATE, &gMarioStates[i]);
lua_settable(L, t);
}
lua_setglobal(L, "gMarioStates");
diff --git a/src/pc/lua/smlua.h b/src/pc/lua/smlua.h
index 04e8afc0..61cc5aa6 100644
--- a/src/pc/lua/smlua.h
+++ b/src/pc/lua/smlua.h
@@ -10,6 +10,7 @@
#include "smlua_cobject.h"
#include "smlua_cobject_allowlist.h"
+#include "smlua_cobject_autogen.h"
#include "smlua_utils.h"
#include "smlua_functions.h"
#include "smlua_functions_autogen.h"
diff --git a/src/pc/lua/smlua_cobject.c b/src/pc/lua/smlua_cobject.c
index 0be73cda..c17d7834 100644
--- a/src/pc/lua/smlua_cobject.c
+++ b/src/pc/lua/smlua_cobject.c
@@ -6,26 +6,6 @@
#include "audio/external.h"
#include "object_fields.h"
-enum LuaValueType {
- LVT_U8,
- LVT_U16,
- LVT_U32,
- LVT_S8,
- LVT_S16,
- LVT_S32,
- LVT_F32,
- LVT_COBJECT,
- LVT_COBJECT_P,
-};
-
-struct LuaObjectField {
- const char* key;
- enum LuaValueType valueType;
- size_t valueOffset;
- bool immutable;
- enum LuaObjectType lot;
-};
-
#define LUA_VEC3S_FIELD_COUNT 3
static struct LuaObjectField sVec3sFields[LUA_VEC3S_FIELD_COUNT] = {
{ "x", LVT_S16, sizeof(s16) * 0, false, LOT_NONE },
@@ -40,255 +20,18 @@ static struct LuaObjectField sVec3fFields[LUA_VEC3F_FIELD_COUNT] = {
{ "z", LVT_F32, sizeof(f32) * 2, false, LOT_NONE },
};
-#define LUA_MARIO_STATE_FIELD_COUNT 65
-static struct LuaObjectField sMarioStateFields[LUA_MARIO_STATE_FIELD_COUNT] = {
- { "playerIndex", LVT_U16, offsetof(struct MarioState, playerIndex), true, LOT_NONE },
- { "input", LVT_U16, offsetof(struct MarioState, input), false, LOT_NONE },
- { "flags", LVT_U32, offsetof(struct MarioState, flags), false, LOT_NONE },
- { "particleFlags", LVT_U32, offsetof(struct MarioState, particleFlags), false, LOT_NONE },
- { "action", LVT_U32, offsetof(struct MarioState, action), false, LOT_NONE },
- { "prevAction", LVT_U32, offsetof(struct MarioState, prevAction), false, LOT_NONE },
- { "terrainSoundAddend", LVT_U32, offsetof(struct MarioState, terrainSoundAddend), false, LOT_NONE },
- { "actionState", LVT_U16, offsetof(struct MarioState, actionState), false, LOT_NONE },
- { "actionTimer", LVT_U16, offsetof(struct MarioState, actionTimer), false, LOT_NONE },
- { "actionArg", LVT_U32, offsetof(struct MarioState, actionArg), false, LOT_NONE },
- { "intendedMag", LVT_F32, offsetof(struct MarioState, intendedMag), false, LOT_NONE },
- { "intendedYaw", LVT_S16, offsetof(struct MarioState, intendedYaw), false, LOT_NONE },
- { "invincTimer", LVT_S16, offsetof(struct MarioState, invincTimer), false, LOT_NONE },
- { "framesSinceA", LVT_U8, offsetof(struct MarioState, framesSinceA), false, LOT_NONE },
- { "framesSinceB", LVT_U8, offsetof(struct MarioState, framesSinceB), false, LOT_NONE },
- { "wallKickTimer", LVT_U8, offsetof(struct MarioState, wallKickTimer), false, LOT_NONE },
- { "doubleJumpTimer", LVT_U8, offsetof(struct MarioState, doubleJumpTimer), false, LOT_NONE },
- { "faceAngle", LVT_COBJECT, offsetof(struct MarioState, faceAngle), true, LOT_VEC3S },
- { "angleVel", LVT_COBJECT, offsetof(struct MarioState, angleVel), true, LOT_VEC3S },
- { "slideYaw", LVT_S16, offsetof(struct MarioState, slideYaw), false, LOT_NONE },
- { "twirlYaw", LVT_S16, offsetof(struct MarioState, twirlYaw), false, LOT_NONE },
- { "pos", LVT_COBJECT, offsetof(struct MarioState, pos), true, LOT_VEC3F },
- { "vel", LVT_COBJECT, offsetof(struct MarioState, vel), true, LOT_VEC3F },
- { "forwardVel", LVT_F32, offsetof(struct MarioState, forwardVel), false, LOT_NONE },
- { "slideVelX", LVT_F32, offsetof(struct MarioState, slideVelX), false, LOT_NONE },
- { "slideVelZ", LVT_F32, offsetof(struct MarioState, slideVelZ), false, LOT_NONE },
- { "wall", LVT_COBJECT_P, offsetof(struct MarioState, wall), true, LOT_SURFACE },
- { "ceil", LVT_COBJECT_P, offsetof(struct MarioState, ceil), true, LOT_SURFACE },
- { "floor", LVT_COBJECT_P, offsetof(struct MarioState, floor), true, LOT_SURFACE },
- { "ceilHeight", LVT_F32, offsetof(struct MarioState, ceilHeight), false, LOT_NONE },
- { "floorHeight", LVT_F32, offsetof(struct MarioState, floorHeight), false, LOT_NONE },
- { "floorAngle", LVT_S16, offsetof(struct MarioState, floorAngle), false, LOT_NONE },
- { "waterLevel", LVT_S16, offsetof(struct MarioState, waterLevel), false, LOT_NONE },
- { "interactObj", LVT_COBJECT_P, offsetof(struct MarioState, interactObj), false, LOT_OBJECT },
- { "heldObj", LVT_COBJECT_P, offsetof(struct MarioState, heldObj), false, LOT_OBJECT },
- { "usedObj", LVT_COBJECT_P, offsetof(struct MarioState, usedObj), false, LOT_OBJECT },
- { "interactObj", LVT_COBJECT_P, offsetof(struct MarioState, interactObj), false, LOT_OBJECT },
- { "marioObj", LVT_COBJECT_P, offsetof(struct MarioState, marioObj), true, LOT_OBJECT },
- { "marioBodyState", LVT_COBJECT_P, offsetof(struct MarioState, marioBodyState), true, LOT_BODY_STATE },
- { "controller", LVT_COBJECT_P, offsetof(struct MarioState, controller), true, LOT_CONTROLLER },
- { "collidedObjInteractTypes", LVT_U32, offsetof(struct MarioState, collidedObjInteractTypes), false, LOT_NONE },
- { "numCoins", LVT_S16, offsetof(struct MarioState, numCoins), false, LOT_NONE },
- { "numStars", LVT_S16, offsetof(struct MarioState, numStars), false, LOT_NONE },
- { "mechani", LVT_S8, offsetof(struct MarioState, numKeys), false, LOT_NONE },
- { "numLives", LVT_S8, offsetof(struct MarioState, numLives), false, LOT_NONE },
- { "health", LVT_S16, offsetof(struct MarioState, health), false, LOT_NONE },
- { "unkB0", LVT_S16, offsetof(struct MarioState, unkB0), false, LOT_NONE },
- { "hurtCounter", LVT_U8, offsetof(struct MarioState, hurtCounter), false, LOT_NONE },
- { "healCounter", LVT_U8, offsetof(struct MarioState, healCounter), false, LOT_NONE },
- { "squishTimer", LVT_U8, offsetof(struct MarioState, squishTimer), false, LOT_NONE },
- { "fadeWarpOpacity", LVT_U8, offsetof(struct MarioState, fadeWarpOpacity), false, LOT_NONE },
- { "capTimer", LVT_U16, offsetof(struct MarioState, capTimer), false, LOT_NONE },
- { "prevNumStarsForDialog", LVT_S16, offsetof(struct MarioState, prevNumStarsForDialog), false, LOT_NONE },
- { "peakHeight", LVT_F32, offsetof(struct MarioState, peakHeight), false, LOT_NONE },
- { "quicksandDepth", LVT_F32, offsetof(struct MarioState, quicksandDepth), false, LOT_NONE },
- { "unkC4", LVT_F32, offsetof(struct MarioState, unkC4), false, LOT_NONE },
- { "currentRoom", LVT_S16, offsetof(struct MarioState, currentRoom), false, LOT_NONE },
- { "isSnoring", LVT_U8, offsetof(struct MarioState, isSnoring), false, LOT_NONE },
- { "freeze", LVT_U8, offsetof(struct MarioState, freeze), false, LOT_NONE },
- { "splineKeyframeFraction", LVT_F32, offsetof(struct MarioState, splineKeyframeFraction), false, LOT_NONE },
- { "splineState", LVT_S32, offsetof(struct MarioState, splineState), false, LOT_NONE },
- { "nonInstantWarpPos", LVT_COBJECT, offsetof(struct MarioState, nonInstantWarpPos), true, LOT_VEC3F },
- { "wasNetworkVisible", LVT_U8, offsetof(struct MarioState, wasNetworkVisible), false, LOT_NONE },
- { "minimumBoneY", LVT_F32, offsetof(struct MarioState, minimumBoneY), false, LOT_NONE },
- { "curAnimOffset", LVT_F32, offsetof(struct MarioState, curAnimOffset), false, LOT_NONE },
- /* TODO: implement
- struct SpawnInfo *spawnInfo;
- struct Area *area;
- struct PlayerCameraState *statusForCamera;
- struct MarioAnimation *animation;
- struct Object* heldByObj;
- struct Object* bubbleObj;
- Vec4s* splineKeyframe;
- struct Character* character;
- */
-};
-
-#define LUA_CONTROLLER_FIELD_COUNT 10
-static struct LuaObjectField sControllerFields[LUA_CONTROLLER_FIELD_COUNT] = {
- { "rawStickX", LVT_S16, offsetof(struct Controller, rawStickX), false, LOT_NONE },
- { "rawStickY", LVT_S16, offsetof(struct Controller, rawStickY), false, LOT_NONE },
- { "stickX", LVT_F32, offsetof(struct Controller, stickX), false, LOT_NONE },
- { "stickY", LVT_F32, offsetof(struct Controller, stickY), false, LOT_NONE },
- { "stickMag", LVT_F32, offsetof(struct Controller, stickMag), false, LOT_NONE },
- { "buttonDown", LVT_U16, offsetof(struct Controller, buttonDown), false, LOT_NONE },
- { "buttonPressed", LVT_U16, offsetof(struct Controller, buttonPressed), false, LOT_NONE },
- //{ "statusData", LVT_OSCONTSTATUS, offsetof(struct Controller, statusData), false, LOT_NONE },
- //{ "controllerData", LVT_OSCONTPAD, offsetof(struct Controller, controllerData), false, LOT_NONE },
- { "port", LVT_S32, offsetof(struct Controller, port), false, LOT_NONE },
- { "extStickX", LVT_S16, offsetof(struct Controller, extStickX), false, LOT_NONE },
- { "extStickY", LVT_S16, offsetof(struct Controller, extStickY), false, LOT_NONE },
-};
-
-#define LUA_BODY_STATE_FIELD_COUNT 11
-static struct LuaObjectField sMarioBodyStateFields[LUA_BODY_STATE_FIELD_COUNT] = {
- { "action", LVT_U32, offsetof(struct MarioBodyState, action), false, LOT_NONE },
- { "capState", LVT_S8, offsetof(struct MarioBodyState, capState), false, LOT_NONE },
- { "eyeState", LVT_S8, offsetof(struct MarioBodyState, eyeState), false, LOT_NONE },
- { "handState", LVT_S8, offsetof(struct MarioBodyState, handState), false, LOT_NONE },
- { "wingFlutter", LVT_S8, offsetof(struct MarioBodyState, wingFlutter), false, LOT_NONE },
- { "modelState", LVT_S16, offsetof(struct MarioBodyState, modelState), false, LOT_NONE },
- { "grabPos", LVT_S8, offsetof(struct MarioBodyState, grabPos), false, LOT_NONE },
- { "punchState", LVT_U8, offsetof(struct MarioBodyState, punchState), false, LOT_NONE },
- { "torsoAngle", LVT_COBJECT, offsetof(struct MarioBodyState, torsoAngle), true, LOT_VEC3S },
- { "headAngle", LVT_COBJECT, offsetof(struct MarioBodyState, headAngle), true, LOT_VEC3S },
- { "heldObjLastPosition", LVT_COBJECT, offsetof(struct MarioBodyState, heldObjLastPosition), true, LOT_VEC3S },
-};
-
-#define LUA_OBJECT_FIELD_COUNT 16
-static struct LuaObjectField sObjectFields[LUA_OBJECT_FIELD_COUNT] = {
- { "header", LVT_COBJECT, offsetof(struct Object, header), true, LOT_OBJECTNODE },
- { "parentObj", LVT_COBJECT_P, offsetof(struct Object, parentObj), false, LOT_OBJECT },
- { "prevObj", LVT_COBJECT_P, offsetof(struct Object, prevObj), false, LOT_OBJECT },
- { "collidedObjInteractTypes", LVT_U32, offsetof(struct Object, collidedObjInteractTypes), false, LOT_NONE },
- { "activeFlags", LVT_S16, offsetof(struct Object, activeFlags), false, LOT_NONE },
- { "numCollidedObjs", LVT_S16, offsetof(struct Object, numCollidedObjs), false, LOT_NONE },
- { "bhvStackIndex", LVT_U32, offsetof(struct Object, bhvStackIndex), false, LOT_NONE },
- { "bhvDelayTimer", LVT_S16, offsetof(struct Object, bhvDelayTimer), false, LOT_NONE },
- { "respawnInfoType", LVT_S16, offsetof(struct Object, respawnInfoType), false, LOT_NONE },
- { "hitboxRadius", LVT_F32, offsetof(struct Object, hitboxRadius), false, LOT_NONE },
- { "hitboxHeight", LVT_F32, offsetof(struct Object, hitboxHeight), false, LOT_NONE },
- { "hurtboxRadius", LVT_F32, offsetof(struct Object, hurtboxRadius), false, LOT_NONE },
- { "hurtboxHeight", LVT_F32, offsetof(struct Object, hurtboxHeight), false, LOT_NONE },
- { "hitboxDownOffset", LVT_F32, offsetof(struct Object, hitboxDownOffset), false, LOT_NONE },
- { "heldByPlayerIndex", LVT_U32, offsetof(struct Object, heldByPlayerIndex), false, LOT_NONE },
- { "platform", LVT_COBJECT_P, offsetof(struct Object, platform), false, LOT_OBJECT },
- /* TODO: implement
- struct Object *collidedObjs[4]
- union rawData
- const BehaviorScript *curBhvCommand
- uintptr_t bhvStack[8]
- const BehaviorScript *behavior
- void *collisionData
- Mat4 transform
- void *respawnInfo
- */
-};
-
-#define LUA_OBJECTNODE_FIELD_COUNT 3
-static struct LuaObjectField sObjectNodeFields[LUA_OBJECTNODE_FIELD_COUNT] = {
- { "gfx", LVT_COBJECT, offsetof(struct ObjectNode, gfx), true, LOT_GRAPHNODEOBJECT },
- { "next", LVT_COBJECT_P, offsetof(struct ObjectNode, next), true, LOT_OBJECTNODE },
- { "prev", LVT_COBJECT_P, offsetof(struct ObjectNode, prev), true, LOT_OBJECTNODE },
-};
-
-#define LUA_GRAPHNODEOBJECT_FIELD_COUNT 14
-static struct LuaObjectField sGraphNodeObjectFields[LUA_GRAPHNODEOBJECT_FIELD_COUNT] = {
- { "areaIndex", LVT_S8, offsetof(struct GraphNodeObject, unk18), false, LOT_NONE },
- { "activeAreaIndex", LVT_S8, offsetof(struct GraphNodeObject, unk19), false, LOT_NONE },
- { "angle", LVT_COBJECT, offsetof(struct GraphNodeObject, angle), false, LOT_VEC3S },
- { "pos", LVT_COBJECT, offsetof(struct GraphNodeObject, pos), false, LOT_VEC3F },
- { "prevAngle", LVT_COBJECT, offsetof(struct GraphNodeObject, prevAngle), false, LOT_VEC3S },
- { "prevPos", LVT_COBJECT, offsetof(struct GraphNodeObject, prevPos), false, LOT_VEC3F },
- { "prevTimestamp", LVT_U32, offsetof(struct GraphNodeObject, prevTimestamp), false, LOT_NONE },
- { "prevShadowPos", LVT_COBJECT, offsetof(struct GraphNodeObject, prevShadowPos), false, LOT_VEC3F },
- { "prevShadowPosTimestamp", LVT_U32, offsetof(struct GraphNodeObject, prevShadowPosTimestamp), false, LOT_NONE },
- { "scale", LVT_COBJECT, offsetof(struct GraphNodeObject, scale), false, LOT_VEC3F },
- { "prevScale", LVT_COBJECT, offsetof(struct GraphNodeObject, prevScale), false, LOT_VEC3F },
- { "prevScaleTimestamp", LVT_U32, offsetof(struct GraphNodeObject, prevScaleTimestamp), false, LOT_NONE },
- { "animInfo", LVT_COBJECT, offsetof(struct GraphNodeObject, unk38), false, LOT_GRAPHNODEOBJECTSUB },
- { "cameraToObject", LVT_COBJECT, offsetof(struct GraphNodeObject, cameraToObject), false, LOT_VEC3F },
- /* unimplemented
- struct GraphNode node;
- struct GraphNode *sharedChild;
- struct SpawnInfo *unk4C;
- Mat4 *throwMatrix;
- Mat4 prevThrowMatrix;
- u32 prevThrowMatrixTimestamp;
- Mat4 *throwMatrixInterpolated;
- u32 skipInterpolationTimestamp;
- */
-};
-
-#define LUA_SURFACE_FIELD_COUNT 16
-static struct LuaObjectField sSurfaceFields[LUA_SURFACE_FIELD_COUNT] = {
- { "type", LVT_S16, offsetof(struct Surface, type), false, LOT_NONE },
- { "force", LVT_S16, offsetof(struct Surface, force), false, LOT_NONE },
- { "flags", LVT_S8, offsetof(struct Surface, flags), false, LOT_NONE },
- { "room", LVT_S8, offsetof(struct Surface, room), false, LOT_NONE },
- { "lowerY", LVT_S16, offsetof(struct Surface, lowerY), false, LOT_NONE },
- { "upperY", LVT_S16, offsetof(struct Surface, upperY), false, LOT_NONE },
- { "vertex1", LVT_COBJECT, offsetof(struct Surface, vertex1), false, LOT_VEC3S },
- { "vertex2", LVT_COBJECT, offsetof(struct Surface, vertex2), false, LOT_VEC3S },
- { "vertex3", LVT_COBJECT, offsetof(struct Surface, vertex3), false, LOT_VEC3S },
- { "normal", LVT_COBJECT, offsetof(struct Surface, normal), false, LOT_VEC3F },
- { "originOffset", LVT_F32, offsetof(struct Surface, originOffset), false, LOT_NONE },
- { "object", LVT_COBJECT, offsetof(struct Surface, object), false, LOT_OBJECT },
- { "prevVertex1", LVT_COBJECT, offsetof(struct Surface, prevVertex1), false, LOT_VEC3S },
- { "prevVertex2", LVT_COBJECT, offsetof(struct Surface, prevVertex2), false, LOT_VEC3S },
- { "prevVertex3", LVT_COBJECT, offsetof(struct Surface, prevVertex3), false, LOT_VEC3S },
- { "modifiedTimestamp", LVT_U32, offsetof(struct Surface, modifiedTimestamp), false, LOT_NONE },
-};
-
-#define LUA_GRAPHNODEOBJECTSUB_FIELD_COUNT 11
-static struct LuaObjectField sGraphNodeObjectSubFields[LUA_GRAPHNODEOBJECTSUB_FIELD_COUNT] = {
- { "animID", LVT_S16, offsetof(struct GraphNodeObject_sub, animID), false, LOT_NONE },
- { "animYTrans", LVT_S16, offsetof(struct GraphNodeObject_sub, animYTrans), false, LOT_NONE },
- { "curAnim", LVT_COBJECT_P, offsetof(struct GraphNodeObject_sub, curAnim), true, LOT_ANIMATION },
- { "animFrame", LVT_S16, offsetof(struct GraphNodeObject_sub, animFrame), false, LOT_NONE },
- { "animTimer", LVT_U16, offsetof(struct GraphNodeObject_sub, animTimer), false, LOT_NONE },
- { "animFrameAccelAssist", LVT_S32, offsetof(struct GraphNodeObject_sub, animFrameAccelAssist), false, LOT_NONE },
- { "animAccel", LVT_S32, offsetof(struct GraphNodeObject_sub, animAccel), false, LOT_NONE },
- { "prevAnimFrame", LVT_S16, offsetof(struct GraphNodeObject_sub, prevAnimFrame), false, LOT_NONE },
- { "prevAnimID", LVT_S16, offsetof(struct GraphNodeObject_sub, prevAnimID), false, LOT_NONE },
- { "prevAnimFrameTimestamp", LVT_U32, offsetof(struct GraphNodeObject_sub, prevAnimFrameTimestamp), false, LOT_NONE },
- { "prevAnimPtr", LVT_COBJECT_P, offsetof(struct GraphNodeObject_sub, prevAnimPtr), true, LOT_ANIMATION },
-};
-
-
-#define LUA_ANIMATION_FIELD_COUNT 7
-static struct LuaObjectField sAnimationFields[LUA_ANIMATION_FIELD_COUNT] = {
- { "flags", LVT_S16, offsetof(struct Animation, flags), false, LOT_NONE },
- { "animYTransDivisor", LVT_S16, offsetof(struct Animation, unk02), false, LOT_NONE },
- { "startFrame", LVT_S16, offsetof(struct Animation, unk04), false, LOT_NONE },
- { "loopStart", LVT_S16, offsetof(struct Animation, unk06), false, LOT_NONE },
- { "loopEnd", LVT_S16, offsetof(struct Animation, unk08), false, LOT_NONE },
- { "unusedBoneCount", LVT_S16, offsetof(struct Animation, unk0A), false, LOT_NONE },
- { "length", LVT_U32, offsetof(struct Animation, length), false, LOT_NONE },
- /*
- const s16 *values;
- const u16 *index;
- */
-};
-
-
-struct LuaObjectTable {
- enum LuaObjectType objectType;
- struct LuaObjectField* fields;
- u16 fieldCount;
-};
-
struct LuaObjectTable sLuaObjectTable[LOT_MAX] = {
{ LOT_NONE, NULL, 0 },
{ LOT_VEC3S, sVec3sFields, LUA_VEC3S_FIELD_COUNT },
{ LOT_VEC3F, sVec3fFields, LUA_VEC3F_FIELD_COUNT },
- { LOT_MARIO_STATE, sMarioStateFields, LUA_MARIO_STATE_FIELD_COUNT },
- { LOT_CONTROLLER, sControllerFields, LUA_CONTROLLER_FIELD_COUNT },
- { LOT_BODY_STATE, sMarioBodyStateFields, LUA_BODY_STATE_FIELD_COUNT },
- { LOT_OBJECT, sObjectFields, LUA_OBJECT_FIELD_COUNT },
- { LOT_OBJECTNODE, sObjectNodeFields, LUA_OBJECTNODE_FIELD_COUNT },
- { LOT_GRAPHNODEOBJECT, sGraphNodeObjectFields, LUA_GRAPHNODEOBJECT_FIELD_COUNT },
- { LOT_SURFACE, sSurfaceFields, LUA_SURFACE_FIELD_COUNT },
- { LOT_GRAPHNODEOBJECTSUB, sGraphNodeObjectSubFields, LUA_GRAPHNODEOBJECTSUB_FIELD_COUNT },
- { LOT_ANIMATION, sAnimationFields, LUA_ANIMATION_FIELD_COUNT },
};
-static struct LuaObjectField* smlua_get_object_field(struct LuaObjectTable* ot, const char* key) {
+static struct LuaObjectField* smlua_get_object_field(u16 lot, const char* key) {
+ if (lot > LOT_AUTOGEN_MIN) {
+ return smlua_get_object_field_autogen(lot, key);
+ }
+
+ struct LuaObjectTable* ot = &sLuaObjectTable[lot];
// TODO: change this to binary search or hash table or something
for (int i = 0; i < ot->fieldCount; i++) {
if (!strcmp(ot->fields[i].key, key)) {
@@ -298,6 +41,12 @@ static struct LuaObjectField* smlua_get_object_field(struct LuaObjectTable* ot,
return NULL;
}
+bool smlua_valid_lot(u16 lot) {
+ if (lot > LOT_NONE && lot < LOT_MAX) { return true; }
+ if (lot > LOT_AUTOGEN_MIN && lot < LOT_AUTOGEN_MAX) { return true; }
+ return false;
+}
+
static int smlua__get_field(lua_State* L) {
enum LuaObjectType lot = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -313,7 +62,7 @@ static int smlua__get_field(lua_State* L) {
return 0;
}
- if (lot >= LOT_MAX) {
+ if (!smlua_valid_lot(lot)) {
LOG_LUA("_get_field on invalid LOT '%u'", lot);
return 0;
}
@@ -323,7 +72,7 @@ static int smlua__get_field(lua_State* L) {
return 0;
}
- struct LuaObjectField* data = smlua_get_object_field(&sLuaObjectTable[lot], key);
+ struct LuaObjectField* data = smlua_get_object_field(lot, key);
if (data == NULL) {
LOG_LUA("_get_field on invalid key '%s', lot '%d'", key, lot);
return 0;
@@ -363,7 +112,7 @@ static int smlua__set_field(lua_State* L) {
return 0;
}
- if (lot >= LOT_MAX) {
+ if (!smlua_valid_lot(lot)) {
LOG_LUA("_set_field on invalid LOT '%u'", lot);
return 0;
}
@@ -373,7 +122,7 @@ static int smlua__set_field(lua_State* L) {
return 0;
}
- struct LuaObjectField* data = smlua_get_object_field(&sLuaObjectTable[lot], key);
+ struct LuaObjectField* data = smlua_get_object_field(lot, key);
if (data == NULL) {
LOG_LUA("_set_field on invalid key '%s'", key);
return 0;
diff --git a/src/pc/lua/smlua_cobject.h b/src/pc/lua/smlua_cobject.h
index f214609b..dbdc2b04 100644
--- a/src/pc/lua/smlua_cobject.h
+++ b/src/pc/lua/smlua_cobject.h
@@ -1,22 +1,40 @@
#ifndef SMLUA_COBJECT_H
#define SMLUA_COBJECT_H
+enum LuaValueType {
+ LVT_U8,
+ LVT_U16,
+ LVT_U32,
+ LVT_S8,
+ LVT_S16,
+ LVT_S32,
+ LVT_F32,
+ LVT_COBJECT,
+ LVT_COBJECT_P,
+};
+
enum LuaObjectType {
- LOT_NONE,
+ LOT_NONE = 0,
LOT_VEC3S,
LOT_VEC3F,
- LOT_MARIO_STATE,
- LOT_CONTROLLER,
- LOT_BODY_STATE,
- LOT_OBJECT,
- LOT_OBJECTNODE,
- LOT_GRAPHNODEOBJECT,
- LOT_SURFACE,
- LOT_GRAPHNODEOBJECTSUB,
- LOT_ANIMATION,
LOT_MAX,
};
+struct LuaObjectField {
+ const char* key;
+ enum LuaValueType valueType;
+ size_t valueOffset;
+ bool immutable;
+ u16 lot;
+};
+
+struct LuaObjectTable {
+ u16 lot;
+ struct LuaObjectField* fields;
+ u16 fieldCount;
+};
+
+bool smlua_valid_lot(u16 lot);
void smlua_bind_cobject(void);
#endif
\ No newline at end of file
diff --git a/src/pc/lua/smlua_cobject_allowlist.c b/src/pc/lua/smlua_cobject_allowlist.c
index e131a563..f24e90c6 100644
--- a/src/pc/lua/smlua_cobject_allowlist.c
+++ b/src/pc/lua/smlua_cobject_allowlist.c
@@ -7,15 +7,24 @@ struct CObjectAllowListNode {
struct CObjectAllowListNode* next;
};
-static struct CObjectAllowListNode* sAllowList[LOT_MAX] = { 0 };
-static u16 sCachedAllowed[LOT_MAX] = { 0 };
+#define LOT_COUNT (LOT_MAX + (LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN))
+static struct CObjectAllowListNode* sAllowList[LOT_COUNT] = { 0 };
+static u16 sCachedAllowed[LOT_COUNT] = { 0 };
+
+static u16 smlua_lot_mapping(u16 lot) {
+ if (lot >= LOT_MAX) {
+ return LOT_MAX + (lot - LOT_AUTOGEN_MIN);
+ } else {
+ return lot;
+ }
+}
void smlua_cobject_allowlist_init(void) {
smlua_cobject_allowlist_shutdown();
}
void smlua_cobject_allowlist_shutdown(void) {
- for (int i = 0; i < LOT_MAX; i++) {
+ for (int i = 0; i < LOT_COUNT; i++) {
sCachedAllowed[i] = 0;
struct CObjectAllowListNode* node = sAllowList[i];
while (node != NULL) {
@@ -27,14 +36,15 @@ void smlua_cobject_allowlist_shutdown(void) {
}
}
-void smlua_cobject_allowlist_add(enum LuaObjectType objectType, u64 pointer) {
+void smlua_cobject_allowlist_add(u16 lot, u64 pointer) {
if (pointer == 0) { return; }
- if (objectType == LOT_NONE || objectType >= LOT_MAX) { return; }
+ if (!smlua_valid_lot(lot)) { return; }
- if (sCachedAllowed[objectType] == pointer) { return; }
- sCachedAllowed[objectType] = pointer;
+ u16 m = smlua_lot_mapping(lot);
+ if (sCachedAllowed[m] == pointer) { return; }
+ sCachedAllowed[m] = pointer;
- struct CObjectAllowListNode* curNode = sAllowList[objectType];
+ struct CObjectAllowListNode* curNode = sAllowList[m];
struct CObjectAllowListNode* prevNode = NULL;
while (curNode != NULL) {
if (pointer == curNode->pointer) { return; }
@@ -47,18 +57,20 @@ void smlua_cobject_allowlist_add(enum LuaObjectType objectType, u64 pointer) {
node->pointer = pointer;
node->next = curNode;
if (prevNode == NULL) {
- sAllowList[objectType] = node;
+ sAllowList[m] = node;
} else {
prevNode->next = node;
}
}
-bool smlua_cobject_allowlist_contains(enum LuaObjectType objectType, u64 pointer) {
+bool smlua_cobject_allowlist_contains(u16 lot, u64 pointer) {
if (pointer == 0) { return false; }
- if (objectType == LOT_NONE || objectType >= LOT_MAX) { return false; }
- if (sCachedAllowed[objectType] == pointer) { return true; }
+ if (!smlua_valid_lot(lot)) { return false; }
- struct CObjectAllowListNode* node = sAllowList[objectType];
+ u16 m = smlua_lot_mapping(lot);
+ if (sCachedAllowed[m] == pointer) { return true; }
+
+ struct CObjectAllowListNode* node = sAllowList[m];
while (node != NULL) {
if (pointer == node->pointer) { return true; }
if (pointer < node->pointer) { return false; }
diff --git a/src/pc/lua/smlua_cobject_allowlist.h b/src/pc/lua/smlua_cobject_allowlist.h
index 68501991..ebdbf726 100644
--- a/src/pc/lua/smlua_cobject_allowlist.h
+++ b/src/pc/lua/smlua_cobject_allowlist.h
@@ -3,7 +3,7 @@
void smlua_cobject_allowlist_init(void);
void smlua_cobject_allowlist_shutdown(void);
-void smlua_cobject_allowlist_add(enum LuaObjectType objectType, u64 pointer);
-bool smlua_cobject_allowlist_contains(enum LuaObjectType objectType, u64 pointer);
+void smlua_cobject_allowlist_add(u16 lot, u64 pointer);
+bool smlua_cobject_allowlist_contains(u16 lot, u64 pointer);
#endif
\ No newline at end of file
diff --git a/src/pc/lua/smlua_cobject_autogen.c b/src/pc/lua/smlua_cobject_autogen.c
new file mode 100644
index 00000000..b112f6ae
--- /dev/null
+++ b/src/pc/lua/smlua_cobject_autogen.c
@@ -0,0 +1,667 @@
+#include "smlua.h"
+#include "include/types.h"
+#include "src/game/area.h"
+#include "src/game/camera.h"
+#include "src/game/characters.h"
+
+#define LUA_CONTROLLER_FIELD_COUNT 10
+static struct LuaObjectField sControllerFields[LUA_CONTROLLER_FIELD_COUNT] = {
+ { "rawStickX", LVT_S16, offsetof(struct Controller, rawStickX), false, LOT_NONE },
+ { "rawStickY", LVT_S16, offsetof(struct Controller, rawStickY), false, LOT_NONE },
+ { "stickX", LVT_F32, offsetof(struct Controller, stickX), false, LOT_NONE },
+ { "stickY", LVT_F32, offsetof(struct Controller, stickY), false, LOT_NONE },
+ { "stickMag", LVT_F32, offsetof(struct Controller, stickMag), false, LOT_NONE },
+ { "buttonDown", LVT_U16, offsetof(struct Controller, buttonDown), false, LOT_NONE },
+ { "buttonPressed", LVT_U16, offsetof(struct Controller, buttonPressed), false, LOT_NONE },
+// { "statusData", LVT_???, offsetof(struct Controller, statusData), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "controllerData", LVT_???, offsetof(struct Controller, controllerData), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "port", LVT_S32, offsetof(struct Controller, port), false, LOT_NONE },
+ { "extStickX", LVT_S16, offsetof(struct Controller, extStickX), false, LOT_NONE },
+ { "extStickY", LVT_S16, offsetof(struct Controller, extStickY), false, LOT_NONE },
+};
+
+#define LUA_ANIMATION_FIELD_COUNT 7
+static struct LuaObjectField sAnimationFields[LUA_ANIMATION_FIELD_COUNT] = {
+ { "flags", LVT_S16, offsetof(struct Animation, flags), false, LOT_NONE },
+ { "animYTransDivisor", LVT_S16, offsetof(struct Animation, unk02), false, LOT_NONE },
+ { "startFrame", LVT_S16, offsetof(struct Animation, unk04), false, LOT_NONE },
+ { "loopStart", LVT_S16, offsetof(struct Animation, unk06), false, LOT_NONE },
+ { "loopEnd", LVT_S16, offsetof(struct Animation, unk08), false, LOT_NONE },
+ { "unusedBoneCount", LVT_S16, offsetof(struct Animation, unk0A), false, LOT_NONE },
+// { "values", LVT_???, offsetof(struct Animation, values), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "index", LVT_???, offsetof(struct Animation, index), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "length", LVT_U32, offsetof(struct Animation, length), false, LOT_NONE },
+};
+
+#define LUA_GRAPH_NODE_FIELD_COUNT 6
+static struct LuaObjectField sGraphNodeFields[LUA_GRAPH_NODE_FIELD_COUNT] = {
+ { "type", LVT_S16, offsetof(struct GraphNode, type), false, LOT_NONE },
+ { "flags", LVT_S16, offsetof(struct GraphNode, flags), false, LOT_NONE },
+ { "prev", LVT_COBJECT_P, offsetof(struct GraphNode, prev), false, LOT_GRAPHNODE },
+ { "next", LVT_COBJECT_P, offsetof(struct GraphNode, next), false, LOT_GRAPHNODE },
+ { "parent", LVT_COBJECT_P, offsetof(struct GraphNode, parent), false, LOT_GRAPHNODE },
+ { "children", LVT_COBJECT_P, offsetof(struct GraphNode, children), false, LOT_GRAPHNODE },
+};
+
+#define LUA_GRAPH_NODE_OBJECT_SUB_FIELD_COUNT 11
+static struct LuaObjectField sGraphNodeObject_subFields[LUA_GRAPH_NODE_OBJECT_SUB_FIELD_COUNT] = {
+ { "animID", LVT_S16, offsetof(struct GraphNodeObject_sub, animID), false, LOT_NONE },
+ { "animYTrans", LVT_S16, offsetof(struct GraphNodeObject_sub, animYTrans), false, LOT_NONE },
+ { "curAnim", LVT_COBJECT_P, offsetof(struct GraphNodeObject_sub, curAnim), false, LOT_ANIMATION },
+ { "animFrame", LVT_S16, offsetof(struct GraphNodeObject_sub, animFrame), false, LOT_NONE },
+ { "animTimer", LVT_U16, offsetof(struct GraphNodeObject_sub, animTimer), false, LOT_NONE },
+ { "animFrameAccelAssist", LVT_S32, offsetof(struct GraphNodeObject_sub, animFrameAccelAssist), false, LOT_NONE },
+ { "animAccel", LVT_S32, offsetof(struct GraphNodeObject_sub, animAccel), false, LOT_NONE },
+ { "prevAnimFrame", LVT_S16, offsetof(struct GraphNodeObject_sub, prevAnimFrame), false, LOT_NONE },
+ { "prevAnimID", LVT_S16, offsetof(struct GraphNodeObject_sub, prevAnimID), false, LOT_NONE },
+ { "prevAnimFrameTimestamp", LVT_U32, offsetof(struct GraphNodeObject_sub, prevAnimFrameTimestamp), false, LOT_NONE },
+ { "prevAnimPtr", LVT_COBJECT_P, offsetof(struct GraphNodeObject_sub, prevAnimPtr), false, LOT_ANIMATION },
+};
+
+#define LUA_GRAPH_NODE_OBJECT_FIELD_COUNT 19
+static struct LuaObjectField sGraphNodeObjectFields[LUA_GRAPH_NODE_OBJECT_FIELD_COUNT] = {
+ { "node", LVT_COBJECT, offsetof(struct GraphNodeObject, node), true, LOT_GRAPHNODE },
+ { "sharedChild", LVT_COBJECT_P, offsetof(struct GraphNodeObject, sharedChild), false, LOT_GRAPHNODE },
+ { "unk18", LVT_S8, offsetof(struct GraphNodeObject, unk18), false, LOT_NONE },
+ { "unk19", LVT_S8, offsetof(struct GraphNodeObject, unk19), false, LOT_NONE },
+ { "angle", LVT_COBJECT, offsetof(struct GraphNodeObject, angle), true, LOT_VEC3S },
+ { "pos", LVT_COBJECT, offsetof(struct GraphNodeObject, pos), true, LOT_VEC3F },
+ { "prevAngle", LVT_COBJECT, offsetof(struct GraphNodeObject, prevAngle), true, LOT_VEC3S },
+ { "prevPos", LVT_COBJECT, offsetof(struct GraphNodeObject, prevPos), true, LOT_VEC3F },
+ { "prevTimestamp", LVT_U32, offsetof(struct GraphNodeObject, prevTimestamp), false, LOT_NONE },
+ { "prevShadowPos", LVT_COBJECT, offsetof(struct GraphNodeObject, prevShadowPos), true, LOT_VEC3F },
+ { "prevShadowPosTimestamp", LVT_U32, offsetof(struct GraphNodeObject, prevShadowPosTimestamp), false, LOT_NONE },
+ { "scale", LVT_COBJECT, offsetof(struct GraphNodeObject, scale), true, LOT_VEC3F },
+ { "prevScale", LVT_COBJECT, offsetof(struct GraphNodeObject, prevScale), true, LOT_VEC3F },
+ { "prevScaleTimestamp", LVT_U32, offsetof(struct GraphNodeObject, prevScaleTimestamp), false, LOT_NONE },
+ { "animInfo", LVT_COBJECT, offsetof(struct GraphNodeObject, unk38), true, LOT_GRAPHNODEOBJECT_SUB },
+ { "unk4C", LVT_COBJECT_P, offsetof(struct GraphNodeObject, unk4C), false, LOT_SPAWNINFO },
+// { "throwMatrix", LVT_???, offsetof(struct GraphNodeObject, throwMatrix), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "prevThrowMatrix", LVT_???, offsetof(struct GraphNodeObject, prevThrowMatrix), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "prevThrowMatrixTimestamp", LVT_U32, offsetof(struct GraphNodeObject, prevThrowMatrixTimestamp), false, LOT_NONE },
+// { "throwMatrixInterpolated", LVT_???, offsetof(struct GraphNodeObject, throwMatrixInterpolated), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "cameraToObject", LVT_COBJECT, offsetof(struct GraphNodeObject, cameraToObject), true, LOT_VEC3F },
+ { "skipInterpolationTimestamp", LVT_U32, offsetof(struct GraphNodeObject, skipInterpolationTimestamp), false, LOT_NONE },
+};
+
+#define LUA_OBJECT_NODE_FIELD_COUNT 3
+static struct LuaObjectField sObjectNodeFields[LUA_OBJECT_NODE_FIELD_COUNT] = {
+ { "gfx", LVT_COBJECT, offsetof(struct ObjectNode, gfx), true, LOT_GRAPHNODEOBJECT },
+ { "next", LVT_COBJECT_P, offsetof(struct ObjectNode, next), false, LOT_OBJECTNODE },
+ { "prev", LVT_COBJECT_P, offsetof(struct ObjectNode, prev), false, LOT_OBJECTNODE },
+};
+
+#define LUA_OBJECT_FIELD_COUNT 21
+static struct LuaObjectField sObjectFields[LUA_OBJECT_FIELD_COUNT] = {
+ { "header", LVT_COBJECT, offsetof(struct Object, header), true, LOT_OBJECTNODE },
+ { "parentObj", LVT_COBJECT_P, offsetof(struct Object, parentObj), false, LOT_OBJECT },
+ { "prevObj", LVT_COBJECT_P, offsetof(struct Object, prevObj), false, LOT_OBJECT },
+ { "collidedObjInteractTypes", LVT_U32, offsetof(struct Object, collidedObjInteractTypes), false, LOT_NONE },
+ { "activeFlags", LVT_S16, offsetof(struct Object, activeFlags), false, LOT_NONE },
+ { "numCollidedObjs", LVT_S16, offsetof(struct Object, numCollidedObjs), false, LOT_NONE },
+// { "collidedObjs", LVT_COBJECT_P, offsetof(struct Object, collidedObjs), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "rawData", LVT_???, offsetof(struct Object, rawData), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "ptrData", LVT_???, offsetof(struct Object, ptrData), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "unused1", LVT_U32, offsetof(struct Object, unused1), false, LOT_NONE },
+// { "curBhvCommand", LVT_???, offsetof(struct Object, curBhvCommand), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "bhvStackIndex", LVT_U32, offsetof(struct Object, bhvStackIndex), false, LOT_NONE },
+// { "bhvStack", LVT_???, offsetof(struct Object, bhvStack), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "bhvDelayTimer", LVT_S16, offsetof(struct Object, bhvDelayTimer), false, LOT_NONE },
+ { "respawnInfoType", LVT_S16, offsetof(struct Object, respawnInfoType), false, LOT_NONE },
+ { "hitboxRadius", LVT_F32, offsetof(struct Object, hitboxRadius), false, LOT_NONE },
+ { "hitboxHeight", LVT_F32, offsetof(struct Object, hitboxHeight), false, LOT_NONE },
+ { "hurtboxRadius", LVT_F32, offsetof(struct Object, hurtboxRadius), false, LOT_NONE },
+ { "hurtboxHeight", LVT_F32, offsetof(struct Object, hurtboxHeight), false, LOT_NONE },
+ { "hitboxDownOffset", LVT_F32, offsetof(struct Object, hitboxDownOffset), false, LOT_NONE },
+// { "behavior", LVT_???, offsetof(struct Object, behavior), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "heldByPlayerIndex", LVT_U32, offsetof(struct Object, heldByPlayerIndex), false, LOT_NONE },
+ { "platform", LVT_COBJECT_P, offsetof(struct Object, platform), false, LOT_OBJECT },
+// { "collisionData", LVT_???, offsetof(struct Object, collisionData), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "transform", LVT_???, offsetof(struct Object, transform), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "respawnInfo", LVT_???, offsetof(struct Object, respawnInfo), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "createdThroughNetwork", LVT_U8, offsetof(struct Object, createdThroughNetwork), false, LOT_NONE },
+// { "areaTimerType", LVT_???, offsetof(struct Object, areaTimerType), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "areaTimer", LVT_U32, offsetof(struct Object, areaTimer), false, LOT_NONE },
+ { "areaTimerDuration", LVT_U32, offsetof(struct Object, areaTimerDuration), false, LOT_NONE },
+// { "areaTimerRunOnceCallback)(void)", LVT_???, offsetof(struct Object, areaTimerRunOnceCallback)(void)), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "globalPlayerIndex", LVT_U8, offsetof(struct Object, globalPlayerIndex), false, LOT_NONE },
+};
+
+#define LUA_OBJECT_HITBOX_FIELD_COUNT 9
+static struct LuaObjectField sObjectHitboxFields[LUA_OBJECT_HITBOX_FIELD_COUNT] = {
+ { "interactType", LVT_U32, offsetof(struct ObjectHitbox, interactType), false, LOT_NONE },
+ { "downOffset", LVT_U8, offsetof(struct ObjectHitbox, downOffset), false, LOT_NONE },
+ { "damageOrCoinValue", LVT_S8, offsetof(struct ObjectHitbox, damageOrCoinValue), false, LOT_NONE },
+ { "health", LVT_S8, offsetof(struct ObjectHitbox, health), false, LOT_NONE },
+ { "numLootCoins", LVT_S8, offsetof(struct ObjectHitbox, numLootCoins), false, LOT_NONE },
+ { "radius", LVT_S16, offsetof(struct ObjectHitbox, radius), false, LOT_NONE },
+ { "height", LVT_S16, offsetof(struct ObjectHitbox, height), false, LOT_NONE },
+ { "hurtboxRadius", LVT_S16, offsetof(struct ObjectHitbox, hurtboxRadius), false, LOT_NONE },
+ { "hurtboxHeight", LVT_S16, offsetof(struct ObjectHitbox, hurtboxHeight), false, LOT_NONE },
+};
+
+#define LUA_WAYPOINT_FIELD_COUNT 2
+static struct LuaObjectField sWaypointFields[LUA_WAYPOINT_FIELD_COUNT] = {
+ { "flags", LVT_S16, offsetof(struct Waypoint, flags), false, LOT_NONE },
+ { "pos", LVT_COBJECT, offsetof(struct Waypoint, pos), true, LOT_VEC3S },
+};
+
+#define LUA_SURFACE_FIELD_COUNT 16
+static struct LuaObjectField sSurfaceFields[LUA_SURFACE_FIELD_COUNT] = {
+ { "type", LVT_S16, offsetof(struct Surface, type), false, LOT_NONE },
+ { "force", LVT_S16, offsetof(struct Surface, force), false, LOT_NONE },
+ { "flags", LVT_S8, offsetof(struct Surface, flags), false, LOT_NONE },
+ { "room", LVT_S8, offsetof(struct Surface, room), false, LOT_NONE },
+ { "lowerY", LVT_S16, offsetof(struct Surface, lowerY), false, LOT_NONE },
+ { "upperY", LVT_S16, offsetof(struct Surface, upperY), false, LOT_NONE },
+ { "vertex1", LVT_COBJECT, offsetof(struct Surface, vertex1), true, LOT_VEC3S },
+ { "vertex2", LVT_COBJECT, offsetof(struct Surface, vertex2), true, LOT_VEC3S },
+ { "vertex3", LVT_COBJECT, offsetof(struct Surface, vertex3), true, LOT_VEC3S },
+ { "normal", LVT_COBJECT, offsetof(struct Surface, normal), true, LOT_VEC3F },
+ { "originOffset", LVT_F32, offsetof(struct Surface, originOffset), false, LOT_NONE },
+ { "object", LVT_COBJECT_P, offsetof(struct Surface, object), false, LOT_OBJECT },
+ { "prevVertex1", LVT_COBJECT, offsetof(struct Surface, prevVertex1), true, LOT_VEC3S },
+ { "prevVertex2", LVT_COBJECT, offsetof(struct Surface, prevVertex2), true, LOT_VEC3S },
+ { "prevVertex3", LVT_COBJECT, offsetof(struct Surface, prevVertex3), true, LOT_VEC3S },
+ { "modifiedTimestamp", LVT_U32, offsetof(struct Surface, modifiedTimestamp), false, LOT_NONE },
+};
+
+#define LUA_MARIO_BODY_STATE_FIELD_COUNT 12
+static struct LuaObjectField sMarioBodyStateFields[LUA_MARIO_BODY_STATE_FIELD_COUNT] = {
+ { "action", LVT_U32, offsetof(struct MarioBodyState, action), false, LOT_NONE },
+ { "capState", LVT_S8, offsetof(struct MarioBodyState, capState), false, LOT_NONE },
+ { "eyeState", LVT_S8, offsetof(struct MarioBodyState, eyeState), false, LOT_NONE },
+ { "handState", LVT_S8, offsetof(struct MarioBodyState, handState), false, LOT_NONE },
+ { "wingFlutter", LVT_S8, offsetof(struct MarioBodyState, wingFlutter), false, LOT_NONE },
+ { "modelState", LVT_S16, offsetof(struct MarioBodyState, modelState), false, LOT_NONE },
+ { "grabPos", LVT_S8, offsetof(struct MarioBodyState, grabPos), false, LOT_NONE },
+ { "punchState", LVT_U8, offsetof(struct MarioBodyState, punchState), false, LOT_NONE },
+ { "torsoAngle", LVT_COBJECT, offsetof(struct MarioBodyState, torsoAngle), true, LOT_VEC3S },
+ { "headAngle", LVT_COBJECT, offsetof(struct MarioBodyState, headAngle), true, LOT_VEC3S },
+ { "heldObjLastPosition", LVT_COBJECT, offsetof(struct MarioBodyState, heldObjLastPosition), true, LOT_VEC3F },
+ { "torsoPos", LVT_COBJECT, offsetof(struct MarioBodyState, torsoPos), true, LOT_VEC3F },
+// { "handFootPos", LVT_???, offsetof(struct MarioBodyState, handFootPos), false, LOT_??? }, <--- UNIMPLEMENTED
+};
+
+#define LUA_OFFSET_SIZE_PAIR_FIELD_COUNT 2
+static struct LuaObjectField sOffsetSizePairFields[LUA_OFFSET_SIZE_PAIR_FIELD_COUNT] = {
+ { "offset", LVT_U32, offsetof(struct OffsetSizePair, offset), false, LOT_NONE },
+ { "size", LVT_U32, offsetof(struct OffsetSizePair, size), false, LOT_NONE },
+};
+
+#define LUA_MARIO_ANIMATION_FIELD_COUNT 1
+static struct LuaObjectField sMarioAnimationFields[LUA_MARIO_ANIMATION_FIELD_COUNT] = {
+// { "animDmaTable", LVT_COBJECT_P, offsetof(struct MarioAnimation, animDmaTable), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "currentAnimAddr", LVT_???, offsetof(struct MarioAnimation, currentAnimAddr), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "targetAnim", LVT_COBJECT_P, offsetof(struct MarioAnimation, targetAnim), false, LOT_ANIMATION },
+// { "padding", LVT_???, offsetof(struct MarioAnimation, padding), false, LOT_??? }, <--- UNIMPLEMENTED
+};
+
+#define LUA_MARIO_STATE_FIELD_COUNT 72
+static struct LuaObjectField sMarioStateFields[LUA_MARIO_STATE_FIELD_COUNT] = {
+ { "playerIndex", LVT_U16, offsetof(struct MarioState, playerIndex), false, LOT_NONE },
+ { "input", LVT_U16, offsetof(struct MarioState, input), false, LOT_NONE },
+ { "flags", LVT_U32, offsetof(struct MarioState, flags), false, LOT_NONE },
+ { "particleFlags", LVT_U32, offsetof(struct MarioState, particleFlags), false, LOT_NONE },
+ { "action", LVT_U32, offsetof(struct MarioState, action), false, LOT_NONE },
+ { "prevAction", LVT_U32, offsetof(struct MarioState, prevAction), false, LOT_NONE },
+ { "terrainSoundAddend", LVT_U32, offsetof(struct MarioState, terrainSoundAddend), false, LOT_NONE },
+ { "actionState", LVT_U16, offsetof(struct MarioState, actionState), false, LOT_NONE },
+ { "actionTimer", LVT_U16, offsetof(struct MarioState, actionTimer), false, LOT_NONE },
+ { "actionArg", LVT_U32, offsetof(struct MarioState, actionArg), false, LOT_NONE },
+ { "intendedMag", LVT_F32, offsetof(struct MarioState, intendedMag), false, LOT_NONE },
+ { "intendedYaw", LVT_S16, offsetof(struct MarioState, intendedYaw), false, LOT_NONE },
+ { "invincTimer", LVT_S16, offsetof(struct MarioState, invincTimer), false, LOT_NONE },
+ { "framesSinceA", LVT_U8, offsetof(struct MarioState, framesSinceA), false, LOT_NONE },
+ { "framesSinceB", LVT_U8, offsetof(struct MarioState, framesSinceB), false, LOT_NONE },
+ { "wallKickTimer", LVT_U8, offsetof(struct MarioState, wallKickTimer), false, LOT_NONE },
+ { "doubleJumpTimer", LVT_U8, offsetof(struct MarioState, doubleJumpTimer), false, LOT_NONE },
+ { "faceAngle", LVT_COBJECT, offsetof(struct MarioState, faceAngle), true, LOT_VEC3S },
+ { "angleVel", LVT_COBJECT, offsetof(struct MarioState, angleVel), true, LOT_VEC3S },
+ { "slideYaw", LVT_S16, offsetof(struct MarioState, slideYaw), false, LOT_NONE },
+ { "twirlYaw", LVT_S16, offsetof(struct MarioState, twirlYaw), false, LOT_NONE },
+ { "pos", LVT_COBJECT, offsetof(struct MarioState, pos), true, LOT_VEC3F },
+ { "vel", LVT_COBJECT, offsetof(struct MarioState, vel), true, LOT_VEC3F },
+ { "forwardVel", LVT_F32, offsetof(struct MarioState, forwardVel), false, LOT_NONE },
+ { "slideVelX", LVT_F32, offsetof(struct MarioState, slideVelX), false, LOT_NONE },
+ { "slideVelZ", LVT_F32, offsetof(struct MarioState, slideVelZ), false, LOT_NONE },
+ { "wall", LVT_COBJECT_P, offsetof(struct MarioState, wall), false, LOT_SURFACE },
+ { "ceil", LVT_COBJECT_P, offsetof(struct MarioState, ceil), false, LOT_SURFACE },
+ { "floor", LVT_COBJECT_P, offsetof(struct MarioState, floor), false, LOT_SURFACE },
+ { "ceilHeight", LVT_F32, offsetof(struct MarioState, ceilHeight), false, LOT_NONE },
+ { "floorHeight", LVT_F32, offsetof(struct MarioState, floorHeight), false, LOT_NONE },
+ { "floorAngle", LVT_S16, offsetof(struct MarioState, floorAngle), false, LOT_NONE },
+ { "waterLevel", LVT_S16, offsetof(struct MarioState, waterLevel), false, LOT_NONE },
+ { "interactObj", LVT_COBJECT_P, offsetof(struct MarioState, interactObj), false, LOT_OBJECT },
+ { "heldObj", LVT_COBJECT_P, offsetof(struct MarioState, heldObj), false, LOT_OBJECT },
+ { "usedObj", LVT_COBJECT_P, offsetof(struct MarioState, usedObj), false, LOT_OBJECT },
+ { "riddenObj", LVT_COBJECT_P, offsetof(struct MarioState, riddenObj), false, LOT_OBJECT },
+ { "marioObj", LVT_COBJECT_P, offsetof(struct MarioState, marioObj), false, LOT_OBJECT },
+ { "spawnInfo", LVT_COBJECT_P, offsetof(struct MarioState, spawnInfo), false, LOT_SPAWNINFO },
+ { "area", LVT_COBJECT_P, offsetof(struct MarioState, area), false, LOT_AREA },
+ { "statusForCamera", LVT_COBJECT_P, offsetof(struct MarioState, statusForCamera), false, LOT_PLAYERCAMERASTATE },
+ { "marioBodyState", LVT_COBJECT_P, offsetof(struct MarioState, marioBodyState), false, LOT_MARIOBODYSTATE },
+ { "controller", LVT_COBJECT_P, offsetof(struct MarioState, controller), false, LOT_CONTROLLER },
+ { "animation", LVT_COBJECT_P, offsetof(struct MarioState, animation), false, LOT_MARIOANIMATION },
+ { "collidedObjInteractTypes", LVT_U32, offsetof(struct MarioState, collidedObjInteractTypes), false, LOT_NONE },
+ { "numCoins", LVT_S16, offsetof(struct MarioState, numCoins), false, LOT_NONE },
+ { "numStars", LVT_S16, offsetof(struct MarioState, numStars), false, LOT_NONE },
+ { "numKeys", LVT_S8, offsetof(struct MarioState, numKeys), false, LOT_NONE },
+ { "numLives", LVT_S8, offsetof(struct MarioState, numLives), false, LOT_NONE },
+ { "health", LVT_S16, offsetof(struct MarioState, health), false, LOT_NONE },
+ { "unkB0", LVT_S16, offsetof(struct MarioState, unkB0), false, LOT_NONE },
+ { "hurtCounter", LVT_U8, offsetof(struct MarioState, hurtCounter), false, LOT_NONE },
+ { "healCounter", LVT_U8, offsetof(struct MarioState, healCounter), false, LOT_NONE },
+ { "squishTimer", LVT_U8, offsetof(struct MarioState, squishTimer), false, LOT_NONE },
+ { "fadeWarpOpacity", LVT_U8, offsetof(struct MarioState, fadeWarpOpacity), false, LOT_NONE },
+ { "capTimer", LVT_U16, offsetof(struct MarioState, capTimer), false, LOT_NONE },
+ { "prevNumStarsForDialog", LVT_S16, offsetof(struct MarioState, prevNumStarsForDialog), false, LOT_NONE },
+ { "peakHeight", LVT_F32, offsetof(struct MarioState, peakHeight), false, LOT_NONE },
+ { "quicksandDepth", LVT_F32, offsetof(struct MarioState, quicksandDepth), false, LOT_NONE },
+ { "unkC4", LVT_F32, offsetof(struct MarioState, unkC4), false, LOT_NONE },
+ { "currentRoom", LVT_S16, offsetof(struct MarioState, currentRoom), false, LOT_NONE },
+ { "heldByObj", LVT_COBJECT_P, offsetof(struct MarioState, heldByObj), false, LOT_OBJECT },
+ { "isSnoring", LVT_U8, offsetof(struct MarioState, isSnoring), false, LOT_NONE },
+ { "bubbleObj", LVT_COBJECT_P, offsetof(struct MarioState, bubbleObj), false, LOT_OBJECT },
+ { "freeze", LVT_U8, offsetof(struct MarioState, freeze), false, LOT_NONE },
+// { "splineKeyframe", LVT_???, offsetof(struct MarioState, splineKeyframe), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "splineKeyframeFraction", LVT_F32, offsetof(struct MarioState, splineKeyframeFraction), false, LOT_NONE },
+ { "splineState", LVT_S32, offsetof(struct MarioState, splineState), false, LOT_NONE },
+ { "nonInstantWarpPos", LVT_COBJECT, offsetof(struct MarioState, nonInstantWarpPos), true, LOT_VEC3F },
+ { "character", LVT_COBJECT_P, offsetof(struct MarioState, character), false, LOT_CHARACTER },
+ { "wasNetworkVisible", LVT_U8, offsetof(struct MarioState, wasNetworkVisible), false, LOT_NONE },
+ { "minimumBoneY", LVT_F32, offsetof(struct MarioState, minimumBoneY), false, LOT_NONE },
+ { "curAnimOffset", LVT_F32, offsetof(struct MarioState, curAnimOffset), false, LOT_NONE },
+};
+
+#define LUA_WARP_NODE_FIELD_COUNT 4
+static struct LuaObjectField sWarpNodeFields[LUA_WARP_NODE_FIELD_COUNT] = {
+ { "id", LVT_U8, offsetof(struct WarpNode, id), false, LOT_NONE },
+ { "destLevel", LVT_U8, offsetof(struct WarpNode, destLevel), false, LOT_NONE },
+ { "destArea", LVT_U8, offsetof(struct WarpNode, destArea), false, LOT_NONE },
+ { "destNode", LVT_U8, offsetof(struct WarpNode, destNode), false, LOT_NONE },
+};
+
+#define LUA_OBJECT_WARP_NODE_FIELD_COUNT 3
+static struct LuaObjectField sObjectWarpNodeFields[LUA_OBJECT_WARP_NODE_FIELD_COUNT] = {
+ { "node", LVT_COBJECT, offsetof(struct ObjectWarpNode, node), true, LOT_WARPNODE },
+ { "object", LVT_COBJECT_P, offsetof(struct ObjectWarpNode, object), false, LOT_OBJECT },
+ { "next", LVT_COBJECT_P, offsetof(struct ObjectWarpNode, next), false, LOT_OBJECTWARPNODE },
+};
+
+#define LUA_INSTANT_WARP_FIELD_COUNT 3
+static struct LuaObjectField sInstantWarpFields[LUA_INSTANT_WARP_FIELD_COUNT] = {
+ { "id", LVT_U8, offsetof(struct InstantWarp, id), false, LOT_NONE },
+ { "area", LVT_U8, offsetof(struct InstantWarp, area), false, LOT_NONE },
+ { "displacement", LVT_COBJECT, offsetof(struct InstantWarp, displacement), true, LOT_VEC3S },
+};
+
+#define LUA_SPAWN_INFO_FIELD_COUNT 7
+static struct LuaObjectField sSpawnInfoFields[LUA_SPAWN_INFO_FIELD_COUNT] = {
+ { "startPos", LVT_COBJECT, offsetof(struct SpawnInfo, startPos), true, LOT_VEC3S },
+ { "startAngle", LVT_COBJECT, offsetof(struct SpawnInfo, startAngle), true, LOT_VEC3S },
+ { "areaIndex", LVT_S8, offsetof(struct SpawnInfo, areaIndex), false, LOT_NONE },
+ { "activeAreaIndex", LVT_S8, offsetof(struct SpawnInfo, activeAreaIndex), false, LOT_NONE },
+ { "behaviorArg", LVT_U32, offsetof(struct SpawnInfo, behaviorArg), false, LOT_NONE },
+// { "behaviorScript", LVT_???, offsetof(struct SpawnInfo, behaviorScript), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "unk18", LVT_COBJECT_P, offsetof(struct SpawnInfo, unk18), false, LOT_GRAPHNODE },
+ { "next", LVT_COBJECT_P, offsetof(struct SpawnInfo, next), false, LOT_SPAWNINFO },
+};
+
+#define LUA_WHIRLPOOL_FIELD_COUNT 2
+static struct LuaObjectField sWhirlpoolFields[LUA_WHIRLPOOL_FIELD_COUNT] = {
+ { "pos", LVT_COBJECT, offsetof(struct Whirlpool, pos), true, LOT_VEC3S },
+ { "strength", LVT_S16, offsetof(struct Whirlpool, strength), false, LOT_NONE },
+};
+
+#define LUA_AREA_FIELD_COUNT 10
+static struct LuaObjectField sAreaFields[LUA_AREA_FIELD_COUNT] = {
+ { "index", LVT_S8, offsetof(struct Area, index), false, LOT_NONE },
+ { "flags", LVT_S8, offsetof(struct Area, flags), false, LOT_NONE },
+ { "terrainType", LVT_U16, offsetof(struct Area, terrainType), false, LOT_NONE },
+// { "unk04", LVT_COBJECT_P, offsetof(struct Area, unk04), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "terrainData", LVT_???, offsetof(struct Area, terrainData), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "surfaceRooms", LVT_???, offsetof(struct Area, surfaceRooms), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "macroObjects", LVT_???, offsetof(struct Area, macroObjects), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "warpNodes", LVT_COBJECT_P, offsetof(struct Area, warpNodes), false, LOT_OBJECTWARPNODE },
+ { "paintingWarpNodes", LVT_COBJECT_P, offsetof(struct Area, paintingWarpNodes), false, LOT_WARPNODE },
+ { "instantWarps", LVT_COBJECT_P, offsetof(struct Area, instantWarps), false, LOT_INSTANTWARP },
+ { "objectSpawnInfos", LVT_COBJECT_P, offsetof(struct Area, objectSpawnInfos), false, LOT_SPAWNINFO },
+ { "camera", LVT_COBJECT_P, offsetof(struct Area, camera), false, LOT_CAMERA },
+// { "unused28", LVT_COBJECT_P, offsetof(struct Area, unused28), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "whirlpools", LVT_COBJECT_P, offsetof(struct Area, whirlpools), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "dialog", LVT_???, offsetof(struct Area, dialog), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "musicParam", LVT_U16, offsetof(struct Area, musicParam), false, LOT_NONE },
+ { "musicParam2", LVT_U16, offsetof(struct Area, musicParam2), false, LOT_NONE },
+// { "cachedBehaviors", LVT_???, offsetof(struct Area, cachedBehaviors), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "cachedPositions", LVT_???, offsetof(struct Area, cachedPositions), false, LOT_??? }, <--- UNIMPLEMENTED
+};
+
+#define LUA_WARP_TRANSITION_DATA_FIELD_COUNT 10
+static struct LuaObjectField sWarpTransitionDataFields[LUA_WARP_TRANSITION_DATA_FIELD_COUNT] = {
+ { "red", LVT_U8, offsetof(struct WarpTransitionData, red), false, LOT_NONE },
+ { "green", LVT_U8, offsetof(struct WarpTransitionData, green), false, LOT_NONE },
+ { "blue", LVT_U8, offsetof(struct WarpTransitionData, blue), false, LOT_NONE },
+ { "startTexRadius", LVT_S16, offsetof(struct WarpTransitionData, startTexRadius), false, LOT_NONE },
+ { "endTexRadius", LVT_S16, offsetof(struct WarpTransitionData, endTexRadius), false, LOT_NONE },
+ { "startTexX", LVT_S16, offsetof(struct WarpTransitionData, startTexX), false, LOT_NONE },
+ { "startTexY", LVT_S16, offsetof(struct WarpTransitionData, startTexY), false, LOT_NONE },
+ { "endTexX", LVT_S16, offsetof(struct WarpTransitionData, endTexX), false, LOT_NONE },
+ { "endTexY", LVT_S16, offsetof(struct WarpTransitionData, endTexY), false, LOT_NONE },
+ { "texTimer", LVT_S16, offsetof(struct WarpTransitionData, texTimer), false, LOT_NONE },
+};
+
+#define LUA_WARP_TRANSITION_FIELD_COUNT 5
+static struct LuaObjectField sWarpTransitionFields[LUA_WARP_TRANSITION_FIELD_COUNT] = {
+ { "isActive", LVT_U8, offsetof(struct WarpTransition, isActive), false, LOT_NONE },
+ { "type", LVT_U8, offsetof(struct WarpTransition, type), false, LOT_NONE },
+ { "time", LVT_U8, offsetof(struct WarpTransition, time), false, LOT_NONE },
+ { "pauseRendering", LVT_U8, offsetof(struct WarpTransition, pauseRendering), false, LOT_NONE },
+ { "data", LVT_COBJECT, offsetof(struct WarpTransition, data), true, LOT_WARPTRANSITIONDATA },
+};
+
+#define LUA_PLAYER_CAMERA_STATE_FIELD_COUNT 7
+static struct LuaObjectField sPlayerCameraStateFields[LUA_PLAYER_CAMERA_STATE_FIELD_COUNT] = {
+ { "action", LVT_U32, offsetof(struct PlayerCameraState, action), false, LOT_NONE },
+ { "pos", LVT_COBJECT, offsetof(struct PlayerCameraState, pos), true, LOT_VEC3F },
+ { "faceAngle", LVT_COBJECT, offsetof(struct PlayerCameraState, faceAngle), true, LOT_VEC3S },
+ { "headRotation", LVT_COBJECT, offsetof(struct PlayerCameraState, headRotation), true, LOT_VEC3S },
+ { "unused", LVT_S16, offsetof(struct PlayerCameraState, unused), false, LOT_NONE },
+ { "cameraEvent", LVT_S16, offsetof(struct PlayerCameraState, cameraEvent), false, LOT_NONE },
+ { "usedObj", LVT_COBJECT_P, offsetof(struct PlayerCameraState, usedObj), false, LOT_OBJECT },
+};
+
+#define LUA_TRANSITION_INFO_FIELD_COUNT 9
+static struct LuaObjectField sTransitionInfoFields[LUA_TRANSITION_INFO_FIELD_COUNT] = {
+ { "posPitch", LVT_S16, offsetof(struct TransitionInfo, posPitch), false, LOT_NONE },
+ { "posYaw", LVT_S16, offsetof(struct TransitionInfo, posYaw), false, LOT_NONE },
+ { "posDist", LVT_F32, offsetof(struct TransitionInfo, posDist), false, LOT_NONE },
+ { "focPitch", LVT_S16, offsetof(struct TransitionInfo, focPitch), false, LOT_NONE },
+ { "focYaw", LVT_S16, offsetof(struct TransitionInfo, focYaw), false, LOT_NONE },
+ { "focDist", LVT_F32, offsetof(struct TransitionInfo, focDist), false, LOT_NONE },
+ { "framesLeft", LVT_S32, offsetof(struct TransitionInfo, framesLeft), false, LOT_NONE },
+ { "marioPos", LVT_COBJECT, offsetof(struct TransitionInfo, marioPos), true, LOT_VEC3F },
+ { "pad", LVT_U8, offsetof(struct TransitionInfo, pad), false, LOT_NONE },
+};
+
+#define LUA_HANDHELD_SHAKE_POINT_FIELD_COUNT 3
+static struct LuaObjectField sHandheldShakePointFields[LUA_HANDHELD_SHAKE_POINT_FIELD_COUNT] = {
+ { "index", LVT_S8, offsetof(struct HandheldShakePoint, index), false, LOT_NONE },
+ { "pad", LVT_U32, offsetof(struct HandheldShakePoint, pad), false, LOT_NONE },
+ { "point", LVT_COBJECT, offsetof(struct HandheldShakePoint, point), true, LOT_VEC3S },
+};
+
+#define LUA_CAMERA_TRIGGER_FIELD_COUNT 8
+static struct LuaObjectField sCameraTriggerFields[LUA_CAMERA_TRIGGER_FIELD_COUNT] = {
+ { "area", LVT_S8, offsetof(struct CameraTrigger, area), false, LOT_NONE },
+// { "event", LVT_???, offsetof(struct CameraTrigger, event), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "centerX", LVT_S16, offsetof(struct CameraTrigger, centerX), false, LOT_NONE },
+ { "centerY", LVT_S16, offsetof(struct CameraTrigger, centerY), false, LOT_NONE },
+ { "centerZ", LVT_S16, offsetof(struct CameraTrigger, centerZ), false, LOT_NONE },
+ { "boundsX", LVT_S16, offsetof(struct CameraTrigger, boundsX), false, LOT_NONE },
+ { "boundsY", LVT_S16, offsetof(struct CameraTrigger, boundsY), false, LOT_NONE },
+ { "boundsZ", LVT_S16, offsetof(struct CameraTrigger, boundsZ), false, LOT_NONE },
+ { "boundsYaw", LVT_S16, offsetof(struct CameraTrigger, boundsYaw), false, LOT_NONE },
+};
+
+#define LUA_CUTSCENE_FIELD_COUNT 1
+static struct LuaObjectField sCutsceneFields[LUA_CUTSCENE_FIELD_COUNT] = {
+// { "shot", LVT_???, offsetof(struct Cutscene, shot), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "duration", LVT_S16, offsetof(struct Cutscene, duration), false, LOT_NONE },
+};
+
+#define LUA_CAMERA_FOVSTATUS_FIELD_COUNT 8
+static struct LuaObjectField sCameraFOVStatusFields[LUA_CAMERA_FOVSTATUS_FIELD_COUNT] = {
+ { "fovFunc", LVT_U8, offsetof(struct CameraFOVStatus, fovFunc), false, LOT_NONE },
+ { "fov", LVT_F32, offsetof(struct CameraFOVStatus, fov), false, LOT_NONE },
+ { "fovOffset", LVT_F32, offsetof(struct CameraFOVStatus, fovOffset), false, LOT_NONE },
+ { "unusedIsSleeping", LVT_U32, offsetof(struct CameraFOVStatus, unusedIsSleeping), false, LOT_NONE },
+ { "shakeAmplitude", LVT_F32, offsetof(struct CameraFOVStatus, shakeAmplitude), false, LOT_NONE },
+ { "shakePhase", LVT_S16, offsetof(struct CameraFOVStatus, shakePhase), false, LOT_NONE },
+ { "shakeSpeed", LVT_S16, offsetof(struct CameraFOVStatus, shakeSpeed), false, LOT_NONE },
+ { "decay", LVT_S16, offsetof(struct CameraFOVStatus, decay), false, LOT_NONE },
+};
+
+#define LUA_CUTSCENE_SPLINE_POINT_FIELD_COUNT 3
+static struct LuaObjectField sCutsceneSplinePointFields[LUA_CUTSCENE_SPLINE_POINT_FIELD_COUNT] = {
+ { "index", LVT_S8, offsetof(struct CutsceneSplinePoint, index), false, LOT_NONE },
+ { "speed", LVT_U8, offsetof(struct CutsceneSplinePoint, speed), false, LOT_NONE },
+ { "point", LVT_COBJECT, offsetof(struct CutsceneSplinePoint, point), true, LOT_VEC3S },
+};
+
+#define LUA_PLAYER_GEOMETRY_FIELD_COUNT 13
+static struct LuaObjectField sPlayerGeometryFields[LUA_PLAYER_GEOMETRY_FIELD_COUNT] = {
+ { "currFloor", LVT_COBJECT_P, offsetof(struct PlayerGeometry, currFloor), false, LOT_SURFACE },
+ { "currFloorHeight", LVT_F32, offsetof(struct PlayerGeometry, currFloorHeight), false, LOT_NONE },
+ { "currFloorType", LVT_S16, offsetof(struct PlayerGeometry, currFloorType), false, LOT_NONE },
+ { "currCeil", LVT_COBJECT_P, offsetof(struct PlayerGeometry, currCeil), false, LOT_SURFACE },
+ { "currCeilType", LVT_S16, offsetof(struct PlayerGeometry, currCeilType), false, LOT_NONE },
+ { "currCeilHeight", LVT_F32, offsetof(struct PlayerGeometry, currCeilHeight), false, LOT_NONE },
+ { "prevFloor", LVT_COBJECT_P, offsetof(struct PlayerGeometry, prevFloor), false, LOT_SURFACE },
+ { "prevFloorHeight", LVT_F32, offsetof(struct PlayerGeometry, prevFloorHeight), false, LOT_NONE },
+ { "prevFloorType", LVT_S16, offsetof(struct PlayerGeometry, prevFloorType), false, LOT_NONE },
+ { "prevCeil", LVT_COBJECT_P, offsetof(struct PlayerGeometry, prevCeil), false, LOT_SURFACE },
+ { "prevCeilHeight", LVT_F32, offsetof(struct PlayerGeometry, prevCeilHeight), false, LOT_NONE },
+ { "prevCeilType", LVT_S16, offsetof(struct PlayerGeometry, prevCeilType), false, LOT_NONE },
+ { "waterHeight", LVT_F32, offsetof(struct PlayerGeometry, waterHeight), false, LOT_NONE },
+};
+
+#define LUA_LINEAR_TRANSITION_POINT_FIELD_COUNT 5
+static struct LuaObjectField sLinearTransitionPointFields[LUA_LINEAR_TRANSITION_POINT_FIELD_COUNT] = {
+ { "focus", LVT_COBJECT, offsetof(struct LinearTransitionPoint, focus), true, LOT_VEC3F },
+ { "pos", LVT_COBJECT, offsetof(struct LinearTransitionPoint, pos), true, LOT_VEC3F },
+ { "dist", LVT_F32, offsetof(struct LinearTransitionPoint, dist), false, LOT_NONE },
+ { "pitch", LVT_S16, offsetof(struct LinearTransitionPoint, pitch), false, LOT_NONE },
+ { "yaw", LVT_S16, offsetof(struct LinearTransitionPoint, yaw), false, LOT_NONE },
+};
+
+#define LUA_MODE_TRANSITION_INFO_FIELD_COUNT 6
+static struct LuaObjectField sModeTransitionInfoFields[LUA_MODE_TRANSITION_INFO_FIELD_COUNT] = {
+ { "newMode", LVT_S16, offsetof(struct ModeTransitionInfo, newMode), false, LOT_NONE },
+ { "lastMode", LVT_S16, offsetof(struct ModeTransitionInfo, lastMode), false, LOT_NONE },
+ { "max", LVT_S16, offsetof(struct ModeTransitionInfo, max), false, LOT_NONE },
+ { "frame", LVT_S16, offsetof(struct ModeTransitionInfo, frame), false, LOT_NONE },
+ { "transitionStart", LVT_COBJECT, offsetof(struct ModeTransitionInfo, transitionStart), true, LOT_LINEARTRANSITIONPOINT },
+ { "transitionEnd", LVT_COBJECT, offsetof(struct ModeTransitionInfo, transitionEnd), true, LOT_LINEARTRANSITIONPOINT },
+};
+
+#define LUA_PARALLEL_TRACKING_POINT_FIELD_COUNT 4
+static struct LuaObjectField sParallelTrackingPointFields[LUA_PARALLEL_TRACKING_POINT_FIELD_COUNT] = {
+ { "startOfPath", LVT_S16, offsetof(struct ParallelTrackingPoint, startOfPath), false, LOT_NONE },
+ { "pos", LVT_COBJECT, offsetof(struct ParallelTrackingPoint, pos), true, LOT_VEC3F },
+ { "distThresh", LVT_F32, offsetof(struct ParallelTrackingPoint, distThresh), false, LOT_NONE },
+ { "zoom", LVT_F32, offsetof(struct ParallelTrackingPoint, zoom), false, LOT_NONE },
+};
+
+#define LUA_CAMERA_STORED_INFO_FIELD_COUNT 4
+static struct LuaObjectField sCameraStoredInfoFields[LUA_CAMERA_STORED_INFO_FIELD_COUNT] = {
+ { "pos", LVT_COBJECT, offsetof(struct CameraStoredInfo, pos), true, LOT_VEC3F },
+ { "focus", LVT_COBJECT, offsetof(struct CameraStoredInfo, focus), true, LOT_VEC3F },
+ { "panDist", LVT_F32, offsetof(struct CameraStoredInfo, panDist), false, LOT_NONE },
+ { "cannonYOffset", LVT_F32, offsetof(struct CameraStoredInfo, cannonYOffset), false, LOT_NONE },
+};
+
+#define LUA_CUTSCENE_VARIABLE_FIELD_COUNT 5
+static struct LuaObjectField sCutsceneVariableFields[LUA_CUTSCENE_VARIABLE_FIELD_COUNT] = {
+ { "unused1", LVT_S32, offsetof(struct CutsceneVariable, unused1), false, LOT_NONE },
+ { "point", LVT_COBJECT, offsetof(struct CutsceneVariable, point), true, LOT_VEC3F },
+ { "unusedPoint", LVT_COBJECT, offsetof(struct CutsceneVariable, unusedPoint), true, LOT_VEC3F },
+ { "angle", LVT_COBJECT, offsetof(struct CutsceneVariable, angle), true, LOT_VEC3S },
+ { "unused2", LVT_S16, offsetof(struct CutsceneVariable, unused2), false, LOT_NONE },
+};
+
+#define LUA_CAMERA_FIELD_COUNT 12
+static struct LuaObjectField sCameraFields[LUA_CAMERA_FIELD_COUNT] = {
+ { "mode", LVT_U8, offsetof(struct Camera, mode), false, LOT_NONE },
+ { "defMode", LVT_U8, offsetof(struct Camera, defMode), false, LOT_NONE },
+ { "yaw", LVT_S16, offsetof(struct Camera, yaw), false, LOT_NONE },
+ { "focus", LVT_COBJECT, offsetof(struct Camera, focus), true, LOT_VEC3F },
+ { "pos", LVT_COBJECT, offsetof(struct Camera, pos), true, LOT_VEC3F },
+ { "unusedVec1", LVT_COBJECT, offsetof(struct Camera, unusedVec1), true, LOT_VEC3F },
+ { "areaCenX", LVT_F32, offsetof(struct Camera, areaCenX), false, LOT_NONE },
+ { "areaCenZ", LVT_F32, offsetof(struct Camera, areaCenZ), false, LOT_NONE },
+ { "cutscene", LVT_U8, offsetof(struct Camera, cutscene), false, LOT_NONE },
+// { "filler31", LVT_???, offsetof(struct Camera, filler31), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "nextYaw", LVT_S16, offsetof(struct Camera, nextYaw), false, LOT_NONE },
+// { "filler3C", LVT_???, offsetof(struct Camera, filler3C), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "doorStatus", LVT_U8, offsetof(struct Camera, doorStatus), false, LOT_NONE },
+ { "areaCenY", LVT_F32, offsetof(struct Camera, areaCenY), false, LOT_NONE },
+};
+
+#define LUA_LAKITU_STATE_FIELD_COUNT 35
+static struct LuaObjectField sLakituStateFields[LUA_LAKITU_STATE_FIELD_COUNT] = {
+ { "curFocus", LVT_COBJECT, offsetof(struct LakituState, curFocus), true, LOT_VEC3F },
+ { "curPos", LVT_COBJECT, offsetof(struct LakituState, curPos), true, LOT_VEC3F },
+ { "goalFocus", LVT_COBJECT, offsetof(struct LakituState, goalFocus), true, LOT_VEC3F },
+ { "goalPos", LVT_COBJECT, offsetof(struct LakituState, goalPos), true, LOT_VEC3F },
+// { "filler30", LVT_???, offsetof(struct LakituState, filler30), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "mode", LVT_U8, offsetof(struct LakituState, mode), false, LOT_NONE },
+ { "defMode", LVT_U8, offsetof(struct LakituState, defMode), false, LOT_NONE },
+// { "filler3E", LVT_???, offsetof(struct LakituState, filler3E), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "focusDistance", LVT_F32, offsetof(struct LakituState, focusDistance), false, LOT_NONE },
+ { "oldPitch", LVT_S16, offsetof(struct LakituState, oldPitch), false, LOT_NONE },
+ { "oldYaw", LVT_S16, offsetof(struct LakituState, oldYaw), false, LOT_NONE },
+ { "oldRoll", LVT_S16, offsetof(struct LakituState, oldRoll), false, LOT_NONE },
+ { "shakeMagnitude", LVT_COBJECT, offsetof(struct LakituState, shakeMagnitude), true, LOT_VEC3S },
+ { "shakePitchPhase", LVT_S16, offsetof(struct LakituState, shakePitchPhase), false, LOT_NONE },
+ { "shakePitchVel", LVT_S16, offsetof(struct LakituState, shakePitchVel), false, LOT_NONE },
+ { "shakePitchDecay", LVT_S16, offsetof(struct LakituState, shakePitchDecay), false, LOT_NONE },
+ { "unusedVec1", LVT_COBJECT, offsetof(struct LakituState, unusedVec1), true, LOT_VEC3F },
+ { "unusedVec2", LVT_COBJECT, offsetof(struct LakituState, unusedVec2), true, LOT_VEC3S },
+// { "filler72", LVT_???, offsetof(struct LakituState, filler72), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "roll", LVT_S16, offsetof(struct LakituState, roll), false, LOT_NONE },
+ { "yaw", LVT_S16, offsetof(struct LakituState, yaw), false, LOT_NONE },
+ { "nextYaw", LVT_S16, offsetof(struct LakituState, nextYaw), false, LOT_NONE },
+ { "focus", LVT_COBJECT, offsetof(struct LakituState, focus), true, LOT_VEC3F },
+ { "pos", LVT_COBJECT, offsetof(struct LakituState, pos), true, LOT_VEC3F },
+ { "shakeRollPhase", LVT_S16, offsetof(struct LakituState, shakeRollPhase), false, LOT_NONE },
+ { "shakeRollVel", LVT_S16, offsetof(struct LakituState, shakeRollVel), false, LOT_NONE },
+ { "shakeRollDecay", LVT_S16, offsetof(struct LakituState, shakeRollDecay), false, LOT_NONE },
+ { "shakeYawPhase", LVT_S16, offsetof(struct LakituState, shakeYawPhase), false, LOT_NONE },
+ { "shakeYawVel", LVT_S16, offsetof(struct LakituState, shakeYawVel), false, LOT_NONE },
+ { "shakeYawDecay", LVT_S16, offsetof(struct LakituState, shakeYawDecay), false, LOT_NONE },
+ { "focHSpeed", LVT_F32, offsetof(struct LakituState, focHSpeed), false, LOT_NONE },
+ { "focVSpeed", LVT_F32, offsetof(struct LakituState, focVSpeed), false, LOT_NONE },
+ { "posHSpeed", LVT_F32, offsetof(struct LakituState, posHSpeed), false, LOT_NONE },
+ { "posVSpeed", LVT_F32, offsetof(struct LakituState, posVSpeed), false, LOT_NONE },
+ { "keyDanceRoll", LVT_S16, offsetof(struct LakituState, keyDanceRoll), false, LOT_NONE },
+ { "lastFrameAction", LVT_U32, offsetof(struct LakituState, lastFrameAction), false, LOT_NONE },
+ { "unused", LVT_S16, offsetof(struct LakituState, unused), false, LOT_NONE },
+ { "skipCameraInterpolationTimestamp", LVT_U32, offsetof(struct LakituState, skipCameraInterpolationTimestamp), false, LOT_NONE },
+};
+
+#define LUA_CHARACTER_FIELD_COUNT 54
+static struct LuaObjectField sCharacterFields[LUA_CHARACTER_FIELD_COUNT] = {
+// { "name", LVT_???, offsetof(struct Character, name), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "hudHead", LVT_???, offsetof(struct Character, hudHead), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "hudHeadTexture", LVT_???, offsetof(struct Character, hudHeadTexture), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "cameraHudHead", LVT_U32, offsetof(struct Character, cameraHudHead), false, LOT_NONE },
+ { "modelId", LVT_U32, offsetof(struct Character, modelId), false, LOT_NONE },
+ { "capModelId", LVT_U32, offsetof(struct Character, capModelId), false, LOT_NONE },
+ { "capMetalModelId", LVT_U32, offsetof(struct Character, capMetalModelId), false, LOT_NONE },
+ { "capWingModelId", LVT_U32, offsetof(struct Character, capWingModelId), false, LOT_NONE },
+ { "capMetalWingModelId", LVT_U32, offsetof(struct Character, capMetalWingModelId), false, LOT_NONE },
+ { "capEnemyLayer", LVT_U8, offsetof(struct Character, capEnemyLayer), false, LOT_NONE },
+// { "capEnemyGfx", LVT_???, offsetof(struct Character, capEnemyGfx), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "capEnemyDecalGfx", LVT_???, offsetof(struct Character, capEnemyDecalGfx), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "animOffsetEnabled", LVT_U8, offsetof(struct Character, animOffsetEnabled), false, LOT_NONE },
+ { "animOffsetLowYPoint", LVT_F32, offsetof(struct Character, animOffsetLowYPoint), false, LOT_NONE },
+ { "animOffsetFeet", LVT_F32, offsetof(struct Character, animOffsetFeet), false, LOT_NONE },
+ { "animOffsetHand", LVT_F32, offsetof(struct Character, animOffsetHand), false, LOT_NONE },
+ { "soundFreqScale", LVT_F32, offsetof(struct Character, soundFreqScale), false, LOT_NONE },
+ { "soundYahWahHoo", LVT_S32, offsetof(struct Character, soundYahWahHoo), false, LOT_NONE },
+ { "soundHoohoo", LVT_S32, offsetof(struct Character, soundHoohoo), false, LOT_NONE },
+ { "soundYahoo", LVT_S32, offsetof(struct Character, soundYahoo), false, LOT_NONE },
+ { "soundUh", LVT_S32, offsetof(struct Character, soundUh), false, LOT_NONE },
+ { "soundHrmm", LVT_S32, offsetof(struct Character, soundHrmm), false, LOT_NONE },
+ { "soundWah2", LVT_S32, offsetof(struct Character, soundWah2), false, LOT_NONE },
+ { "soundWhoa", LVT_S32, offsetof(struct Character, soundWhoa), false, LOT_NONE },
+ { "soundEeuh", LVT_S32, offsetof(struct Character, soundEeuh), false, LOT_NONE },
+ { "soundAttacked", LVT_S32, offsetof(struct Character, soundAttacked), false, LOT_NONE },
+ { "soundOoof", LVT_S32, offsetof(struct Character, soundOoof), false, LOT_NONE },
+ { "soundOoof2", LVT_S32, offsetof(struct Character, soundOoof2), false, LOT_NONE },
+ { "soundHereWeGo", LVT_S32, offsetof(struct Character, soundHereWeGo), false, LOT_NONE },
+ { "soundYawning", LVT_S32, offsetof(struct Character, soundYawning), false, LOT_NONE },
+ { "soundSnoring1", LVT_S32, offsetof(struct Character, soundSnoring1), false, LOT_NONE },
+ { "soundSnoring2", LVT_S32, offsetof(struct Character, soundSnoring2), false, LOT_NONE },
+ { "soundWaaaooow", LVT_S32, offsetof(struct Character, soundWaaaooow), false, LOT_NONE },
+ { "soundHaha", LVT_S32, offsetof(struct Character, soundHaha), false, LOT_NONE },
+ { "soundHaha_2", LVT_S32, offsetof(struct Character, soundHaha_2), false, LOT_NONE },
+ { "soundUh2", LVT_S32, offsetof(struct Character, soundUh2), false, LOT_NONE },
+ { "soundUh2_2", LVT_S32, offsetof(struct Character, soundUh2_2), false, LOT_NONE },
+ { "soundOnFire", LVT_S32, offsetof(struct Character, soundOnFire), false, LOT_NONE },
+ { "soundDying", LVT_S32, offsetof(struct Character, soundDying), false, LOT_NONE },
+ { "soundPantingCold", LVT_S32, offsetof(struct Character, soundPantingCold), false, LOT_NONE },
+ { "soundPanting", LVT_S32, offsetof(struct Character, soundPanting), false, LOT_NONE },
+ { "soundCoughing1", LVT_S32, offsetof(struct Character, soundCoughing1), false, LOT_NONE },
+ { "soundCoughing2", LVT_S32, offsetof(struct Character, soundCoughing2), false, LOT_NONE },
+ { "soundCoughing3", LVT_S32, offsetof(struct Character, soundCoughing3), false, LOT_NONE },
+ { "soundPunchYah", LVT_S32, offsetof(struct Character, soundPunchYah), false, LOT_NONE },
+ { "soundPunchHoo", LVT_S32, offsetof(struct Character, soundPunchHoo), false, LOT_NONE },
+ { "soundMamaMia", LVT_S32, offsetof(struct Character, soundMamaMia), false, LOT_NONE },
+ { "soundGroundPoundWah", LVT_S32, offsetof(struct Character, soundGroundPoundWah), false, LOT_NONE },
+ { "soundDrowning", LVT_S32, offsetof(struct Character, soundDrowning), false, LOT_NONE },
+ { "soundPunchWah", LVT_S32, offsetof(struct Character, soundPunchWah), false, LOT_NONE },
+ { "soundYahooWahaYippee", LVT_S32, offsetof(struct Character, soundYahooWahaYippee), false, LOT_NONE },
+ { "soundDoh", LVT_S32, offsetof(struct Character, soundDoh), false, LOT_NONE },
+ { "soundGameOver", LVT_S32, offsetof(struct Character, soundGameOver), false, LOT_NONE },
+ { "soundHello", LVT_S32, offsetof(struct Character, soundHello), false, LOT_NONE },
+ { "soundPressStartToPlay", LVT_S32, offsetof(struct Character, soundPressStartToPlay), false, LOT_NONE },
+ { "soundTwirlBounce", LVT_S32, offsetof(struct Character, soundTwirlBounce), false, LOT_NONE },
+ { "soundSnoring3", LVT_S32, offsetof(struct Character, soundSnoring3), false, LOT_NONE },
+ { "soundSoLongaBowser", LVT_S32, offsetof(struct Character, soundSoLongaBowser), false, LOT_NONE },
+ { "soundImaTired", LVT_S32, offsetof(struct Character, soundImaTired), false, LOT_NONE },
+};
+
+struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] = {
+ { LOT_CONTROLLER, sControllerFields, LUA_CONTROLLER_FIELD_COUNT },
+ { LOT_ANIMATION, sAnimationFields, LUA_ANIMATION_FIELD_COUNT },
+ { LOT_GRAPHNODE, sGraphNodeFields, LUA_GRAPH_NODE_FIELD_COUNT },
+ { LOT_GRAPHNODEOBJECT_SUB, sGraphNodeObject_subFields, LUA_GRAPH_NODE_OBJECT_SUB_FIELD_COUNT },
+ { LOT_GRAPHNODEOBJECT, sGraphNodeObjectFields, LUA_GRAPH_NODE_OBJECT_FIELD_COUNT },
+ { LOT_OBJECTNODE, sObjectNodeFields, LUA_OBJECT_NODE_FIELD_COUNT },
+ { LOT_OBJECT, sObjectFields, LUA_OBJECT_FIELD_COUNT },
+ { LOT_OBJECTHITBOX, sObjectHitboxFields, LUA_OBJECT_HITBOX_FIELD_COUNT },
+ { LOT_WAYPOINT, sWaypointFields, LUA_WAYPOINT_FIELD_COUNT },
+ { LOT_SURFACE, sSurfaceFields, LUA_SURFACE_FIELD_COUNT },
+ { LOT_MARIOBODYSTATE, sMarioBodyStateFields, LUA_MARIO_BODY_STATE_FIELD_COUNT },
+ { LOT_OFFSETSIZEPAIR, sOffsetSizePairFields, LUA_OFFSET_SIZE_PAIR_FIELD_COUNT },
+ { LOT_MARIOANIMATION, sMarioAnimationFields, LUA_MARIO_ANIMATION_FIELD_COUNT },
+ { LOT_MARIOSTATE, sMarioStateFields, LUA_MARIO_STATE_FIELD_COUNT },
+ { LOT_WARPNODE, sWarpNodeFields, LUA_WARP_NODE_FIELD_COUNT },
+ { LOT_OBJECTWARPNODE, sObjectWarpNodeFields, LUA_OBJECT_WARP_NODE_FIELD_COUNT },
+ { LOT_INSTANTWARP, sInstantWarpFields, LUA_INSTANT_WARP_FIELD_COUNT },
+ { LOT_SPAWNINFO, sSpawnInfoFields, LUA_SPAWN_INFO_FIELD_COUNT },
+ { LOT_WHIRLPOOL, sWhirlpoolFields, LUA_WHIRLPOOL_FIELD_COUNT },
+ { LOT_AREA, sAreaFields, LUA_AREA_FIELD_COUNT },
+ { LOT_WARPTRANSITIONDATA, sWarpTransitionDataFields, LUA_WARP_TRANSITION_DATA_FIELD_COUNT },
+ { LOT_WARPTRANSITION, sWarpTransitionFields, LUA_WARP_TRANSITION_FIELD_COUNT },
+ { LOT_PLAYERCAMERASTATE, sPlayerCameraStateFields, LUA_PLAYER_CAMERA_STATE_FIELD_COUNT },
+ { LOT_TRANSITIONINFO, sTransitionInfoFields, LUA_TRANSITION_INFO_FIELD_COUNT },
+ { LOT_HANDHELDSHAKEPOINT, sHandheldShakePointFields, LUA_HANDHELD_SHAKE_POINT_FIELD_COUNT },
+ { LOT_CAMERATRIGGER, sCameraTriggerFields, LUA_CAMERA_TRIGGER_FIELD_COUNT },
+ { LOT_CUTSCENE, sCutsceneFields, LUA_CUTSCENE_FIELD_COUNT },
+ { LOT_CAMERAFOVSTATUS, sCameraFOVStatusFields, LUA_CAMERA_FOVSTATUS_FIELD_COUNT },
+ { LOT_CUTSCENESPLINEPOINT, sCutsceneSplinePointFields, LUA_CUTSCENE_SPLINE_POINT_FIELD_COUNT },
+ { LOT_PLAYERGEOMETRY, sPlayerGeometryFields, LUA_PLAYER_GEOMETRY_FIELD_COUNT },
+ { LOT_LINEARTRANSITIONPOINT, sLinearTransitionPointFields, LUA_LINEAR_TRANSITION_POINT_FIELD_COUNT },
+ { LOT_MODETRANSITIONINFO, sModeTransitionInfoFields, LUA_MODE_TRANSITION_INFO_FIELD_COUNT },
+ { LOT_PARALLELTRACKINGPOINT, sParallelTrackingPointFields, LUA_PARALLEL_TRACKING_POINT_FIELD_COUNT },
+ { LOT_CAMERASTOREDINFO, sCameraStoredInfoFields, LUA_CAMERA_STORED_INFO_FIELD_COUNT },
+ { LOT_CUTSCENEVARIABLE, sCutsceneVariableFields, LUA_CUTSCENE_VARIABLE_FIELD_COUNT },
+ { LOT_CAMERA, sCameraFields, LUA_CAMERA_FIELD_COUNT },
+ { LOT_LAKITUSTATE, sLakituStateFields, LUA_LAKITU_STATE_FIELD_COUNT },
+ { LOT_CHARACTER, sCharacterFields, LUA_CHARACTER_FIELD_COUNT },
+};
+
+struct LuaObjectField* smlua_get_object_field_autogen(u16 lot, const char* key) {
+ struct LuaObjectTable* ot = &sLuaObjectAutogenTable[lot - LOT_AUTOGEN_MIN - 1];
+ // TODO: change this to binary search or hash table or something
+ for (int i = 0; i < ot->fieldCount; i++) {
+ if (!strcmp(ot->fields[i].key, key)) {
+ return &ot->fields[i];
+ }
+ }
+ return NULL;
+}
+
diff --git a/src/pc/lua/smlua_cobject_autogen.h b/src/pc/lua/smlua_cobject_autogen.h
new file mode 100644
index 00000000..e1f3a967
--- /dev/null
+++ b/src/pc/lua/smlua_cobject_autogen.h
@@ -0,0 +1,49 @@
+#ifndef SMLUA_COBJECT_AUTOGEN_H
+#define SMLUA_COBJECT_AUTOGEN_H
+
+enum LuaObjectAutogenType {
+ LOT_AUTOGEN_MIN = 1000,
+ LOT_CONTROLLER,
+ LOT_ANIMATION,
+ LOT_GRAPHNODE,
+ LOT_GRAPHNODEOBJECT_SUB,
+ LOT_GRAPHNODEOBJECT,
+ LOT_OBJECTNODE,
+ LOT_OBJECT,
+ LOT_OBJECTHITBOX,
+ LOT_WAYPOINT,
+ LOT_SURFACE,
+ LOT_MARIOBODYSTATE,
+ LOT_OFFSETSIZEPAIR,
+ LOT_MARIOANIMATION,
+ LOT_MARIOSTATE,
+ LOT_WARPNODE,
+ LOT_OBJECTWARPNODE,
+ LOT_INSTANTWARP,
+ LOT_SPAWNINFO,
+ LOT_WHIRLPOOL,
+ LOT_AREA,
+ LOT_WARPTRANSITIONDATA,
+ LOT_WARPTRANSITION,
+ LOT_PLAYERCAMERASTATE,
+ LOT_TRANSITIONINFO,
+ LOT_HANDHELDSHAKEPOINT,
+ LOT_CAMERATRIGGER,
+ LOT_CUTSCENE,
+ LOT_CAMERAFOVSTATUS,
+ LOT_CUTSCENESPLINEPOINT,
+ LOT_PLAYERGEOMETRY,
+ LOT_LINEARTRANSITIONPOINT,
+ LOT_MODETRANSITIONINFO,
+ LOT_PARALLELTRACKINGPOINT,
+ LOT_CAMERASTOREDINFO,
+ LOT_CUTSCENEVARIABLE,
+ LOT_CAMERA,
+ LOT_LAKITUSTATE,
+ LOT_CHARACTER,
+ LOT_AUTOGEN_MAX,
+};
+
+struct LuaObjectField* smlua_get_object_field_autogen(u16 lot, const char* key);
+
+#endif
diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c
index 1a886e73..b6952dde 100644
--- a/src/pc/lua/smlua_functions_autogen.c
+++ b/src/pc/lua/smlua_functions_autogen.c
@@ -90,7 +90,7 @@ int smlua_func_play_sound(lua_State* L) {
int smlua_func_is_anim_at_end(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, is_anim_at_end(m));
@@ -101,7 +101,7 @@ int smlua_func_is_anim_at_end(lua_State* L) {
int smlua_func_is_anim_past_end(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, is_anim_past_end(m));
@@ -112,7 +112,7 @@ int smlua_func_is_anim_past_end(lua_State* L) {
int smlua_func_set_mario_animation(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 targetAnimID = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -125,7 +125,7 @@ int smlua_func_set_mario_animation(lua_State* L) {
int smlua_func_set_mario_anim_with_accel(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 targetAnimID = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -140,7 +140,7 @@ int smlua_func_set_mario_anim_with_accel(lua_State* L) {
int smlua_func_set_anim_to_frame(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s16 animFrame = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -153,7 +153,7 @@ int smlua_func_set_anim_to_frame(lua_State* L) {
int smlua_func_is_anim_past_frame(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s16 animFrame = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -191,7 +191,7 @@ int smlua_func_find_mario_anim_flags_and_translation(lua_State* L) {
int smlua_func_update_mario_pos_for_anim(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
update_mario_pos_for_anim(m);
@@ -202,7 +202,7 @@ int smlua_func_update_mario_pos_for_anim(lua_State* L) {
int smlua_func_return_mario_anim_y_translation(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, return_mario_anim_y_translation(m));
@@ -213,7 +213,7 @@ int smlua_func_return_mario_anim_y_translation(lua_State* L) {
int smlua_func_play_sound_if_no_flag(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 soundBits = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -228,7 +228,7 @@ int smlua_func_play_sound_if_no_flag(lua_State* L) {
int smlua_func_play_mario_jump_sound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
play_mario_jump_sound(m);
@@ -239,7 +239,7 @@ int smlua_func_play_mario_jump_sound(lua_State* L) {
int smlua_func_adjust_sound_for_speed(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
adjust_sound_for_speed(m);
@@ -250,7 +250,7 @@ int smlua_func_adjust_sound_for_speed(lua_State* L) {
int smlua_func_play_sound_and_spawn_particles(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 soundBits = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -265,7 +265,7 @@ int smlua_func_play_sound_and_spawn_particles(lua_State* L) {
int smlua_func_play_mario_action_sound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 soundBits = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -280,7 +280,7 @@ int smlua_func_play_mario_action_sound(lua_State* L) {
int smlua_func_play_mario_landing_sound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 soundBits = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -293,7 +293,7 @@ int smlua_func_play_mario_landing_sound(lua_State* L) {
int smlua_func_play_mario_landing_sound_once(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 soundBits = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -306,7 +306,7 @@ int smlua_func_play_mario_landing_sound_once(lua_State* L) {
int smlua_func_play_mario_heavy_landing_sound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 soundBits = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -319,7 +319,7 @@ int smlua_func_play_mario_heavy_landing_sound(lua_State* L) {
int smlua_func_play_mario_heavy_landing_sound_once(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 soundBits = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -332,7 +332,7 @@ int smlua_func_play_mario_heavy_landing_sound_once(lua_State* L) {
int smlua_func_play_mario_sound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 primarySoundBits = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -347,7 +347,7 @@ int smlua_func_play_mario_sound(lua_State* L) {
int smlua_func_mario_set_bubbled(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
mario_set_bubbled(m);
@@ -358,7 +358,7 @@ int smlua_func_mario_set_bubbled(lua_State* L) {
int smlua_func_mario_set_forward_vel(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32 speed = smlua_to_number(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -371,7 +371,7 @@ int smlua_func_mario_set_forward_vel(lua_State* L) {
int smlua_func_mario_get_floor_class(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, mario_get_floor_class(m));
@@ -382,7 +382,7 @@ int smlua_func_mario_get_floor_class(lua_State* L) {
int smlua_func_mario_get_terrain_sound_addend(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, mario_get_terrain_sound_addend(m));
@@ -447,7 +447,7 @@ int smlua_func_vec3f_find_ceil(lua_State* L) {
int smlua_func_mario_facing_downhill(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 turnYaw = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -460,7 +460,7 @@ int smlua_func_mario_facing_downhill(lua_State* L) {
int smlua_func_mario_floor_is_slippery(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, mario_floor_is_slippery(m));
@@ -471,7 +471,7 @@ int smlua_func_mario_floor_is_slippery(lua_State* L) {
int smlua_func_mario_floor_is_slope(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, mario_floor_is_slope(m));
@@ -482,7 +482,7 @@ int smlua_func_mario_floor_is_slope(lua_State* L) {
int smlua_func_mario_floor_is_steep(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, mario_floor_is_steep(m));
@@ -493,7 +493,7 @@ int smlua_func_mario_floor_is_steep(lua_State* L) {
int smlua_func_find_floor_height_relative_polar(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s16 angleFromMario = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -508,7 +508,7 @@ int smlua_func_find_floor_height_relative_polar(lua_State* L) {
int smlua_func_find_floor_slope(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s16 yawOffset = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -521,7 +521,7 @@ int smlua_func_find_floor_slope(lua_State* L) {
int smlua_func_update_mario_sound_and_camera(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
update_mario_sound_and_camera(m);
@@ -532,7 +532,7 @@ int smlua_func_update_mario_sound_and_camera(lua_State* L) {
int smlua_func_set_steep_jump_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
set_steep_jump_action(m);
@@ -543,7 +543,7 @@ int smlua_func_set_steep_jump_action(lua_State* L) {
int smlua_func_set_mario_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 action = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -558,7 +558,7 @@ int smlua_func_set_mario_action(lua_State* L) {
int smlua_func_set_jump_from_landing(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, set_jump_from_landing(m));
@@ -569,7 +569,7 @@ int smlua_func_set_jump_from_landing(lua_State* L) {
int smlua_func_set_jumping_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 action = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -584,7 +584,7 @@ int smlua_func_set_jumping_action(lua_State* L) {
int smlua_func_drop_and_set_mario_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 action = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -599,7 +599,7 @@ int smlua_func_drop_and_set_mario_action(lua_State* L) {
int smlua_func_hurt_and_set_mario_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 action = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -616,7 +616,7 @@ int smlua_func_hurt_and_set_mario_action(lua_State* L) {
int smlua_func_check_common_action_exits(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, check_common_action_exits(m));
@@ -627,7 +627,7 @@ int smlua_func_check_common_action_exits(lua_State* L) {
int smlua_func_check_common_hold_action_exits(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, check_common_hold_action_exits(m));
@@ -638,7 +638,7 @@ int smlua_func_check_common_hold_action_exits(lua_State* L) {
int smlua_func_transition_submerged_to_walking(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, transition_submerged_to_walking(m));
@@ -649,7 +649,7 @@ int smlua_func_transition_submerged_to_walking(lua_State* L) {
int smlua_func_set_water_plunge_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, set_water_plunge_action(m));
@@ -671,7 +671,7 @@ int smlua_func_execute_mario_action(lua_State* L) {
int smlua_func_force_idle_state(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, force_idle_state(m));
@@ -686,7 +686,7 @@ int smlua_func_force_idle_state(lua_State* L) {
int smlua_func_play_flip_sounds(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s16 frame1 = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -704,7 +704,7 @@ int smlua_func_play_flip_sounds(lua_State* L) {
int smlua_func_play_far_fall_sound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void play_far_fall_sound(struct MarioState *m);
@@ -716,7 +716,7 @@ int smlua_func_play_far_fall_sound(lua_State* L) {
int smlua_func_play_knockback_sound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void play_knockback_sound(struct MarioState *m);
@@ -728,7 +728,7 @@ int smlua_func_play_knockback_sound(lua_State* L) {
int smlua_func_lava_boost_on_wall(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 lava_boost_on_wall(struct MarioState *m);
@@ -740,7 +740,7 @@ int smlua_func_lava_boost_on_wall(lua_State* L) {
int smlua_func_check_fall_damage(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 hardFallAction = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -754,7 +754,7 @@ int smlua_func_check_fall_damage(lua_State* L) {
int smlua_func_check_kick_or_dive_in_air(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 check_kick_or_dive_in_air(struct MarioState *m);
@@ -766,7 +766,7 @@ int smlua_func_check_kick_or_dive_in_air(lua_State* L) {
int smlua_func_should_get_stuck_in_ground(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 should_get_stuck_in_ground(struct MarioState *m);
@@ -778,7 +778,7 @@ int smlua_func_should_get_stuck_in_ground(lua_State* L) {
int smlua_func_check_fall_damage_or_get_stuck(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 hardFallAction = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -792,7 +792,7 @@ int smlua_func_check_fall_damage_or_get_stuck(lua_State* L) {
int smlua_func_check_horizontal_wind(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 check_horizontal_wind(struct MarioState *m);
@@ -804,7 +804,7 @@ int smlua_func_check_horizontal_wind(lua_State* L) {
int smlua_func_update_air_with_turn(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void update_air_with_turn(struct MarioState *m);
@@ -816,7 +816,7 @@ int smlua_func_update_air_with_turn(lua_State* L) {
int smlua_func_update_air_without_turn(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void update_air_without_turn(struct MarioState *m);
@@ -828,7 +828,7 @@ int smlua_func_update_air_without_turn(lua_State* L) {
int smlua_func_update_lava_boost_or_twirling(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void update_lava_boost_or_twirling(struct MarioState *m);
@@ -840,7 +840,7 @@ int smlua_func_update_lava_boost_or_twirling(lua_State* L) {
int smlua_func_update_flying_yaw(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void update_flying_yaw(struct MarioState *m);
@@ -852,7 +852,7 @@ int smlua_func_update_flying_yaw(lua_State* L) {
int smlua_func_update_flying_pitch(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void update_flying_pitch(struct MarioState *m);
@@ -864,7 +864,7 @@ int smlua_func_update_flying_pitch(lua_State* L) {
int smlua_func_update_flying(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void update_flying(struct MarioState *m);
@@ -876,7 +876,7 @@ int smlua_func_update_flying(lua_State* L) {
int smlua_func_common_air_action_step(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 landAction = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -894,7 +894,7 @@ int smlua_func_common_air_action_step(lua_State* L) {
int smlua_func_act_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_jump(struct MarioState *m);
@@ -906,7 +906,7 @@ int smlua_func_act_jump(lua_State* L) {
int smlua_func_act_double_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_double_jump(struct MarioState *m);
@@ -918,7 +918,7 @@ int smlua_func_act_double_jump(lua_State* L) {
int smlua_func_act_triple_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_triple_jump(struct MarioState *m);
@@ -930,7 +930,7 @@ int smlua_func_act_triple_jump(lua_State* L) {
int smlua_func_act_backflip(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_backflip(struct MarioState *m);
@@ -942,7 +942,7 @@ int smlua_func_act_backflip(lua_State* L) {
int smlua_func_act_freefall(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_freefall(struct MarioState *m);
@@ -954,7 +954,7 @@ int smlua_func_act_freefall(lua_State* L) {
int smlua_func_act_hold_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_hold_jump(struct MarioState *m);
@@ -966,7 +966,7 @@ int smlua_func_act_hold_jump(lua_State* L) {
int smlua_func_act_hold_freefall(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_hold_freefall(struct MarioState *m);
@@ -978,7 +978,7 @@ int smlua_func_act_hold_freefall(lua_State* L) {
int smlua_func_act_side_flip(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_side_flip(struct MarioState *m);
@@ -990,7 +990,7 @@ int smlua_func_act_side_flip(lua_State* L) {
int smlua_func_act_wall_kick_air(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_wall_kick_air(struct MarioState *m);
@@ -1002,7 +1002,7 @@ int smlua_func_act_wall_kick_air(lua_State* L) {
int smlua_func_act_long_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_long_jump(struct MarioState *m);
@@ -1014,7 +1014,7 @@ int smlua_func_act_long_jump(lua_State* L) {
int smlua_func_act_riding_shell_air(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_riding_shell_air(struct MarioState *m);
@@ -1026,7 +1026,7 @@ int smlua_func_act_riding_shell_air(lua_State* L) {
int smlua_func_act_twirling(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_twirling(struct MarioState *m);
@@ -1038,7 +1038,7 @@ int smlua_func_act_twirling(lua_State* L) {
int smlua_func_act_dive(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_dive(struct MarioState *m);
@@ -1050,7 +1050,7 @@ int smlua_func_act_dive(lua_State* L) {
int smlua_func_act_air_throw(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_air_throw(struct MarioState *m);
@@ -1062,7 +1062,7 @@ int smlua_func_act_air_throw(lua_State* L) {
int smlua_func_act_water_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_water_jump(struct MarioState *m);
@@ -1074,7 +1074,7 @@ int smlua_func_act_water_jump(lua_State* L) {
int smlua_func_act_hold_water_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_hold_water_jump(struct MarioState *m);
@@ -1086,7 +1086,7 @@ int smlua_func_act_hold_water_jump(lua_State* L) {
int smlua_func_act_steep_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_steep_jump(struct MarioState *m);
@@ -1098,7 +1098,7 @@ int smlua_func_act_steep_jump(lua_State* L) {
int smlua_func_act_ground_pound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_ground_pound(struct MarioState *m);
@@ -1110,7 +1110,7 @@ int smlua_func_act_ground_pound(lua_State* L) {
int smlua_func_act_burning_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_burning_jump(struct MarioState *m);
@@ -1122,7 +1122,7 @@ int smlua_func_act_burning_jump(lua_State* L) {
int smlua_func_act_burning_fall(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_burning_fall(struct MarioState *m);
@@ -1134,7 +1134,7 @@ int smlua_func_act_burning_fall(lua_State* L) {
int smlua_func_act_crazy_box_bounce(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_crazy_box_bounce(struct MarioState *m);
@@ -1146,7 +1146,7 @@ int smlua_func_act_crazy_box_bounce(lua_State* L) {
int smlua_func_common_air_knockback_step(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 5)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 landAction = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -1166,7 +1166,7 @@ int smlua_func_common_air_knockback_step(lua_State* L) {
int smlua_func_check_wall_kick(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 check_wall_kick(struct MarioState *m);
@@ -1178,7 +1178,7 @@ int smlua_func_check_wall_kick(lua_State* L) {
int smlua_func_act_backward_air_kb(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_backward_air_kb(struct MarioState *m);
@@ -1190,7 +1190,7 @@ int smlua_func_act_backward_air_kb(lua_State* L) {
int smlua_func_act_forward_air_kb(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_forward_air_kb(struct MarioState *m);
@@ -1202,7 +1202,7 @@ int smlua_func_act_forward_air_kb(lua_State* L) {
int smlua_func_act_hard_backward_air_kb(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_hard_backward_air_kb(struct MarioState *m);
@@ -1214,7 +1214,7 @@ int smlua_func_act_hard_backward_air_kb(lua_State* L) {
int smlua_func_act_hard_forward_air_kb(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_hard_forward_air_kb(struct MarioState *m);
@@ -1226,7 +1226,7 @@ int smlua_func_act_hard_forward_air_kb(lua_State* L) {
int smlua_func_act_thrown_backward(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_thrown_backward(struct MarioState *m);
@@ -1238,7 +1238,7 @@ int smlua_func_act_thrown_backward(lua_State* L) {
int smlua_func_act_thrown_forward(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_thrown_forward(struct MarioState *m);
@@ -1250,7 +1250,7 @@ int smlua_func_act_thrown_forward(lua_State* L) {
int smlua_func_act_soft_bonk(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_soft_bonk(struct MarioState *m);
@@ -1262,7 +1262,7 @@ int smlua_func_act_soft_bonk(lua_State* L) {
int smlua_func_act_getting_blown(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_getting_blown(struct MarioState *m);
@@ -1274,7 +1274,7 @@ int smlua_func_act_getting_blown(lua_State* L) {
int smlua_func_act_air_hit_wall(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_air_hit_wall(struct MarioState *m);
@@ -1286,7 +1286,7 @@ int smlua_func_act_air_hit_wall(lua_State* L) {
int smlua_func_act_forward_rollout(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_forward_rollout(struct MarioState *m);
@@ -1298,7 +1298,7 @@ int smlua_func_act_forward_rollout(lua_State* L) {
int smlua_func_act_backward_rollout(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_backward_rollout(struct MarioState *m);
@@ -1310,7 +1310,7 @@ int smlua_func_act_backward_rollout(lua_State* L) {
int smlua_func_act_butt_slide_air(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_butt_slide_air(struct MarioState *m);
@@ -1322,7 +1322,7 @@ int smlua_func_act_butt_slide_air(lua_State* L) {
int smlua_func_act_hold_butt_slide_air(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_hold_butt_slide_air(struct MarioState *m);
@@ -1334,7 +1334,7 @@ int smlua_func_act_hold_butt_slide_air(lua_State* L) {
int smlua_func_act_lava_boost(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_lava_boost(struct MarioState *m);
@@ -1346,7 +1346,7 @@ int smlua_func_act_lava_boost(lua_State* L) {
int smlua_func_act_slide_kick(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_slide_kick(struct MarioState *m);
@@ -1358,7 +1358,7 @@ int smlua_func_act_slide_kick(lua_State* L) {
int smlua_func_act_jump_kick(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_jump_kick(struct MarioState *m);
@@ -1370,7 +1370,7 @@ int smlua_func_act_jump_kick(lua_State* L) {
int smlua_func_act_shot_from_cannon(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_shot_from_cannon(struct MarioState *m);
@@ -1382,7 +1382,7 @@ int smlua_func_act_shot_from_cannon(lua_State* L) {
int smlua_func_act_flying(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_flying(struct MarioState *m);
@@ -1394,7 +1394,7 @@ int smlua_func_act_flying(lua_State* L) {
int smlua_func_act_riding_hoot(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_riding_hoot(struct MarioState *m);
@@ -1406,7 +1406,7 @@ int smlua_func_act_riding_hoot(lua_State* L) {
int smlua_func_act_flying_triple_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_flying_triple_jump(struct MarioState *m);
@@ -1418,7 +1418,7 @@ int smlua_func_act_flying_triple_jump(lua_State* L) {
int smlua_func_act_top_of_pole_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_top_of_pole_jump(struct MarioState *m);
@@ -1430,7 +1430,7 @@ int smlua_func_act_top_of_pole_jump(lua_State* L) {
int smlua_func_act_vertical_wind(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_vertical_wind(struct MarioState *m);
@@ -1442,7 +1442,7 @@ int smlua_func_act_vertical_wind(lua_State* L) {
int smlua_func_act_special_triple_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_special_triple_jump(struct MarioState *m);
@@ -1454,7 +1454,7 @@ int smlua_func_act_special_triple_jump(lua_State* L) {
int smlua_func_check_common_airborne_cancels(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 check_common_airborne_cancels(struct MarioState *m);
@@ -1466,7 +1466,7 @@ int smlua_func_check_common_airborne_cancels(lua_State* L) {
int smlua_func_mario_execute_airborne_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 mario_execute_airborne_action(struct MarioState *m);
@@ -1482,7 +1482,7 @@ int smlua_func_mario_execute_airborne_action(lua_State* L) {
int smlua_func_add_tree_leaf_particles(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void add_tree_leaf_particles(struct MarioState *m);
@@ -1494,7 +1494,7 @@ int smlua_func_add_tree_leaf_particles(lua_State* L) {
int smlua_func_play_climbing_sounds(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 b = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -1508,7 +1508,7 @@ int smlua_func_play_climbing_sounds(lua_State* L) {
int smlua_func_set_pole_position(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32 offsetY = smlua_to_number(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -1522,7 +1522,7 @@ int smlua_func_set_pole_position(lua_State* L) {
int smlua_func_act_holding_pole(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_holding_pole(struct MarioState *m);
@@ -1534,7 +1534,7 @@ int smlua_func_act_holding_pole(lua_State* L) {
int smlua_func_act_climbing_pole(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_climbing_pole(struct MarioState *m);
@@ -1546,7 +1546,7 @@ int smlua_func_act_climbing_pole(lua_State* L) {
int smlua_func_act_grab_pole_slow(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_grab_pole_slow(struct MarioState *m);
@@ -1558,7 +1558,7 @@ int smlua_func_act_grab_pole_slow(lua_State* L) {
int smlua_func_act_grab_pole_fast(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_grab_pole_fast(struct MarioState *m);
@@ -1570,7 +1570,7 @@ int smlua_func_act_grab_pole_fast(lua_State* L) {
int smlua_func_act_top_of_pole_transition(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_top_of_pole_transition(struct MarioState *m);
@@ -1582,7 +1582,7 @@ int smlua_func_act_top_of_pole_transition(lua_State* L) {
int smlua_func_act_top_of_pole(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_top_of_pole(struct MarioState *m);
@@ -1594,7 +1594,7 @@ int smlua_func_act_top_of_pole(lua_State* L) {
int smlua_func_perform_hanging_step(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32* nextPos = smlua_get_vec3f_from_buffer();
@@ -1618,7 +1618,7 @@ int smlua_func_perform_hanging_step(lua_State* L) {
int smlua_func_update_hang_moving(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 update_hang_moving(struct MarioState *m);
@@ -1630,7 +1630,7 @@ int smlua_func_update_hang_moving(lua_State* L) {
int smlua_func_update_hang_stationary(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void update_hang_stationary(struct MarioState *m);
@@ -1642,7 +1642,7 @@ int smlua_func_update_hang_stationary(lua_State* L) {
int smlua_func_act_start_hanging(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_start_hanging(struct MarioState *m);
@@ -1654,7 +1654,7 @@ int smlua_func_act_start_hanging(lua_State* L) {
int smlua_func_act_hanging(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_hanging(struct MarioState *m);
@@ -1666,7 +1666,7 @@ int smlua_func_act_hanging(lua_State* L) {
int smlua_func_act_hang_moving(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_hang_moving(struct MarioState *m);
@@ -1678,7 +1678,7 @@ int smlua_func_act_hang_moving(lua_State* L) {
int smlua_func_let_go_of_ledge(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 let_go_of_ledge(struct MarioState *m);
@@ -1690,7 +1690,7 @@ int smlua_func_let_go_of_ledge(lua_State* L) {
int smlua_func_climb_up_ledge(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void climb_up_ledge(struct MarioState *m);
@@ -1702,7 +1702,7 @@ int smlua_func_climb_up_ledge(lua_State* L) {
int smlua_func_update_ledge_climb_camera(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void update_ledge_climb_camera(struct MarioState *m);
@@ -1714,7 +1714,7 @@ int smlua_func_update_ledge_climb_camera(lua_State* L) {
int smlua_func_update_ledge_climb(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 animation = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -1730,7 +1730,7 @@ int smlua_func_update_ledge_climb(lua_State* L) {
int smlua_func_act_ledge_grab(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_ledge_grab(struct MarioState *m);
@@ -1742,7 +1742,7 @@ int smlua_func_act_ledge_grab(lua_State* L) {
int smlua_func_act_ledge_climb_slow(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_ledge_climb_slow(struct MarioState *m);
@@ -1754,7 +1754,7 @@ int smlua_func_act_ledge_climb_slow(lua_State* L) {
int smlua_func_act_ledge_climb_down(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_ledge_climb_down(struct MarioState *m);
@@ -1766,7 +1766,7 @@ int smlua_func_act_ledge_climb_down(lua_State* L) {
int smlua_func_act_ledge_climb_fast(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_ledge_climb_fast(struct MarioState *m);
@@ -1778,7 +1778,7 @@ int smlua_func_act_ledge_climb_fast(lua_State* L) {
int smlua_func_act_grabbed(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_grabbed(struct MarioState *m);
@@ -1790,7 +1790,7 @@ int smlua_func_act_grabbed(lua_State* L) {
int smlua_func_act_in_cannon(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_in_cannon(struct MarioState *m);
@@ -1802,7 +1802,7 @@ int smlua_func_act_in_cannon(lua_State* L) {
int smlua_func_act_tornado_twirling(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_tornado_twirling(struct MarioState *m);
@@ -1814,7 +1814,7 @@ int smlua_func_act_tornado_twirling(lua_State* L) {
int smlua_func_act_bubbled(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 act_bubbled(struct MarioState* m);
@@ -1826,7 +1826,7 @@ int smlua_func_act_bubbled(lua_State* L) {
int smlua_func_check_common_automatic_cancels(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 check_common_automatic_cancels(struct MarioState *m);
@@ -1838,7 +1838,7 @@ int smlua_func_check_common_automatic_cancels(lua_State* L) {
int smlua_func_mario_execute_automatic_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 mario_execute_automatic_action(struct MarioState *m);
@@ -1884,7 +1884,7 @@ int smlua_func_bhv_end_toad_loop(UNUSED lua_State* L) {
int smlua_func_handle_save_menu(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void handle_save_menu(struct MarioState *m);
@@ -1897,7 +1897,7 @@ int smlua_func_handle_save_menu(lua_State* L) {
int smlua_func_spawn_obj_at_mario_rel_yaw(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 model = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -1916,7 +1916,7 @@ int smlua_func_spawn_obj_at_mario_rel_yaw(lua_State* L) {
int smlua_func_cutscene_take_cap_off(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void cutscene_take_cap_off(struct MarioState *m);
@@ -1928,7 +1928,7 @@ int smlua_func_cutscene_take_cap_off(lua_State* L) {
int smlua_func_cutscene_put_cap_on(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void cutscene_put_cap_on(struct MarioState *m);
@@ -1940,7 +1940,7 @@ int smlua_func_cutscene_put_cap_on(lua_State* L) {
int smlua_func_should_start_or_continue_dialog(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
struct Object* object = (struct Object*)smlua_to_cobject(L, 2, LOT_OBJECT);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -1954,7 +1954,7 @@ int smlua_func_should_start_or_continue_dialog(lua_State* L) {
int smlua_func_general_star_dance_handler(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 isInWater = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -1968,7 +1968,7 @@ int smlua_func_general_star_dance_handler(lua_State* L) {
int smlua_func_stuck_in_ground_handler(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 6)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 animation = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2012,7 +2012,7 @@ int smlua_func_generate_yellow_sparkles(lua_State* L) {
int smlua_func_tilt_body_running(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s16 tilt_body_running(struct MarioState *m);
@@ -2024,7 +2024,7 @@ int smlua_func_tilt_body_running(lua_State* L) {
int smlua_func_play_step_sound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s16 frame1 = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2040,7 +2040,7 @@ int smlua_func_play_step_sound(lua_State* L) {
int smlua_func_align_with_floor(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void align_with_floor(struct MarioState *m);
@@ -2052,7 +2052,7 @@ int smlua_func_align_with_floor(lua_State* L) {
int smlua_func_begin_walking_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32 forwardVel = smlua_to_number(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2070,7 +2070,7 @@ int smlua_func_begin_walking_action(lua_State* L) {
int smlua_func_check_ledge_climb_down(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void check_ledge_climb_down(struct MarioState *m);
@@ -2082,7 +2082,7 @@ int smlua_func_check_ledge_climb_down(lua_State* L) {
int smlua_func_slide_bonk(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 fastAction = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2098,7 +2098,7 @@ int smlua_func_slide_bonk(lua_State* L) {
int smlua_func_set_triple_jump_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 action = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2114,7 +2114,7 @@ int smlua_func_set_triple_jump_action(lua_State* L) {
int smlua_func_update_sliding_angle(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32 accel = smlua_to_number(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2130,7 +2130,7 @@ int smlua_func_update_sliding_angle(lua_State* L) {
int smlua_func_update_sliding(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32 stopSpeed = smlua_to_number(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2144,7 +2144,7 @@ int smlua_func_update_sliding(lua_State* L) {
int smlua_func_apply_slope_accel(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void apply_slope_accel(struct MarioState *m);
@@ -2156,7 +2156,7 @@ int smlua_func_apply_slope_accel(lua_State* L) {
int smlua_func_apply_landing_accel(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32 frictionFactor = smlua_to_number(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2170,7 +2170,7 @@ int smlua_func_apply_landing_accel(lua_State* L) {
int smlua_func_update_shell_speed(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void update_shell_speed(struct MarioState *m);
@@ -2182,7 +2182,7 @@ int smlua_func_update_shell_speed(lua_State* L) {
int smlua_func_apply_slope_decel(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32 decelCoef = smlua_to_number(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2196,7 +2196,7 @@ int smlua_func_apply_slope_decel(lua_State* L) {
int smlua_func_update_decelerating_speed(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 update_decelerating_speed(struct MarioState *m);
@@ -2208,7 +2208,7 @@ int smlua_func_update_decelerating_speed(lua_State* L) {
int smlua_func_update_walking_speed(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void update_walking_speed(struct MarioState *m);
@@ -2220,7 +2220,7 @@ int smlua_func_update_walking_speed(lua_State* L) {
int smlua_func_should_begin_sliding(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 should_begin_sliding(struct MarioState *m);
@@ -2232,7 +2232,7 @@ int smlua_func_should_begin_sliding(lua_State* L) {
int smlua_func_analog_stick_held_back(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 analog_stick_held_back(struct MarioState *m);
@@ -2244,7 +2244,7 @@ int smlua_func_analog_stick_held_back(lua_State* L) {
int smlua_func_check_ground_dive_or_punch(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 check_ground_dive_or_punch(struct MarioState *m);
@@ -2256,7 +2256,7 @@ int smlua_func_check_ground_dive_or_punch(lua_State* L) {
int smlua_func_begin_braking_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 begin_braking_action(struct MarioState *m);
@@ -2268,7 +2268,7 @@ int smlua_func_begin_braking_action(lua_State* L) {
int smlua_func_anim_and_audio_for_walk(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void anim_and_audio_for_walk(struct MarioState *m);
@@ -2280,7 +2280,7 @@ int smlua_func_anim_and_audio_for_walk(lua_State* L) {
int smlua_func_anim_and_audio_for_hold_walk(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void anim_and_audio_for_hold_walk(struct MarioState *m);
@@ -2292,7 +2292,7 @@ int smlua_func_anim_and_audio_for_hold_walk(lua_State* L) {
int smlua_func_anim_and_audio_for_heavy_walk(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void anim_and_audio_for_heavy_walk(struct MarioState *m);
@@ -2304,7 +2304,7 @@ int smlua_func_anim_and_audio_for_heavy_walk(lua_State* L) {
int smlua_func_push_or_sidle_wall(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32* startPos = smlua_get_vec3f_from_buffer();
@@ -2328,7 +2328,7 @@ int smlua_func_push_or_sidle_wall(lua_State* L) {
int smlua_func_tilt_body_walking(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s16 startYaw = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2342,7 +2342,7 @@ int smlua_func_tilt_body_walking(lua_State* L) {
int smlua_func_tilt_body_ground_shell(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s16 startYaw = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2356,7 +2356,7 @@ int smlua_func_tilt_body_ground_shell(lua_State* L) {
int smlua_func_tilt_body_butt_slide(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void tilt_body_butt_slide(struct MarioState *m);
@@ -2368,7 +2368,7 @@ int smlua_func_tilt_body_butt_slide(lua_State* L) {
int smlua_func_common_slide_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 endAction = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2386,7 +2386,7 @@ int smlua_func_common_slide_action(lua_State* L) {
int smlua_func_common_slide_action_with_jump(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 5)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 stopAction = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2406,7 +2406,7 @@ int smlua_func_common_slide_action_with_jump(lua_State* L) {
int smlua_func_stomach_slide_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 stopAction = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2424,7 +2424,7 @@ int smlua_func_stomach_slide_action(lua_State* L) {
int smlua_func_common_ground_knockback_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 5)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 animation = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2444,7 +2444,7 @@ int smlua_func_common_ground_knockback_action(lua_State* L) {
int smlua_func_common_landing_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s16 animation = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2460,7 +2460,7 @@ int smlua_func_common_landing_action(lua_State* L) {
int smlua_func_quicksand_jump_land_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 5)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 animation1 = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2480,7 +2480,7 @@ int smlua_func_quicksand_jump_land_action(lua_State* L) {
int smlua_func_check_common_moving_cancels(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 check_common_moving_cancels(struct MarioState *m);
@@ -2492,7 +2492,7 @@ int smlua_func_check_common_moving_cancels(lua_State* L) {
int smlua_func_mario_execute_moving_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 mario_execute_moving_action(struct MarioState *m);
@@ -2508,7 +2508,7 @@ int smlua_func_mario_execute_moving_action(lua_State* L) {
int smlua_func_animated_stationary_ground_step(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 animation = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2524,7 +2524,7 @@ int smlua_func_animated_stationary_ground_step(lua_State* L) {
int smlua_func_mario_update_punch_sequence(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 mario_update_punch_sequence(struct MarioState *m);
@@ -2536,7 +2536,7 @@ int smlua_func_mario_update_punch_sequence(lua_State* L) {
int smlua_func_check_common_object_cancels(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 check_common_object_cancels(struct MarioState *m);
@@ -2548,7 +2548,7 @@ int smlua_func_check_common_object_cancels(lua_State* L) {
int smlua_func_mario_execute_object_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 mario_execute_object_action(struct MarioState *m);
@@ -2564,7 +2564,7 @@ int smlua_func_mario_execute_object_action(lua_State* L) {
int smlua_func_check_common_idle_cancels(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 check_common_idle_cancels(struct MarioState *m);
@@ -2576,7 +2576,7 @@ int smlua_func_check_common_idle_cancels(lua_State* L) {
int smlua_func_check_common_hold_idle_cancels(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 check_common_hold_idle_cancels(struct MarioState *m);
@@ -2588,7 +2588,7 @@ int smlua_func_check_common_hold_idle_cancels(lua_State* L) {
int smlua_func_play_anim_sound(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 4)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 actionState = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2606,7 +2606,7 @@ int smlua_func_play_anim_sound(lua_State* L) {
int smlua_func_stopping_step(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 animID = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2622,7 +2622,7 @@ int smlua_func_stopping_step(lua_State* L) {
int smlua_func_landing_step(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s32 arg1 = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2638,7 +2638,7 @@ int smlua_func_landing_step(lua_State* L) {
int smlua_func_check_common_landing_cancels(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 action = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2652,7 +2652,7 @@ int smlua_func_check_common_landing_cancels(lua_State* L) {
int smlua_func_check_common_stationary_cancels(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 check_common_stationary_cancels(struct MarioState *m);
@@ -2664,7 +2664,7 @@ int smlua_func_check_common_stationary_cancels(lua_State* L) {
int smlua_func_mario_execute_stationary_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 mario_execute_stationary_action(struct MarioState *m);
@@ -2680,7 +2680,7 @@ int smlua_func_mario_execute_stationary_action(lua_State* L) {
int smlua_func_set_swimming_at_surface_particles(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 particleFlag = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2694,7 +2694,7 @@ int smlua_func_set_swimming_at_surface_particles(lua_State* L) {
int smlua_func_perform_water_step(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern u32 perform_water_step(struct MarioState *m);
@@ -2706,7 +2706,7 @@ int smlua_func_perform_water_step(lua_State* L) {
int smlua_func_perform_water_full_step(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32* nextPos = smlua_get_vec3f_from_buffer();
@@ -2730,7 +2730,7 @@ int smlua_func_perform_water_full_step(lua_State* L) {
int smlua_func_mario_execute_submerged_action(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern s32 mario_execute_submerged_action(struct MarioState *m);
@@ -2742,7 +2742,7 @@ int smlua_func_mario_execute_submerged_action(lua_State* L) {
int smlua_func_float_surface_gfx(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern void float_surface_gfx(struct MarioState *m);
@@ -2754,7 +2754,7 @@ int smlua_func_float_surface_gfx(lua_State* L) {
int smlua_func_apply_water_current(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32* step = smlua_get_vec3f_from_buffer();
@@ -2791,7 +2791,7 @@ int smlua_func_get_additive_y_vel_for_jumps(UNUSED lua_State* L) {
int smlua_func_mario_bonk_reflection(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 arg1 = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2804,7 +2804,7 @@ int smlua_func_mario_bonk_reflection(lua_State* L) {
int smlua_func_mario_update_quicksand(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
f32 arg1 = smlua_to_number(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2817,7 +2817,7 @@ int smlua_func_mario_update_quicksand(lua_State* L) {
int smlua_func_mario_push_off_steep_floor(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 arg1 = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2832,7 +2832,7 @@ int smlua_func_mario_push_off_steep_floor(lua_State* L) {
int smlua_func_mario_update_moving_sand(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, mario_update_moving_sand(arg0));
@@ -2843,7 +2843,7 @@ int smlua_func_mario_update_moving_sand(lua_State* L) {
int smlua_func_mario_update_windy_ground(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, mario_update_windy_ground(arg0));
@@ -2854,7 +2854,7 @@ int smlua_func_mario_update_windy_ground(lua_State* L) {
int smlua_func_stop_and_set_height_to_floor(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
stop_and_set_height_to_floor(arg0);
@@ -2865,7 +2865,7 @@ int smlua_func_stop_and_set_height_to_floor(lua_State* L) {
int smlua_func_stationary_ground_step(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, stationary_ground_step(arg0));
@@ -2876,7 +2876,7 @@ int smlua_func_stationary_ground_step(lua_State* L) {
int smlua_func_perform_ground_step(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
lua_pushinteger(L, perform_ground_step(arg0));
@@ -2887,7 +2887,7 @@ int smlua_func_perform_ground_step(lua_State* L) {
int smlua_func_perform_air_step(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 2)) { return 0; }
- struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* arg0 = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
u32 arg1 = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
@@ -2900,7 +2900,7 @@ int smlua_func_perform_air_step(lua_State* L) {
int smlua_func_set_vel_from_pitch_and_yaw(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
set_vel_from_pitch_and_yaw(m);
@@ -3130,7 +3130,7 @@ int smlua_func_queue_rumble_data_object(lua_State* L) {
int smlua_func_queue_rumble_data_mario(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
- struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIO_STATE);
+ struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
s16 a0 = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { return 0; }
diff --git a/src/pc/lua/smlua_utils.c b/src/pc/lua/smlua_utils.c
index d54a08e4..572b93c4 100644
--- a/src/pc/lua/smlua_utils.c
+++ b/src/pc/lua/smlua_utils.c
@@ -76,7 +76,7 @@ const char* smlua_to_string(lua_State* L, int index) {
return lua_tostring(L, index);
}
-void* smlua_to_cobject(lua_State* L, int index, enum LuaObjectType lot) {
+void* smlua_to_cobject(lua_State* L, int index, u16 lot) {
if (lua_type(L, index) != LUA_TTABLE) {
LOG_LUA("LUA: smlua_to_cobject received improper type '%d'", lua_type(L, index));
smlua_logline();
@@ -123,7 +123,7 @@ void* smlua_to_cobject(lua_State* L, int index, enum LuaObjectType lot) {
//////////////////////////////////////////////
-void smlua_push_object(lua_State* L, enum LuaObjectType lot, void* p) {
+void smlua_push_object(lua_State* L, u16 lot, void* p) {
if (p == NULL) {
lua_pushnil(L);
return;
diff --git a/src/pc/lua/smlua_utils.h b/src/pc/lua/smlua_utils.h
index 404c7f3f..b7162c68 100644
--- a/src/pc/lua/smlua_utils.h
+++ b/src/pc/lua/smlua_utils.h
@@ -12,9 +12,9 @@ void smlua_logline(void);
lua_Integer smlua_to_integer(lua_State* L, int index);
lua_Number smlua_to_number(lua_State* L, int index);
const char* smlua_to_string(lua_State* L, int index);
-void* smlua_to_cobject(lua_State* L, int index, enum LuaObjectType lot);
+void* smlua_to_cobject(lua_State* L, int index, u16 lot);
-void smlua_push_object(lua_State* L, enum LuaObjectType lot, void* p);
+void smlua_push_object(lua_State* L, u16 lot, void* p);
void smlua_push_integer_field(int index, char* name, lua_Integer val);
void smlua_push_number_field(int index, char* name, lua_Number val);