mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2026-04-26 12:01:43 +00:00
allow Lua to manipulate displaylists and vertices (#675)
Co-authored-by: ManIsCat2 <137772623+ManIsCat2@users.noreply.github.com>
This commit is contained in:
parent
7ccbc3a094
commit
f238b3d0f5
26 changed files with 3326 additions and 786 deletions
|
|
@ -14,6 +14,8 @@ type_mappings = {
|
|||
'long long': 's64',
|
||||
'float': 'f32',
|
||||
'double': 'f64',
|
||||
|
||||
'uintptr_t': 'u64', # this is assumed
|
||||
}
|
||||
|
||||
exclude_structs = [
|
||||
|
|
@ -24,6 +26,8 @@ exclude_structs = [
|
|||
'UnusedArea28',
|
||||
]
|
||||
|
||||
override_types = { "Gfx", "Vtx" }
|
||||
|
||||
def extract_integer_datatype(c_type):
|
||||
c_type = c_type.strip().lower()
|
||||
c_type = re.sub(r'\*|\[.*?\]', '', c_type)
|
||||
|
|
@ -49,7 +53,7 @@ def translate_type_to_lvt(ptype, allowArrays=False):
|
|||
if "const " in ptype:
|
||||
ptype = ptype.replace("const ", "").strip()
|
||||
|
||||
if ("char" in ptype and "[" in ptype):
|
||||
if 'unsigned' not in ptype and ("char" in ptype and "[" in ptype):
|
||||
return "LVT_STRING"
|
||||
|
||||
# Remove array symbols so they can be identified
|
||||
|
|
@ -121,6 +125,13 @@ def translate_type_to_lvt(ptype, allowArrays=False):
|
|||
return "LVT_COBJECT_P"
|
||||
return "LVT_COBJECT"
|
||||
|
||||
if ptype in override_types:
|
||||
if pointerLvl > 1:
|
||||
return "LVT_???"
|
||||
if pointerLvl == 1:
|
||||
return "LVT_COBJECT_P"
|
||||
return "LVT_COBJECT"
|
||||
|
||||
if pointerLvl == 1 and "(" not in ptype and "[" not in ptype:
|
||||
ptype = ptype.replace("const", "").replace("*", "").strip()
|
||||
if ptype in usf_types or extract_integer_datatype(ptype) or ptype in typedef_pointers:
|
||||
|
|
@ -138,7 +149,7 @@ def translate_type_to_lot(ptype, allowArrays=True):
|
|||
if ptype == 'const char*':
|
||||
return 'LOT_NONE'
|
||||
|
||||
if ptype == 'char*' or ('char' in ptype and '[' in ptype):
|
||||
if 'unsigned' not in ptype and (ptype == 'char*' or ('char' in ptype and '[' in ptype)):
|
||||
return 'LOT_NONE'
|
||||
|
||||
# Remove array symbols so they can be identified
|
||||
|
|
@ -181,6 +192,9 @@ def translate_type_to_lot(ptype, allowArrays=True):
|
|||
if ptype == 'LuaFunction':
|
||||
return 'LOT_NONE'
|
||||
|
||||
if ptype in override_types:
|
||||
return 'LOT_' + ptype.upper()
|
||||
|
||||
if 'struct' in ptype:
|
||||
if pointerLvl > 1:
|
||||
return 'LOT_???'
|
||||
|
|
@ -202,7 +216,7 @@ def translate_type_to_lua(ptype):
|
|||
if ptype == 'const char*':
|
||||
return '`string`', None
|
||||
|
||||
if ptype == 'char*' or ('char' in ptype and '[' in ptype):
|
||||
if 'unsigned' not in ptype and (ptype == 'char*' or ('char' in ptype and '[' in ptype)):
|
||||
return '`string`', None
|
||||
|
||||
ptype = ptype.replace('const ', '')
|
||||
|
|
|
|||
|
|
@ -47,7 +47,8 @@ in_files = [
|
|||
"src/pc/djui/djui_console.h",
|
||||
"src/game/player_palette.h",
|
||||
"src/pc/network/lag_compensation.h",
|
||||
"src/pc/djui/djui_panel_menu.h"
|
||||
"src/pc/djui/djui_panel_menu.h",
|
||||
"include/PR/gbi.h"
|
||||
]
|
||||
|
||||
exclude_constants = {
|
||||
|
|
@ -55,7 +56,8 @@ exclude_constants = {
|
|||
"src/game/obj_behaviors.c": [ "^o$" ],
|
||||
"src/pc/djui/djui_console.h": [ "CONSOLE_MAX_TMP_BUFFER" ],
|
||||
"src/pc/lua/smlua_hooks.h": [ "MAX_HOOKED_MOD_MENU_ELEMENTS" ],
|
||||
"src/pc/djui/djui_panel_menu.h": [ "RAINBOW_TEXT_LEN" ]
|
||||
"src/pc/djui/djui_panel_menu.h": [ "RAINBOW_TEXT_LEN" ],
|
||||
"include/PR/gbi.h": ["RM_AA_", "G_RM_", "G_CC_"]
|
||||
}
|
||||
|
||||
include_constants = {
|
||||
|
|
@ -76,11 +78,17 @@ verbose = len(sys.argv) > 1 and (sys.argv[1] == "-v" or sys.argv[1] == "--verbos
|
|||
overrideConstant = {
|
||||
'VERSION_REGION': '"US"',
|
||||
}
|
||||
forced_defines = ['F3DEX_GBI_2']
|
||||
|
||||
############################################################################
|
||||
|
||||
def validate_identifiers(built_files):
|
||||
all_identifiers = [x.group()[1:] for x in re.finditer(r'[(, ][A-Z_][A-Z0-9_]*', built_files)]
|
||||
files = ''
|
||||
for f in built_files.splitlines():
|
||||
if f.startswith('#'):
|
||||
continue
|
||||
files += f + '\n'
|
||||
all_identifiers = [x.group()[1:] for x in re.finditer(r'[(, ][A-Z_][A-Z0-9_]*', files)]
|
||||
all_identifiers = set(all_identifiers)
|
||||
for ident in all_identifiers:
|
||||
if ident in pretend_find:
|
||||
|
|
@ -88,10 +96,11 @@ def validate_identifiers(built_files):
|
|||
if ident + '=' not in built_files:
|
||||
print('COULD NOT FIND ' + ident)
|
||||
|
||||
|
||||
############################################################################
|
||||
|
||||
def saw_constant(identifier):
|
||||
def saw_constant(identifier, inIfBlock):
|
||||
if inIfBlock:
|
||||
return False
|
||||
if identifier in seen_constants:
|
||||
print("SAW DUPLICATE CONSTANT: " + identifier)
|
||||
return True
|
||||
|
|
@ -122,7 +131,7 @@ def allowed_identifier(filename, ident):
|
|||
|
||||
return True
|
||||
|
||||
def process_enum(filename, line):
|
||||
def process_enum(filename, line, inIfBlock):
|
||||
_, ident, val = line.split(' ', 2)
|
||||
|
||||
if '{' not in val or '}' not in val:
|
||||
|
|
@ -159,7 +168,7 @@ def process_enum(filename, line):
|
|||
if allowed_identifier(filename, field):
|
||||
constants.append([field, str(index)])
|
||||
|
||||
if saw_constant(field):
|
||||
if saw_constant(field, inIfBlock):
|
||||
print('>>> ' + line)
|
||||
|
||||
index += 1
|
||||
|
|
@ -169,7 +178,7 @@ def process_enum(filename, line):
|
|||
return ret
|
||||
|
||||
|
||||
def process_define(filename, line):
|
||||
def process_define(filename, line, inIfBlock):
|
||||
_, ident, val = line.split(' ', 2)
|
||||
|
||||
val = val.replace('(u8)', '')
|
||||
|
|
@ -188,17 +197,17 @@ def process_define(filename, line):
|
|||
if not allowed_identifier(filename, ident):
|
||||
return None
|
||||
|
||||
if saw_constant(ident):
|
||||
if saw_constant(ident, inIfBlock):
|
||||
print('>>> ' + line)
|
||||
|
||||
return [ident, val]
|
||||
|
||||
|
||||
def process_line(filename, line):
|
||||
def process_line(filename, line, inIfBlock):
|
||||
if line.startswith('enum '):
|
||||
return process_enum(filename, line)
|
||||
return process_enum(filename, line, inIfBlock)
|
||||
elif line.startswith('#define '):
|
||||
return process_define(filename, line)
|
||||
return process_define(filename, line, inIfBlock)
|
||||
else:
|
||||
print("UNRECOGNIZED LINE: " + line)
|
||||
return None
|
||||
|
|
@ -209,13 +218,48 @@ def process_file(filename):
|
|||
|
||||
constants = []
|
||||
lines = extract_constants(get_path(filename)).splitlines()
|
||||
|
||||
block_stack = None
|
||||
|
||||
for line in lines:
|
||||
c = process_line(filename, line)
|
||||
if c != None:
|
||||
constants.append(c)
|
||||
if line.startswith('#if'):
|
||||
if not block_stack: block_stack = []
|
||||
block_stack.append({
|
||||
'if_line': line,
|
||||
'then': [],
|
||||
'else': None,
|
||||
'else_line': None,
|
||||
'ignore': line.endswith('_H') or line.endswith('_H_')
|
||||
})
|
||||
elif line.startswith("#else"):
|
||||
if not block_stack: continue
|
||||
current = block_stack[-1]
|
||||
if current['ignore']: continue
|
||||
current['else_line'] = line
|
||||
current['else'] = []
|
||||
elif line.startswith("#endif"):
|
||||
if not block_stack: continue
|
||||
block = block_stack.pop()
|
||||
if not block['ignore'] and len(block['then']) > 0 and block['else']:
|
||||
block['then'].append([block['else_line'] + ' // ' + block['if_line']]) # append else line
|
||||
block['else'].append([line + ' // ' + block['if_line']]) # append endif line
|
||||
constants.append([block['if_line']])
|
||||
constants.extend(block['then'])
|
||||
if block['else']:
|
||||
constants.extend(block['else'])
|
||||
else:
|
||||
c = process_line(filename, line, block_stack is not None)
|
||||
if c is not None:
|
||||
if block_stack and not block_stack[-1]['ignore']:
|
||||
current = block_stack[-1]
|
||||
if current['else'] is not None:
|
||||
current['else'].append(c)
|
||||
else:
|
||||
current['then'].append(c)
|
||||
else:
|
||||
constants.append(c)
|
||||
|
||||
processed_file['constants'] = constants
|
||||
|
||||
return processed_file
|
||||
|
||||
def process_files():
|
||||
|
|
@ -241,6 +285,9 @@ def build_constant(processed_constant):
|
|||
constants = [processed_constant]
|
||||
|
||||
for c in constants:
|
||||
if c[0].startswith('#'):
|
||||
s += '%s\n' % c[0]
|
||||
continue
|
||||
s += '%s=%s\n' % (c[0], c[1].replace('"', "'"))
|
||||
|
||||
return s
|
||||
|
|
@ -271,8 +318,12 @@ def build_to_c(built_files):
|
|||
txt = txt.replace('\n\n', '\n')
|
||||
|
||||
lines = txt.splitlines()
|
||||
txt = 'char gSmluaConstants[] = ""\n'
|
||||
txt = "".join(f"#define {item}\n" for item in forced_defines)
|
||||
txt += 'char gSmluaConstants[] = ""\n'
|
||||
for line in lines:
|
||||
if line.startswith("#"):
|
||||
txt += '%s\n' % line
|
||||
continue
|
||||
txt += '"%s\\n"\n' % line
|
||||
txt += ';'
|
||||
return txt
|
||||
|
|
@ -309,6 +360,8 @@ def doc_constant(processed_constant):
|
|||
return s
|
||||
|
||||
for c in [processed_constant]:
|
||||
if c[0].startswith('#'):
|
||||
continue
|
||||
s += '- %s\n' % (c[0])
|
||||
|
||||
return s
|
||||
|
|
@ -349,6 +402,8 @@ def def_constant(processed_constant):
|
|||
return s
|
||||
|
||||
for c in [processed_constant]:
|
||||
if c[0].startswith('#'):
|
||||
continue
|
||||
if '"' in c[1]:
|
||||
s += '\n--- @type string\n'
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -31,7 +31,8 @@ in_files = [
|
|||
"src/pc/djui/djui_types.h",
|
||||
"src/game/first_person_cam.h",
|
||||
"src/game/player_palette.h",
|
||||
"src/engine/graph_node.h"
|
||||
"src/engine/graph_node.h",
|
||||
"include/PR/gbi.h"
|
||||
]
|
||||
|
||||
out_filename_c = 'src/pc/lua/smlua_cobject_autogen.c'
|
||||
|
|
@ -128,6 +129,7 @@ override_field_immutable = {
|
|||
"Controller": [ "controllerData", "statusData" ],
|
||||
"FirstPersonCamera": [ "enabled" ],
|
||||
"ModAudio": [ "isStream", "loaded" ],
|
||||
"Gfx": [ "w0", "w1" ], # to protect from invalid type conversions
|
||||
}
|
||||
|
||||
override_field_version_excludes = {
|
||||
|
|
@ -138,7 +140,8 @@ override_field_version_excludes = {
|
|||
override_allowed_structs = {
|
||||
"src/pc/network/network.h": [ "ServerSettings", "NametagsSettings" ],
|
||||
"src/pc/djui/djui_types.h": [ "DjuiColor" ],
|
||||
"src/game/player_palette.h": [ "PlayerPalette" ]
|
||||
"src/game/player_palette.h": [ "PlayerPalette" ],
|
||||
"include/PR/gbi.h": [ "Gfx", "Vtx" ]
|
||||
}
|
||||
|
||||
sLuaManuallyDefinedStructs = [{
|
||||
|
|
@ -154,6 +157,12 @@ sLuaManuallyDefinedStructs = [{
|
|||
]
|
||||
}]
|
||||
|
||||
override_types = {
|
||||
"Gwords": "Gfx",
|
||||
"Vtx_t": "Vtx"
|
||||
}
|
||||
reversed_override_types = {v: k for k, v in override_types.items()}
|
||||
|
||||
total_structs = 0
|
||||
total_fields = 0
|
||||
|
||||
|
|
@ -263,6 +272,10 @@ def parse_struct(struct_str, sortFields = True):
|
|||
match = re.match(r"struct\s*(\w+)?\s*{(.*?)}\s*(\w+)?\s*", struct_str.replace("typedef ", ""), re.DOTALL)
|
||||
struct_name, body, trailing_name = match.groups()
|
||||
identifier = struct_name if struct_name else trailing_name
|
||||
|
||||
if identifier in override_types:
|
||||
identifier = override_types[identifier]
|
||||
|
||||
struct['identifier'] = identifier
|
||||
struct['typedef'] = 'typedef ' in struct_str
|
||||
|
||||
|
|
@ -461,7 +474,7 @@ def get_struct_field_info(struct, field):
|
|||
if fid in override_field_mutable[sid] or '*' in override_field_mutable[sid]:
|
||||
fimmutable = 'false'
|
||||
|
||||
if not ('char' in ftype and '[' in ftype):
|
||||
if not ('char' in ftype and '[' in ftype and 'unsigned' not in ftype):
|
||||
array_match = re.search(r'\[([^\]]+)\]', ftype)
|
||||
if array_match:
|
||||
array_size = array_match.group(1).strip()
|
||||
|
|
@ -493,6 +506,10 @@ def build_struct(struct):
|
|||
if fid in override_field_invisible[sid]:
|
||||
continue
|
||||
|
||||
name = sid
|
||||
if sid in reversed_override_types:
|
||||
name = reversed_override_types[sid]
|
||||
|
||||
version = None
|
||||
|
||||
row = []
|
||||
|
|
@ -507,7 +524,7 @@ def build_struct(struct):
|
|||
row.append(startStr )
|
||||
row.append('"%s", ' % fid )
|
||||
row.append('%s, ' % lvt )
|
||||
row.append('offsetof(%s%s, %s), ' % (struct_str, sid, field['identifier']))
|
||||
row.append('offsetof(%s%s, %s), ' % (struct_str, name, field['identifier']))
|
||||
row.append('%s, ' % fimmutable )
|
||||
row.append('%s, ' % lot )
|
||||
row.append('%s, ' % size )
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ def extract_constants(filename):
|
|||
txt = ''
|
||||
inside = 0
|
||||
for character in tmp:
|
||||
if inside != 0 and character == '\n':
|
||||
if inside > 0 and character == '\n':
|
||||
continue
|
||||
|
||||
txt += character
|
||||
|
|
@ -62,25 +62,21 @@ def extract_constants(filename):
|
|||
while ('\n\n' in txt):
|
||||
txt = txt.replace('\n\n', '\n')
|
||||
|
||||
# BAD culling of ifdef version
|
||||
# Cull false ifdef blocks
|
||||
tmp = txt
|
||||
txt = ''
|
||||
inside = 0
|
||||
inside_false = 0
|
||||
for line in tmp.splitlines():
|
||||
line = line.strip()
|
||||
if line == '#ifdef VERSION_JP':
|
||||
inside = 1
|
||||
if line == '#ifdef _LANGUAGE_ASSEMBLY' or line.startswith('#if '):
|
||||
inside_false += 1
|
||||
continue
|
||||
if line == '#ifdef VERSION_EU':
|
||||
inside = 1
|
||||
if line.startswith('#else') and inside_false > 0:
|
||||
continue
|
||||
if line == '#else':
|
||||
inside = 0
|
||||
if line.startswith('#endif') and inside_false > 0:
|
||||
inside_false -= 1
|
||||
continue
|
||||
if line == '#endif':
|
||||
inside = 0
|
||||
continue
|
||||
if inside == 0:
|
||||
if inside_false == 0:
|
||||
txt += line + '\n'
|
||||
|
||||
# cull obvious non-enums, non-defines
|
||||
|
|
@ -97,6 +93,8 @@ def extract_constants(filename):
|
|||
if '(' in pieces[1]:
|
||||
continue
|
||||
txt += line + '\n'
|
||||
if line.startswith('#if') or line == '#else' or line == '#endif':
|
||||
txt += line + '\n'
|
||||
|
||||
return txt
|
||||
|
||||
|
|
|
|||
|
|
@ -23,15 +23,16 @@ def extract_object_fields():
|
|||
fields = []
|
||||
for line in extract_constants("include/object_fields.h").splitlines():
|
||||
parts = line.split(' ', 3)
|
||||
if len(parts) < 3: continue
|
||||
field_id = parts[1]
|
||||
val = parts[2]
|
||||
|
||||
|
||||
if not field_id.startswith('o'):
|
||||
#print('REJECT: ' + line)
|
||||
continue
|
||||
|
||||
|
||||
field_type = object_field_types[val.split('(')[0]]
|
||||
|
||||
|
||||
field = {}
|
||||
field['type'] = field_type.strip()
|
||||
field['identifier'] = field_id.strip()
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -9213,6 +9213,43 @@ function get_vertex_color(index)
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @param gfx Pointer_Gfx
|
||||
--- @param offset integer
|
||||
--- @return Pointer_Vtx
|
||||
--- Gets a vertex from a display list command if it has the correct op. Intended to be used with `gfx_parse`.
|
||||
function gfx_get_vtx(gfx, offset)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param cmd Pointer_Gfx
|
||||
--- @param func function
|
||||
--- Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op`.
|
||||
function gfx_parse(cmd, func)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param gfx Pointer_Gfx
|
||||
--- @param a0 integer
|
||||
--- @param b0 integer
|
||||
--- @param c0 integer
|
||||
--- @param d0 integer
|
||||
--- @param Aa0 integer
|
||||
--- @param Ab0 integer
|
||||
--- @param Ac0 integer
|
||||
--- @param Ad0 integer
|
||||
--- @param a1 integer
|
||||
--- @param b1 integer
|
||||
--- @param c1 integer
|
||||
--- @param d1 integer
|
||||
--- @param Aa1 integer
|
||||
--- @param Ab1 integer
|
||||
--- @param Ac1 integer
|
||||
--- @param Ad1 integer
|
||||
--- Sets the display list combine mode.
|
||||
function gfx_set_combine_lerp(gfx, a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param index integer
|
||||
--- @param value integer
|
||||
--- Sets a value of the global fog color
|
||||
|
|
@ -10592,3 +10629,5 @@ end
|
|||
--- @class Pointer_Vec4s
|
||||
--- @class Pointer_Trajectory
|
||||
--- @class Pointer_Collision
|
||||
--- @class Pointer_Gfx
|
||||
--- @class Pointer_Vtx
|
||||
|
|
|
|||
|
|
@ -430,3 +430,18 @@ end
|
|||
function cast_graph_node(node)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param str string
|
||||
--- @return string
|
||||
--- Removes color codes from a string
|
||||
function get_uncolored_string(str)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param gfx Gfx
|
||||
--- @param command string
|
||||
--- @vararg integer Parameters for the command
|
||||
--- Sets the specified display list command on the display list given.
|
||||
function gfx_set_command(gfx, command, ...)
|
||||
-- ...
|
||||
end
|
||||
|
|
|
|||
|
|
@ -482,6 +482,8 @@
|
|||
--- @field public animWaterThrowObj integer
|
||||
--- @field public animWingCapFly integer
|
||||
--- @field public cameraHudHead integer
|
||||
--- @field public capEnemyDecalGfx Pointer_Gfx
|
||||
--- @field public capEnemyGfx Pointer_Gfx
|
||||
--- @field public capEnemyLayer integer
|
||||
--- @field public capMetalModelId integer
|
||||
--- @field public capMetalWingModelId integer
|
||||
|
|
@ -590,6 +592,7 @@
|
|||
--- @field public year integer
|
||||
|
||||
--- @class DisplayListNode
|
||||
--- @field public displayList Pointer_Gfx
|
||||
--- @field public next DisplayListNode
|
||||
--- @field public usingCamSpace integer
|
||||
|
||||
|
|
@ -651,6 +654,10 @@
|
|||
--- @class FnGraphNode
|
||||
--- @field public node GraphNode
|
||||
|
||||
--- @class Gfx
|
||||
--- @field public w0 integer
|
||||
--- @field public w1 integer
|
||||
|
||||
--- @class GlobalObjectAnimations
|
||||
--- @field public amp_seg8_anims_08004034 Pointer_ObjectAnimPointer
|
||||
--- @field public birds_seg5_anims_050009E8 Pointer_ObjectAnimPointer
|
||||
|
|
@ -839,6 +846,7 @@
|
|||
--- @field public type integer
|
||||
|
||||
--- @class GraphNodeAnimatedPart
|
||||
--- @field public displayList Pointer_Gfx
|
||||
--- @field public node GraphNode
|
||||
--- @field public translation Vec3s
|
||||
|
||||
|
|
@ -851,6 +859,7 @@
|
|||
--- @field public unused integer
|
||||
|
||||
--- @class GraphNodeBillboard
|
||||
--- @field public displayList Pointer_Gfx
|
||||
--- @field public node GraphNode
|
||||
--- @field public translation Vec3s
|
||||
|
||||
|
|
@ -872,6 +881,7 @@
|
|||
--- @field public pad1E Array_integer
|
||||
|
||||
--- @class GraphNodeDisplayList
|
||||
--- @field public displayList Pointer_Gfx
|
||||
--- @field public node GraphNode
|
||||
|
||||
--- @class GraphNodeGenerated
|
||||
|
|
@ -941,12 +951,14 @@
|
|||
--- @field public unused integer
|
||||
|
||||
--- @class GraphNodeRotation
|
||||
--- @field public displayList Pointer_Gfx
|
||||
--- @field public node GraphNode
|
||||
--- @field public prevRotation Vec3s
|
||||
--- @field public prevTimestamp integer
|
||||
--- @field public rotation Vec3s
|
||||
|
||||
--- @class GraphNodeScale
|
||||
--- @field public displayList Pointer_Gfx
|
||||
--- @field public node GraphNode
|
||||
--- @field public prevScale number
|
||||
--- @field public scale number
|
||||
|
|
@ -967,11 +979,13 @@
|
|||
--- @field public unused integer
|
||||
|
||||
--- @class GraphNodeTranslation
|
||||
--- @field public displayList Pointer_Gfx
|
||||
--- @field public node GraphNode
|
||||
--- @field public pad1E Array_integer
|
||||
--- @field public translation Vec3s
|
||||
|
||||
--- @class GraphNodeTranslationRotation
|
||||
--- @field public displayList Pointer_Gfx
|
||||
--- @field public node GraphNode
|
||||
--- @field public rotation Vec3s
|
||||
--- @field public translation Vec3s
|
||||
|
|
@ -2103,6 +2117,7 @@
|
|||
--- @field public marioIsUnder integer
|
||||
--- @field public marioWasUnder integer
|
||||
--- @field public marioWentUnder integer
|
||||
--- @field public normalDisplayList Pointer_Gfx
|
||||
--- @field public passiveDispersionFactor number
|
||||
--- @field public passiveRippleDecay number
|
||||
--- @field public passiveRippleMag number
|
||||
|
|
@ -2112,6 +2127,7 @@
|
|||
--- @field public posY number
|
||||
--- @field public posZ number
|
||||
--- @field public rippleDecay number
|
||||
--- @field public rippleDisplayList Pointer_Gfx
|
||||
--- @field public rippleTimer number
|
||||
--- @field public rippleTrigger integer
|
||||
--- @field public rippleX number
|
||||
|
|
@ -2302,6 +2318,12 @@
|
|||
--- @field public posPitch integer
|
||||
--- @field public posYaw integer
|
||||
|
||||
--- @class Vtx
|
||||
--- @field public cn Array_integer
|
||||
--- @field public flag integer
|
||||
--- @field public ob Array_number
|
||||
--- @field public tc Array_integer
|
||||
|
||||
--- @class Vtx_Interp
|
||||
--- @field public n string
|
||||
--- @field public ob Array_number
|
||||
|
|
@ -2419,6 +2441,7 @@
|
|||
|
||||
--- @class Pointer_integer
|
||||
--- @class Pointer_Trajectory
|
||||
--- @class Pointer_Gfx
|
||||
--- @class Pointer_LevelScript
|
||||
--- @class Pointer_ObjectAnimPointer
|
||||
--- @class Pointer_Collision
|
||||
|
|
|
|||
|
|
@ -772,53 +772,16 @@ static void SetCurrentTextureAsPalette(GfxData* aGfxData) {
|
|||
}
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
#include "gfx_symbols.h"
|
||||
}
|
||||
#define define_gfx_symbol(symb, params, ...) gfx_symbol_##params(symb, ##__VA_ARGS__)
|
||||
|
||||
static void ParseGfxSymbol(GfxData* aGfxData, DataNode<Gfx>* aNode, Gfx*& aHead, u64& aTokenIndex) {
|
||||
const String& _Symbol = aNode->mTokens[aTokenIndex++];
|
||||
|
||||
// Simple symbols
|
||||
gfx_symbol_0(gsDPFullSync);
|
||||
gfx_symbol_0(gsDPTileSync);
|
||||
gfx_symbol_0(gsDPPipeSync);
|
||||
gfx_symbol_0(gsDPLoadSync);
|
||||
gfx_symbol_0(gsDPNoOp);
|
||||
gfx_symbol_1(gsDPNoOpTag, false);
|
||||
gfx_symbol_1(gsDPSetCycleType, false);
|
||||
gfx_symbol_2(gsSPLight, true);
|
||||
gfx_symbol_3(gsSPVertex, true);
|
||||
gfx_symbol_4(gsSP1Triangle);
|
||||
gfx_symbol_8(gsSP2Triangles);
|
||||
gfx_symbol_1(gsSPNumLights, false);
|
||||
gfx_symbol_1(gsDPSetDepthSource, false);
|
||||
gfx_symbol_1(gsDPSetTextureLUT, false);
|
||||
gfx_symbol_5(gsDPLoadBlock);
|
||||
gfx_symbol_2(gsDPSetRenderMode, false);
|
||||
gfx_symbol_2(gsSPGeometryMode, false);
|
||||
gfx_symbol_2(gsSPGeometryModeSetFirst, false);
|
||||
gfx_symbol_6(gsDPSetPrimColor);
|
||||
gfx_symbol_4(gsDPSetEnvColor);
|
||||
gfx_symbol_4(gsDPSetFogColor);
|
||||
gfx_symbol_2(gsSPFogPosition, false);
|
||||
gfx_symbol_1(gsDPSetAlphaCompare, false);
|
||||
gfx_symbol_1(gsDPSetTextureFilter, false);
|
||||
gfx_symbol_2(gsSPCullDisplayList, false);
|
||||
gfx_symbol_1(gsDPSetAlphaDither, false);
|
||||
gfx_symbol_1(gsDPSetCombineKey, false);
|
||||
gfx_symbol_1(gsDPSetTextureConvert, false);
|
||||
gfx_symbol_1(gsDPSetCombineKey, false);
|
||||
gfx_symbol_1(gsDPSetTextureConvert, false);
|
||||
gfx_symbol_1(gsDPPipelineMode, false);
|
||||
gfx_symbol_4(gsSPSetOtherMode);
|
||||
gfx_symbol_1(gsDPSetTextureDetail, false);
|
||||
gfx_symbol_1(gsDPSetColorDither, false);
|
||||
gfx_symbol_2(gsDPSetPrimDepth, false);
|
||||
gfx_symbol_4(gsDPSetBlendColor);
|
||||
|
||||
gfx_symbol_2(gsSPCopyLightEXT, false);
|
||||
gfx_symbol_1(gsSPCopyLightsPlayerPart, false);
|
||||
gfx_symbol_2(gsSPFogFactor, false);
|
||||
gfx_symbol_1(gsDPSetTextureLOD, false);
|
||||
gfx_symbol_3(gsMoveWd, false);
|
||||
gfx_symbol_3(gsSPVertexNonGlobal, true);
|
||||
GFX_SYMBOLS();
|
||||
|
||||
// Special symbols
|
||||
if (_Symbol == "gsSPTexture") {
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
- [external.h](#externalh)
|
||||
- [enum DialogSound](#enum-DialogSound)
|
||||
- [first_person_cam.h](#first_person_camh)
|
||||
- [gbi.h](#gbih)
|
||||
- [geo_commands.h](#geo_commandsh)
|
||||
- [graph_node.h](#graph_nodeh)
|
||||
- [interaction.c](#interactionc)
|
||||
|
|
@ -61,6 +62,7 @@
|
|||
- [player_palette.h](#player_paletteh)
|
||||
- [enum PlayerPart](#enum-PlayerPart)
|
||||
- [save_file.h](#save_fileh)
|
||||
- [enum EuLanguages](#enum-EuLanguages)
|
||||
- [enum SaveFileIndex](#enum-SaveFileIndex)
|
||||
- [seq_ids.h](#seq_idsh)
|
||||
- [enum SeqId](#enum-SeqId)
|
||||
|
|
@ -1169,6 +1171,7 @@
|
|||
|
||||
## [external.h](#external.h)
|
||||
- DS_DIFF
|
||||
- DS_DIFF
|
||||
- SEQ_PLAYER_ENV
|
||||
- SEQ_PLAYER_LEVEL
|
||||
- SEQ_PLAYER_SFX
|
||||
|
|
@ -1203,6 +1206,392 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [gbi.h](#gbi.h)
|
||||
- AA_EN
|
||||
- ALPHA_CVG_SEL
|
||||
- BOWTIE_VAL
|
||||
- CLR_ON_CVG
|
||||
- CVG_DST_CLAMP
|
||||
- CVG_DST_FULL
|
||||
- CVG_DST_SAVE
|
||||
- CVG_DST_WRAP
|
||||
- CVG_X_ALPHA
|
||||
- FORCE_BL
|
||||
- FR_NEG_FRUSTRATIO_1
|
||||
- FR_NEG_FRUSTRATIO_2
|
||||
- FR_NEG_FRUSTRATIO_3
|
||||
- FR_NEG_FRUSTRATIO_4
|
||||
- FR_NEG_FRUSTRATIO_5
|
||||
- FR_NEG_FRUSTRATIO_6
|
||||
- FR_POS_FRUSTRATIO_1
|
||||
- FR_POS_FRUSTRATIO_2
|
||||
- FR_POS_FRUSTRATIO_3
|
||||
- FR_POS_FRUSTRATIO_4
|
||||
- FR_POS_FRUSTRATIO_5
|
||||
- FR_POS_FRUSTRATIO_6
|
||||
- G_ACMUX_0
|
||||
- G_ACMUX_1
|
||||
- G_ACMUX_COMBINED
|
||||
- G_ACMUX_ENVIRONMENT
|
||||
- G_ACMUX_LOD_FRACTION
|
||||
- G_ACMUX_PRIMITIVE
|
||||
- G_ACMUX_PRIM_LOD_FRAC
|
||||
- G_ACMUX_SHADE
|
||||
- G_ACMUX_TEXEL0
|
||||
- G_ACMUX_TEXEL1
|
||||
- G_AC_DITHER
|
||||
- G_AC_NONE
|
||||
- G_AC_THRESHOLD
|
||||
- G_AD_DISABLE
|
||||
- G_AD_NOISE
|
||||
- G_AD_NOTPATTERN
|
||||
- G_AD_PATTERN
|
||||
- G_BL_0
|
||||
- G_BL_1
|
||||
- G_BL_1MA
|
||||
- G_BL_A_FOG
|
||||
- G_BL_A_IN
|
||||
- G_BL_A_MEM
|
||||
- G_BL_A_SHADE
|
||||
- G_BL_CLR_BL
|
||||
- G_BL_CLR_FOG
|
||||
- G_BL_CLR_IN
|
||||
- G_BL_CLR_MEM
|
||||
- G_BRANCH_Z
|
||||
- G_CCMUX_0
|
||||
- G_CCMUX_1
|
||||
- G_CCMUX_CENTER
|
||||
- G_CCMUX_COMBINED
|
||||
- G_CCMUX_COMBINED_ALPHA
|
||||
- G_CCMUX_ENVIRONMENT
|
||||
- G_CCMUX_ENV_ALPHA
|
||||
- G_CCMUX_K4
|
||||
- G_CCMUX_K5
|
||||
- G_CCMUX_LOD_FRACTION
|
||||
- G_CCMUX_NOISE
|
||||
- G_CCMUX_PRIMITIVE
|
||||
- G_CCMUX_PRIMITIVE_ALPHA
|
||||
- G_CCMUX_PRIM_LOD_FRAC
|
||||
- G_CCMUX_SCALE
|
||||
- G_CCMUX_SHADE
|
||||
- G_CCMUX_SHADE_ALPHA
|
||||
- G_CCMUX_TEXEL0
|
||||
- G_CCMUX_TEXEL0_ALPHA
|
||||
- G_CCMUX_TEXEL1
|
||||
- G_CCMUX_TEXEL1_ALPHA
|
||||
- G_CD_BAYER
|
||||
- G_CD_DISABLE
|
||||
- G_CD_DISABLE
|
||||
- G_CD_ENABLE
|
||||
- G_CD_ENABLE
|
||||
- G_CD_MAGICSQ
|
||||
- G_CD_NOISE
|
||||
- G_CK_KEY
|
||||
- G_CK_NONE
|
||||
- G_CLEARGEOMETRYMODE
|
||||
- G_COPYMEM
|
||||
- G_CULLDL
|
||||
- G_CULLDL
|
||||
- G_CV_K0
|
||||
- G_CV_K1
|
||||
- G_CV_K2
|
||||
- G_CV_K3
|
||||
- G_CV_K4
|
||||
- G_CV_K5
|
||||
- G_CYC_1CYCLE
|
||||
- G_CYC_2CYCLE
|
||||
- G_CYC_COPY
|
||||
- G_CYC_FILL
|
||||
- G_DL
|
||||
- G_DL
|
||||
- G_DL_NOPUSH
|
||||
- G_DL_PUSH
|
||||
- G_DMACMDSIZ
|
||||
- G_DMA_IO
|
||||
- G_ENDDL
|
||||
- G_ENDDL
|
||||
- G_FILLRECT
|
||||
- G_FOG
|
||||
- G_GEOMETRYMODE
|
||||
- G_IMMCMDSIZ
|
||||
- G_IMMFIRST
|
||||
- G_IM_FMT_CI
|
||||
- G_IM_FMT_I
|
||||
- G_IM_FMT_IA
|
||||
- G_IM_FMT_RGBA
|
||||
- G_IM_FMT_YUV
|
||||
- G_IM_SIZ_16b
|
||||
- G_IM_SIZ_16b_BYTES
|
||||
- G_IM_SIZ_16b_INCR
|
||||
- G_IM_SIZ_16b_SHIFT
|
||||
- G_IM_SIZ_32b
|
||||
- G_IM_SIZ_32b_BYTES
|
||||
- G_IM_SIZ_32b_INCR
|
||||
- G_IM_SIZ_32b_LINE_BYTES
|
||||
- G_IM_SIZ_32b_SHIFT
|
||||
- G_IM_SIZ_32b_TILE_BYTES
|
||||
- G_IM_SIZ_4b
|
||||
- G_IM_SIZ_4b_BYTES
|
||||
- G_IM_SIZ_4b_INCR
|
||||
- G_IM_SIZ_4b_SHIFT
|
||||
- G_IM_SIZ_8b
|
||||
- G_IM_SIZ_8b_BYTES
|
||||
- G_IM_SIZ_8b_INCR
|
||||
- G_IM_SIZ_8b_SHIFT
|
||||
- G_IM_SIZ_DD
|
||||
- G_LIGHTING
|
||||
- G_LINE3D
|
||||
- G_LINE3D
|
||||
- G_LOADBLOCK
|
||||
- G_LOADTILE
|
||||
- G_LOADTLUT
|
||||
- G_LOAD_UCODE
|
||||
- G_LOD
|
||||
- G_MAXFBZ
|
||||
- G_MDSFT_ALPHACOMPARE
|
||||
- G_MDSFT_ALPHADITHER
|
||||
- G_MDSFT_BLENDER
|
||||
- G_MDSFT_BLENDMASK
|
||||
- G_MDSFT_COLORDITHER
|
||||
- G_MDSFT_COMBKEY
|
||||
- G_MDSFT_CYCLETYPE
|
||||
- G_MDSFT_PIPELINE
|
||||
- G_MDSFT_RENDERMODE
|
||||
- G_MDSFT_RGBDITHER
|
||||
- G_MDSFT_TEXTCONV
|
||||
- G_MDSFT_TEXTDETAIL
|
||||
- G_MDSFT_TEXTFILT
|
||||
- G_MDSFT_TEXTLOD
|
||||
- G_MDSFT_TEXTLUT
|
||||
- G_MDSFT_TEXTPERSP
|
||||
- G_MDSFT_ZSRCSEL
|
||||
- G_MODIFYVTX
|
||||
- G_MOVEMEM
|
||||
- G_MOVEMEM
|
||||
- G_MOVEWORD
|
||||
- G_MOVEWORD
|
||||
- G_MTX
|
||||
- G_MTX
|
||||
- G_MWO_CLIP_RNX
|
||||
- G_MWO_CLIP_RNY
|
||||
- G_MWO_CLIP_RPX
|
||||
- G_MWO_CLIP_RPY
|
||||
- G_MWO_FOG
|
||||
- G_MWO_MATRIX_WX_WY_F
|
||||
- G_MWO_MATRIX_WX_WY_I
|
||||
- G_MWO_MATRIX_WZ_WW_F
|
||||
- G_MWO_MATRIX_WZ_WW_I
|
||||
- G_MWO_MATRIX_XX_XY_F
|
||||
- G_MWO_MATRIX_XX_XY_I
|
||||
- G_MWO_MATRIX_XZ_XW_F
|
||||
- G_MWO_MATRIX_XZ_XW_I
|
||||
- G_MWO_MATRIX_YX_YY_F
|
||||
- G_MWO_MATRIX_YX_YY_I
|
||||
- G_MWO_MATRIX_YZ_YW_F
|
||||
- G_MWO_MATRIX_YZ_YW_I
|
||||
- G_MWO_MATRIX_ZX_ZY_F
|
||||
- G_MWO_MATRIX_ZX_ZY_I
|
||||
- G_MWO_MATRIX_ZZ_ZW_F
|
||||
- G_MWO_MATRIX_ZZ_ZW_I
|
||||
- G_MWO_NUMLIGHT
|
||||
- G_MWO_POINT_RGBA
|
||||
- G_MWO_POINT_ST
|
||||
- G_MWO_POINT_XYSCREEN
|
||||
- G_MWO_POINT_ZSCREEN
|
||||
- G_MWO_SEGMENT_0
|
||||
- G_MWO_SEGMENT_1
|
||||
- G_MWO_SEGMENT_2
|
||||
- G_MWO_SEGMENT_3
|
||||
- G_MWO_SEGMENT_4
|
||||
- G_MWO_SEGMENT_5
|
||||
- G_MWO_SEGMENT_6
|
||||
- G_MWO_SEGMENT_7
|
||||
- G_MWO_SEGMENT_8
|
||||
- G_MWO_SEGMENT_9
|
||||
- G_MWO_SEGMENT_A
|
||||
- G_MWO_SEGMENT_B
|
||||
- G_MWO_SEGMENT_C
|
||||
- G_MWO_SEGMENT_D
|
||||
- G_MWO_SEGMENT_E
|
||||
- G_MWO_SEGMENT_F
|
||||
- G_MWO_aLIGHT_1
|
||||
- G_MWO_aLIGHT_2
|
||||
- G_MWO_aLIGHT_2
|
||||
- G_MWO_aLIGHT_3
|
||||
- G_MWO_aLIGHT_3
|
||||
- G_MWO_aLIGHT_4
|
||||
- G_MWO_aLIGHT_4
|
||||
- G_MWO_aLIGHT_5
|
||||
- G_MWO_aLIGHT_5
|
||||
- G_MWO_aLIGHT_6
|
||||
- G_MWO_aLIGHT_6
|
||||
- G_MWO_aLIGHT_7
|
||||
- G_MWO_aLIGHT_7
|
||||
- G_MWO_aLIGHT_8
|
||||
- G_MWO_aLIGHT_8
|
||||
- G_MWO_bLIGHT_1
|
||||
- G_MWO_bLIGHT_2
|
||||
- G_MWO_bLIGHT_2
|
||||
- G_MWO_bLIGHT_3
|
||||
- G_MWO_bLIGHT_3
|
||||
- G_MWO_bLIGHT_4
|
||||
- G_MWO_bLIGHT_4
|
||||
- G_MWO_bLIGHT_5
|
||||
- G_MWO_bLIGHT_5
|
||||
- G_MWO_bLIGHT_6
|
||||
- G_MWO_bLIGHT_6
|
||||
- G_MWO_bLIGHT_7
|
||||
- G_MWO_bLIGHT_7
|
||||
- G_MWO_bLIGHT_8
|
||||
- G_MWO_bLIGHT_8
|
||||
- G_MW_CLIP
|
||||
- G_MW_FOG
|
||||
- G_MW_LIGHTCOL
|
||||
- G_MW_MATRIX
|
||||
- G_MW_NUMLIGHT
|
||||
- G_MW_PERSPNORM
|
||||
- G_MW_SEGMENT
|
||||
- G_NOOP
|
||||
- G_NOOP
|
||||
- G_PM_1PRIMITIVE
|
||||
- G_PM_NPRIMITIVE
|
||||
- G_POPMTX
|
||||
- G_POPMTX
|
||||
- G_QUAD
|
||||
- G_RDPCMDSIZ
|
||||
- G_RDPFULLSYNC
|
||||
- G_RDPHALF_1
|
||||
- G_RDPHALF_1
|
||||
- G_RDPHALF_2
|
||||
- G_RDPHALF_2
|
||||
- G_RDPLOADSYNC
|
||||
- G_RDPPIPESYNC
|
||||
- G_RDPSETOTHERMODE
|
||||
- G_RDPTILESYNC
|
||||
- G_RDP_ADDR_FIXUP
|
||||
- G_RDP_TRI_FILL_MASK
|
||||
- G_RDP_TRI_SHADE_MASK
|
||||
- G_RDP_TRI_TXTR_MASK
|
||||
- G_RDP_TRI_ZBUFF_MASK
|
||||
- G_RESERVED0
|
||||
- G_RESERVED1
|
||||
- G_RESERVED2
|
||||
- G_RESERVED3
|
||||
- G_ROTATE_FRAC
|
||||
- G_SCALE_FRAC
|
||||
- G_SC_EVEN_INTERLACE
|
||||
- G_SC_NON_INTERLACE
|
||||
- G_SC_ODD_INTERLACE
|
||||
- G_SETBLENDCOLOR
|
||||
- G_SETCIMG
|
||||
- G_SETCOMBINE
|
||||
- G_SETCONVERT
|
||||
- G_SETENVCOLOR
|
||||
- G_SETFILLCOLOR
|
||||
- G_SETFOGCOLOR
|
||||
- G_SETGEOMETRYMODE
|
||||
- G_SETKEYGB
|
||||
- G_SETKEYR
|
||||
- G_SETOTHERMODE_H
|
||||
- G_SETOTHERMODE_H
|
||||
- G_SETOTHERMODE_L
|
||||
- G_SETOTHERMODE_L
|
||||
- G_SETPRIMCOLOR
|
||||
- G_SETPRIMDEPTH
|
||||
- G_SETSCISSOR
|
||||
- G_SETTILE
|
||||
- G_SETTILESIZE
|
||||
- G_SETTIMG
|
||||
- G_SETZIMG
|
||||
- G_SHADE
|
||||
- G_SPECIAL_1
|
||||
- G_SPECIAL_2
|
||||
- G_SPECIAL_3
|
||||
- G_SPNOOP
|
||||
- G_SPNOOP
|
||||
- G_SPRITE2D_BASE
|
||||
- G_SPRITE2D_DRAW
|
||||
- G_SPRITE2D_SCALEFLIP
|
||||
- G_TC_CONV
|
||||
- G_TC_FILT
|
||||
- G_TC_FILTCONV
|
||||
- G_TD_CLAMP
|
||||
- G_TD_DETAIL
|
||||
- G_TD_SHARPEN
|
||||
- G_TEXRECT
|
||||
- G_TEXRECTFLIP
|
||||
- G_TEXTURE
|
||||
- G_TEXTURE
|
||||
- G_TEXTURE_GEN
|
||||
- G_TEXTURE_GEN_LINEAR
|
||||
- G_TEXTURE_IMAGE_FRAC
|
||||
- G_TEXTURE_SCALE_FRAC
|
||||
- G_TF_AVERAGE
|
||||
- G_TF_BILERP
|
||||
- G_TF_POINT
|
||||
- G_TL_LOD
|
||||
- G_TL_TILE
|
||||
- G_TP_NONE
|
||||
- G_TP_PERSP
|
||||
- G_TRI1
|
||||
- G_TRI1
|
||||
- G_TRI2
|
||||
- G_TRI_FILL
|
||||
- G_TRI_FILL_ZBUFF
|
||||
- G_TRI_SHADE
|
||||
- G_TRI_SHADE_TXTR
|
||||
- G_TRI_SHADE_TXTR_ZBUFF
|
||||
- G_TRI_SHADE_ZBUFF
|
||||
- G_TRI_TXTR
|
||||
- G_TRI_TXTR_ZBUFF
|
||||
- G_TT_IA16
|
||||
- G_TT_NONE
|
||||
- G_TT_RGBA16
|
||||
- G_TX_CLAMP
|
||||
- G_TX_DXT_FRAC
|
||||
- G_TX_LDBLK_MAX_TXL
|
||||
- G_TX_LDBLK_MAX_TXL
|
||||
- G_TX_LOADTILE
|
||||
- G_TX_MIRROR
|
||||
- G_TX_NOLOD
|
||||
- G_TX_NOMASK
|
||||
- G_TX_NOMIRROR
|
||||
- G_TX_RENDERTILE
|
||||
- G_TX_WRAP
|
||||
- G_VTX
|
||||
- G_VTX
|
||||
- G_ZBUFFER
|
||||
- G_ZS_PIXEL
|
||||
- G_ZS_PRIM
|
||||
- IM_RD
|
||||
- LIGHT_1
|
||||
- LIGHT_2
|
||||
- LIGHT_3
|
||||
- LIGHT_4
|
||||
- LIGHT_5
|
||||
- LIGHT_6
|
||||
- LIGHT_7
|
||||
- LIGHT_8
|
||||
- NUMLIGHTS_0
|
||||
- NUMLIGHTS_1
|
||||
- NUMLIGHTS_2
|
||||
- NUMLIGHTS_3
|
||||
- NUMLIGHTS_4
|
||||
- NUMLIGHTS_5
|
||||
- NUMLIGHTS_6
|
||||
- NUMLIGHTS_7
|
||||
- TEX_EDGE
|
||||
- ZMODE_DEC
|
||||
- ZMODE_INTER
|
||||
- ZMODE_OPA
|
||||
- ZMODE_XLU
|
||||
- Z_CMP
|
||||
- Z_UPD
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [geo_commands.h](#geo_commands.h)
|
||||
- BACKGROUND_ABOVE_CLOUDS
|
||||
- BACKGROUND_BELOW_CLOUDS
|
||||
|
|
@ -2857,6 +3246,14 @@
|
|||
- SAVE_FLAG_UNLOCKED_UPSTAIRS_DOOR
|
||||
- SAVE_FLAG_UNLOCKED_WF_DOOR
|
||||
|
||||
### [enum EuLanguages](#EuLanguages)
|
||||
| Identifier | Value |
|
||||
| :--------- | :---- |
|
||||
| LANGUAGE_ENGLISH | 0 |
|
||||
| LANGUAGE_FRENCH | 1 |
|
||||
| LANGUAGE_GERMAN | 2 |
|
||||
| LANGUAGE_MAX | 3 |
|
||||
|
||||
### [enum SaveFileIndex](#SaveFileIndex)
|
||||
| Identifier | Value |
|
||||
| :--------- | :---- |
|
||||
|
|
@ -3998,6 +4395,7 @@
|
|||
- SOUND_GENERAL_OPEN_IRON_DOOR
|
||||
- SOUND_GENERAL_OPEN_WOOD_DOOR
|
||||
- SOUND_GENERAL_PAINTING_EJECT
|
||||
- SOUND_GENERAL_PAINTING_EJECT
|
||||
- SOUND_GENERAL_PENDULUM_SWING
|
||||
- SOUND_GENERAL_PLATFORM
|
||||
- SOUND_GENERAL_POUND_ROCK
|
||||
|
|
|
|||
|
|
@ -7839,6 +7839,93 @@ Gets a value of the global vertex shading color
|
|||
|
||||
<br />
|
||||
|
||||
## [gfx_get_vtx](#gfx_get_vtx)
|
||||
|
||||
### Description
|
||||
Gets a vertex from a display list command if it has the correct op. Intended to be used with `gfx_parse`.
|
||||
|
||||
### Lua Example
|
||||
`local PointerValue = gfx_get_vtx(gfx, offset)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| gfx | `Pointer` <`Gfx`> |
|
||||
| offset | `integer` |
|
||||
|
||||
### Returns
|
||||
- `Pointer` <`Vtx`>
|
||||
|
||||
### C Prototype
|
||||
`Vtx *gfx_get_vtx(Gfx* gfx, u16 offset);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [gfx_parse](#gfx_parse)
|
||||
|
||||
### Description
|
||||
Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op`.
|
||||
|
||||
### Lua Example
|
||||
`gfx_parse(cmd, func)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| cmd | `Pointer` <`Gfx`> |
|
||||
| func | `Lua Function` () |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void gfx_parse(Gfx* cmd, LuaFunction func);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [gfx_set_combine_lerp](#gfx_set_combine_lerp)
|
||||
|
||||
### Description
|
||||
Sets the display list combine mode.
|
||||
|
||||
### Lua Example
|
||||
`gfx_set_combine_lerp(gfx, a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| gfx | `Pointer` <`Gfx`> |
|
||||
| a0 | `integer` |
|
||||
| b0 | `integer` |
|
||||
| c0 | `integer` |
|
||||
| d0 | `integer` |
|
||||
| Aa0 | `integer` |
|
||||
| Ab0 | `integer` |
|
||||
| Ac0 | `integer` |
|
||||
| Ad0 | `integer` |
|
||||
| a1 | `integer` |
|
||||
| b1 | `integer` |
|
||||
| c1 | `integer` |
|
||||
| d1 | `integer` |
|
||||
| Aa1 | `integer` |
|
||||
| Ab1 | `integer` |
|
||||
| Ac1 | `integer` |
|
||||
| Ad1 | `integer` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void gfx_set_combine_lerp(Gfx* gfx, u32 a0, u32 b0, u32 c0, u32 d0, u32 Aa0, u32 Ab0, u32 Ac0, u32 Ad0, u32 a1, u32 b1, u32 c1, u32 d1, u32 Aa1, u32 Ab1, u32 Ac1, u32 Ad1);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [set_fog_color](#set_fog_color)
|
||||
|
||||
### Description
|
||||
|
|
@ -8386,320 +8473,6 @@ Warps to `aWarpId` of `aArea` in `aLevel` during `aAct`
|
|||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
---
|
||||
# functions from smlua_math_utils.h
|
||||
|
||||
<br />
|
||||
|
||||
|
||||
## [clamp](#clamp)
|
||||
|
||||
### Description
|
||||
Clamps a signed 32-bit integer `a` between bounds `b` (minimum) and `c` (maximum)
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = clamp(a, b, c)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `integer` |
|
||||
| b | `integer` |
|
||||
| c | `integer` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s32 clamp(s32 a, s32 b, s32 c);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [clampf](#clampf)
|
||||
|
||||
### Description
|
||||
Clamps a floating-point number `a` between bounds `b` (minimum) and `c` (maximum)
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = clampf(a, b, c)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `number` |
|
||||
| b | `number` |
|
||||
| c | `number` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 clampf(f32 a, f32 b, f32 c);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [degrees_to_sm64](#degrees_to_sm64)
|
||||
|
||||
### Description
|
||||
Converts an angle from degrees to SM64 format
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = degrees_to_sm64(degreesAngle)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| degreesAngle | `number` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s16 degrees_to_sm64(f32 degreesAngle);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [hypotf](#hypotf)
|
||||
|
||||
### Description
|
||||
Computes the hypotenuse of a right triangle given sides `a` and `b` using the Pythagorean theorem
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = hypotf(a, b)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `number` |
|
||||
| b | `number` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 hypotf(f32 a, f32 b);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [max](#max)
|
||||
|
||||
### Description
|
||||
Finds the maximum of two signed 32-bit integers
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = max(a, b)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `integer` |
|
||||
| b | `integer` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s32 max(s32 a, s32 b);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [maxf](#maxf)
|
||||
|
||||
### Description
|
||||
Finds the maximum of two floating-point numbers
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = maxf(a, b)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `number` |
|
||||
| b | `number` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 maxf(f32 a, f32 b);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [min](#min)
|
||||
|
||||
### Description
|
||||
Finds the minimum of two signed 32-bit integers
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = min(a, b)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `integer` |
|
||||
| b | `integer` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s32 min(s32 a, s32 b);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [minf](#minf)
|
||||
|
||||
### Description
|
||||
Finds the minimum of two floating-point numbers
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = minf(a, b)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `number` |
|
||||
| b | `number` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 minf(f32 a, f32 b);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [radians_to_sm64](#radians_to_sm64)
|
||||
|
||||
### Description
|
||||
Converts an angle from radians to SM64 format
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = radians_to_sm64(radiansAngle)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| radiansAngle | `number` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s16 radians_to_sm64(f32 radiansAngle);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [sm64_to_degrees](#sm64_to_degrees)
|
||||
|
||||
### Description
|
||||
Converts an angle from SM64 format to degrees
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = sm64_to_degrees(sm64Angle)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| sm64Angle | `integer` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 sm64_to_degrees(s16 sm64Angle);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [sm64_to_radians](#sm64_to_radians)
|
||||
|
||||
### Description
|
||||
Converts an angle from SM64 format to radians
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = sm64_to_radians(sm64Angle)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| sm64Angle | `integer` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 sm64_to_radians(s16 sm64Angle);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [sqr](#sqr)
|
||||
|
||||
### Description
|
||||
Computes the square of a signed 32-bit integer
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = sqr(x)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| x | `integer` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s32 sqr(s32 x);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [sqrf](#sqrf)
|
||||
|
||||
### Description
|
||||
Computes the square of a floating-point number
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = sqrf(x)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| x | `number` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 sqrf(f32 x);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,320 @@
|
|||
[< prev](functions-5.md) | [1](functions.md) | [2](functions-2.md) | [3](functions-3.md) | [4](functions-4.md) | [5](functions-5.md) | 6]
|
||||
|
||||
|
||||
---
|
||||
# functions from smlua_math_utils.h
|
||||
|
||||
<br />
|
||||
|
||||
|
||||
## [clamp](#clamp)
|
||||
|
||||
### Description
|
||||
Clamps a signed 32-bit integer `a` between bounds `b` (minimum) and `c` (maximum)
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = clamp(a, b, c)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `integer` |
|
||||
| b | `integer` |
|
||||
| c | `integer` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s32 clamp(s32 a, s32 b, s32 c);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [clampf](#clampf)
|
||||
|
||||
### Description
|
||||
Clamps a floating-point number `a` between bounds `b` (minimum) and `c` (maximum)
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = clampf(a, b, c)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `number` |
|
||||
| b | `number` |
|
||||
| c | `number` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 clampf(f32 a, f32 b, f32 c);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [degrees_to_sm64](#degrees_to_sm64)
|
||||
|
||||
### Description
|
||||
Converts an angle from degrees to SM64 format
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = degrees_to_sm64(degreesAngle)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| degreesAngle | `number` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s16 degrees_to_sm64(f32 degreesAngle);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [hypotf](#hypotf)
|
||||
|
||||
### Description
|
||||
Computes the hypotenuse of a right triangle given sides `a` and `b` using the Pythagorean theorem
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = hypotf(a, b)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `number` |
|
||||
| b | `number` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 hypotf(f32 a, f32 b);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [max](#max)
|
||||
|
||||
### Description
|
||||
Finds the maximum of two signed 32-bit integers
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = max(a, b)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `integer` |
|
||||
| b | `integer` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s32 max(s32 a, s32 b);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [maxf](#maxf)
|
||||
|
||||
### Description
|
||||
Finds the maximum of two floating-point numbers
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = maxf(a, b)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `number` |
|
||||
| b | `number` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 maxf(f32 a, f32 b);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [min](#min)
|
||||
|
||||
### Description
|
||||
Finds the minimum of two signed 32-bit integers
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = min(a, b)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `integer` |
|
||||
| b | `integer` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s32 min(s32 a, s32 b);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [minf](#minf)
|
||||
|
||||
### Description
|
||||
Finds the minimum of two floating-point numbers
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = minf(a, b)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| a | `number` |
|
||||
| b | `number` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 minf(f32 a, f32 b);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [radians_to_sm64](#radians_to_sm64)
|
||||
|
||||
### Description
|
||||
Converts an angle from radians to SM64 format
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = radians_to_sm64(radiansAngle)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| radiansAngle | `number` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s16 radians_to_sm64(f32 radiansAngle);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [sm64_to_degrees](#sm64_to_degrees)
|
||||
|
||||
### Description
|
||||
Converts an angle from SM64 format to degrees
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = sm64_to_degrees(sm64Angle)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| sm64Angle | `integer` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 sm64_to_degrees(s16 sm64Angle);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [sm64_to_radians](#sm64_to_radians)
|
||||
|
||||
### Description
|
||||
Converts an angle from SM64 format to radians
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = sm64_to_radians(sm64Angle)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| sm64Angle | `integer` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 sm64_to_radians(s16 sm64Angle);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [sqr](#sqr)
|
||||
|
||||
### Description
|
||||
Computes the square of a signed 32-bit integer
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = sqr(x)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| x | `integer` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s32 sqr(s32 x);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [sqrf](#sqrf)
|
||||
|
||||
### Description
|
||||
Computes the square of a floating-point number
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = sqrf(x)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| x | `number` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 sqrf(f32 x);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
---
|
||||
# functions from smlua_misc_utils.h
|
||||
|
||||
|
|
|
|||
|
|
@ -1705,6 +1705,9 @@
|
|||
- [get_skybox](functions-5.md#get_skybox)
|
||||
- [get_skybox_color](functions-5.md#get_skybox_color)
|
||||
- [get_vertex_color](functions-5.md#get_vertex_color)
|
||||
- [gfx_get_vtx](functions-5.md#gfx_get_vtx)
|
||||
- [gfx_parse](functions-5.md#gfx_parse)
|
||||
- [gfx_set_combine_lerp](functions-5.md#gfx_set_combine_lerp)
|
||||
- [set_fog_color](functions-5.md#set_fog_color)
|
||||
- [set_fog_intensity](functions-5.md#set_fog_intensity)
|
||||
- [set_lighting_color](functions-5.md#set_lighting_color)
|
||||
|
|
@ -1736,19 +1739,19 @@
|
|||
<br />
|
||||
|
||||
- smlua_math_utils.h
|
||||
- [clamp](functions-5.md#clamp)
|
||||
- [clampf](functions-5.md#clampf)
|
||||
- [degrees_to_sm64](functions-5.md#degrees_to_sm64)
|
||||
- [hypotf](functions-5.md#hypotf)
|
||||
- [max](functions-5.md#max)
|
||||
- [maxf](functions-5.md#maxf)
|
||||
- [min](functions-5.md#min)
|
||||
- [minf](functions-5.md#minf)
|
||||
- [radians_to_sm64](functions-5.md#radians_to_sm64)
|
||||
- [sm64_to_degrees](functions-5.md#sm64_to_degrees)
|
||||
- [sm64_to_radians](functions-5.md#sm64_to_radians)
|
||||
- [sqr](functions-5.md#sqr)
|
||||
- [sqrf](functions-5.md#sqrf)
|
||||
- [clamp](functions-6.md#clamp)
|
||||
- [clampf](functions-6.md#clampf)
|
||||
- [degrees_to_sm64](functions-6.md#degrees_to_sm64)
|
||||
- [hypotf](functions-6.md#hypotf)
|
||||
- [max](functions-6.md#max)
|
||||
- [maxf](functions-6.md#maxf)
|
||||
- [min](functions-6.md#min)
|
||||
- [minf](functions-6.md#minf)
|
||||
- [radians_to_sm64](functions-6.md#radians_to_sm64)
|
||||
- [sm64_to_degrees](functions-6.md#sm64_to_degrees)
|
||||
- [sm64_to_radians](functions-6.md#sm64_to_radians)
|
||||
- [sqr](functions-6.md#sqr)
|
||||
- [sqrf](functions-6.md#sqrf)
|
||||
|
||||
<br />
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
- [FirstPersonCamera](#FirstPersonCamera)
|
||||
- [FloorGeometry](#FloorGeometry)
|
||||
- [FnGraphNode](#FnGraphNode)
|
||||
- [Gfx](#Gfx)
|
||||
- [GlobalObjectAnimations](#GlobalObjectAnimations)
|
||||
- [GlobalObjectCollisionData](#GlobalObjectCollisionData)
|
||||
- [GlobalTextures](#GlobalTextures)
|
||||
|
|
@ -109,6 +110,7 @@
|
|||
- [Vec3s](#Vec3s)
|
||||
- [Vec4f](#Vec4f)
|
||||
- [Vec4s](#Vec4s)
|
||||
- [Vtx](#Vtx)
|
||||
- [Vtx_Interp](#Vtx_Interp)
|
||||
- [WallCollisionData](#WallCollisionData)
|
||||
- [WarpNode](#WarpNode)
|
||||
|
|
@ -704,6 +706,8 @@
|
|||
| animWaterThrowObj | `integer` | read-only |
|
||||
| animWingCapFly | `integer` | read-only |
|
||||
| cameraHudHead | `integer` | read-only |
|
||||
| capEnemyDecalGfx | `Pointer` <`Gfx`> | read-only |
|
||||
| capEnemyGfx | `Pointer` <`Gfx`> | read-only |
|
||||
| capEnemyLayer | `integer` | read-only |
|
||||
| capMetalModelId | `integer` | read-only |
|
||||
| capMetalWingModelId | `integer` | read-only |
|
||||
|
|
@ -873,6 +877,7 @@
|
|||
|
||||
| Field | Type | Access |
|
||||
| ----- | ---- | ------ |
|
||||
| displayList | `Pointer` <`Gfx`> | |
|
||||
| next | [DisplayListNode](structs.md#DisplayListNode) | |
|
||||
| usingCamSpace | `integer` | |
|
||||
|
||||
|
|
@ -1001,6 +1006,17 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [Gfx](#Gfx)
|
||||
|
||||
| Field | Type | Access |
|
||||
| ----- | ---- | ------ |
|
||||
| w0 | `integer` | read-only |
|
||||
| w1 | `integer` | read-only |
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [GlobalObjectAnimations](#GlobalObjectAnimations)
|
||||
|
||||
| Field | Type | Access |
|
||||
|
|
@ -1220,6 +1236,7 @@
|
|||
|
||||
| Field | Type | Access |
|
||||
| ----- | ---- | ------ |
|
||||
| displayList | `Pointer` <`Gfx`> | |
|
||||
| node | [GraphNode](structs.md#GraphNode) | read-only |
|
||||
| translation | [Vec3s](structs.md#Vec3s) | read-only |
|
||||
|
||||
|
|
@ -1246,6 +1263,7 @@
|
|||
|
||||
| Field | Type | Access |
|
||||
| ----- | ---- | ------ |
|
||||
| displayList | `Pointer` <`Gfx`> | |
|
||||
| node | [GraphNode](structs.md#GraphNode) | read-only |
|
||||
| translation | [Vec3s](structs.md#Vec3s) | read-only |
|
||||
|
||||
|
|
@ -1288,6 +1306,7 @@
|
|||
|
||||
| Field | Type | Access |
|
||||
| ----- | ---- | ------ |
|
||||
| displayList | `Pointer` <`Gfx`> | |
|
||||
| node | [GraphNode](structs.md#GraphNode) | read-only |
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
|
@ -1420,6 +1439,7 @@
|
|||
|
||||
| Field | Type | Access |
|
||||
| ----- | ---- | ------ |
|
||||
| displayList | `Pointer` <`Gfx`> | |
|
||||
| node | [GraphNode](structs.md#GraphNode) | read-only |
|
||||
| prevRotation | [Vec3s](structs.md#Vec3s) | read-only |
|
||||
| prevTimestamp | `integer` | |
|
||||
|
|
@ -1433,6 +1453,7 @@
|
|||
|
||||
| Field | Type | Access |
|
||||
| ----- | ---- | ------ |
|
||||
| displayList | `Pointer` <`Gfx`> | |
|
||||
| node | [GraphNode](structs.md#GraphNode) | read-only |
|
||||
| prevScale | `number` | |
|
||||
| scale | `number` | |
|
||||
|
|
@ -1481,6 +1502,7 @@
|
|||
|
||||
| Field | Type | Access |
|
||||
| ----- | ---- | ------ |
|
||||
| displayList | `Pointer` <`Gfx`> | |
|
||||
| node | [GraphNode](structs.md#GraphNode) | read-only |
|
||||
| pad1E | `Array` <`integer`> | |
|
||||
| translation | [Vec3s](structs.md#Vec3s) | read-only |
|
||||
|
|
@ -1493,6 +1515,7 @@
|
|||
|
||||
| Field | Type | Access |
|
||||
| ----- | ---- | ------ |
|
||||
| displayList | `Pointer` <`Gfx`> | |
|
||||
| node | [GraphNode](structs.md#GraphNode) | read-only |
|
||||
| rotation | [Vec3s](structs.md#Vec3s) | read-only |
|
||||
| translation | [Vec3s](structs.md#Vec3s) | read-only |
|
||||
|
|
@ -2815,6 +2838,7 @@
|
|||
| marioIsUnder | `integer` | |
|
||||
| marioWasUnder | `integer` | |
|
||||
| marioWentUnder | `integer` | |
|
||||
| normalDisplayList | `Pointer` <`Gfx`> | read-only |
|
||||
| passiveDispersionFactor | `number` | |
|
||||
| passiveRippleDecay | `number` | |
|
||||
| passiveRippleMag | `number` | |
|
||||
|
|
@ -2824,6 +2848,7 @@
|
|||
| posY | `number` | |
|
||||
| posZ | `number` | |
|
||||
| rippleDecay | `number` | |
|
||||
| rippleDisplayList | `Pointer` <`Gfx`> | read-only |
|
||||
| rippleTimer | `number` | |
|
||||
| rippleTrigger | `integer` | |
|
||||
| rippleX | `number` | |
|
||||
|
|
@ -3198,6 +3223,19 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [Vtx](#Vtx)
|
||||
|
||||
| Field | Type | Access |
|
||||
| ----- | ---- | ------ |
|
||||
| cn | `Array` <`integer`> | |
|
||||
| flag | `integer` | |
|
||||
| ob | `Array` <`number`> | |
|
||||
| tc | `Array` <`integer`> | |
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [Vtx_Interp](#Vtx_Interp)
|
||||
|
||||
| Field | Type | Access |
|
||||
|
|
|
|||
|
|
@ -3197,6 +3197,28 @@ typedef union {
|
|||
G_ACMUX_##Ad1)); \
|
||||
}
|
||||
|
||||
#define gDPSetCombineLERPNoString(pkt, a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, \
|
||||
a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1) \
|
||||
{ \
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
\
|
||||
_g->words.w0 = _SHIFTL(G_SETCOMBINE, 24, 8) | \
|
||||
_SHIFTL(GCCc0w0(a0, c0, \
|
||||
Aa0, Ac0) | \
|
||||
GCCc1w0(a1, c1), \
|
||||
0, 24); \
|
||||
_g->words.w1 = (unsigned int)(GCCc0w1(b0, \
|
||||
d0, \
|
||||
Ab0, \
|
||||
Ad0) | \
|
||||
GCCc1w1(b1, \
|
||||
Aa1, \
|
||||
Ac1, \
|
||||
d1, \
|
||||
Ab1, \
|
||||
Ad1)); \
|
||||
}
|
||||
|
||||
#define gsDPSetCombineLERP(a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, \
|
||||
a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1) \
|
||||
{{ \
|
||||
|
|
|
|||
46
include/gfx_symbols.h
Normal file
46
include/gfx_symbols.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
// To use this macro, define `define_gfx_symbol` before including this file.
|
||||
|
||||
#define GFX_SYMBOLS() \
|
||||
define_gfx_symbol(gsDPFullSync, 0); \
|
||||
define_gfx_symbol(gsDPTileSync, 0); \
|
||||
define_gfx_symbol(gsDPPipeSync, 0); \
|
||||
define_gfx_symbol(gsDPLoadSync, 0); \
|
||||
define_gfx_symbol(gsDPNoOp, 0); \
|
||||
define_gfx_symbol(gsDPNoOpTag, 1, false); \
|
||||
define_gfx_symbol(gsDPSetCycleType, 1, false); \
|
||||
define_gfx_symbol(gsSPLight, 2, true); \
|
||||
define_gfx_symbol(gsSPVertex, 3, true); \
|
||||
define_gfx_symbol(gsSP1Triangle, 4); \
|
||||
define_gfx_symbol(gsSP2Triangles, 8); \
|
||||
define_gfx_symbol(gsSPNumLights, 1, false); \
|
||||
define_gfx_symbol(gsDPSetDepthSource, 1, false); \
|
||||
define_gfx_symbol(gsDPSetTextureLUT, 1, false); \
|
||||
define_gfx_symbol(gsDPLoadBlock, 5); \
|
||||
define_gfx_symbol(gsDPSetRenderMode, 2, false); \
|
||||
define_gfx_symbol(gsSPGeometryMode, 2, false); \
|
||||
define_gfx_symbol(gsSPGeometryModeSetFirst, 2, false); \
|
||||
define_gfx_symbol(gsDPSetPrimColor, 6); \
|
||||
define_gfx_symbol(gsDPSetEnvColor, 4); \
|
||||
define_gfx_symbol(gsDPSetFogColor, 4); \
|
||||
define_gfx_symbol(gsSPFogPosition, 2, false); \
|
||||
define_gfx_symbol(gsDPSetAlphaCompare, 1, false); \
|
||||
define_gfx_symbol(gsDPSetTextureFilter, 1, false); \
|
||||
define_gfx_symbol(gsSPCullDisplayList, 2, false); \
|
||||
define_gfx_symbol(gsDPSetAlphaDither, 1, false); \
|
||||
define_gfx_symbol(gsDPSetCombineKey, 1, false); \
|
||||
define_gfx_symbol(gsDPSetTextureConvert, 1, false); \
|
||||
define_gfx_symbol(gsDPSetCombineKey, 1, false); \
|
||||
define_gfx_symbol(gsDPSetTextureConvert, 1, false); \
|
||||
define_gfx_symbol(gsDPPipelineMode, 1, false); \
|
||||
define_gfx_symbol(gsSPSetOtherMode, 4); \
|
||||
define_gfx_symbol(gsDPSetTextureDetail, 1, false); \
|
||||
define_gfx_symbol(gsDPSetColorDither, 1, false); \
|
||||
define_gfx_symbol(gsDPSetPrimDepth, 2, false); \
|
||||
define_gfx_symbol(gsDPSetBlendColor, 4); \
|
||||
\
|
||||
define_gfx_symbol(gsSPCopyLightEXT, 2, false); \
|
||||
define_gfx_symbol(gsSPCopyLightsPlayerPart, 1, false); \
|
||||
define_gfx_symbol(gsSPFogFactor, 2, false); \
|
||||
define_gfx_symbol(gsDPSetTextureLOD, 1, false); \
|
||||
define_gfx_symbol(gsMoveWd, 3, false); \
|
||||
define_gfx_symbol(gsSPVertexNonGlobal, 3, true);
|
||||
|
|
@ -88,4 +88,30 @@
|
|||
#define OPTIMIZE_O3
|
||||
#endif
|
||||
|
||||
// Repeats the macro `ACTION(N)` `N` times (one per line)
|
||||
#define REPEAT_0(ACTION)
|
||||
#define REPEAT_1(ACTION) ACTION(1)
|
||||
#define REPEAT_2(ACTION) REPEAT_1(ACTION) ACTION(2)
|
||||
#define REPEAT_3(ACTION) REPEAT_2(ACTION) ACTION(3)
|
||||
#define REPEAT_4(ACTION) REPEAT_3(ACTION) ACTION(4)
|
||||
#define REPEAT_5(ACTION) REPEAT_4(ACTION) ACTION(5)
|
||||
#define REPEAT_6(ACTION) REPEAT_5(ACTION) ACTION(6)
|
||||
#define REPEAT_7(ACTION) REPEAT_6(ACTION) ACTION(7)
|
||||
#define REPEAT_8(ACTION) REPEAT_7(ACTION) ACTION(8)
|
||||
#define REPEAT_9(ACTION) REPEAT_8(ACTION) ACTION(9)
|
||||
#define REPEAT(ACTION, N) REPEAT_##N(ACTION)
|
||||
|
||||
// Expands to a comma-separated list of arguments
|
||||
#define LIST_ARGS_0(ACTION)
|
||||
#define LIST_ARGS_1(ACTION) ACTION(1)
|
||||
#define LIST_ARGS_2(ACTION) LIST_ARGS_1(ACTION), ACTION(2)
|
||||
#define LIST_ARGS_3(ACTION) LIST_ARGS_2(ACTION), ACTION(3)
|
||||
#define LIST_ARGS_4(ACTION) LIST_ARGS_3(ACTION), ACTION(4)
|
||||
#define LIST_ARGS_5(ACTION) LIST_ARGS_4(ACTION), ACTION(5)
|
||||
#define LIST_ARGS_6(ACTION) LIST_ARGS_5(ACTION), ACTION(6)
|
||||
#define LIST_ARGS_7(ACTION) LIST_ARGS_6(ACTION), ACTION(7)
|
||||
#define LIST_ARGS_8(ACTION) LIST_ARGS_7(ACTION), ACTION(8)
|
||||
#define LIST_ARGS_9(ACTION) LIST_ARGS_8(ACTION), ACTION(9)
|
||||
#define LIST_ARGS(ACTION, N) LIST_ARGS_##N(ACTION)
|
||||
|
||||
#endif // MACROS_H
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ struct DisplayListNode
|
|||
{
|
||||
Mtx *transform;
|
||||
Mtx *transformPrev;
|
||||
void *displayList;
|
||||
Gfx *displayList;
|
||||
struct DisplayListNode *next;
|
||||
u8 usingCamSpace;
|
||||
};
|
||||
|
|
@ -214,7 +214,7 @@ struct GraphNodeCamera
|
|||
struct GraphNodeTranslationRotation
|
||||
{
|
||||
/*0x00*/ struct GraphNode node;
|
||||
/*0x14*/ void *displayList;
|
||||
/*0x14*/ Gfx *displayList;
|
||||
/*0x18*/ Vec3s translation;
|
||||
/*0x1E*/ Vec3s rotation;
|
||||
};
|
||||
|
|
@ -226,7 +226,7 @@ struct GraphNodeTranslationRotation
|
|||
struct GraphNodeTranslation
|
||||
{
|
||||
/*0x00*/ struct GraphNode node;
|
||||
/*0x14*/ void *displayList;
|
||||
/*0x14*/ Gfx *displayList;
|
||||
/*0x18*/ Vec3s translation;
|
||||
u8 pad1E[2];
|
||||
};
|
||||
|
|
@ -239,7 +239,7 @@ struct GraphNodeTranslation
|
|||
struct GraphNodeRotation
|
||||
{
|
||||
/*0x00*/ struct GraphNode node;
|
||||
/*0x14*/ void *displayList;
|
||||
/*0x14*/ Gfx *displayList;
|
||||
/*0x18*/ Vec3s rotation;
|
||||
Vec3s prevRotation;
|
||||
u32 prevTimestamp;
|
||||
|
|
@ -255,7 +255,7 @@ struct GraphNodeRotation
|
|||
struct GraphNodeAnimatedPart
|
||||
{
|
||||
/*0x00*/ struct GraphNode node;
|
||||
/*0x14*/ void *displayList;
|
||||
/*0x14*/ Gfx *displayList;
|
||||
/*0x18*/ Vec3s translation;
|
||||
};
|
||||
|
||||
|
|
@ -267,7 +267,7 @@ struct GraphNodeAnimatedPart
|
|||
struct GraphNodeBillboard
|
||||
{
|
||||
/*0x00*/ struct GraphNode node;
|
||||
/*0x14*/ void *displayList;
|
||||
/*0x14*/ Gfx *displayList;
|
||||
/*0x18*/ Vec3s translation;
|
||||
};
|
||||
|
||||
|
|
@ -277,7 +277,7 @@ struct GraphNodeBillboard
|
|||
struct GraphNodeDisplayList
|
||||
{
|
||||
/*0x00*/ struct GraphNode node;
|
||||
/*0x14*/ void *displayList;
|
||||
/*0x14*/ Gfx *displayList;
|
||||
};
|
||||
|
||||
/** GraphNode part that scales itself and its children.
|
||||
|
|
@ -291,7 +291,7 @@ struct GraphNodeDisplayList
|
|||
struct GraphNodeScale
|
||||
{
|
||||
/*0x00*/ struct GraphNode node;
|
||||
/*0x14*/ void *displayList;
|
||||
/*0x14*/ Gfx *displayList;
|
||||
/*0x18*/ f32 scale;
|
||||
/*????*/ f32 prevScale;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
#include "src/game/first_person_cam.h"
|
||||
#include "src/game/player_palette.h"
|
||||
#include "src/engine/graph_node.h"
|
||||
#include "include/PR/gbi.h"
|
||||
|
||||
#include "include/object_fields.h"
|
||||
|
||||
|
|
@ -428,282 +429,282 @@ static struct LuaObjectField sChainSegmentFields[LUA_CHAIN_SEGMENT_FIELD_COUNT]
|
|||
{ "yaw", LVT_S16, offsetof(struct ChainSegment, yaw), false, LOT_NONE, 1, sizeof(s16) },
|
||||
};
|
||||
|
||||
#define LUA_CHARACTER_FIELD_COUNT 270
|
||||
#define LUA_CHARACTER_FIELD_COUNT 272
|
||||
static struct LuaObjectField sCharacterFields[LUA_CHARACTER_FIELD_COUNT] = {
|
||||
{ "animAPose", LVT_S32, offsetof(struct Character, animAPose), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animAirForwardKb", LVT_S32, offsetof(struct Character, animAirForwardKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animAirKick", LVT_S32, offsetof(struct Character, animAirKick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animAirborneOnStomach", LVT_S32, offsetof(struct Character, animAirborneOnStomach), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBackflip", LVT_S32, offsetof(struct Character, animBackflip), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBackwardAirKb", LVT_S32, offsetof(struct Character, animBackwardAirKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBackwardKb", LVT_S32, offsetof(struct Character, animBackwardKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBackwardSpinning", LVT_S32, offsetof(struct Character, animBackwardSpinning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBackwardsWaterKb", LVT_S32, offsetof(struct Character, animBackwardsWaterKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBeingGrabbed", LVT_S32, offsetof(struct Character, animBeingGrabbed), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBendKnessRidingShell", LVT_S32, offsetof(struct Character, animBendKnessRidingShell), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBottomStuckInGround", LVT_S32, offsetof(struct Character, animBottomStuckInGround), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBreakdance", LVT_S32, offsetof(struct Character, animBreakdance), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animClimbDownLedge", LVT_S32, offsetof(struct Character, animClimbDownLedge), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animClimbUpPole", LVT_S32, offsetof(struct Character, animClimbUpPole), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCoughing", LVT_S32, offsetof(struct Character, animCoughing), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCrawling", LVT_S32, offsetof(struct Character, animCrawling), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsLookBackThenRun", LVT_S32, offsetof(struct Character, animCreditsLookBackThenRun), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsLookUp", LVT_S32, offsetof(struct Character, animCreditsLookUp), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsLowerHand", LVT_S32, offsetof(struct Character, animCreditsLowerHand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsPeaceSign", LVT_S32, offsetof(struct Character, animCreditsPeaceSign), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsRaiseHand", LVT_S32, offsetof(struct Character, animCreditsRaiseHand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsReturnFromLookUp", LVT_S32, offsetof(struct Character, animCreditsReturnFromLookUp), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsStartWalkLookUp", LVT_S32, offsetof(struct Character, animCreditsStartWalkLookUp), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsTakeOffCap", LVT_S32, offsetof(struct Character, animCreditsTakeOffCap), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsWaving", LVT_S32, offsetof(struct Character, animCreditsWaving), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCrouchFromFastLongjump", LVT_S32, offsetof(struct Character, animCrouchFromFastLongjump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCrouchFromSlideKick", LVT_S32, offsetof(struct Character, animCrouchFromSlideKick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCrouchFromSlowLongjump", LVT_S32, offsetof(struct Character, animCrouchFromSlowLongjump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCrouching", LVT_S32, offsetof(struct Character, animCrouching), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDive", LVT_S32, offsetof(struct Character, animDive), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDoubleJumpFall", LVT_S32, offsetof(struct Character, animDoubleJumpFall), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDoubleJumpRise", LVT_S32, offsetof(struct Character, animDoubleJumpRise), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDrowningPart1", LVT_S32, offsetof(struct Character, animDrowningPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDrowningPart2", LVT_S32, offsetof(struct Character, animDrowningPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDyingFallOver", LVT_S32, offsetof(struct Character, animDyingFallOver), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDyingInQuicksand", LVT_S32, offsetof(struct Character, animDyingInQuicksand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDyingOnBack", LVT_S32, offsetof(struct Character, animDyingOnBack), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDyingOnStomach", LVT_S32, offsetof(struct Character, animDyingOnStomach), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animElectrocution", LVT_S32, offsetof(struct Character, animElectrocution), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallFromSlide", LVT_S32, offsetof(struct Character, animFallFromSlide), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallFromSlideKick", LVT_S32, offsetof(struct Character, animFallFromSlideKick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallFromSlidingWithLightObj", LVT_S32, offsetof(struct Character, animFallFromSlidingWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallFromWater", LVT_S32, offsetof(struct Character, animFallFromWater), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallLandWithLightObj", LVT_S32, offsetof(struct Character, animFallLandWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallOverBackwards", LVT_S32, offsetof(struct Character, animFallOverBackwards), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallWithLightObj", LVT_S32, offsetof(struct Character, animFallWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFastLedgeGrab", LVT_S32, offsetof(struct Character, animFastLedgeGrab), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFastLongjump", LVT_S32, offsetof(struct Character, animFastLongjump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFinalBowserRaiseHandSpin", LVT_S32, offsetof(struct Character, animFinalBowserRaiseHandSpin), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFinalBowserWingCapTakeOff", LVT_S32, offsetof(struct Character, animFinalBowserWingCapTakeOff), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFireLavaBurn", LVT_S32, offsetof(struct Character, animFireLavaBurn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFirstPerson", LVT_S32, offsetof(struct Character, animFirstPerson), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFirstPunch", LVT_S32, offsetof(struct Character, animFirstPunch), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFirstPunchFast", LVT_S32, offsetof(struct Character, animFirstPunchFast), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFlutterkick", LVT_S32, offsetof(struct Character, animFlutterkick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFlutterkickWithObj", LVT_S32, offsetof(struct Character, animFlutterkickWithObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFlyFromCannon", LVT_S32, offsetof(struct Character, animFlyFromCannon), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animForwardFlip", LVT_S32, offsetof(struct Character, animForwardFlip), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animForwardKb", LVT_S32, offsetof(struct Character, animForwardKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animForwardSpinning", LVT_S32, offsetof(struct Character, animForwardSpinning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animForwardSpinningFlip", LVT_S32, offsetof(struct Character, animForwardSpinningFlip), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGeneralFall", LVT_S32, offsetof(struct Character, animGeneralFall), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGeneralLand", LVT_S32, offsetof(struct Character, animGeneralLand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGrabBowser", LVT_S32, offsetof(struct Character, animGrabBowser), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGrabHeavyObject", LVT_S32, offsetof(struct Character, animGrabHeavyObject), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGrabPoleShort", LVT_S32, offsetof(struct Character, animGrabPoleShort), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGrabPoleSwingPart1", LVT_S32, offsetof(struct Character, animGrabPoleSwingPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGrabPoleSwingPart2", LVT_S32, offsetof(struct Character, animGrabPoleSwingPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGroundBonk", LVT_S32, offsetof(struct Character, animGroundBonk), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGroundKick", LVT_S32, offsetof(struct Character, animGroundKick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGroundPound", LVT_S32, offsetof(struct Character, animGroundPound), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGroundPoundLanding", LVT_S32, offsetof(struct Character, animGroundPoundLanding), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGroundThrow", LVT_S32, offsetof(struct Character, animGroundThrow), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHandstandIdle", LVT_S32, offsetof(struct Character, animHandstandIdle), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHandstandJump", LVT_S32, offsetof(struct Character, animHandstandJump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHandstandLeft", LVT_S32, offsetof(struct Character, animHandstandLeft), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHandstandRight", LVT_S32, offsetof(struct Character, animHandstandRight), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHangOnCeiling", LVT_S32, offsetof(struct Character, animHangOnCeiling), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHangOnOwl", LVT_S32, offsetof(struct Character, animHangOnOwl), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHeadStuckInGround", LVT_S32, offsetof(struct Character, animHeadStuckInGround), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHeavyThrow", LVT_S32, offsetof(struct Character, animHeavyThrow), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHoldingBowser", LVT_S32, offsetof(struct Character, animHoldingBowser), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleHeadCenter", LVT_S32, offsetof(struct Character, animIdleHeadCenter), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleHeadLeft", LVT_S32, offsetof(struct Character, animIdleHeadLeft), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleHeadRight", LVT_S32, offsetof(struct Character, animIdleHeadRight), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleHeavyObj", LVT_S32, offsetof(struct Character, animIdleHeavyObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleInQuicksand", LVT_S32, offsetof(struct Character, animIdleInQuicksand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleOnLedge", LVT_S32, offsetof(struct Character, animIdleOnLedge), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleOnPole", LVT_S32, offsetof(struct Character, animIdleOnPole), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleWithLightObj", LVT_S32, offsetof(struct Character, animIdleWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animJumpLandWithLightObj", LVT_S32, offsetof(struct Character, animJumpLandWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animJumpRidingShell", LVT_S32, offsetof(struct Character, animJumpRidingShell), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animJumpWithLightObj", LVT_S32, offsetof(struct Character, animJumpWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animLandFromDoubleJump", LVT_S32, offsetof(struct Character, animLandFromDoubleJump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animLandFromSingleJump", LVT_S32, offsetof(struct Character, animLandFromSingleJump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animLandOnStomach", LVT_S32, offsetof(struct Character, animLandOnStomach), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animLegsStuckInGround", LVT_S32, offsetof(struct Character, animLegsStuckInGround), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animMissingCap", LVT_S32, offsetof(struct Character, animMissingCap), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animMoveInQuicksand", LVT_S32, offsetof(struct Character, animMoveInQuicksand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animMoveOnWireNetLeft", LVT_S32, offsetof(struct Character, animMoveOnWireNetLeft), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animMoveOnWireNetRight", LVT_S32, offsetof(struct Character, animMoveOnWireNetRight), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animOffsetEnabled", LVT_U8, offsetof(struct Character, animOffsetEnabled), true, LOT_NONE, 1, sizeof(u8) },
|
||||
{ "animOffsetFeet", LVT_F32, offsetof(struct Character, animOffsetFeet), true, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "animOffsetHand", LVT_F32, offsetof(struct Character, animOffsetHand), true, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "animOffsetLowYPoint", LVT_F32, offsetof(struct Character, animOffsetLowYPoint), true, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "animPickUpLightObj", LVT_S32, offsetof(struct Character, animPickUpLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animPlaceLightObj", LVT_S32, offsetof(struct Character, animPlaceLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animPullDoorWalkIn", LVT_S32, offsetof(struct Character, animPullDoorWalkIn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animPushDoorWalkIn", LVT_S32, offsetof(struct Character, animPushDoorWalkIn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animPushing", LVT_S32, offsetof(struct Character, animPushing), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animPutCapOn", LVT_S32, offsetof(struct Character, animPutCapOn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animQuicklyPutCapOn", LVT_S32, offsetof(struct Character, animQuicklyPutCapOn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReachPocket", LVT_S32, offsetof(struct Character, animReachPocket), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReleaseBowser", LVT_S32, offsetof(struct Character, animReleaseBowser), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReturnFromHandstand", LVT_S32, offsetof(struct Character, animReturnFromHandstand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReturnFromStarDance", LVT_S32, offsetof(struct Character, animReturnFromStarDance), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReturnFromWaterStarDance", LVT_S32, offsetof(struct Character, animReturnFromWaterStarDance), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReturnStarApproachDoor", LVT_S32, offsetof(struct Character, animReturnStarApproachDoor), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animRidingShell", LVT_S32, offsetof(struct Character, animRidingShell), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animRunWithLightObj", LVT_S32, offsetof(struct Character, animRunWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animRunning", LVT_S32, offsetof(struct Character, animRunning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animRunningUnused", LVT_S32, offsetof(struct Character, animRunningUnused), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSecondPunch", LVT_S32, offsetof(struct Character, animSecondPunch), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSecondPunchFast", LVT_S32, offsetof(struct Character, animSecondPunchFast), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animShivering", LVT_S32, offsetof(struct Character, animShivering), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animShiveringReturnToIdle", LVT_S32, offsetof(struct Character, animShiveringReturnToIdle), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animShiveringWarmingHand", LVT_S32, offsetof(struct Character, animShiveringWarmingHand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animShocked", LVT_S32, offsetof(struct Character, animShocked), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSidestepLeft", LVT_S32, offsetof(struct Character, animSidestepLeft), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSidestepRight", LVT_S32, offsetof(struct Character, animSidestepRight), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSingleJump", LVT_S32, offsetof(struct Character, animSingleJump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSkidOnGround", LVT_S32, offsetof(struct Character, animSkidOnGround), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSleepIdle", LVT_S32, offsetof(struct Character, animSleepIdle), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSleepLying", LVT_S32, offsetof(struct Character, animSleepLying), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSleepStartLying", LVT_S32, offsetof(struct Character, animSleepStartLying), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlide", LVT_S32, offsetof(struct Character, animSlide), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlideDive", LVT_S32, offsetof(struct Character, animSlideDive), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlideKick", LVT_S32, offsetof(struct Character, animSlideKick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlideMotionless", LVT_S32, offsetof(struct Character, animSlideMotionless), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlideflip", LVT_S32, offsetof(struct Character, animSlideflip), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlideflipLand", LVT_S32, offsetof(struct Character, animSlideflipLand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlidejump", LVT_S32, offsetof(struct Character, animSlidejump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlidingOnBottomWithLightObj", LVT_S32, offsetof(struct Character, animSlidingOnBottomWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlowLandFromDive", LVT_S32, offsetof(struct Character, animSlowLandFromDive), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlowLedgeGrab", LVT_S32, offsetof(struct Character, animSlowLedgeGrab), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlowLongjump", LVT_S32, offsetof(struct Character, animSlowLongjump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlowWalkWithLightObj", LVT_S32, offsetof(struct Character, animSlowWalkWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSoftBackKb", LVT_S32, offsetof(struct Character, animSoftBackKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSoftFrontKb", LVT_S32, offsetof(struct Character, animSoftFrontKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStandAgainstWall", LVT_S32, offsetof(struct Character, animStandAgainstWall), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStandUpFromLavaBoost", LVT_S32, offsetof(struct Character, animStandUpFromLavaBoost), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStandUpFromSlidingWithLightObj", LVT_S32, offsetof(struct Character, animStandUpFromSlidingWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStarDance", LVT_S32, offsetof(struct Character, animStarDance), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartCrawling", LVT_S32, offsetof(struct Character, animStartCrawling), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartCrouching", LVT_S32, offsetof(struct Character, animStartCrouching), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartForwardSpinning", LVT_S32, offsetof(struct Character, animStartForwardSpinning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartGroundPound", LVT_S32, offsetof(struct Character, animStartGroundPound), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartHandstand", LVT_S32, offsetof(struct Character, animStartHandstand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartReachPocket", LVT_S32, offsetof(struct Character, animStartReachPocket), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartRidingShell", LVT_S32, offsetof(struct Character, animStartRidingShell), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartSleepIdle", LVT_S32, offsetof(struct Character, animStartSleepIdle), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartSleepScratch", LVT_S32, offsetof(struct Character, animStartSleepScratch), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartSleepSitting", LVT_S32, offsetof(struct Character, animStartSleepSitting), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartSleepYawn", LVT_S32, offsetof(struct Character, animStartSleepYawn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartTiptoe", LVT_S32, offsetof(struct Character, animStartTiptoe), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartTwirl", LVT_S32, offsetof(struct Character, animStartTwirl), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartWallkick", LVT_S32, offsetof(struct Character, animStartWallkick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopCrawling", LVT_S32, offsetof(struct Character, animStopCrawling), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopCrouching", LVT_S32, offsetof(struct Character, animStopCrouching), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopGrabObjWater", LVT_S32, offsetof(struct Character, animStopGrabObjWater), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopReachPocket", LVT_S32, offsetof(struct Character, animStopReachPocket), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopSkid", LVT_S32, offsetof(struct Character, animStopSkid), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopSlide", LVT_S32, offsetof(struct Character, animStopSlide), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopSlideLightObj", LVT_S32, offsetof(struct Character, animStopSlideLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSuffocating", LVT_S32, offsetof(struct Character, animSuffocating), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSummonStar", LVT_S32, offsetof(struct Character, animSummonStar), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSwimPart1", LVT_S32, offsetof(struct Character, animSwimPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSwimPart2", LVT_S32, offsetof(struct Character, animSwimPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSwimWithObjPart1", LVT_S32, offsetof(struct Character, animSwimWithObjPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSwimWithObjPart2", LVT_S32, offsetof(struct Character, animSwimWithObjPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSwingingBowser", LVT_S32, offsetof(struct Character, animSwingingBowser), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTakeCapOffThenOn", LVT_S32, offsetof(struct Character, animTakeCapOffThenOn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animThrowCatchKey", LVT_S32, offsetof(struct Character, animThrowCatchKey), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animThrowLightObject", LVT_S32, offsetof(struct Character, animThrowLightObject), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTiptoe", LVT_S32, offsetof(struct Character, animTiptoe), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTripleJump", LVT_S32, offsetof(struct Character, animTripleJump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTripleJumpFly", LVT_S32, offsetof(struct Character, animTripleJumpFly), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTripleJumpGroundPound", LVT_S32, offsetof(struct Character, animTripleJumpGroundPound), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTripleJumpLand", LVT_S32, offsetof(struct Character, animTripleJumpLand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTurningPart1", LVT_S32, offsetof(struct Character, animTurningPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTurningPart2", LVT_S32, offsetof(struct Character, animTurningPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTwirl", LVT_S32, offsetof(struct Character, animTwirl), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTwirlLand", LVT_S32, offsetof(struct Character, animTwirlLand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animUnlockDoor", LVT_S32, offsetof(struct Character, animUnlockDoor), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWakeFromLying", LVT_S32, offsetof(struct Character, animWakeFromLying), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWakeFromSleep", LVT_S32, offsetof(struct Character, animWakeFromSleep), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWalkPanting", LVT_S32, offsetof(struct Character, animWalkPanting), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWalkWithHeavyObj", LVT_S32, offsetof(struct Character, animWalkWithHeavyObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWalkWithLightObj", LVT_S32, offsetof(struct Character, animWalkWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWalking", LVT_S32, offsetof(struct Character, animWalking), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterActionEnd", LVT_S32, offsetof(struct Character, animWaterActionEnd), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterActionEndWithObj", LVT_S32, offsetof(struct Character, animWaterActionEndWithObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterDying", LVT_S32, offsetof(struct Character, animWaterDying), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterForwardKb", LVT_S32, offsetof(struct Character, animWaterForwardKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterGrabObjPart1", LVT_S32, offsetof(struct Character, animWaterGrabObjPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterGrabObjPart2", LVT_S32, offsetof(struct Character, animWaterGrabObjPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterIdle", LVT_S32, offsetof(struct Character, animWaterIdle), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterIdleWithObj", LVT_S32, offsetof(struct Character, animWaterIdleWithObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterPickUpObj", LVT_S32, offsetof(struct Character, animWaterPickUpObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterStarDance", LVT_S32, offsetof(struct Character, animWaterStarDance), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterThrowObj", LVT_S32, offsetof(struct Character, animWaterThrowObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWingCapFly", LVT_S32, offsetof(struct Character, animWingCapFly), true, LOT_NONE, 1, sizeof(s32) },
|
||||
// { "anims", LVT_???, offsetof(struct Character, anims), true, LOT_???, 1, sizeof(s32) }, <--- UNIMPLEMENTED
|
||||
{ "cameraHudHead", LVT_U32, offsetof(struct Character, cameraHudHead), true, LOT_NONE, 1, sizeof(u32) },
|
||||
// { "capEnemyDecalGfx", LVT_???, offsetof(struct Character, capEnemyDecalGfx), true, LOT_???, 1, sizeof(Gfx*) }, <--- UNIMPLEMENTED
|
||||
// { "capEnemyGfx", LVT_???, offsetof(struct Character, capEnemyGfx), true, LOT_???, 1, sizeof(Gfx*) }, <--- UNIMPLEMENTED
|
||||
{ "capEnemyLayer", LVT_U8, offsetof(struct Character, capEnemyLayer), true, LOT_NONE, 1, sizeof(u8) },
|
||||
{ "capMetalModelId", LVT_U32, offsetof(struct Character, capMetalModelId), true, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "capMetalWingModelId", LVT_U32, offsetof(struct Character, capMetalWingModelId), true, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "capModelId", LVT_U32, offsetof(struct Character, capModelId), true, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "capWingModelId", LVT_U32, offsetof(struct Character, capWingModelId), true, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "hudHead", LVT_U8, offsetof(struct Character, hudHead), true, LOT_NONE, 1, sizeof(char) },
|
||||
{ "hudHeadTexture", LVT_COBJECT, offsetof(struct Character, hudHeadTexture), true, LOT_TEXTUREINFO, 1, sizeof(struct TextureInfo) },
|
||||
{ "modelId", LVT_U32, offsetof(struct Character, modelId), true, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "name", LVT_STRING_P, offsetof(struct Character, name), true, LOT_NONE, 1, sizeof(char*) },
|
||||
{ "soundAttacked", LVT_S32, offsetof(struct Character, soundAttacked), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundCoughing1", LVT_S32, offsetof(struct Character, soundCoughing1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundCoughing2", LVT_S32, offsetof(struct Character, soundCoughing2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundCoughing3", LVT_S32, offsetof(struct Character, soundCoughing3), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundDoh", LVT_S32, offsetof(struct Character, soundDoh), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundDrowning", LVT_S32, offsetof(struct Character, soundDrowning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundDying", LVT_S32, offsetof(struct Character, soundDying), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundEeuh", LVT_S32, offsetof(struct Character, soundEeuh), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundFreqScale", LVT_F32, offsetof(struct Character, soundFreqScale), true, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "soundGameOver", LVT_S32, offsetof(struct Character, soundGameOver), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundGroundPoundWah", LVT_S32, offsetof(struct Character, soundGroundPoundWah), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHaha", LVT_S32, offsetof(struct Character, soundHaha), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHaha_2", LVT_S32, offsetof(struct Character, soundHaha_2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHello", LVT_S32, offsetof(struct Character, soundHello), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHereWeGo", LVT_S32, offsetof(struct Character, soundHereWeGo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHoohoo", LVT_S32, offsetof(struct Character, soundHoohoo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHrmm", LVT_S32, offsetof(struct Character, soundHrmm), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundImaTired", LVT_S32, offsetof(struct Character, soundImaTired), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundLetsAGo", LVT_S32, offsetof(struct Character, soundLetsAGo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundMamaMia", LVT_S32, offsetof(struct Character, soundMamaMia), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundOkeyDokey", LVT_S32, offsetof(struct Character, soundOkeyDokey), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundOnFire", LVT_S32, offsetof(struct Character, soundOnFire), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundOoof", LVT_S32, offsetof(struct Character, soundOoof), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundOoof2", LVT_S32, offsetof(struct Character, soundOoof2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPanting", LVT_S32, offsetof(struct Character, soundPanting), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPantingCold", LVT_S32, offsetof(struct Character, soundPantingCold), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPressStartToPlay", LVT_S32, offsetof(struct Character, soundPressStartToPlay), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPunchHoo", LVT_S32, offsetof(struct Character, soundPunchHoo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPunchWah", LVT_S32, offsetof(struct Character, soundPunchWah), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPunchYah", LVT_S32, offsetof(struct Character, soundPunchYah), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundSnoring1", LVT_S32, offsetof(struct Character, soundSnoring1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundSnoring2", LVT_S32, offsetof(struct Character, soundSnoring2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundSnoring3", LVT_S32, offsetof(struct Character, soundSnoring3), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundSoLongaBowser", LVT_S32, offsetof(struct Character, soundSoLongaBowser), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundTwirlBounce", LVT_S32, offsetof(struct Character, soundTwirlBounce), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundUh", LVT_S32, offsetof(struct Character, soundUh), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundUh2", LVT_S32, offsetof(struct Character, soundUh2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundUh2_2", LVT_S32, offsetof(struct Character, soundUh2_2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundWaaaooow", LVT_S32, offsetof(struct Character, soundWaaaooow), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundWah2", LVT_S32, offsetof(struct Character, soundWah2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundWhoa", LVT_S32, offsetof(struct Character, soundWhoa), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundYahWahHoo", LVT_S32, offsetof(struct Character, soundYahWahHoo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundYahoo", LVT_S32, offsetof(struct Character, soundYahoo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundYahooWahaYippee", LVT_S32, offsetof(struct Character, soundYahooWahaYippee), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundYawning", LVT_S32, offsetof(struct Character, soundYawning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
// { "sounds", LVT_???, offsetof(struct Character, sounds), true, LOT_???, 1, sizeof(s32) }, <--- UNIMPLEMENTED
|
||||
{ "torsoRotMult", LVT_F32, offsetof(struct Character, torsoRotMult), true, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "type", LVT_S32, offsetof(struct Character, type), true, LOT_NONE, 1, sizeof(enum CharacterType) },
|
||||
{ "animAPose", LVT_S32, offsetof(struct Character, animAPose), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animAirForwardKb", LVT_S32, offsetof(struct Character, animAirForwardKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animAirKick", LVT_S32, offsetof(struct Character, animAirKick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animAirborneOnStomach", LVT_S32, offsetof(struct Character, animAirborneOnStomach), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBackflip", LVT_S32, offsetof(struct Character, animBackflip), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBackwardAirKb", LVT_S32, offsetof(struct Character, animBackwardAirKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBackwardKb", LVT_S32, offsetof(struct Character, animBackwardKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBackwardSpinning", LVT_S32, offsetof(struct Character, animBackwardSpinning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBackwardsWaterKb", LVT_S32, offsetof(struct Character, animBackwardsWaterKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBeingGrabbed", LVT_S32, offsetof(struct Character, animBeingGrabbed), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBendKnessRidingShell", LVT_S32, offsetof(struct Character, animBendKnessRidingShell), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBottomStuckInGround", LVT_S32, offsetof(struct Character, animBottomStuckInGround), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animBreakdance", LVT_S32, offsetof(struct Character, animBreakdance), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animClimbDownLedge", LVT_S32, offsetof(struct Character, animClimbDownLedge), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animClimbUpPole", LVT_S32, offsetof(struct Character, animClimbUpPole), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCoughing", LVT_S32, offsetof(struct Character, animCoughing), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCrawling", LVT_S32, offsetof(struct Character, animCrawling), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsLookBackThenRun", LVT_S32, offsetof(struct Character, animCreditsLookBackThenRun), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsLookUp", LVT_S32, offsetof(struct Character, animCreditsLookUp), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsLowerHand", LVT_S32, offsetof(struct Character, animCreditsLowerHand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsPeaceSign", LVT_S32, offsetof(struct Character, animCreditsPeaceSign), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsRaiseHand", LVT_S32, offsetof(struct Character, animCreditsRaiseHand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsReturnFromLookUp", LVT_S32, offsetof(struct Character, animCreditsReturnFromLookUp), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsStartWalkLookUp", LVT_S32, offsetof(struct Character, animCreditsStartWalkLookUp), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsTakeOffCap", LVT_S32, offsetof(struct Character, animCreditsTakeOffCap), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCreditsWaving", LVT_S32, offsetof(struct Character, animCreditsWaving), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCrouchFromFastLongjump", LVT_S32, offsetof(struct Character, animCrouchFromFastLongjump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCrouchFromSlideKick", LVT_S32, offsetof(struct Character, animCrouchFromSlideKick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCrouchFromSlowLongjump", LVT_S32, offsetof(struct Character, animCrouchFromSlowLongjump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animCrouching", LVT_S32, offsetof(struct Character, animCrouching), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDive", LVT_S32, offsetof(struct Character, animDive), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDoubleJumpFall", LVT_S32, offsetof(struct Character, animDoubleJumpFall), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDoubleJumpRise", LVT_S32, offsetof(struct Character, animDoubleJumpRise), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDrowningPart1", LVT_S32, offsetof(struct Character, animDrowningPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDrowningPart2", LVT_S32, offsetof(struct Character, animDrowningPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDyingFallOver", LVT_S32, offsetof(struct Character, animDyingFallOver), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDyingInQuicksand", LVT_S32, offsetof(struct Character, animDyingInQuicksand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDyingOnBack", LVT_S32, offsetof(struct Character, animDyingOnBack), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animDyingOnStomach", LVT_S32, offsetof(struct Character, animDyingOnStomach), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animElectrocution", LVT_S32, offsetof(struct Character, animElectrocution), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallFromSlide", LVT_S32, offsetof(struct Character, animFallFromSlide), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallFromSlideKick", LVT_S32, offsetof(struct Character, animFallFromSlideKick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallFromSlidingWithLightObj", LVT_S32, offsetof(struct Character, animFallFromSlidingWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallFromWater", LVT_S32, offsetof(struct Character, animFallFromWater), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallLandWithLightObj", LVT_S32, offsetof(struct Character, animFallLandWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallOverBackwards", LVT_S32, offsetof(struct Character, animFallOverBackwards), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFallWithLightObj", LVT_S32, offsetof(struct Character, animFallWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFastLedgeGrab", LVT_S32, offsetof(struct Character, animFastLedgeGrab), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFastLongjump", LVT_S32, offsetof(struct Character, animFastLongjump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFinalBowserRaiseHandSpin", LVT_S32, offsetof(struct Character, animFinalBowserRaiseHandSpin), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFinalBowserWingCapTakeOff", LVT_S32, offsetof(struct Character, animFinalBowserWingCapTakeOff), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFireLavaBurn", LVT_S32, offsetof(struct Character, animFireLavaBurn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFirstPerson", LVT_S32, offsetof(struct Character, animFirstPerson), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFirstPunch", LVT_S32, offsetof(struct Character, animFirstPunch), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFirstPunchFast", LVT_S32, offsetof(struct Character, animFirstPunchFast), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFlutterkick", LVT_S32, offsetof(struct Character, animFlutterkick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFlutterkickWithObj", LVT_S32, offsetof(struct Character, animFlutterkickWithObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animFlyFromCannon", LVT_S32, offsetof(struct Character, animFlyFromCannon), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animForwardFlip", LVT_S32, offsetof(struct Character, animForwardFlip), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animForwardKb", LVT_S32, offsetof(struct Character, animForwardKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animForwardSpinning", LVT_S32, offsetof(struct Character, animForwardSpinning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animForwardSpinningFlip", LVT_S32, offsetof(struct Character, animForwardSpinningFlip), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGeneralFall", LVT_S32, offsetof(struct Character, animGeneralFall), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGeneralLand", LVT_S32, offsetof(struct Character, animGeneralLand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGrabBowser", LVT_S32, offsetof(struct Character, animGrabBowser), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGrabHeavyObject", LVT_S32, offsetof(struct Character, animGrabHeavyObject), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGrabPoleShort", LVT_S32, offsetof(struct Character, animGrabPoleShort), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGrabPoleSwingPart1", LVT_S32, offsetof(struct Character, animGrabPoleSwingPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGrabPoleSwingPart2", LVT_S32, offsetof(struct Character, animGrabPoleSwingPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGroundBonk", LVT_S32, offsetof(struct Character, animGroundBonk), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGroundKick", LVT_S32, offsetof(struct Character, animGroundKick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGroundPound", LVT_S32, offsetof(struct Character, animGroundPound), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGroundPoundLanding", LVT_S32, offsetof(struct Character, animGroundPoundLanding), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animGroundThrow", LVT_S32, offsetof(struct Character, animGroundThrow), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHandstandIdle", LVT_S32, offsetof(struct Character, animHandstandIdle), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHandstandJump", LVT_S32, offsetof(struct Character, animHandstandJump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHandstandLeft", LVT_S32, offsetof(struct Character, animHandstandLeft), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHandstandRight", LVT_S32, offsetof(struct Character, animHandstandRight), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHangOnCeiling", LVT_S32, offsetof(struct Character, animHangOnCeiling), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHangOnOwl", LVT_S32, offsetof(struct Character, animHangOnOwl), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHeadStuckInGround", LVT_S32, offsetof(struct Character, animHeadStuckInGround), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHeavyThrow", LVT_S32, offsetof(struct Character, animHeavyThrow), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animHoldingBowser", LVT_S32, offsetof(struct Character, animHoldingBowser), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleHeadCenter", LVT_S32, offsetof(struct Character, animIdleHeadCenter), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleHeadLeft", LVT_S32, offsetof(struct Character, animIdleHeadLeft), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleHeadRight", LVT_S32, offsetof(struct Character, animIdleHeadRight), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleHeavyObj", LVT_S32, offsetof(struct Character, animIdleHeavyObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleInQuicksand", LVT_S32, offsetof(struct Character, animIdleInQuicksand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleOnLedge", LVT_S32, offsetof(struct Character, animIdleOnLedge), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleOnPole", LVT_S32, offsetof(struct Character, animIdleOnPole), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animIdleWithLightObj", LVT_S32, offsetof(struct Character, animIdleWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animJumpLandWithLightObj", LVT_S32, offsetof(struct Character, animJumpLandWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animJumpRidingShell", LVT_S32, offsetof(struct Character, animJumpRidingShell), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animJumpWithLightObj", LVT_S32, offsetof(struct Character, animJumpWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animLandFromDoubleJump", LVT_S32, offsetof(struct Character, animLandFromDoubleJump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animLandFromSingleJump", LVT_S32, offsetof(struct Character, animLandFromSingleJump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animLandOnStomach", LVT_S32, offsetof(struct Character, animLandOnStomach), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animLegsStuckInGround", LVT_S32, offsetof(struct Character, animLegsStuckInGround), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animMissingCap", LVT_S32, offsetof(struct Character, animMissingCap), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animMoveInQuicksand", LVT_S32, offsetof(struct Character, animMoveInQuicksand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animMoveOnWireNetLeft", LVT_S32, offsetof(struct Character, animMoveOnWireNetLeft), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animMoveOnWireNetRight", LVT_S32, offsetof(struct Character, animMoveOnWireNetRight), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animOffsetEnabled", LVT_U8, offsetof(struct Character, animOffsetEnabled), true, LOT_NONE, 1, sizeof(u8) },
|
||||
{ "animOffsetFeet", LVT_F32, offsetof(struct Character, animOffsetFeet), true, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "animOffsetHand", LVT_F32, offsetof(struct Character, animOffsetHand), true, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "animOffsetLowYPoint", LVT_F32, offsetof(struct Character, animOffsetLowYPoint), true, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "animPickUpLightObj", LVT_S32, offsetof(struct Character, animPickUpLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animPlaceLightObj", LVT_S32, offsetof(struct Character, animPlaceLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animPullDoorWalkIn", LVT_S32, offsetof(struct Character, animPullDoorWalkIn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animPushDoorWalkIn", LVT_S32, offsetof(struct Character, animPushDoorWalkIn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animPushing", LVT_S32, offsetof(struct Character, animPushing), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animPutCapOn", LVT_S32, offsetof(struct Character, animPutCapOn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animQuicklyPutCapOn", LVT_S32, offsetof(struct Character, animQuicklyPutCapOn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReachPocket", LVT_S32, offsetof(struct Character, animReachPocket), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReleaseBowser", LVT_S32, offsetof(struct Character, animReleaseBowser), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReturnFromHandstand", LVT_S32, offsetof(struct Character, animReturnFromHandstand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReturnFromStarDance", LVT_S32, offsetof(struct Character, animReturnFromStarDance), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReturnFromWaterStarDance", LVT_S32, offsetof(struct Character, animReturnFromWaterStarDance), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animReturnStarApproachDoor", LVT_S32, offsetof(struct Character, animReturnStarApproachDoor), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animRidingShell", LVT_S32, offsetof(struct Character, animRidingShell), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animRunWithLightObj", LVT_S32, offsetof(struct Character, animRunWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animRunning", LVT_S32, offsetof(struct Character, animRunning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animRunningUnused", LVT_S32, offsetof(struct Character, animRunningUnused), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSecondPunch", LVT_S32, offsetof(struct Character, animSecondPunch), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSecondPunchFast", LVT_S32, offsetof(struct Character, animSecondPunchFast), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animShivering", LVT_S32, offsetof(struct Character, animShivering), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animShiveringReturnToIdle", LVT_S32, offsetof(struct Character, animShiveringReturnToIdle), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animShiveringWarmingHand", LVT_S32, offsetof(struct Character, animShiveringWarmingHand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animShocked", LVT_S32, offsetof(struct Character, animShocked), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSidestepLeft", LVT_S32, offsetof(struct Character, animSidestepLeft), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSidestepRight", LVT_S32, offsetof(struct Character, animSidestepRight), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSingleJump", LVT_S32, offsetof(struct Character, animSingleJump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSkidOnGround", LVT_S32, offsetof(struct Character, animSkidOnGround), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSleepIdle", LVT_S32, offsetof(struct Character, animSleepIdle), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSleepLying", LVT_S32, offsetof(struct Character, animSleepLying), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSleepStartLying", LVT_S32, offsetof(struct Character, animSleepStartLying), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlide", LVT_S32, offsetof(struct Character, animSlide), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlideDive", LVT_S32, offsetof(struct Character, animSlideDive), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlideKick", LVT_S32, offsetof(struct Character, animSlideKick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlideMotionless", LVT_S32, offsetof(struct Character, animSlideMotionless), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlideflip", LVT_S32, offsetof(struct Character, animSlideflip), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlideflipLand", LVT_S32, offsetof(struct Character, animSlideflipLand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlidejump", LVT_S32, offsetof(struct Character, animSlidejump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlidingOnBottomWithLightObj", LVT_S32, offsetof(struct Character, animSlidingOnBottomWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlowLandFromDive", LVT_S32, offsetof(struct Character, animSlowLandFromDive), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlowLedgeGrab", LVT_S32, offsetof(struct Character, animSlowLedgeGrab), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlowLongjump", LVT_S32, offsetof(struct Character, animSlowLongjump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSlowWalkWithLightObj", LVT_S32, offsetof(struct Character, animSlowWalkWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSoftBackKb", LVT_S32, offsetof(struct Character, animSoftBackKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSoftFrontKb", LVT_S32, offsetof(struct Character, animSoftFrontKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStandAgainstWall", LVT_S32, offsetof(struct Character, animStandAgainstWall), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStandUpFromLavaBoost", LVT_S32, offsetof(struct Character, animStandUpFromLavaBoost), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStandUpFromSlidingWithLightObj", LVT_S32, offsetof(struct Character, animStandUpFromSlidingWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStarDance", LVT_S32, offsetof(struct Character, animStarDance), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartCrawling", LVT_S32, offsetof(struct Character, animStartCrawling), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartCrouching", LVT_S32, offsetof(struct Character, animStartCrouching), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartForwardSpinning", LVT_S32, offsetof(struct Character, animStartForwardSpinning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartGroundPound", LVT_S32, offsetof(struct Character, animStartGroundPound), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartHandstand", LVT_S32, offsetof(struct Character, animStartHandstand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartReachPocket", LVT_S32, offsetof(struct Character, animStartReachPocket), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartRidingShell", LVT_S32, offsetof(struct Character, animStartRidingShell), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartSleepIdle", LVT_S32, offsetof(struct Character, animStartSleepIdle), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartSleepScratch", LVT_S32, offsetof(struct Character, animStartSleepScratch), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartSleepSitting", LVT_S32, offsetof(struct Character, animStartSleepSitting), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartSleepYawn", LVT_S32, offsetof(struct Character, animStartSleepYawn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartTiptoe", LVT_S32, offsetof(struct Character, animStartTiptoe), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartTwirl", LVT_S32, offsetof(struct Character, animStartTwirl), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStartWallkick", LVT_S32, offsetof(struct Character, animStartWallkick), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopCrawling", LVT_S32, offsetof(struct Character, animStopCrawling), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopCrouching", LVT_S32, offsetof(struct Character, animStopCrouching), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopGrabObjWater", LVT_S32, offsetof(struct Character, animStopGrabObjWater), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopReachPocket", LVT_S32, offsetof(struct Character, animStopReachPocket), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopSkid", LVT_S32, offsetof(struct Character, animStopSkid), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopSlide", LVT_S32, offsetof(struct Character, animStopSlide), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animStopSlideLightObj", LVT_S32, offsetof(struct Character, animStopSlideLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSuffocating", LVT_S32, offsetof(struct Character, animSuffocating), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSummonStar", LVT_S32, offsetof(struct Character, animSummonStar), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSwimPart1", LVT_S32, offsetof(struct Character, animSwimPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSwimPart2", LVT_S32, offsetof(struct Character, animSwimPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSwimWithObjPart1", LVT_S32, offsetof(struct Character, animSwimWithObjPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSwimWithObjPart2", LVT_S32, offsetof(struct Character, animSwimWithObjPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animSwingingBowser", LVT_S32, offsetof(struct Character, animSwingingBowser), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTakeCapOffThenOn", LVT_S32, offsetof(struct Character, animTakeCapOffThenOn), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animThrowCatchKey", LVT_S32, offsetof(struct Character, animThrowCatchKey), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animThrowLightObject", LVT_S32, offsetof(struct Character, animThrowLightObject), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTiptoe", LVT_S32, offsetof(struct Character, animTiptoe), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTripleJump", LVT_S32, offsetof(struct Character, animTripleJump), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTripleJumpFly", LVT_S32, offsetof(struct Character, animTripleJumpFly), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTripleJumpGroundPound", LVT_S32, offsetof(struct Character, animTripleJumpGroundPound), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTripleJumpLand", LVT_S32, offsetof(struct Character, animTripleJumpLand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTurningPart1", LVT_S32, offsetof(struct Character, animTurningPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTurningPart2", LVT_S32, offsetof(struct Character, animTurningPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTwirl", LVT_S32, offsetof(struct Character, animTwirl), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animTwirlLand", LVT_S32, offsetof(struct Character, animTwirlLand), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animUnlockDoor", LVT_S32, offsetof(struct Character, animUnlockDoor), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWakeFromLying", LVT_S32, offsetof(struct Character, animWakeFromLying), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWakeFromSleep", LVT_S32, offsetof(struct Character, animWakeFromSleep), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWalkPanting", LVT_S32, offsetof(struct Character, animWalkPanting), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWalkWithHeavyObj", LVT_S32, offsetof(struct Character, animWalkWithHeavyObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWalkWithLightObj", LVT_S32, offsetof(struct Character, animWalkWithLightObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWalking", LVT_S32, offsetof(struct Character, animWalking), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterActionEnd", LVT_S32, offsetof(struct Character, animWaterActionEnd), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterActionEndWithObj", LVT_S32, offsetof(struct Character, animWaterActionEndWithObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterDying", LVT_S32, offsetof(struct Character, animWaterDying), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterForwardKb", LVT_S32, offsetof(struct Character, animWaterForwardKb), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterGrabObjPart1", LVT_S32, offsetof(struct Character, animWaterGrabObjPart1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterGrabObjPart2", LVT_S32, offsetof(struct Character, animWaterGrabObjPart2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterIdle", LVT_S32, offsetof(struct Character, animWaterIdle), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterIdleWithObj", LVT_S32, offsetof(struct Character, animWaterIdleWithObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterPickUpObj", LVT_S32, offsetof(struct Character, animWaterPickUpObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterStarDance", LVT_S32, offsetof(struct Character, animWaterStarDance), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWaterThrowObj", LVT_S32, offsetof(struct Character, animWaterThrowObj), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "animWingCapFly", LVT_S32, offsetof(struct Character, animWingCapFly), true, LOT_NONE, 1, sizeof(s32) },
|
||||
// { "anims", LVT_???, offsetof(struct Character, anims), true, LOT_???, 1, sizeof(s32) }, <--- UNIMPLEMENTED
|
||||
{ "cameraHudHead", LVT_U32, offsetof(struct Character, cameraHudHead), true, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "capEnemyDecalGfx", LVT_COBJECT_P, offsetof(struct Character, capEnemyDecalGfx), true, LOT_GFX, 1, sizeof(Gfx*) },
|
||||
{ "capEnemyGfx", LVT_COBJECT_P, offsetof(struct Character, capEnemyGfx), true, LOT_GFX, 1, sizeof(Gfx*) },
|
||||
{ "capEnemyLayer", LVT_U8, offsetof(struct Character, capEnemyLayer), true, LOT_NONE, 1, sizeof(u8) },
|
||||
{ "capMetalModelId", LVT_U32, offsetof(struct Character, capMetalModelId), true, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "capMetalWingModelId", LVT_U32, offsetof(struct Character, capMetalWingModelId), true, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "capModelId", LVT_U32, offsetof(struct Character, capModelId), true, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "capWingModelId", LVT_U32, offsetof(struct Character, capWingModelId), true, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "hudHead", LVT_U8, offsetof(struct Character, hudHead), true, LOT_NONE, 1, sizeof(char) },
|
||||
{ "hudHeadTexture", LVT_COBJECT, offsetof(struct Character, hudHeadTexture), true, LOT_TEXTUREINFO, 1, sizeof(struct TextureInfo) },
|
||||
{ "modelId", LVT_U32, offsetof(struct Character, modelId), true, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "name", LVT_STRING_P, offsetof(struct Character, name), true, LOT_NONE, 1, sizeof(char*) },
|
||||
{ "soundAttacked", LVT_S32, offsetof(struct Character, soundAttacked), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundCoughing1", LVT_S32, offsetof(struct Character, soundCoughing1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundCoughing2", LVT_S32, offsetof(struct Character, soundCoughing2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundCoughing3", LVT_S32, offsetof(struct Character, soundCoughing3), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundDoh", LVT_S32, offsetof(struct Character, soundDoh), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundDrowning", LVT_S32, offsetof(struct Character, soundDrowning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundDying", LVT_S32, offsetof(struct Character, soundDying), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundEeuh", LVT_S32, offsetof(struct Character, soundEeuh), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundFreqScale", LVT_F32, offsetof(struct Character, soundFreqScale), true, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "soundGameOver", LVT_S32, offsetof(struct Character, soundGameOver), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundGroundPoundWah", LVT_S32, offsetof(struct Character, soundGroundPoundWah), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHaha", LVT_S32, offsetof(struct Character, soundHaha), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHaha_2", LVT_S32, offsetof(struct Character, soundHaha_2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHello", LVT_S32, offsetof(struct Character, soundHello), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHereWeGo", LVT_S32, offsetof(struct Character, soundHereWeGo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHoohoo", LVT_S32, offsetof(struct Character, soundHoohoo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundHrmm", LVT_S32, offsetof(struct Character, soundHrmm), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundImaTired", LVT_S32, offsetof(struct Character, soundImaTired), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundLetsAGo", LVT_S32, offsetof(struct Character, soundLetsAGo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundMamaMia", LVT_S32, offsetof(struct Character, soundMamaMia), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundOkeyDokey", LVT_S32, offsetof(struct Character, soundOkeyDokey), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundOnFire", LVT_S32, offsetof(struct Character, soundOnFire), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundOoof", LVT_S32, offsetof(struct Character, soundOoof), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundOoof2", LVT_S32, offsetof(struct Character, soundOoof2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPanting", LVT_S32, offsetof(struct Character, soundPanting), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPantingCold", LVT_S32, offsetof(struct Character, soundPantingCold), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPressStartToPlay", LVT_S32, offsetof(struct Character, soundPressStartToPlay), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPunchHoo", LVT_S32, offsetof(struct Character, soundPunchHoo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPunchWah", LVT_S32, offsetof(struct Character, soundPunchWah), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundPunchYah", LVT_S32, offsetof(struct Character, soundPunchYah), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundSnoring1", LVT_S32, offsetof(struct Character, soundSnoring1), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundSnoring2", LVT_S32, offsetof(struct Character, soundSnoring2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundSnoring3", LVT_S32, offsetof(struct Character, soundSnoring3), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundSoLongaBowser", LVT_S32, offsetof(struct Character, soundSoLongaBowser), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundTwirlBounce", LVT_S32, offsetof(struct Character, soundTwirlBounce), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundUh", LVT_S32, offsetof(struct Character, soundUh), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundUh2", LVT_S32, offsetof(struct Character, soundUh2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundUh2_2", LVT_S32, offsetof(struct Character, soundUh2_2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundWaaaooow", LVT_S32, offsetof(struct Character, soundWaaaooow), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundWah2", LVT_S32, offsetof(struct Character, soundWah2), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundWhoa", LVT_S32, offsetof(struct Character, soundWhoa), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundYahWahHoo", LVT_S32, offsetof(struct Character, soundYahWahHoo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundYahoo", LVT_S32, offsetof(struct Character, soundYahoo), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundYahooWahaYippee", LVT_S32, offsetof(struct Character, soundYahooWahaYippee), true, LOT_NONE, 1, sizeof(s32) },
|
||||
{ "soundYawning", LVT_S32, offsetof(struct Character, soundYawning), true, LOT_NONE, 1, sizeof(s32) },
|
||||
// { "sounds", LVT_???, offsetof(struct Character, sounds), true, LOT_???, 1, sizeof(s32) }, <--- UNIMPLEMENTED
|
||||
{ "torsoRotMult", LVT_F32, offsetof(struct Character, torsoRotMult), true, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "type", LVT_S32, offsetof(struct Character, type), true, LOT_NONE, 1, sizeof(enum CharacterType) },
|
||||
};
|
||||
|
||||
#define LUA_CONTROLLER_FIELD_COUNT 11
|
||||
|
|
@ -771,9 +772,9 @@ static struct LuaObjectField sDateTimeFields[LUA_DATE_TIME_FIELD_COUNT] = {
|
|||
{ "year", LVT_S32, offsetof(struct DateTime, year), false, LOT_NONE, 1, sizeof(s32) },
|
||||
};
|
||||
|
||||
#define LUA_DISPLAY_LIST_NODE_FIELD_COUNT 2
|
||||
#define LUA_DISPLAY_LIST_NODE_FIELD_COUNT 3
|
||||
static struct LuaObjectField sDisplayListNodeFields[LUA_DISPLAY_LIST_NODE_FIELD_COUNT] = {
|
||||
// { "displayList", LVT_???, offsetof(struct DisplayListNode, displayList), false, LOT_???, 1, sizeof(void*) }, <--- UNIMPLEMENTED
|
||||
{ "displayList", LVT_COBJECT_P, offsetof(struct DisplayListNode, displayList), false, LOT_GFX, 1, sizeof(Gfx*) },
|
||||
{ "next", LVT_COBJECT_P, offsetof(struct DisplayListNode, next), false, LOT_DISPLAYLISTNODE, 1, sizeof(struct DisplayListNode*) },
|
||||
// { "transform", LVT_???, offsetof(struct DisplayListNode, transform), false, LOT_???, 1, sizeof(Mtx*) }, <--- UNIMPLEMENTED
|
||||
// { "transformPrev", LVT_???, offsetof(struct DisplayListNode, transformPrev), false, LOT_???, 1, sizeof(Mtx*) }, <--- UNIMPLEMENTED
|
||||
|
|
@ -857,6 +858,12 @@ static struct LuaObjectField sFnGraphNodeFields[LUA_FN_GRAPH_NODE_FIELD_COUNT] =
|
|||
{ "node", LVT_COBJECT, offsetof(struct FnGraphNode, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
};
|
||||
|
||||
#define LUA_GFX_FIELD_COUNT 2
|
||||
static struct LuaObjectField sGfxFields[LUA_GFX_FIELD_COUNT] = {
|
||||
{ "w0", LVT_U64, offsetof(Gwords, w0), true, LOT_NONE, 1, sizeof(uintptr_t) },
|
||||
{ "w1", LVT_U64, offsetof(Gwords, w1), true, LOT_NONE, 1, sizeof(uintptr_t) },
|
||||
};
|
||||
|
||||
#define LUA_GLOBAL_OBJECT_ANIMATIONS_FIELD_COUNT 56
|
||||
static struct LuaObjectField sGlobalObjectAnimationsFields[LUA_GLOBAL_OBJECT_ANIMATIONS_FIELD_COUNT] = {
|
||||
{ "amp_seg8_anims_08004034", LVT_OBJECTANIMPOINTER_P, offsetof(struct GlobalObjectAnimations, amp_seg8_anims_08004034), true, LOT_POINTER, 1, sizeof(ObjectAnimPointer*) },
|
||||
|
|
@ -1053,11 +1060,11 @@ static struct LuaObjectField sGraphNodeFields[LUA_GRAPH_NODE_FIELD_COUNT] = {
|
|||
{ "type", LVT_S16, offsetof(struct GraphNode, type), true, LOT_NONE, 1, sizeof(s16) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_ANIMATED_PART_FIELD_COUNT 2
|
||||
#define LUA_GRAPH_NODE_ANIMATED_PART_FIELD_COUNT 3
|
||||
static struct LuaObjectField sGraphNodeAnimatedPartFields[LUA_GRAPH_NODE_ANIMATED_PART_FIELD_COUNT] = {
|
||||
// { "displayList", LVT_???, offsetof(struct GraphNodeAnimatedPart, displayList), false, LOT_???, 1, sizeof(void*) }, <--- UNIMPLEMENTED
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeAnimatedPart, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "translation", LVT_COBJECT, offsetof(struct GraphNodeAnimatedPart, translation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
{ "displayList", LVT_COBJECT_P, offsetof(struct GraphNodeAnimatedPart, displayList), false, LOT_GFX, 1, sizeof(Gfx*) },
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeAnimatedPart, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "translation", LVT_COBJECT, offsetof(struct GraphNodeAnimatedPart, translation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_BACKGROUND_FIELD_COUNT 6
|
||||
|
|
@ -1070,11 +1077,11 @@ static struct LuaObjectField sGraphNodeBackgroundFields[LUA_GRAPH_NODE_BACKGROUN
|
|||
{ "unused", LVT_S32, offsetof(struct GraphNodeBackground, unused), true, LOT_NONE, 1, sizeof(s32) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_BILLBOARD_FIELD_COUNT 2
|
||||
#define LUA_GRAPH_NODE_BILLBOARD_FIELD_COUNT 3
|
||||
static struct LuaObjectField sGraphNodeBillboardFields[LUA_GRAPH_NODE_BILLBOARD_FIELD_COUNT] = {
|
||||
// { "displayList", LVT_???, offsetof(struct GraphNodeBillboard, displayList), false, LOT_???, 1, sizeof(void*) }, <--- UNIMPLEMENTED
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeBillboard, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "translation", LVT_COBJECT, offsetof(struct GraphNodeBillboard, translation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
{ "displayList", LVT_COBJECT_P, offsetof(struct GraphNodeBillboard, displayList), false, LOT_GFX, 1, sizeof(Gfx*) },
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeBillboard, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "translation", LVT_COBJECT, offsetof(struct GraphNodeBillboard, translation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_CAMERA_FIELD_COUNT 10
|
||||
|
|
@ -1099,10 +1106,10 @@ static struct LuaObjectField sGraphNodeCullingRadiusFields[LUA_GRAPH_NODE_CULLIN
|
|||
{ "pad1E", LVT_U8, offsetof(struct GraphNodeCullingRadius, pad1E), false, LOT_NONE, 2, sizeof(u8) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_DISPLAY_LIST_FIELD_COUNT 1
|
||||
#define LUA_GRAPH_NODE_DISPLAY_LIST_FIELD_COUNT 2
|
||||
static struct LuaObjectField sGraphNodeDisplayListFields[LUA_GRAPH_NODE_DISPLAY_LIST_FIELD_COUNT] = {
|
||||
// { "displayList", LVT_???, offsetof(struct GraphNodeDisplayList, displayList), false, LOT_???, 1, sizeof(void*) }, <--- UNIMPLEMENTED
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeDisplayList, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "displayList", LVT_COBJECT_P, offsetof(struct GraphNodeDisplayList, displayList), false, LOT_GFX, 1, sizeof(Gfx*) },
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeDisplayList, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_GENERATED_FIELD_COUNT 2
|
||||
|
|
@ -1189,21 +1196,21 @@ static struct LuaObjectField sGraphNodePerspectiveFields[LUA_GRAPH_NODE_PERSPECT
|
|||
{ "unused", LVT_S32, offsetof(struct GraphNodePerspective, unused), true, LOT_NONE, 1, sizeof(s32) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_ROTATION_FIELD_COUNT 4
|
||||
#define LUA_GRAPH_NODE_ROTATION_FIELD_COUNT 5
|
||||
static struct LuaObjectField sGraphNodeRotationFields[LUA_GRAPH_NODE_ROTATION_FIELD_COUNT] = {
|
||||
// { "displayList", LVT_???, offsetof(struct GraphNodeRotation, displayList), false, LOT_???, 1, sizeof(void*) }, <--- UNIMPLEMENTED
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeRotation, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "prevRotation", LVT_COBJECT, offsetof(struct GraphNodeRotation, prevRotation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
{ "prevTimestamp", LVT_U32, offsetof(struct GraphNodeRotation, prevTimestamp), false, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "rotation", LVT_COBJECT, offsetof(struct GraphNodeRotation, rotation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
{ "displayList", LVT_COBJECT_P, offsetof(struct GraphNodeRotation, displayList), false, LOT_GFX, 1, sizeof(Gfx*) },
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeRotation, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "prevRotation", LVT_COBJECT, offsetof(struct GraphNodeRotation, prevRotation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
{ "prevTimestamp", LVT_U32, offsetof(struct GraphNodeRotation, prevTimestamp), false, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "rotation", LVT_COBJECT, offsetof(struct GraphNodeRotation, rotation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_SCALE_FIELD_COUNT 3
|
||||
#define LUA_GRAPH_NODE_SCALE_FIELD_COUNT 4
|
||||
static struct LuaObjectField sGraphNodeScaleFields[LUA_GRAPH_NODE_SCALE_FIELD_COUNT] = {
|
||||
// { "displayList", LVT_???, offsetof(struct GraphNodeScale, displayList), false, LOT_???, 1, sizeof(void*) }, <--- UNIMPLEMENTED
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeScale, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "prevScale", LVT_F32, offsetof(struct GraphNodeScale, prevScale), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "scale", LVT_F32, offsetof(struct GraphNodeScale, scale), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "displayList", LVT_COBJECT_P, offsetof(struct GraphNodeScale, displayList), false, LOT_GFX, 1, sizeof(Gfx*) },
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeScale, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "prevScale", LVT_F32, offsetof(struct GraphNodeScale, prevScale), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "scale", LVT_F32, offsetof(struct GraphNodeScale, scale), false, LOT_NONE, 1, sizeof(f32) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_SHADOW_FIELD_COUNT 4
|
||||
|
|
@ -1227,20 +1234,20 @@ static struct LuaObjectField sGraphNodeSwitchCaseFields[LUA_GRAPH_NODE_SWITCH_CA
|
|||
{ "unused", LVT_S32, offsetof(struct GraphNodeSwitchCase, unused), true, LOT_NONE, 1, sizeof(s32) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_TRANSLATION_FIELD_COUNT 3
|
||||
#define LUA_GRAPH_NODE_TRANSLATION_FIELD_COUNT 4
|
||||
static struct LuaObjectField sGraphNodeTranslationFields[LUA_GRAPH_NODE_TRANSLATION_FIELD_COUNT] = {
|
||||
// { "displayList", LVT_???, offsetof(struct GraphNodeTranslation, displayList), false, LOT_???, 1, sizeof(void*) }, <--- UNIMPLEMENTED
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeTranslation, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "pad1E", LVT_U8, offsetof(struct GraphNodeTranslation, pad1E), false, LOT_NONE, 2, sizeof(u8) },
|
||||
{ "translation", LVT_COBJECT, offsetof(struct GraphNodeTranslation, translation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
{ "displayList", LVT_COBJECT_P, offsetof(struct GraphNodeTranslation, displayList), false, LOT_GFX, 1, sizeof(Gfx*) },
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeTranslation, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "pad1E", LVT_U8, offsetof(struct GraphNodeTranslation, pad1E), false, LOT_NONE, 2, sizeof(u8) },
|
||||
{ "translation", LVT_COBJECT, offsetof(struct GraphNodeTranslation, translation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_TRANSLATION_ROTATION_FIELD_COUNT 3
|
||||
#define LUA_GRAPH_NODE_TRANSLATION_ROTATION_FIELD_COUNT 4
|
||||
static struct LuaObjectField sGraphNodeTranslationRotationFields[LUA_GRAPH_NODE_TRANSLATION_ROTATION_FIELD_COUNT] = {
|
||||
// { "displayList", LVT_???, offsetof(struct GraphNodeTranslationRotation, displayList), false, LOT_???, 1, sizeof(void*) }, <--- UNIMPLEMENTED
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeTranslationRotation, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "rotation", LVT_COBJECT, offsetof(struct GraphNodeTranslationRotation, rotation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
{ "translation", LVT_COBJECT, offsetof(struct GraphNodeTranslationRotation, translation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
{ "displayList", LVT_COBJECT_P, offsetof(struct GraphNodeTranslationRotation, displayList), false, LOT_GFX, 1, sizeof(Gfx*) },
|
||||
{ "node", LVT_COBJECT, offsetof(struct GraphNodeTranslationRotation, node), true, LOT_GRAPHNODE, 1, sizeof(struct GraphNode) },
|
||||
{ "rotation", LVT_COBJECT, offsetof(struct GraphNodeTranslationRotation, rotation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
{ "translation", LVT_COBJECT, offsetof(struct GraphNodeTranslationRotation, translation), true, LOT_VEC3S, 1, sizeof(Vec3s) },
|
||||
};
|
||||
|
||||
#define LUA_GRAPH_NODE_802_A45_E4_FIELD_COUNT 6
|
||||
|
|
@ -2421,48 +2428,48 @@ static struct LuaObjectField sOffsetSizePairFields[LUA_OFFSET_SIZE_PAIR_FIELD_CO
|
|||
{ "size", LVT_U32, offsetof(struct OffsetSizePair, size), false, LOT_NONE, 1, sizeof(u32) },
|
||||
};
|
||||
|
||||
#define LUA_PAINTING_FIELD_COUNT 35
|
||||
#define LUA_PAINTING_FIELD_COUNT 37
|
||||
static struct LuaObjectField sPaintingFields[LUA_PAINTING_FIELD_COUNT] = {
|
||||
{ "alpha", LVT_U8, offsetof(struct Painting, alpha), false, LOT_NONE, 1, sizeof(u8) },
|
||||
{ "currFloor", LVT_S8, offsetof(struct Painting, currFloor), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "currRippleMag", LVT_F32, offsetof(struct Painting, currRippleMag), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "currRippleRate", LVT_F32, offsetof(struct Painting, currRippleRate), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "dispersionFactor", LVT_F32, offsetof(struct Painting, dispersionFactor), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "entryDispersionFactor", LVT_F32, offsetof(struct Painting, entryDispersionFactor), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "entryRippleDecay", LVT_F32, offsetof(struct Painting, entryRippleDecay), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "entryRippleMag", LVT_F32, offsetof(struct Painting, entryRippleMag), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "entryRippleRate", LVT_F32, offsetof(struct Painting, entryRippleRate), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "floorEntered", LVT_S8, offsetof(struct Painting, floorEntered), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "id", LVT_S16, offsetof(struct Painting, id), true, LOT_NONE, 1, sizeof(s16) },
|
||||
{ "imageCount", LVT_S8, offsetof(struct Painting, imageCount), true, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "lastFloor", LVT_S8, offsetof(struct Painting, lastFloor), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "marioIsUnder", LVT_S8, offsetof(struct Painting, marioIsUnder), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "marioWasUnder", LVT_S8, offsetof(struct Painting, marioWasUnder), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "marioWentUnder", LVT_S8, offsetof(struct Painting, marioWentUnder), false, LOT_NONE, 1, sizeof(s8) },
|
||||
// { "normalDisplayList", LVT_???, offsetof(struct Painting, normalDisplayList), true, LOT_???, 1, sizeof(const Gfx*) }, <--- UNIMPLEMENTED
|
||||
{ "passiveDispersionFactor", LVT_F32, offsetof(struct Painting, passiveDispersionFactor), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "passiveRippleDecay", LVT_F32, offsetof(struct Painting, passiveRippleDecay), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "passiveRippleMag", LVT_F32, offsetof(struct Painting, passiveRippleMag), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "passiveRippleRate", LVT_F32, offsetof(struct Painting, passiveRippleRate), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "pitch", LVT_F32, offsetof(struct Painting, pitch), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "posX", LVT_F32, offsetof(struct Painting, posX), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "posY", LVT_F32, offsetof(struct Painting, posY), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "posZ", LVT_F32, offsetof(struct Painting, posZ), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "rippleDecay", LVT_F32, offsetof(struct Painting, rippleDecay), false, LOT_NONE, 1, sizeof(f32) },
|
||||
// { "rippleDisplayList", LVT_???, offsetof(struct Painting, rippleDisplayList), true, LOT_???, 1, sizeof(const Gfx*) }, <--- UNIMPLEMENTED
|
||||
{ "rippleTimer", LVT_F32, offsetof(struct Painting, rippleTimer), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "rippleTrigger", LVT_S8, offsetof(struct Painting, rippleTrigger), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "rippleX", LVT_F32, offsetof(struct Painting, rippleX), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "rippleY", LVT_F32, offsetof(struct Painting, rippleY), false, LOT_NONE, 1, sizeof(f32) },
|
||||
// { "ripples", LVT_???, offsetof(struct Painting, ripples), false, LOT_???, 1, sizeof(struct { ... }) }, <--- UNIMPLEMENTED
|
||||
{ "size", LVT_F32, offsetof(struct Painting, size), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "state", LVT_S8, offsetof(struct Painting, state), false, LOT_NONE, 1, sizeof(s8) },
|
||||
// { "textureArray", LVT_???, offsetof(struct Painting, textureArray), true, LOT_???, 1, sizeof(const Texture *const*) }, <--- UNIMPLEMENTED
|
||||
{ "textureHeight", LVT_S16, offsetof(struct Painting, textureHeight), true, LOT_NONE, 1, sizeof(s16) },
|
||||
// { "textureMaps", LVT_???, offsetof(struct Painting, textureMaps), true, LOT_???, 1, sizeof(const s16 *const*) }, <--- UNIMPLEMENTED
|
||||
{ "textureType", LVT_S8, offsetof(struct Painting, textureType), true, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "textureWidth", LVT_S16, offsetof(struct Painting, textureWidth), true, LOT_NONE, 1, sizeof(s16) },
|
||||
{ "yaw", LVT_F32, offsetof(struct Painting, yaw), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "alpha", LVT_U8, offsetof(struct Painting, alpha), false, LOT_NONE, 1, sizeof(u8) },
|
||||
{ "currFloor", LVT_S8, offsetof(struct Painting, currFloor), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "currRippleMag", LVT_F32, offsetof(struct Painting, currRippleMag), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "currRippleRate", LVT_F32, offsetof(struct Painting, currRippleRate), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "dispersionFactor", LVT_F32, offsetof(struct Painting, dispersionFactor), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "entryDispersionFactor", LVT_F32, offsetof(struct Painting, entryDispersionFactor), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "entryRippleDecay", LVT_F32, offsetof(struct Painting, entryRippleDecay), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "entryRippleMag", LVT_F32, offsetof(struct Painting, entryRippleMag), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "entryRippleRate", LVT_F32, offsetof(struct Painting, entryRippleRate), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "floorEntered", LVT_S8, offsetof(struct Painting, floorEntered), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "id", LVT_S16, offsetof(struct Painting, id), true, LOT_NONE, 1, sizeof(s16) },
|
||||
{ "imageCount", LVT_S8, offsetof(struct Painting, imageCount), true, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "lastFloor", LVT_S8, offsetof(struct Painting, lastFloor), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "marioIsUnder", LVT_S8, offsetof(struct Painting, marioIsUnder), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "marioWasUnder", LVT_S8, offsetof(struct Painting, marioWasUnder), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "marioWentUnder", LVT_S8, offsetof(struct Painting, marioWentUnder), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "normalDisplayList", LVT_COBJECT_P, offsetof(struct Painting, normalDisplayList), true, LOT_GFX, 1, sizeof(const Gfx*) },
|
||||
{ "passiveDispersionFactor", LVT_F32, offsetof(struct Painting, passiveDispersionFactor), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "passiveRippleDecay", LVT_F32, offsetof(struct Painting, passiveRippleDecay), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "passiveRippleMag", LVT_F32, offsetof(struct Painting, passiveRippleMag), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "passiveRippleRate", LVT_F32, offsetof(struct Painting, passiveRippleRate), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "pitch", LVT_F32, offsetof(struct Painting, pitch), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "posX", LVT_F32, offsetof(struct Painting, posX), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "posY", LVT_F32, offsetof(struct Painting, posY), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "posZ", LVT_F32, offsetof(struct Painting, posZ), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "rippleDecay", LVT_F32, offsetof(struct Painting, rippleDecay), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "rippleDisplayList", LVT_COBJECT_P, offsetof(struct Painting, rippleDisplayList), true, LOT_GFX, 1, sizeof(const Gfx*) },
|
||||
{ "rippleTimer", LVT_F32, offsetof(struct Painting, rippleTimer), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "rippleTrigger", LVT_S8, offsetof(struct Painting, rippleTrigger), false, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "rippleX", LVT_F32, offsetof(struct Painting, rippleX), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "rippleY", LVT_F32, offsetof(struct Painting, rippleY), false, LOT_NONE, 1, sizeof(f32) },
|
||||
// { "ripples", LVT_???, offsetof(struct Painting, ripples), false, LOT_???, 1, sizeof(struct { ... }) }, <--- UNIMPLEMENTED
|
||||
{ "size", LVT_F32, offsetof(struct Painting, size), false, LOT_NONE, 1, sizeof(f32) },
|
||||
{ "state", LVT_S8, offsetof(struct Painting, state), false, LOT_NONE, 1, sizeof(s8) },
|
||||
// { "textureArray", LVT_???, offsetof(struct Painting, textureArray), true, LOT_???, 1, sizeof(const Texture *const*) }, <--- UNIMPLEMENTED
|
||||
{ "textureHeight", LVT_S16, offsetof(struct Painting, textureHeight), true, LOT_NONE, 1, sizeof(s16) },
|
||||
// { "textureMaps", LVT_???, offsetof(struct Painting, textureMaps), true, LOT_???, 1, sizeof(const s16 *const*) }, <--- UNIMPLEMENTED
|
||||
{ "textureType", LVT_S8, offsetof(struct Painting, textureType), true, LOT_NONE, 1, sizeof(s8) },
|
||||
{ "textureWidth", LVT_S16, offsetof(struct Painting, textureWidth), true, LOT_NONE, 1, sizeof(s16) },
|
||||
{ "yaw", LVT_F32, offsetof(struct Painting, yaw), false, LOT_NONE, 1, sizeof(f32) },
|
||||
};
|
||||
|
||||
#define LUA_PAINTING_MESH_VERTEX_FIELD_COUNT 2
|
||||
|
|
@ -2680,6 +2687,14 @@ static struct LuaObjectField sTransitionInfoFields[LUA_TRANSITION_INFO_FIELD_COU
|
|||
{ "posYaw", LVT_S16, offsetof(struct TransitionInfo, posYaw), false, LOT_NONE, 1, sizeof(s16) },
|
||||
};
|
||||
|
||||
#define LUA_VTX_FIELD_COUNT 4
|
||||
static struct LuaObjectField sVtxFields[LUA_VTX_FIELD_COUNT] = {
|
||||
{ "cn", LVT_U8, offsetof(Vtx_t, cn), false, LOT_NONE, 4, sizeof(unsigned char) },
|
||||
{ "flag", LVT_U16, offsetof(Vtx_t, flag), false, LOT_NONE, 1, sizeof(unsigned short) },
|
||||
{ "ob", LVT_F32, offsetof(Vtx_t, ob), false, LOT_NONE, 3, sizeof(float) },
|
||||
{ "tc", LVT_S16, offsetof(Vtx_t, tc), false, LOT_NONE, 2, sizeof(short) },
|
||||
};
|
||||
|
||||
#define LUA_VTX__INTERP_FIELD_COUNT 2
|
||||
static struct LuaObjectField sVtx_InterpFields[LUA_VTX__INTERP_FIELD_COUNT] = {
|
||||
{ "n", LVT_STRING, offsetof(Vtx_Interp, n), false, LOT_NONE, 1, sizeof(signed char) },
|
||||
|
|
@ -2796,6 +2811,7 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN]
|
|||
{ LOT_FIRSTPERSONCAMERA, sFirstPersonCameraFields, LUA_FIRST_PERSON_CAMERA_FIELD_COUNT },
|
||||
{ LOT_FLOORGEOMETRY, sFloorGeometryFields, LUA_FLOOR_GEOMETRY_FIELD_COUNT },
|
||||
{ LOT_FNGRAPHNODE, sFnGraphNodeFields, LUA_FN_GRAPH_NODE_FIELD_COUNT },
|
||||
{ LOT_GFX, sGfxFields, LUA_GFX_FIELD_COUNT },
|
||||
{ LOT_GLOBALOBJECTANIMATIONS, sGlobalObjectAnimationsFields, LUA_GLOBAL_OBJECT_ANIMATIONS_FIELD_COUNT },
|
||||
{ LOT_GLOBALOBJECTCOLLISIONDATA, sGlobalObjectCollisionDataFields, LUA_GLOBAL_OBJECT_COLLISION_DATA_FIELD_COUNT },
|
||||
{ LOT_GLOBALTEXTURES, sGlobalTexturesFields, LUA_GLOBAL_TEXTURES_FIELD_COUNT },
|
||||
|
|
@ -2861,6 +2877,7 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN]
|
|||
{ LOT_SURFACE, sSurfaceFields, LUA_SURFACE_FIELD_COUNT },
|
||||
{ LOT_TEXTUREINFO, sTextureInfoFields, LUA_TEXTURE_INFO_FIELD_COUNT },
|
||||
{ LOT_TRANSITIONINFO, sTransitionInfoFields, LUA_TRANSITION_INFO_FIELD_COUNT },
|
||||
{ LOT_VTX, sVtxFields, LUA_VTX_FIELD_COUNT },
|
||||
{ LOT_VTX_INTERP, sVtx_InterpFields, LUA_VTX__INTERP_FIELD_COUNT },
|
||||
{ LOT_WALLCOLLISIONDATA, sWallCollisionDataFields, LUA_WALL_COLLISION_DATA_FIELD_COUNT },
|
||||
{ LOT_WARPNODE, sWarpNodeFields, LUA_WARP_NODE_FIELD_COUNT },
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ enum LuaObjectAutogenType {
|
|||
LOT_FIRSTPERSONCAMERA,
|
||||
LOT_FLOORGEOMETRY,
|
||||
LOT_FNGRAPHNODE,
|
||||
LOT_GFX,
|
||||
LOT_GLOBALOBJECTANIMATIONS,
|
||||
LOT_GLOBALOBJECTCOLLISIONDATA,
|
||||
LOT_GLOBALTEXTURES,
|
||||
|
|
@ -115,6 +116,7 @@ enum LuaObjectAutogenType {
|
|||
LOT_SURFACE,
|
||||
LOT_TEXTUREINFO,
|
||||
LOT_TRANSITIONINFO,
|
||||
LOT_VTX,
|
||||
LOT_VTX_INTERP,
|
||||
LOT_WALLCOLLISIONDATA,
|
||||
LOT_WARPNODE,
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#define F3DEX_GBI_2
|
||||
char gSmluaConstants[] = ""
|
||||
"math.randomseed(get_time())\n"
|
||||
"_SyncTable = {\n"
|
||||
|
|
@ -1285,10 +1286,406 @@ char gSmluaConstants[] = ""
|
|||
"DS_YOSHI=10\n"
|
||||
"DS_MAX=11\n"
|
||||
"DS_NONE=0xff\n"
|
||||
#ifdef VERSION_JP
|
||||
"DS_DIFF=DS_KOOPA\n"
|
||||
#else // #ifdef VERSION_JP
|
||||
"DS_DIFF=DS_TUXIE\n"
|
||||
#endif // #ifdef VERSION_JP
|
||||
"FIRST_PERSON_DEFAULT_FOV=70\n"
|
||||
"FIRST_PERSON_MARIO_HEAD_POS=120\n"
|
||||
"FIRST_PERSON_MARIO_HEAD_POS_SHORT=60\n"
|
||||
"G_COPYMEM=0xd2\n"
|
||||
#ifdef F3DEX_GBI_2
|
||||
"G_NOOP=0x00\n"
|
||||
"G_RDPHALF_2=0xf1\n"
|
||||
"G_SETOTHERMODE_H=0xe3\n"
|
||||
"G_SETOTHERMODE_L=0xe2\n"
|
||||
"G_RDPHALF_1=0xe1\n"
|
||||
"G_SPNOOP=0xe0\n"
|
||||
"G_ENDDL=0xdf\n"
|
||||
"G_DL=0xde\n"
|
||||
"G_LOAD_UCODE=0xdd\n"
|
||||
"G_MOVEMEM=0xdc\n"
|
||||
"G_MOVEWORD=0xdb\n"
|
||||
"G_MTX=0xda\n"
|
||||
"G_GEOMETRYMODE=0xd9\n"
|
||||
"G_POPMTX=0xd8\n"
|
||||
"G_TEXTURE=0xd7\n"
|
||||
"G_DMA_IO=0xd6\n"
|
||||
"G_SPECIAL_1=0xd5\n"
|
||||
"G_SPECIAL_2=0xd4\n"
|
||||
"G_SPECIAL_3=0xd3\n"
|
||||
"G_VTX=0x01\n"
|
||||
"G_MODIFYVTX=0x02\n"
|
||||
"G_CULLDL=0x03\n"
|
||||
"G_BRANCH_Z=0x04\n"
|
||||
"G_TRI1=0x05\n"
|
||||
"G_TRI2=0x06\n"
|
||||
"G_QUAD=0x07\n"
|
||||
"G_LINE3D=0x08\n"
|
||||
#else // #ifdef F3DEX_GBI_2
|
||||
"G_SPNOOP=0\n"
|
||||
"G_MTX=1\n"
|
||||
"G_RESERVED0=2\n"
|
||||
"G_MOVEMEM=3\n"
|
||||
"G_VTX=4\n"
|
||||
"G_RESERVED1=5\n"
|
||||
"G_DL=6\n"
|
||||
"G_RESERVED2=7\n"
|
||||
"G_RESERVED3=8\n"
|
||||
"G_SPRITE2D_BASE=9\n"
|
||||
"G_IMMFIRST=-65\n"
|
||||
"G_TRI1=(G_IMMFIRST-0)\n"
|
||||
"G_CULLDL=(G_IMMFIRST-1)\n"
|
||||
"G_POPMTX=(G_IMMFIRST-2)\n"
|
||||
"G_MOVEWORD=(G_IMMFIRST-3)\n"
|
||||
"G_TEXTURE=(G_IMMFIRST-4)\n"
|
||||
"G_SETOTHERMODE_H=(G_IMMFIRST-5)\n"
|
||||
"G_SETOTHERMODE_L=(G_IMMFIRST-6)\n"
|
||||
"G_ENDDL=(G_IMMFIRST-7)\n"
|
||||
"G_SETGEOMETRYMODE=(G_IMMFIRST-8)\n"
|
||||
"G_CLEARGEOMETRYMODE=(G_IMMFIRST-9)\n"
|
||||
"G_LINE3D=(G_IMMFIRST-10)\n"
|
||||
"G_RDPHALF_1=(G_IMMFIRST-11)\n"
|
||||
"G_RDPHALF_2=(G_IMMFIRST-12)\n"
|
||||
"G_SPRITE2D_SCALEFLIP=(G_IMMFIRST-1)\n"
|
||||
"G_SPRITE2D_DRAW=(G_IMMFIRST-2)\n"
|
||||
"G_NOOP=0xc0\n"
|
||||
#endif // #ifdef F3DEX_GBI_2
|
||||
"G_SETCIMG=0xff\n"
|
||||
"G_SETZIMG=0xfe\n"
|
||||
"G_SETTIMG=0xfd\n"
|
||||
"G_SETCOMBINE=0xfc\n"
|
||||
"G_SETENVCOLOR=0xfb\n"
|
||||
"G_SETPRIMCOLOR=0xfa\n"
|
||||
"G_SETBLENDCOLOR=0xf9\n"
|
||||
"G_SETFOGCOLOR=0xf8\n"
|
||||
"G_SETFILLCOLOR=0xf7\n"
|
||||
"G_FILLRECT=0xf6\n"
|
||||
"G_SETTILE=0xf5\n"
|
||||
"G_LOADTILE=0xf4\n"
|
||||
"G_LOADBLOCK=0xf3\n"
|
||||
"G_SETTILESIZE=0xf2\n"
|
||||
"G_LOADTLUT=0xf0\n"
|
||||
"G_RDPSETOTHERMODE=0xef\n"
|
||||
"G_SETPRIMDEPTH=0xee\n"
|
||||
"G_SETSCISSOR=0xed\n"
|
||||
"G_SETCONVERT=0xec\n"
|
||||
"G_SETKEYR=0xeb\n"
|
||||
"G_SETKEYGB=0xea\n"
|
||||
"G_RDPFULLSYNC=0xe9\n"
|
||||
"G_RDPTILESYNC=0xe8\n"
|
||||
"G_RDPPIPESYNC=0xe7\n"
|
||||
"G_RDPLOADSYNC=0xe6\n"
|
||||
"G_TEXRECTFLIP=0xe5\n"
|
||||
"G_TEXRECT=0xe4\n"
|
||||
"G_TRI_FILL=0xc8\n"
|
||||
"G_TRI_SHADE=0xcc\n"
|
||||
"G_TRI_TXTR=0xca\n"
|
||||
"G_TRI_SHADE_TXTR=0xce\n"
|
||||
"G_TRI_FILL_ZBUFF=0xc9\n"
|
||||
"G_TRI_SHADE_ZBUFF=0xcd\n"
|
||||
"G_TRI_TXTR_ZBUFF=0xcb\n"
|
||||
"G_TRI_SHADE_TXTR_ZBUFF=0xcf\n"
|
||||
"G_RDP_TRI_FILL_MASK=0x08\n"
|
||||
"G_RDP_TRI_SHADE_MASK=0x04\n"
|
||||
"G_RDP_TRI_TXTR_MASK=0x02\n"
|
||||
"G_RDP_TRI_ZBUFF_MASK=0x01\n"
|
||||
"BOWTIE_VAL=0\n"
|
||||
"G_RDP_ADDR_FIXUP=3\n"
|
||||
"G_DMACMDSIZ=128\n"
|
||||
"G_IMMCMDSIZ=64\n"
|
||||
"G_RDPCMDSIZ=64\n"
|
||||
"G_TEXTURE_IMAGE_FRAC=2\n"
|
||||
"G_TEXTURE_SCALE_FRAC=16\n"
|
||||
"G_SCALE_FRAC=8\n"
|
||||
"G_ROTATE_FRAC=16\n"
|
||||
"G_MAXFBZ=0x3fff\n"
|
||||
"G_ZBUFFER=0x00000001\n"
|
||||
"G_SHADE=0x00000004\n"
|
||||
"G_FOG=0x00010000\n"
|
||||
"G_LIGHTING=0x00020000\n"
|
||||
"G_TEXTURE_GEN=0x00040000\n"
|
||||
"G_TEXTURE_GEN_LINEAR=0x00080000\n"
|
||||
"G_LOD=0x00100000\n"
|
||||
"G_IM_FMT_RGBA=0\n"
|
||||
"G_IM_FMT_YUV=1\n"
|
||||
"G_IM_FMT_CI=2\n"
|
||||
"G_IM_FMT_IA=3\n"
|
||||
"G_IM_FMT_I=4\n"
|
||||
"G_IM_SIZ_4b=0\n"
|
||||
"G_IM_SIZ_8b=1\n"
|
||||
"G_IM_SIZ_16b=2\n"
|
||||
"G_IM_SIZ_32b=3\n"
|
||||
"G_IM_SIZ_DD=5\n"
|
||||
"G_IM_SIZ_4b_BYTES=0\n"
|
||||
"G_IM_SIZ_8b_BYTES=1\n"
|
||||
"G_IM_SIZ_16b_BYTES=2\n"
|
||||
"G_IM_SIZ_32b_BYTES=4\n"
|
||||
"G_IM_SIZ_32b_TILE_BYTES=2\n"
|
||||
"G_IM_SIZ_32b_LINE_BYTES=2\n"
|
||||
"G_IM_SIZ_4b_SHIFT=2\n"
|
||||
"G_IM_SIZ_8b_SHIFT=1\n"
|
||||
"G_IM_SIZ_16b_SHIFT=0\n"
|
||||
"G_IM_SIZ_32b_SHIFT=0\n"
|
||||
"G_IM_SIZ_4b_INCR=3\n"
|
||||
"G_IM_SIZ_8b_INCR=1\n"
|
||||
"G_IM_SIZ_16b_INCR=0\n"
|
||||
"G_IM_SIZ_32b_INCR=0\n"
|
||||
"G_CCMUX_COMBINED=0\n"
|
||||
"G_CCMUX_TEXEL0=1\n"
|
||||
"G_CCMUX_TEXEL1=2\n"
|
||||
"G_CCMUX_PRIMITIVE=3\n"
|
||||
"G_CCMUX_SHADE=4\n"
|
||||
"G_CCMUX_ENVIRONMENT=5\n"
|
||||
"G_CCMUX_CENTER=6\n"
|
||||
"G_CCMUX_SCALE=6\n"
|
||||
"G_CCMUX_COMBINED_ALPHA=7\n"
|
||||
"G_CCMUX_TEXEL0_ALPHA=8\n"
|
||||
"G_CCMUX_TEXEL1_ALPHA=9\n"
|
||||
"G_CCMUX_PRIMITIVE_ALPHA=10\n"
|
||||
"G_CCMUX_SHADE_ALPHA=11\n"
|
||||
"G_CCMUX_ENV_ALPHA=12\n"
|
||||
"G_CCMUX_LOD_FRACTION=13\n"
|
||||
"G_CCMUX_PRIM_LOD_FRAC=14\n"
|
||||
"G_CCMUX_NOISE=7\n"
|
||||
"G_CCMUX_K4=7\n"
|
||||
"G_CCMUX_K5=15\n"
|
||||
"G_CCMUX_1=6\n"
|
||||
"G_CCMUX_0=31\n"
|
||||
"G_ACMUX_COMBINED=0\n"
|
||||
"G_ACMUX_TEXEL0=1\n"
|
||||
"G_ACMUX_TEXEL1=2\n"
|
||||
"G_ACMUX_PRIMITIVE=3\n"
|
||||
"G_ACMUX_SHADE=4\n"
|
||||
"G_ACMUX_ENVIRONMENT=5\n"
|
||||
"G_ACMUX_LOD_FRACTION=0\n"
|
||||
"G_ACMUX_PRIM_LOD_FRAC=6\n"
|
||||
"G_ACMUX_1=6\n"
|
||||
"G_ACMUX_0=7\n"
|
||||
"G_MDSFT_ALPHACOMPARE=0\n"
|
||||
"G_MDSFT_ZSRCSEL=2\n"
|
||||
"G_MDSFT_RENDERMODE=3\n"
|
||||
"G_MDSFT_BLENDER=16\n"
|
||||
"G_MDSFT_BLENDMASK=0\n"
|
||||
"G_MDSFT_ALPHADITHER=4\n"
|
||||
"G_MDSFT_RGBDITHER=6\n"
|
||||
"G_MDSFT_COMBKEY=8\n"
|
||||
"G_MDSFT_TEXTCONV=9\n"
|
||||
"G_MDSFT_TEXTFILT=12\n"
|
||||
"G_MDSFT_TEXTLUT=14\n"
|
||||
"G_MDSFT_TEXTLOD=16\n"
|
||||
"G_MDSFT_TEXTDETAIL=17\n"
|
||||
"G_MDSFT_TEXTPERSP=19\n"
|
||||
"G_MDSFT_CYCLETYPE=20\n"
|
||||
"G_MDSFT_COLORDITHER=22\n"
|
||||
"G_MDSFT_PIPELINE=23\n"
|
||||
"G_PM_1PRIMITIVE=(1 << G_MDSFT_PIPELINE)\n"
|
||||
"G_PM_NPRIMITIVE=(0 << G_MDSFT_PIPELINE)\n"
|
||||
"G_CYC_1CYCLE=(0 << G_MDSFT_CYCLETYPE)\n"
|
||||
"G_CYC_2CYCLE=(1 << G_MDSFT_CYCLETYPE)\n"
|
||||
"G_CYC_COPY=(2 << G_MDSFT_CYCLETYPE)\n"
|
||||
"G_CYC_FILL=(3 << G_MDSFT_CYCLETYPE)\n"
|
||||
"G_TP_NONE=(0 << G_MDSFT_TEXTPERSP)\n"
|
||||
"G_TP_PERSP=(1 << G_MDSFT_TEXTPERSP)\n"
|
||||
"G_TD_CLAMP=(0 << G_MDSFT_TEXTDETAIL)\n"
|
||||
"G_TD_SHARPEN=(1 << G_MDSFT_TEXTDETAIL)\n"
|
||||
"G_TD_DETAIL=(2 << G_MDSFT_TEXTDETAIL)\n"
|
||||
"G_TL_TILE=(0 << G_MDSFT_TEXTLOD)\n"
|
||||
"G_TL_LOD=(1 << G_MDSFT_TEXTLOD)\n"
|
||||
"G_TT_NONE=(0 << G_MDSFT_TEXTLUT)\n"
|
||||
"G_TT_RGBA16=(2 << G_MDSFT_TEXTLUT)\n"
|
||||
"G_TT_IA16=(3 << G_MDSFT_TEXTLUT)\n"
|
||||
"G_TF_POINT=(0 << G_MDSFT_TEXTFILT)\n"
|
||||
"G_TF_AVERAGE=(3 << G_MDSFT_TEXTFILT)\n"
|
||||
"G_TF_BILERP=(2 << G_MDSFT_TEXTFILT)\n"
|
||||
"G_TC_CONV=(0 << G_MDSFT_TEXTCONV)\n"
|
||||
"G_TC_FILTCONV=(5 << G_MDSFT_TEXTCONV)\n"
|
||||
"G_TC_FILT=(6 << G_MDSFT_TEXTCONV)\n"
|
||||
"G_CK_NONE=(0 << G_MDSFT_COMBKEY)\n"
|
||||
"G_CK_KEY=(1 << G_MDSFT_COMBKEY)\n"
|
||||
"G_CD_MAGICSQ=(0 << G_MDSFT_RGBDITHER)\n"
|
||||
"G_CD_BAYER=(1 << G_MDSFT_RGBDITHER)\n"
|
||||
"G_CD_NOISE=(2 << G_MDSFT_RGBDITHER)\n"
|
||||
#ifndef _HW_VERSION_1
|
||||
"G_CD_DISABLE=(3 << G_MDSFT_RGBDITHER)\n"
|
||||
"G_CD_ENABLE=G_CD_NOISE\n"
|
||||
#else // #ifndef _HW_VERSION_1
|
||||
"G_CD_ENABLE=(1 << G_MDSFT_COLORDITHER)\n"
|
||||
"G_CD_DISABLE=(0 << G_MDSFT_COLORDITHER)\n"
|
||||
#endif // #ifndef _HW_VERSION_1
|
||||
"G_AD_PATTERN=(0 << G_MDSFT_ALPHADITHER)\n"
|
||||
"G_AD_NOTPATTERN=(1 << G_MDSFT_ALPHADITHER)\n"
|
||||
"G_AD_NOISE=(2 << G_MDSFT_ALPHADITHER)\n"
|
||||
"G_AD_DISABLE=(3 << G_MDSFT_ALPHADITHER)\n"
|
||||
"G_AC_NONE=(0 << G_MDSFT_ALPHACOMPARE)\n"
|
||||
"G_AC_THRESHOLD=(1 << G_MDSFT_ALPHACOMPARE)\n"
|
||||
"G_AC_DITHER=(3 << G_MDSFT_ALPHACOMPARE)\n"
|
||||
"G_ZS_PIXEL=(0 << G_MDSFT_ZSRCSEL)\n"
|
||||
"G_ZS_PRIM=(1 << G_MDSFT_ZSRCSEL)\n"
|
||||
"AA_EN=0x8\n"
|
||||
"Z_CMP=0x10\n"
|
||||
"Z_UPD=0x20\n"
|
||||
"IM_RD=0x40\n"
|
||||
"CLR_ON_CVG=0x80\n"
|
||||
"CVG_DST_CLAMP=0\n"
|
||||
"CVG_DST_WRAP=0x100\n"
|
||||
"CVG_DST_FULL=0x200\n"
|
||||
"CVG_DST_SAVE=0x300\n"
|
||||
"ZMODE_OPA=0\n"
|
||||
"ZMODE_INTER=0x400\n"
|
||||
"ZMODE_XLU=0x800\n"
|
||||
"ZMODE_DEC=0xc00\n"
|
||||
"CVG_X_ALPHA=0x1000\n"
|
||||
"ALPHA_CVG_SEL=0x2000\n"
|
||||
"FORCE_BL=0x4000\n"
|
||||
"TEX_EDGE=0x0000\n"
|
||||
"G_BL_CLR_IN=0\n"
|
||||
"G_BL_CLR_MEM=1\n"
|
||||
"G_BL_CLR_BL=2\n"
|
||||
"G_BL_CLR_FOG=3\n"
|
||||
"G_BL_1MA=0\n"
|
||||
"G_BL_A_MEM=1\n"
|
||||
"G_BL_A_IN=0\n"
|
||||
"G_BL_A_FOG=1\n"
|
||||
"G_BL_A_SHADE=2\n"
|
||||
"G_BL_1=2\n"
|
||||
"G_BL_0=3\n"
|
||||
"G_CV_K0=175\n"
|
||||
"G_CV_K1=-43\n"
|
||||
"G_CV_K2=-89\n"
|
||||
"G_CV_K3=222\n"
|
||||
"G_CV_K4=114\n"
|
||||
"G_CV_K5=42\n"
|
||||
"G_SC_NON_INTERLACE=0\n"
|
||||
"G_SC_ODD_INTERLACE=3\n"
|
||||
"G_SC_EVEN_INTERLACE=2\n"
|
||||
"G_DL_PUSH=0x00\n"
|
||||
"G_DL_NOPUSH=0x01\n"
|
||||
"G_MW_MATRIX=0x00\n"
|
||||
"G_MW_NUMLIGHT=0x02\n"
|
||||
"G_MW_CLIP=0x04\n"
|
||||
"G_MW_SEGMENT=0x06\n"
|
||||
"G_MW_FOG=0x08\n"
|
||||
"G_MW_LIGHTCOL=0x0a\n"
|
||||
"G_MW_PERSPNORM=0x0e\n"
|
||||
"G_MWO_NUMLIGHT=0x00\n"
|
||||
"G_MWO_CLIP_RNX=0x04\n"
|
||||
"G_MWO_CLIP_RNY=0x0c\n"
|
||||
"G_MWO_CLIP_RPX=0x14\n"
|
||||
"G_MWO_CLIP_RPY=0x1c\n"
|
||||
"G_MWO_SEGMENT_0=0x00\n"
|
||||
"G_MWO_SEGMENT_1=0x01\n"
|
||||
"G_MWO_SEGMENT_2=0x02\n"
|
||||
"G_MWO_SEGMENT_3=0x03\n"
|
||||
"G_MWO_SEGMENT_4=0x04\n"
|
||||
"G_MWO_SEGMENT_5=0x05\n"
|
||||
"G_MWO_SEGMENT_6=0x06\n"
|
||||
"G_MWO_SEGMENT_7=0x07\n"
|
||||
"G_MWO_SEGMENT_8=0x08\n"
|
||||
"G_MWO_SEGMENT_9=0x09\n"
|
||||
"G_MWO_SEGMENT_A=0x0a\n"
|
||||
"G_MWO_SEGMENT_B=0x0b\n"
|
||||
"G_MWO_SEGMENT_C=0x0c\n"
|
||||
"G_MWO_SEGMENT_D=0x0d\n"
|
||||
"G_MWO_SEGMENT_E=0x0e\n"
|
||||
"G_MWO_SEGMENT_F=0x0f\n"
|
||||
"G_MWO_FOG=0x00\n"
|
||||
"G_MWO_aLIGHT_1=0x00\n"
|
||||
"G_MWO_bLIGHT_1=0x04\n"
|
||||
#ifdef F3DEX_GBI_2
|
||||
"G_MWO_aLIGHT_2=0x18\n"
|
||||
"G_MWO_bLIGHT_2=0x1c\n"
|
||||
"G_MWO_aLIGHT_3=0x30\n"
|
||||
"G_MWO_bLIGHT_3=0x34\n"
|
||||
"G_MWO_aLIGHT_4=0x48\n"
|
||||
"G_MWO_bLIGHT_4=0x4c\n"
|
||||
"G_MWO_aLIGHT_5=0x60\n"
|
||||
"G_MWO_bLIGHT_5=0x64\n"
|
||||
"G_MWO_aLIGHT_6=0x78\n"
|
||||
"G_MWO_bLIGHT_6=0x7c\n"
|
||||
"G_MWO_aLIGHT_7=0x90\n"
|
||||
"G_MWO_bLIGHT_7=0x94\n"
|
||||
"G_MWO_aLIGHT_8=0xa8\n"
|
||||
"G_MWO_bLIGHT_8=0xac\n"
|
||||
#else // #ifdef F3DEX_GBI_2
|
||||
"G_MWO_aLIGHT_2=0x20\n"
|
||||
"G_MWO_bLIGHT_2=0x24\n"
|
||||
"G_MWO_aLIGHT_3=0x40\n"
|
||||
"G_MWO_bLIGHT_3=0x44\n"
|
||||
"G_MWO_aLIGHT_4=0x60\n"
|
||||
"G_MWO_bLIGHT_4=0x64\n"
|
||||
"G_MWO_aLIGHT_5=0x80\n"
|
||||
"G_MWO_bLIGHT_5=0x84\n"
|
||||
"G_MWO_aLIGHT_6=0xa0\n"
|
||||
"G_MWO_bLIGHT_6=0xa4\n"
|
||||
"G_MWO_aLIGHT_7=0xc0\n"
|
||||
"G_MWO_bLIGHT_7=0xc4\n"
|
||||
"G_MWO_aLIGHT_8=0xe0\n"
|
||||
"G_MWO_bLIGHT_8=0xe4\n"
|
||||
#endif // #ifdef F3DEX_GBI_2
|
||||
"G_MWO_MATRIX_XX_XY_I=0x00\n"
|
||||
"G_MWO_MATRIX_XZ_XW_I=0x04\n"
|
||||
"G_MWO_MATRIX_YX_YY_I=0x08\n"
|
||||
"G_MWO_MATRIX_YZ_YW_I=0x0c\n"
|
||||
"G_MWO_MATRIX_ZX_ZY_I=0x10\n"
|
||||
"G_MWO_MATRIX_ZZ_ZW_I=0x14\n"
|
||||
"G_MWO_MATRIX_WX_WY_I=0x18\n"
|
||||
"G_MWO_MATRIX_WZ_WW_I=0x1c\n"
|
||||
"G_MWO_MATRIX_XX_XY_F=0x20\n"
|
||||
"G_MWO_MATRIX_XZ_XW_F=0x24\n"
|
||||
"G_MWO_MATRIX_YX_YY_F=0x28\n"
|
||||
"G_MWO_MATRIX_YZ_YW_F=0x2c\n"
|
||||
"G_MWO_MATRIX_ZX_ZY_F=0x30\n"
|
||||
"G_MWO_MATRIX_ZZ_ZW_F=0x34\n"
|
||||
"G_MWO_MATRIX_WX_WY_F=0x38\n"
|
||||
"G_MWO_MATRIX_WZ_WW_F=0x3c\n"
|
||||
"G_MWO_POINT_RGBA=0x10\n"
|
||||
"G_MWO_POINT_ST=0x14\n"
|
||||
"G_MWO_POINT_XYSCREEN=0x18\n"
|
||||
"G_MWO_POINT_ZSCREEN=0x1c\n"
|
||||
"FR_NEG_FRUSTRATIO_1=0x00000001\n"
|
||||
"FR_POS_FRUSTRATIO_1=0x0000ffff\n"
|
||||
"FR_NEG_FRUSTRATIO_2=0x00000002\n"
|
||||
"FR_POS_FRUSTRATIO_2=0x0000fffe\n"
|
||||
"FR_NEG_FRUSTRATIO_3=0x00000003\n"
|
||||
"FR_POS_FRUSTRATIO_3=0x0000fffd\n"
|
||||
"FR_NEG_FRUSTRATIO_4=0x00000004\n"
|
||||
"FR_POS_FRUSTRATIO_4=0x0000fffc\n"
|
||||
"FR_NEG_FRUSTRATIO_5=0x00000005\n"
|
||||
"FR_POS_FRUSTRATIO_5=0x0000fffb\n"
|
||||
"FR_NEG_FRUSTRATIO_6=0x00000006\n"
|
||||
"FR_POS_FRUSTRATIO_6=0x0000fffa\n"
|
||||
"NUMLIGHTS_0=1\n"
|
||||
"NUMLIGHTS_1=1\n"
|
||||
"NUMLIGHTS_2=2\n"
|
||||
"NUMLIGHTS_3=3\n"
|
||||
"NUMLIGHTS_4=4\n"
|
||||
"NUMLIGHTS_5=5\n"
|
||||
"NUMLIGHTS_6=6\n"
|
||||
"NUMLIGHTS_7=7\n"
|
||||
"LIGHT_1=1\n"
|
||||
"LIGHT_2=2\n"
|
||||
"LIGHT_3=3\n"
|
||||
"LIGHT_4=4\n"
|
||||
"LIGHT_5=5\n"
|
||||
"LIGHT_6=6\n"
|
||||
"LIGHT_7=7\n"
|
||||
"LIGHT_8=8\n"
|
||||
"G_TX_LOADTILE=7\n"
|
||||
"G_TX_RENDERTILE=0\n"
|
||||
"G_TX_NOMIRROR=0\n"
|
||||
"G_TX_WRAP=0\n"
|
||||
"G_TX_MIRROR=0x1\n"
|
||||
"G_TX_CLAMP=0x2\n"
|
||||
"G_TX_NOMASK=0\n"
|
||||
"G_TX_NOLOD=0\n"
|
||||
"G_TX_DXT_FRAC=11\n"
|
||||
#ifdef _HW_VERSION_1
|
||||
"G_TX_LDBLK_MAX_TXL=4095\n"
|
||||
#else // #ifdef _HW_VERSION_1
|
||||
"G_TX_LDBLK_MAX_TXL=2047\n"
|
||||
#endif // #ifdef _HW_VERSION_1
|
||||
"BACKGROUND_OCEAN_SKY=0\n"
|
||||
"BACKGROUND_FLAMING_SKY=1\n"
|
||||
"BACKGROUND_UNDERWATER_CITY=2\n"
|
||||
|
|
@ -2759,6 +3156,10 @@ char gSmluaConstants[] = ""
|
|||
"SAVE_FLAG_COLLECTED_TOAD_STAR_3=(1 << 26)\n"
|
||||
"SAVE_FLAG_COLLECTED_MIPS_STAR_1=(1 << 27)\n"
|
||||
"SAVE_FLAG_COLLECTED_MIPS_STAR_2=(1 << 28)\n"
|
||||
"LANGUAGE_ENGLISH=0\n"
|
||||
"LANGUAGE_FRENCH=1\n"
|
||||
"LANGUAGE_GERMAN=2\n"
|
||||
"LANGUAGE_MAX=3\n"
|
||||
"SEQ_BASE_ID=0x7f\n"
|
||||
"SEQ_VARIATION=0x80\n"
|
||||
"SEQ_SOUND_PLAYER=0\n"
|
||||
|
|
@ -3824,7 +4225,11 @@ char gSmluaConstants[] = ""
|
|||
"SOUND_GENERAL_UNKNOWN1_2=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x25, 0x00, SOUND_VIBRATO | SOUND_DISCRETE)\n"
|
||||
"SOUND_GENERAL_CLAM_SHELL2=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x26, 0x40, SOUND_DISCRETE)\n"
|
||||
"SOUND_GENERAL_CLAM_SHELL3=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x27, 0x40, SOUND_DISCRETE)\n"
|
||||
#ifdef VERSION_JP
|
||||
"SOUND_GENERAL_PAINTING_EJECT=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x28, 0x00, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE)\n"
|
||||
#else // #ifdef VERSION_JP
|
||||
"SOUND_GENERAL_PAINTING_EJECT=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x28, 0x00, SOUND_NO_VOLUME_LOSS | SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE)\n"
|
||||
#endif // #ifdef VERSION_JP
|
||||
"SOUND_GENERAL_LEVEL_SELECT_CHANGE=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x2B, 0x00, SOUND_DISCRETE)\n"
|
||||
"SOUND_GENERAL_PLATFORM=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x2D, 0x80, SOUND_DISCRETE)\n"
|
||||
"SOUND_GENERAL_DONUT_PLATFORM_EXPLOSION=SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x2E, 0x20, SOUND_DISCRETE)\n"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#include "smlua.h"
|
||||
#include "smlua_cobject.h"
|
||||
|
||||
#include <PR/gbi.h>
|
||||
|
||||
#include "game/level_update.h"
|
||||
#include "game/area.h"
|
||||
#include "game/mario.h"
|
||||
|
|
@ -17,6 +19,8 @@
|
|||
#include "utils/smlua_anim_utils.h"
|
||||
#include "utils/smlua_collision_utils.h"
|
||||
#include "game/hardcoded.h"
|
||||
#include "gfx_symbols.h"
|
||||
#include "include/macros.h"
|
||||
|
||||
bool smlua_functions_valid_param_count(lua_State* L, int expected) {
|
||||
int top = lua_gettop(L);
|
||||
|
|
@ -1027,6 +1031,50 @@ int smlua_func_get_uncolored_string(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
//////////////////
|
||||
// display list //
|
||||
//////////////////
|
||||
|
||||
#define HANDLE_PARAM(paramNum) \
|
||||
s64 arg##paramNum = smlua_to_integer(L, 2 + paramNum); \
|
||||
if (!gSmLuaConvertSuccess) { \
|
||||
LOG_LUA("gfx_set_command: '%s' failed to convert parameter " #paramNum ".", symbolName); \
|
||||
return 0; \
|
||||
}
|
||||
|
||||
#define GET_ARG(paramNum) arg##paramNum
|
||||
#define CALL_SYMB(symb, ...) symb(__VA_ARGS__)
|
||||
|
||||
// Uses macro iterators to dynamically handle the correct number of parameters
|
||||
#define define_gfx_symbol(symb, params, ...) \
|
||||
if (strcmp(command, #symb) == 0) { \
|
||||
if (paramCount != params) { LOG_LUA("gfx_set_command: '" #symb "' received incorrect number of parameters. Received %u, expected %u", paramCount, params); return 0; } \
|
||||
UNUSED const char symbolName[] = #symb; \
|
||||
REPEAT(HANDLE_PARAM, params); \
|
||||
Gfx _Gfx[] = { CALL_SYMB(symb, LIST_ARGS(GET_ARG, params)) }; \
|
||||
memcpy(gfx, _Gfx, sizeof(_Gfx)); \
|
||||
return 1; \
|
||||
}
|
||||
|
||||
int smlua_func_gfx_set_command(lua_State* L) {
|
||||
int top = lua_gettop(L);
|
||||
if (top < 2) {
|
||||
LOG_LUA_LINE("Improper param count: Expected at least 2, Received %u", top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Gfx* gfx = smlua_to_cobject(L, 1, LOT_GFX);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "gfx_set_command"); return 0; }
|
||||
|
||||
const char *command = smlua_to_string(L, 2);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "gfx_set_command"); return 0; }
|
||||
|
||||
u16 paramCount = top - 2;
|
||||
|
||||
// Handle commands using the define_gfx_symbol macro
|
||||
GFX_SYMBOLS();
|
||||
}
|
||||
|
||||
//////////
|
||||
// bind //
|
||||
//////////
|
||||
|
|
@ -1058,4 +1106,5 @@ void smlua_bind_functions(void) {
|
|||
smlua_bind_function(L, "collision_find_surface_on_ray", smlua_func_collision_find_surface_on_ray);
|
||||
smlua_bind_function(L, "cast_graph_node", smlua_func_cast_graph_node);
|
||||
smlua_bind_function(L, "get_uncolored_string", smlua_func_get_uncolored_string);
|
||||
smlua_bind_function(L, "gfx_set_command", smlua_func_gfx_set_command);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9167,7 +9167,7 @@ int smlua_func_geo_bits_bowser_coloring(lua_State* L) {
|
|||
s32 a2 = smlua_to_integer(L, 3);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_bits_bowser_coloring"); return 0; }
|
||||
|
||||
UNIMPLEMENTED -->(L, geo_bits_bowser_coloring(run, node, a2));
|
||||
smlua_push_object(L, LOT_GFX, geo_bits_bowser_coloring(run, node, a2), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -9192,7 +9192,7 @@ int smlua_func_geo_move_mario_part_from_parent(lua_State* L) {
|
|||
smlua_get_mat4(mtx, 3);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_move_mario_part_from_parent"); return 0; }
|
||||
|
||||
UNIMPLEMENTED -->(L, geo_move_mario_part_from_parent(run, node, mtx));
|
||||
smlua_push_object(L, LOT_GFX, geo_move_mario_part_from_parent(run, node, mtx), NULL);
|
||||
|
||||
smlua_push_mat4(mtx, 3);
|
||||
|
||||
|
|
@ -9217,7 +9217,7 @@ int smlua_func_geo_scale_bowser_key(lua_State* L) {
|
|||
f32 mtx[4][4] = smlua_to_number(L, 3);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_scale_bowser_key"); return 0; }
|
||||
|
||||
UNIMPLEMENTED -->(L, geo_scale_bowser_key(run, node, mtx[4][4]));
|
||||
smlua_push_object(L, LOT_GFX, geo_scale_bowser_key(run, node, mtx[4][4]), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -9240,7 +9240,7 @@ int smlua_func_geo_snufit_move_mask(lua_State* L) {
|
|||
Mat4 * c = (Mat4 *)smlua_to_cobject(L, 3, LOT_MAT4);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_snufit_move_mask"); return 0; }
|
||||
|
||||
UNIMPLEMENTED -->(L, geo_snufit_move_mask(callContext, node, c));
|
||||
smlua_push_object(L, LOT_GFX, geo_snufit_move_mask(callContext, node, c), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -9263,7 +9263,7 @@ int smlua_func_geo_snufit_scale_body(lua_State* L) {
|
|||
Mat4 * c = (Mat4 *)smlua_to_cobject(L, 3, LOT_MAT4);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_snufit_scale_body"); return 0; }
|
||||
|
||||
UNIMPLEMENTED -->(L, geo_snufit_scale_body(callContext, node, c));
|
||||
smlua_push_object(L, LOT_GFX, geo_snufit_scale_body(callContext, node, c), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -9286,7 +9286,7 @@ int smlua_func_geo_switch_bowser_eyes(lua_State* L) {
|
|||
Mat4 * mtx = (Mat4 *)smlua_to_cobject(L, 3, LOT_MAT4);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_switch_bowser_eyes"); return 0; }
|
||||
|
||||
UNIMPLEMENTED -->(L, geo_switch_bowser_eyes(run, node, mtx));
|
||||
smlua_push_object(L, LOT_GFX, geo_switch_bowser_eyes(run, node, mtx), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -9309,7 +9309,7 @@ int smlua_func_geo_switch_tuxie_mother_eyes(lua_State* L) {
|
|||
Mat4 * mtx = (Mat4 *)smlua_to_cobject(L, 3, LOT_MAT4);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_switch_tuxie_mother_eyes"); return 0; }
|
||||
|
||||
UNIMPLEMENTED -->(L, geo_switch_tuxie_mother_eyes(run, node, mtx));
|
||||
smlua_push_object(L, LOT_GFX, geo_switch_tuxie_mother_eyes(run, node, mtx), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -9334,7 +9334,7 @@ int smlua_func_geo_update_body_rot_from_parent(lua_State* L) {
|
|||
smlua_get_mat4(mtx, 3);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_update_body_rot_from_parent"); return 0; }
|
||||
|
||||
UNIMPLEMENTED -->(L, geo_update_body_rot_from_parent(run, node, mtx));
|
||||
smlua_push_object(L, LOT_GFX, geo_update_body_rot_from_parent(run, node, mtx), NULL);
|
||||
|
||||
smlua_push_mat4(mtx, 3);
|
||||
|
||||
|
|
@ -9361,7 +9361,7 @@ int smlua_func_geo_update_held_mario_pos(lua_State* L) {
|
|||
smlua_get_mat4(mtx, 3);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_update_held_mario_pos"); return 0; }
|
||||
|
||||
UNIMPLEMENTED -->(L, geo_update_held_mario_pos(run, node, mtx));
|
||||
smlua_push_object(L, LOT_GFX, geo_update_held_mario_pos(run, node, mtx), NULL);
|
||||
|
||||
smlua_push_mat4(mtx, 3);
|
||||
|
||||
|
|
@ -10530,7 +10530,7 @@ int smlua_func_geo_camera_fov(lua_State* L) {
|
|||
// void * context = (void *)smlua_to_cobject(L, 3, LOT_???); <--- UNIMPLEMENTED
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_camera_fov"); return 0; }
|
||||
|
||||
UNIMPLEMENTED -->(L, geo_camera_fov(callContext, g, context));
|
||||
smlua_push_object(L, LOT_GFX, geo_camera_fov(callContext, g, context), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -10553,7 +10553,7 @@ int smlua_func_geo_camera_main(lua_State* L) {
|
|||
// void * context = (void *)smlua_to_cobject(L, 3, LOT_???); <--- UNIMPLEMENTED
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_camera_main"); return 0; }
|
||||
|
||||
UNIMPLEMENTED -->(L, geo_camera_main(callContext, g, context));
|
||||
smlua_push_object(L, LOT_GFX, geo_camera_main(callContext, g, context), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -20323,7 +20323,7 @@ int smlua_func_geo_obj_transparency_something(lua_State* L) {
|
|||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_obj_transparency_something"); return 0; }
|
||||
|
||||
extern Gfx UNUSED *geo_obj_transparency_something(s32 callContext, struct GraphNode *node, UNUSED Mat4 *mtx);
|
||||
UNIMPLEMENTED -->(L, geo_obj_transparency_something(callContext, node, mtx));
|
||||
smlua_push_object(L, LOT_GFX, geo_obj_transparency_something(callContext, node, mtx), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -24543,7 +24543,7 @@ int smlua_func_geo_choose_area_ext(lua_State* L) {
|
|||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_choose_area_ext"); return 0; }
|
||||
|
||||
extern Gfx *geo_choose_area_ext(UNUSED s32 callContext, struct GraphNode *node, UNUSED Mat4 mtx);
|
||||
UNIMPLEMENTED -->(L, geo_choose_area_ext(callContext, node, mtx));
|
||||
smlua_push_object(L, LOT_GFX, geo_choose_area_ext(callContext, node, mtx), NULL);
|
||||
|
||||
smlua_push_mat4(mtx, 3);
|
||||
|
||||
|
|
@ -24595,7 +24595,7 @@ int smlua_func_geo_offset_klepto_held_object(lua_State* L) {
|
|||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_offset_klepto_held_object"); return 0; }
|
||||
|
||||
extern Gfx *geo_offset_klepto_held_object(s32 callContext, struct GraphNode *node, UNUSED Mat4 mtx);
|
||||
UNIMPLEMENTED -->(L, geo_offset_klepto_held_object(callContext, node, mtx));
|
||||
smlua_push_object(L, LOT_GFX, geo_offset_klepto_held_object(callContext, node, mtx), NULL);
|
||||
|
||||
smlua_push_mat4(mtx, 3);
|
||||
|
||||
|
|
@ -24619,7 +24619,7 @@ int smlua_func_geo_switch_anim_state(lua_State* L) {
|
|||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_switch_anim_state"); return 0; }
|
||||
|
||||
extern Gfx *geo_switch_anim_state(s32 callContext, struct GraphNode *node);
|
||||
UNIMPLEMENTED -->(L, geo_switch_anim_state(callContext, node));
|
||||
smlua_push_object(L, LOT_GFX, geo_switch_anim_state(callContext, node), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -24641,7 +24641,7 @@ int smlua_func_geo_switch_area(lua_State* L) {
|
|||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_switch_area"); return 0; }
|
||||
|
||||
extern Gfx *geo_switch_area(s32 callContext, struct GraphNode *node);
|
||||
UNIMPLEMENTED -->(L, geo_switch_area(callContext, node));
|
||||
smlua_push_object(L, LOT_GFX, geo_switch_area(callContext, node), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -24665,7 +24665,7 @@ int smlua_func_geo_update_layer_transparency(lua_State* L) {
|
|||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_update_layer_transparency"); return 0; }
|
||||
|
||||
extern Gfx *geo_update_layer_transparency(s32 callContext, struct GraphNode *node, UNUSED void *context);
|
||||
UNIMPLEMENTED -->(L, geo_update_layer_transparency(callContext, node, context));
|
||||
smlua_push_object(L, LOT_GFX, geo_update_layer_transparency(callContext, node, context), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -24691,7 +24691,7 @@ int smlua_func_geo_update_projectile_pos_from_parent(lua_State* L) {
|
|||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_update_projectile_pos_from_parent"); return 0; }
|
||||
|
||||
extern Gfx *geo_update_projectile_pos_from_parent(s32 callContext, UNUSED struct GraphNode *node, Mat4 mtx);
|
||||
UNIMPLEMENTED -->(L, geo_update_projectile_pos_from_parent(callContext, node, mtx));
|
||||
smlua_push_object(L, LOT_GFX, geo_update_projectile_pos_from_parent(callContext, node, mtx), NULL);
|
||||
|
||||
smlua_push_mat4(mtx, 3);
|
||||
|
||||
|
|
@ -28351,6 +28351,93 @@ int smlua_func_get_vertex_color(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_gfx_get_vtx(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 2) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "gfx_get_vtx", 2, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Gfx* gfx = (Gfx*)smlua_to_cobject(L, 1, LOT_GFX);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "gfx_get_vtx"); return 0; }
|
||||
u16 offset = smlua_to_integer(L, 2);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "gfx_get_vtx"); return 0; }
|
||||
|
||||
smlua_push_object(L, LOT_VTX, gfx_get_vtx(gfx, offset), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_gfx_parse(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 2) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "gfx_parse", 2, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Gfx* cmd = (Gfx*)smlua_to_cobject(L, 1, LOT_GFX);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "gfx_parse"); return 0; }
|
||||
LuaFunction func = smlua_to_lua_function(L, 2);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "gfx_parse"); return 0; }
|
||||
|
||||
gfx_parse(cmd, func);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_gfx_set_combine_lerp(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 17) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "gfx_set_combine_lerp", 17, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Gfx* gfx = (Gfx*)smlua_to_cobject(L, 1, LOT_GFX);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 a0 = smlua_to_integer(L, 2);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 b0 = smlua_to_integer(L, 3);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 c0 = smlua_to_integer(L, 4);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 4, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 d0 = smlua_to_integer(L, 5);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 5, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 Aa0 = smlua_to_integer(L, 6);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 6, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 Ab0 = smlua_to_integer(L, 7);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 7, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 Ac0 = smlua_to_integer(L, 8);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 8, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 Ad0 = smlua_to_integer(L, 9);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 9, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 a1 = smlua_to_integer(L, 10);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 10, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 b1 = smlua_to_integer(L, 11);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 11, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 c1 = smlua_to_integer(L, 12);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 12, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 d1 = smlua_to_integer(L, 13);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 13, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 Aa1 = smlua_to_integer(L, 14);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 14, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 Ab1 = smlua_to_integer(L, 15);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 15, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 Ac1 = smlua_to_integer(L, 16);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 16, "gfx_set_combine_lerp"); return 0; }
|
||||
u32 Ad1 = smlua_to_integer(L, 17);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 17, "gfx_set_combine_lerp"); return 0; }
|
||||
|
||||
gfx_set_combine_lerp(gfx, a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_set_fog_color(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
|
@ -33638,6 +33725,9 @@ void smlua_bind_functions_autogen(void) {
|
|||
smlua_bind_function(L, "get_skybox", smlua_func_get_skybox);
|
||||
smlua_bind_function(L, "get_skybox_color", smlua_func_get_skybox_color);
|
||||
smlua_bind_function(L, "get_vertex_color", smlua_func_get_vertex_color);
|
||||
smlua_bind_function(L, "gfx_get_vtx", smlua_func_gfx_get_vtx);
|
||||
smlua_bind_function(L, "gfx_parse", smlua_func_gfx_parse);
|
||||
smlua_bind_function(L, "gfx_set_combine_lerp", smlua_func_gfx_set_combine_lerp);
|
||||
smlua_bind_function(L, "set_fog_color", smlua_func_set_fog_color);
|
||||
smlua_bind_function(L, "set_fog_intensity", smlua_func_set_fog_intensity);
|
||||
smlua_bind_function(L, "set_lighting_color", smlua_func_set_lighting_color);
|
||||
|
|
|
|||
|
|
@ -106,3 +106,67 @@ void set_skybox_color(u8 index, u8 value) {
|
|||
if (index > 2) { return; }
|
||||
gSkyboxColor[index] = value;
|
||||
}
|
||||
|
||||
///
|
||||
|
||||
#define C0(pos, width) ((cmd->words.w0 >> (pos)) & ((1U << width) - 1))
|
||||
|
||||
// Assumes the current microcode is Fast3DEX2 Extended (default for pc port)
|
||||
void gfx_parse(Gfx* cmd, LuaFunction func) {
|
||||
if (!cmd) { return; }
|
||||
if (func == 0) { return; }
|
||||
|
||||
lua_State* L = gLuaState;
|
||||
while (true) {
|
||||
u32 op = cmd->words.w0 >> 24;
|
||||
switch (op) {
|
||||
case G_DL:
|
||||
if (C0(16, 1) == 0) {
|
||||
gfx_parse((Gfx *) cmd->words.w1, func);
|
||||
} else {
|
||||
cmd = (Gfx *) cmd->words.w1;
|
||||
--cmd;
|
||||
}
|
||||
break;
|
||||
case (uint8_t) G_ENDDL:
|
||||
return; // Reached end of display list
|
||||
case G_TEXRECT:
|
||||
case G_TEXRECTFLIP:
|
||||
++cmd;
|
||||
++cmd;
|
||||
break;
|
||||
case G_FILLRECT:
|
||||
++cmd;
|
||||
break;
|
||||
default:
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, func);
|
||||
smlua_push_object(L, LOT_GFX, cmd, NULL);
|
||||
lua_pushinteger(L, op);
|
||||
if (smlua_pcall(L, 2, 1, 0) != 0) {
|
||||
LOG_LUA("Failed to call the gfx_parse callback: %u", func);
|
||||
}
|
||||
if (lua_type(L, -1) == LUA_TBOOLEAN && smlua_to_boolean(L, -1)) {
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
++cmd;
|
||||
}
|
||||
}
|
||||
|
||||
Vtx *gfx_get_vtx(Gfx* cmd, u16 offset) {
|
||||
if (!cmd) { return NULL; }
|
||||
u32 op = cmd->words.w0 >> 24;
|
||||
if (op != G_VTX) { return NULL; }
|
||||
if (cmd->words.w1 == 0) { return NULL; }
|
||||
|
||||
u16 numVertices = C0(12, 8);
|
||||
if (offset >= numVertices) { return NULL; }
|
||||
|
||||
return &((Vtx *) cmd->words.w1)[offset];
|
||||
}
|
||||
|
||||
void gfx_set_combine_lerp(Gfx* gfx, u32 a0, u32 b0, u32 c0, u32 d0, u32 Aa0, u32 Ab0, u32 Ac0, u32 Ad0, u32 a1, u32 b1, u32 c1, u32 d1, u32 Aa1, u32 Ab1, u32 Ac1, u32 Ad1) {
|
||||
if (!gfx) { return; }
|
||||
gDPSetCombineLERPNoString(gfx, a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef SMLUA_GFX_UTILS_H
|
||||
#define SMLUA_GFX_UTILS_H
|
||||
|
||||
#include "pc/lua/smlua.h"
|
||||
#include "types.h"
|
||||
|
||||
/* |description|Sets the override FOV|descriptionEnd| */
|
||||
|
|
@ -47,4 +48,11 @@ u8 get_skybox_color(u8 index);
|
|||
/* |description|Sets a value of the global skybox color|descriptionEnd| */
|
||||
void set_skybox_color(u8 index, u8 value);
|
||||
|
||||
/* |description|Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op`.|descriptionEnd| */
|
||||
void gfx_parse(Gfx* cmd, LuaFunction func);
|
||||
/* |description|Gets a vertex from a display list command if it has the correct op. Intended to be used with `gfx_parse`.|descriptionEnd| */
|
||||
Vtx *gfx_get_vtx(Gfx* gfx, u16 offset);
|
||||
/* |description|Sets the display list combine mode.|descriptionEnd| */
|
||||
void gfx_set_combine_lerp(Gfx* gfx, u32 a0, u32 b0, u32 c0, u32 d0, u32 Aa0, u32 Ab0, u32 Ac0, u32 Ad0, u32 a1, u32 b1, u32 c1, u32 d1, u32 Aa1, u32 Ab1, u32 Ac1, u32 Ad1);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue