Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable

This commit is contained in:
Prince Frizzy 2022-02-20 18:52:19 -05:00
commit b9abf38957
No known key found for this signature in database
GPG key ID: 4042F12159699A18
9 changed files with 1789 additions and 65 deletions

View file

@ -92,8 +92,7 @@ TOOLS_DIR := tools
ifeq ($(WINDOWS_AUTO_BUILDER),1)
export SHELL=sh.exe
RM ?= rm.exe
EXTRA_INCLUDES := -I ../include/1 -I ../include/2 -I ../include/3 -I ../include/4 -fno-use-linker-plugin
EXTRA_INCLUDES := -I ../include/1 -I ../include/2 -I ../include/3 -I ../include/4
EXTRA_CFLAGS := -Wno-expansion-to-defined
else
EXTRA_INCLUDES :=
@ -385,7 +384,10 @@ MIPSBIT := -32
ifeq ($(DEBUG),1)
OPT_FLAGS := -g
else
OPT_FLAGS := -O2
# can't use O2 right now, coop-compiler produces strange graphical errors
# likely due to undefined behavior somewhere
#OPT_FLAGS := -O2
OPT_FLAGS := -O1
endif
# Set BITS (32/64) to compile for

View file

@ -2,6 +2,7 @@ import os
import re
import sys
from extract_structs import *
from extract_object_fields import *
from common import *
in_files = [
@ -11,7 +12,8 @@ in_files = [
'src/game/characters.h',
'src/engine/surface_collision.h',
'src/pc/network/network_player.h',
'src/pc/djui/djui_hud_utils.h'
'src/pc/djui/djui_hud_utils.h',
'src/game/object_helpers.h'
]
smlua_cobject_autogen = 'src/pc/lua/smlua_cobject_autogen'
@ -20,6 +22,7 @@ docs_lua_structs = 'docs/lua/structs.md'
c_template = """/* THIS FILE IS AUTOGENERATED */
/* SHOULD NOT BE MANUALLY CHANGED */
$[INCLUDES]
#include "include\object_fields.h"
$[BODY]
struct LuaObjectField* smlua_get_object_field_autogen(u16 lot, const char* key) {
struct LuaObjectTable* ot = &sLuaObjectAutogenTable[lot - LOT_AUTOGEN_MIN - 1];
@ -46,8 +49,6 @@ struct LuaObjectField* smlua_get_object_field_autogen(u16 lot, const char* key);
"""
override_field_names = {
"Animation": { "unk02": "animYTransDivisor", "unk04": "startFrame", "unk06": "loopStart", "unk08": "loopEnd", "unk0A": "unusedBoneCount" },
"GraphNodeObject": { "unk38": "animInfo" },
}
override_field_types = {
@ -59,6 +60,7 @@ override_field_immutable = {
"Character": [ "*" ],
"NetworkPlayer": [ "*" ],
"TextureInfo": [ "*" ],
"Object": ["oSyncID"],
}
sLuaManuallyDefinedStructs = [
@ -162,6 +164,9 @@ def parse_struct(struct_str):
struct['fields'].append(field)
if identifier == 'Object':
struct['fields'] += extract_object_fields()
struct['fields'] = sorted(struct['fields'], key=lambda d: d['identifier'])
return struct
@ -296,6 +301,42 @@ def doc_struct_index(structs):
s += '\n<br />\n\n'
return s
def doc_struct_field(struct, field):
fid, ftype, fimmutable, lvt, lot = get_struct_field_info(struct, field)
if '???' in lvt or '???' in lot:
return ''
ftype, do_link = translate_type_to_lua(ftype)
restrictions = ('', 'read-only')[fimmutable == 'true']
global total_fields
total_fields += 1
if do_link:
return '| %s | [%s](#%s) | %s |\n' % (fid, ftype, ftype, restrictions)
return '| %s | %s | %s |\n' % (fid, ftype, restrictions)
def doc_struct_object_fields(struct):
fields = extract_object_fields()
s = '\n### Object-Independent Data Fields\n'
s += "| Field | Type | Access |\n"
s += "| ----- | ---- | ------ |\n"
for field in fields:
if field['identifier'] == 'oPathedStartWaypoint':
s += '\n### Object-Dependent Data Fields\n'
s += "| Field | Type | Access |\n"
s += "| ----- | ---- | ------ |\n"
s += doc_struct_field(struct, field)
return s
def doc_struct(struct):
sid = struct['identifier']
s = '## [%s](#%s)\n\n' % (sid, sid)
@ -306,21 +347,12 @@ def doc_struct(struct):
# build doc table
field_table = []
for field in struct['fields']:
fid, ftype, fimmutable, lvt, lot = get_struct_field_info(struct, field)
if '???' in lvt or '???' in lot:
if 'object_field' in field and field['object_field'] == True:
continue
s += doc_struct_field(struct, field)
ftype, do_link = translate_type_to_lua(ftype)
restrictions = ('', 'read-only')[fimmutable == 'true']
if do_link:
s += '| %s | [%s](#%s) | %s |\n' % (fid, ftype, ftype, restrictions)
continue
s += '| %s | %s | %s |\n' % (fid, ftype, restrictions)
global total_fields
total_fields += 1
if sid == 'Object':
s += doc_struct_object_fields(struct)
s += '\n[:arrow_up_small:](#)\n\n<br />\n'

View file

@ -0,0 +1,41 @@
import os
import re
import sys
from extract_constants import *
object_field_types = {
'OBJECT_FIELD_U32': 'u32',
'OBJECT_FIELD_S32': 's32',
'OBJECT_FIELD_S16': 's16',
'OBJECT_FIELD_F32': 'f32',
'OBJECT_FIELD_S16P': 's16*',
'OBJECT_FIELD_S32P': 's32*',
'OBJECT_FIELD_ANIMS': 'struct Animation**',
'OBJECT_FIELD_WAYPOINT': 'struct Waypoint*',
'OBJECT_FIELD_CHAIN_SEGMENT': 'struct ChainSegment*',
'OBJECT_FIELD_OBJ': 'struct Object*',
'OBJECT_FIELD_SURFACE': 'struct Surface*',
'OBJECT_FIELD_VPTR': 'void*',
'OBJECT_FIELD_CVPTR': 'const void*',
}
def extract_object_fields():
fields = []
for line in extract_constants("include/object_fields.h").splitlines():
parts = line.split(' ', 3)
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()
field['object_field'] = True
field['field_str'] = line
fields.append(field)
return fields

View file

@ -8,6 +8,7 @@
- [CameraFOVStatus](#CameraFOVStatus)
- [CameraStoredInfo](#CameraStoredInfo)
- [CameraTrigger](#CameraTrigger)
- [ChainSegment](#ChainSegment)
- [Character](#Character)
- [Controller](#Controller)
- [Cutscene](#Cutscene)
@ -17,6 +18,7 @@
- [GlobalTextures](#GlobalTextures)
- [GraphNode](#GraphNode)
- [GraphNodeObject](#GraphNodeObject)
- [GraphNode_802A45E4](#GraphNode_802A45E4)
- [HandheldShakePoint](#HandheldShakePoint)
- [InstantWarp](#InstantWarp)
- [LakituState](#LakituState)
@ -37,6 +39,8 @@
- [PlayerGeometry](#PlayerGeometry)
- [SPTask](#SPTask)
- [SpawnInfo](#SpawnInfo)
- [SpawnParticlesInfo](#SpawnParticlesInfo)
- [Struct802A272C](#Struct802A272C)
- [Surface](#Surface)
- [TextureInfo](#TextureInfo)
- [TransitionInfo](#TransitionInfo)
@ -48,8 +52,10 @@
- [WarpNode](#WarpNode)
- [WarpTransition](#WarpTransition)
- [WarpTransitionData](#WarpTransitionData)
- [WaterDropletParams](#WaterDropletParams)
- [Waypoint](#Waypoint)
- [Whirlpool](#Whirlpool)
- [struct802A1230](#struct802A1230)
<br />
@ -181,6 +187,21 @@
<br />
## [ChainSegment](#ChainSegment)
| Field | Type | Access |
| ----- | ---- | ------ |
| pitch | integer | |
| posX | number | |
| posY | number | |
| posZ | number | |
| roll | integer | |
| yaw | integer | |
[:arrow_up_small:](#)
<br />
## [Character](#Character)
| Field | Type | Access |
@ -376,6 +397,21 @@
<br />
## [GraphNode_802A45E4](#GraphNode_802A45E4)
| Field | Type | Access |
| ----- | ---- | ------ |
| unk18 | integer | |
| unk1A | integer | |
| unk1C | integer | |
| unk1E | integer | |
| unk20 | integer | |
| unk22 | integer | |
[:arrow_up_small:](#)
<br />
## [HandheldShakePoint](#HandheldShakePoint)
| Field | Type | Access |
@ -645,6 +681,738 @@
| respawnInfoType | integer | |
| unused1 | integer | |
### Object-Independent Data Fields
| Field | Type | Access |
| ----- | ---- | ------ |
| oFlags | integer | |
| oDialogResponse | integer | |
| oDialogState | integer | |
| oUnk94 | integer | |
| oSyncID | integer | read-only |
| oIntangibleTimer | integer | |
| oPosX | number | |
| oPosY | number | |
| oPosZ | number | |
| oVelX | number | |
| oVelY | number | |
| oVelZ | number | |
| oForwardVel | number | |
| oForwardVelS32 | integer | |
| oUnkBC | number | |
| oUnkC0 | number | |
| oMoveAnglePitch | integer | |
| oMoveAngleYaw | integer | |
| oMoveAngleRoll | integer | |
| oFaceAnglePitch | integer | |
| oFaceAngleYaw | integer | |
| oFaceAngleRoll | integer | |
| oGraphYOffset | number | |
| oActiveParticleFlags | integer | |
| oGravity | number | |
| oFloorHeight | number | |
| oMoveFlags | integer | |
| oAnimState | integer | |
| oAngleVelPitch | integer | |
| oAngleVelYaw | integer | |
| oAngleVelRoll | integer | |
| oHeldState | integer | |
| oWallHitboxRadius | number | |
| oDragStrength | number | |
| oInteractType | integer | |
| oInteractStatus | integer | |
| oParentRelativePosX | number | |
| oParentRelativePosY | number | |
| oParentRelativePosZ | number | |
| oBehParams2ndByte | integer | |
| oAction | integer | |
| oSubAction | integer | |
| oTimer | integer | |
| oBounciness | number | |
| oDistanceToMario | number | |
| oAngleToMario | integer | |
| oHomeX | number | |
| oHomeY | number | |
| oHomeZ | number | |
| oFriction | number | |
| oBuoyancy | number | |
| oSoundStateID | integer | |
| oOpacity | integer | |
| oDamageOrCoinValue | integer | |
| oHealth | integer | |
| oBehParams | integer | |
| oPrevAction | integer | |
| oInteractionSubtype | integer | |
| oCollisionDistance | number | |
| oNumLootCoins | integer | |
| oDrawingDistance | number | |
| oRoom | integer | |
| oSyncDeath | integer | |
| oUnk1A8 | integer | |
| oWallAngle | integer | |
| oFloorType | integer | |
| oFloorRoom | integer | |
| oAngleToHome | integer | |
| oFloor | [Surface](#Surface) | read-only |
| oDeathSound | integer | |
### Object-Dependent Data Fields
| Field | Type | Access |
| ----- | ---- | ------ |
| oPathedStartWaypoint | [Waypoint](#Waypoint) | read-only |
| oPathedPrevWaypoint | [Waypoint](#Waypoint) | read-only |
| oPathedPrevWaypointFlags | integer | |
| oPathedTargetPitch | integer | |
| oPathedTargetYaw | integer | |
| oMacroUnk108 | number | |
| oMacroUnk10C | number | |
| oMacroUnk110 | number | |
| oMarioParticleFlags | integer | |
| oMarioPoleUnk108 | integer | |
| oMarioReadingSignDYaw | integer | |
| oMarioPoleYawVel | integer | |
| oMarioCannonObjectYaw | integer | |
| oMarioTornadoYawVel | integer | |
| oMarioReadingSignDPosX | number | |
| oMarioPolePos | number | |
| oMarioCannonInputYaw | integer | |
| oMarioTornadoPosY | number | |
| oMarioReadingSignDPosZ | number | |
| oMarioWhirlpoolPosY | number | |
| oMarioBurnTimer | integer | |
| oMarioLongJumpIsSlow | integer | |
| oMarioSteepJumpYaw | integer | |
| oMarioWalkingPitch | integer | |
| o1UpHiddenUnkF4 | integer | |
| o1UpForceSpawn | integer | |
| oActivatedBackAndForthPlatformMaxOffset | number | |
| oActivatedBackAndForthPlatformOffset | number | |
| oActivatedBackAndForthPlatformVel | number | |
| oActivatedBackAndForthPlatformCountdown | integer | |
| oActivatedBackAndForthPlatformStartYaw | integer | |
| oActivatedBackAndForthPlatformVertical | integer | |
| oActivatedBackAndForthPlatformFlipRotation | integer | |
| oAmpRadiusOfRotation | number | |
| oAmpYPhase | integer | |
| oHomingAmpLockedOn | integer | |
| oHomingAmpAvgY | number | |
| oArrowLiftDisplacement | number | |
| oArrowLiftUnk100 | integer | |
| oBackAndForthPlatformUnkF4 | number | |
| oBackAndForthPlatformUnkF8 | number | |
| oBackAndForthPlatformUnkFC | number | |
| oBackAndForthPlatformUnk100 | number | |
| oBirdSpeed | number | |
| oBirdTargetPitch | integer | |
| oBirdTargetYaw | integer | |
| oBirdChirpChirpUnkF4 | integer | |
| oEndBirdUnk104 | number | |
| oHiddenBlueCoinSwitch | [Object](#Object) | read-only |
| oBobombBlinkTimer | integer | |
| oBobombFuseLit | integer | |
| oBobombFuseTimer | integer | |
| oBobombBuddyBlinkTimer | integer | |
| oBobombBuddyHasTalkedToMario | integer | |
| oBobombBuddyRole | integer | |
| oBobombBuddyCannonStatus | integer | |
| oBobombBuddyPosXCopy | number | |
| oBobombBuddyPosYCopy | number | |
| oBobombBuddyPosZCopy | number | |
| oBobombExpBubGfxScaleFacX | integer | |
| oBobombExpBubGfxScaleFacY | integer | |
| oBobombExpBubGfxExpRateX | integer | |
| oBobombExpBubGfxExpRateY | integer | |
| oSmallBompInitX | number | |
| oBooDeathStatus | integer | |
| oBooTargetOpacity | integer | |
| oBooBaseScale | number | |
| oBooOscillationTimer | integer | |
| oBooMoveYawDuringHit | integer | |
| oBooMoveYawBeforeHit | number | |
| oBooParentBigBoo | [Object](#Object) | read-only |
| oBooNegatedAggressiveness | number | |
| oBooInitialMoveYaw | integer | |
| oBooTurningSpeed | integer | |
| oBigBooNumMinionBoosKilled | integer | |
| oBookendUnkF4 | integer | |
| oBookendUnkF8 | integer | |
| oBookSwitchUnkF4 | number | |
| oBookSwitchManagerUnkF4 | integer | |
| oBookSwitchManagerUnkF8 | integer | |
| oHauntedBookshelfShouldOpen | integer | |
| oBouncingFireBallUnkF4 | integer | |
| oBowlingBallTargetYaw | integer | |
| oBBallSpawnerMaxSpawnDist | number | |
| oBBallSpawnerSpawnOdds | number | |
| oBBallSpawnerPeriodMinus1 | integer | |
| oBowserUnk88 | integer | |
| oBowserUnkF4 | integer | |
| oBowserUnkF8 | integer | |
| oBowserDistToCentre | number | |
| oBowserUnk106 | integer | |
| oBowserUnk108 | integer | |
| oBowserHeldAnglePitch | integer | |
| oBowserHeldAngleVelYaw | integer | |
| oBowserUnk10E | integer | |
| oBowserUnk110 | integer | |
| oBowserAngleToCentre | integer | |
| oBowserUnk1AC | integer | |
| oBowserUnk1AE | integer | |
| oBowserEyesShut | integer | |
| oBowserUnk1B2 | integer | |
| oBowserShockWaveUnkF4 | number | |
| oBlackSmokeBowserUnkF4 | number | |
| oBowserKeyScale | number | |
| oBowserPuzzleCompletionFlags | integer | |
| oBowserPuzzlePieceOffsetX | number | |
| oBowserPuzzlePieceOffsetY | number | |
| oBowserPuzzlePieceOffsetZ | number | |
| oBowserPuzzlePieceContinuePerformingAction | integer | |
| oBubbaUnkF4 | number | |
| oBubbaUnkF8 | integer | |
| oBubbaUnkFC | integer | |
| oBubbaUnk100 | integer | |
| oBubbaUnk104 | integer | |
| oBubbaUnk108 | number | |
| oBubbaUnk10C | number | |
| oBubbaUnk1AC | integer | |
| oBubbaUnk1AE | integer | |
| oBubbaUnk1B0 | integer | |
| oBubbaUnk1B2 | integer | |
| oBulletBillInitialMoveYaw | integer | |
| oBullySubtype | integer | |
| oBullyPrevX | number | |
| oBullyPrevY | number | |
| oBullyPrevZ | number | |
| oBullyKBTimerAndMinionKOCounter | integer | |
| oBullyMarioCollisionAngle | integer | |
| oButterflyYPhase | integer | |
| oTripletButterflyScale | number | |
| oTripletButterflySpeed | number | |
| oTripletButterflyBaseYaw | number | |
| oTripletButterflyTargetPitch | integer | |
| oTripletButterflyTargetYaw | integer | |
| oTripletButterflyType | integer | |
| oTripletButterflyModel | integer | |
| oTripletButterflySelectedButterfly | integer | |
| oTripletButterflyScalePhase | integer | |
| oCannonUnkF4 | integer | |
| oCannonUnkF8 | integer | |
| oCannonUnk10C | integer | |
| oCannonPlayerIndex | integer | |
| oCapUnkF4 | integer | |
| oCapUnkF8 | integer | |
| oChainChompSegments | [ChainSegment](#ChainSegment) | read-only |
| oChainChompMaxDistFromPivotPerChainPart | number | |
| oChainChompMaxDistBetweenChainParts | number | |
| oChainChompDistToPivot | number | |
| oChainChompUnk104 | number | |
| oChainChompRestrictedByChain | integer | |
| oChainChompTargetPitch | integer | |
| oChainChompNumLunges | integer | |
| oChainChompReleaseStatus | integer | |
| oChainChompHitGate | integer | |
| oCheckerBoardPlatformUnkF8 | integer | |
| oCheckerBoardPlatformUnkFC | integer | |
| oCheckerBoardPlatformUnk1AC | number | |
| oCheepCheepUnkF4 | number | |
| oCheepCheepUnkF8 | number | |
| oCheepCheepUnkFC | number | |
| oCheepCheepUnk104 | number | |
| oCheepCheepUnk108 | number | |
| oChuckyaUnk88 | integer | |
| oChuckyaUnkF8 | integer | |
| oChuckyaUnkFC | integer | |
| oChuckyaUnk100 | integer | |
| oClamUnkF4 | integer | |
| oCloudCenterX | number | |
| oCloudCenterY | number | |
| oCloudBlowing | integer | |
| oCloudGrowSpeed | number | |
| oCloudFwooshMovementRadius | integer | |
| oCoinUnkF4 | integer | |
| oCoinUnkF8 | integer | |
| oCoinUnk110 | number | |
| oCoinUnk1B0 | integer | |
| oCollisionParticleUnkF4 | number | |
| oControllablePlatformUnkF8 | integer | |
| oControllablePlatformUnkFC | number | |
| oControllablePlatformUnk100 | integer | |
| oBreakableBoxSmallReleased | integer | |
| oBreakableBoxSmallFramesSinceReleased | integer | |
| oJumpingBoxUnkF4 | integer | |
| oJumpingBoxUnkF8 | integer | |
| oRRCruiserWingUnkF4 | integer | |
| oRRCruiserWingUnkF8 | integer | |
| oDonutPlatformSpawnerSpawnedPlatforms | integer | |
| oDoorUnk88 | integer | |
| oDoorUnkF8 | integer | |
| oDoorUnkFC | integer | |
| oDoorUnk100 | integer | |
| oDorrieDistToHome | number | |
| oDorrieOffsetY | number | |
| oDorrieVelY | number | |
| oDorrieForwardDistToMario | number | |
| oDorrieYawVel | integer | |
| oDorrieLiftingMario | integer | |
| oDorrieGroundPounded | integer | |
| oDorrieAngleToHome | integer | |
| oDorrieNeckAngle | integer | |
| oDorrieHeadRaiseSpeed | integer | |
| oElevatorUnkF4 | number | |
| oElevatorUnkF8 | number | |
| oElevatorUnkFC | number | |
| oElevatorUnk100 | integer | |
| oExclamationBoxUnkF4 | number | |
| oExclamationBoxUnkF8 | number | |
| oExclamationBoxUnkFC | integer | |
| oExclamationBoxForce | integer | |
| oEyerokBossNumHands | integer | |
| oEyerokBossUnkFC | integer | |
| oEyerokBossActiveHand | integer | |
| oEyerokBossUnk104 | integer | |
| oEyerokBossUnk108 | number | |
| oEyerokBossUnk10C | number | |
| oEyerokBossUnk110 | number | |
| oEyerokBossUnk1AC | integer | |
| oEyerokHandWakeUpTimer | integer | |
| oEyerokReceivedAttack | integer | |
| oEyerokHandUnkFC | integer | |
| oEyerokHandUnk100 | integer | |
| oEyerokHandDead | integer | |
| oFallingPillarPitchAcceleration | number | |
| oFireSpitterScaleVel | number | |
| oFireSpitterLastWaterY | number | |
| oBlueFishRandomVel | number | |
| oBlueFishRandomTime | integer | |
| oBlueFishRandomAngle | number | |
| oFishWaterLevel | number | |
| oFishPosY | number | |
| oFishRandomOffset | number | |
| oFishRandomSpeed | integer | |
| oFishRespawnDistance | number | |
| oFishRandomVel | number | |
| oFishDepthDistance | number | |
| oFishActiveDistance | number | |
| oFlameUnkF4 | number | |
| oFlameUnkF8 | integer | |
| oFlameUnkFC | number | |
| oFlameUnk100 | [Object](#Object) | read-only |
| oBlueFlameUnkF8 | number | |
| oSmallPiranhaFlameStartSpeed | number | |
| oSmallPiranhaFlameEndSpeed | number | |
| oSmallPiranhaFlameModel | integer | |
| oSmallPiranhaFlameUnk100 | integer | |
| oSmallPiranhaFlameUnk104 | number | |
| oMovingFlameTimer | integer | |
| oFlameThowerFlameUnk110 | integer | |
| oFlameThowerUnk110 | integer | |
| oFloatingPlatformUnkF4 | integer | |
| oFloatingPlatformUnkF8 | number | |
| oFloatingPlatformUnkFC | number | |
| oFloatingPlatformUnk100 | integer | |
| oFloorSwitchPressAnimationUnkF4 | integer | |
| oFloorSwitchPressAnimationUnkF8 | integer | |
| oFloorSwitchPressAnimationUnkFC | integer | |
| oFloorSwitchPressAnimationUnk100 | integer | |
| oFlyGuyIdleTimer | integer | |
| oFlyGuyOscTimer | integer | |
| oFlyGuyUnusedJitter | integer | |
| oFlyGuyLungeYDecel | number | |
| oFlyGuyLungeTargetPitch | integer | |
| oFlyGuyTargetRoll | integer | |
| oFlyGuyScaleVel | number | |
| oGrandStarUnk108 | integer | |
| oHorizontalGrindelTargetYaw | integer | |
| oHorizontalGrindelDistToHome | number | |
| oHorizontalGrindelOnGround | integer | |
| oGoombaSize | integer | |
| oGoombaScale | number | |
| oGoombaWalkTimer | integer | |
| oGoombaTargetYaw | integer | |
| oGoombaBlinkTimer | integer | |
| oGoombaTurningAwayFromWall | integer | |
| oGoombaRelativeSpeed | number | |
| oGoombaJumpCooldown | integer | |
| oHauntedChairUnkF4 | integer | |
| oHauntedChairUnkF8 | number | |
| oHauntedChairUnkFC | number | |
| oHauntedChairUnk100 | Pointer <integer> | read-only |
| oHauntedChairUnk104 | integer | |
| oHeaveHoUnk88 | integer | |
| oHeaveHoUnkF4 | number | |
| oHiddenObjectUnkF4 | [Object](#Object) | read-only |
| oHootAvailability | integer | |
| oHootMarioReleaseTime | integer | |
| oHorizontalMovementUnkF4 | integer | |
| oHorizontalMovementUnkF8 | integer | |
| oHorizontalMovementUnk100 | number | |
| oHorizontalMovementUnk104 | integer | |
| oHorizontalMovementUnk108 | number | |
| oKickableBoardF4 | integer | |
| oKickableBoardF8 | integer | |
| oKingBobombUnk88 | integer | |
| oKingBobombUnkF8 | integer | |
| oKingBobombUnkFC | integer | |
| oKingBobombUnk100 | integer | |
| oKingBobombUnk104 | integer | |
| oKingBobombUnk108 | integer | |
| oKleptoDistanceToTarget | number | |
| oKleptoUnkF8 | number | |
| oKleptoUnkFC | number | |
| oKleptoSpeed | number | |
| oKleptoStartPosX | number | |
| oKleptoStartPosY | number | |
| oKleptoStartPosZ | number | |
| oKleptoTimeUntilTargetChange | integer | |
| oKleptoTargetNumber | integer | |
| oKleptoUnk1AE | integer | |
| oKleptoUnk1B0 | integer | |
| oKleptoYawToTarget | integer | |
| oKoopaAgility | number | |
| oKoopaMovementType | integer | |
| oKoopaTargetYaw | integer | |
| oKoopaUnshelledTimeUntilTurn | integer | |
| oKoopaTurningAwayFromWall | integer | |
| oKoopaDistanceToMario | number | |
| oKoopaAngleToMario | integer | |
| oKoopaBlinkTimer | integer | |
| oKoopaCountdown | integer | |
| oKoopaTheQuickRaceIndex | integer | |
| oKoopaTheQuickInitTextboxCooldown | integer | |
| oKoopaRaceEndpointRaceBegun | integer | |
| oKoopaRaceEndpointKoopaFinished | integer | |
| oKoopaRaceEndpointRaceStatus | integer | |
| oKoopaRaceEndpointUnk100 | integer | |
| oKoopaRaceEndpointRaceEnded | integer | |
| oKoopaShellFlameUnkF4 | number | |
| oKoopaShellFlameUnkF8 | number | |
| oCameraLakituBlinkTimer | integer | |
| oCameraLakituSpeed | number | |
| oCameraLakituCircleRadius | number | |
| oCameraLakituFinishedDialog | integer | |
| oCameraLakituUnk104 | integer | |
| oCameraLakituPitchVel | integer | |
| oCameraLakituYawVel | integer | |
| oEnemyLakituNumSpinies | integer | |
| oEnemyLakituBlinkTimer | integer | |
| oEnemyLakituSpinyCooldown | integer | |
| oEnemyLakituFaceForwardCountdown | integer | |
| oIntroLakituSplineSegmentProgress | number | |
| oIntroLakituSplineSegment | number | |
| oIntroLakituUnk100 | number | |
| oIntroLakituUnk104 | number | |
| oIntroLakituUnk108 | number | |
| oIntroLakituUnk10C | number | |
| oIntroLakituUnk110 | number | |
| oIntroLakituCloud | [Object](#Object) | read-only |
| oMenuButtonState | integer | |
| oMenuButtonTimer | integer | |
| oMenuButtonOrigPosX | number | |
| oMenuButtonOrigPosY | number | |
| oMenuButtonOrigPosZ | number | |
| oMenuButtonScale | number | |
| oMenuButtonActionPhase | integer | |
| oMenuButtonIsCustom | integer | |
| oMantaUnkF4 | integer | |
| oMantaUnkF8 | integer | |
| oMantaUnk1AC | integer | |
| oMerryGoRoundStopped | integer | |
| oMerryGoRoundMusicShouldPlay | integer | |
| oMerryGoRoundMarioIsOutside | integer | |
| oMerryGoRoundBooManagerNumBoosKilled | integer | |
| oMerryGoRoundBooManagerNumBoosSpawned | integer | |
| oMipsStarStatus | integer | |
| oMipsStartWaypointIndex | integer | |
| oMipsForwardVelocity | number | |
| oMoneybagJumpState | integer | |
| oMontyMoleCurrentHole | [Object](#Object) | read-only |
| oMontyMoleHeightRelativeToFloor | number | |
| oMontyMoleHoleX | number | |
| oMontyMoleHoleY | number | |
| oMontyMoleHoleZ | number | |
| oMontyMoleHoleCooldown | integer | |
| oMrBlizzardScale | number | |
| oMrBlizzardHeldObj | [Object](#Object) | read-only |
| oMrBlizzardGraphYVel | number | |
| oMrBlizzardTimer | integer | |
| oMrBlizzardDizziness | number | |
| oMrBlizzardChangeInDizziness | number | |
| oMrBlizzardGraphYOffset | number | |
| oMrBlizzardDistFromHome | integer | |
| oMrBlizzardTargetMoveYaw | integer | |
| oMrIUnkF4 | integer | |
| oMrIUnkFC | integer | |
| oMrIUnk100 | integer | |
| oMrIUnk104 | integer | |
| oMrIUnk108 | integer | |
| oMrISize | number | |
| oMrIUnk110 | integer | |
| oRespawnerModelToRespawn | integer | |
| oRespawnerMinSpawnDist | number | |
| oOpenableGrillUnk88 | integer | |
| oOpenableGrillUnkF4 | [Object](#Object) | read-only |
| oIntroPeachYawFromFocus | number | |
| oIntroPeachPitchFromFocus | number | |
| oIntroPeachDistToCamera | number | |
| oRacingPenguinInitTextCooldown | integer | |
| oRacingPenguinWeightedNewTargetSpeed | number | |
| oRacingPenguinFinalTextbox | integer | |
| oRacingPenguinMarioWon | integer | |
| oRacingPenguinReachedBottom | integer | |
| oRacingPenguinMarioCheated | integer | |
| oSmallPenguinUnk88 | integer | |
| oSmallPenguinUnk100 | integer | |
| oSmallPenguinUnk104 | number | |
| oSmallPenguinUnk108 | number | |
| oSmallPenguinUnk110 | integer | |
| oSLWalkingPenguinWindCollisionXPos | number | |
| oSLWalkingPenguinWindCollisionZPos | number | |
| oSLWalkingPenguinCurStep | integer | |
| oSLWalkingPenguinCurStepTimer | integer | |
| oPiranhaPlantSleepMusicState | integer | |
| oPiranhaPlantScale | number | |
| oFirePiranhaPlantNeutralScale | number | |
| oFirePiranhaPlantScale | number | |
| oFirePiranhaPlantActive | integer | |
| oFirePiranhaPlantDeathSpinTimer | integer | |
| oFirePiranhaPlantDeathSpinVel | number | |
| oPitouneUnkF4 | number | |
| oPitouneUnkF8 | number | |
| oPitouneUnkFC | number | |
| oPlatformTimer | integer | |
| oPlatformUnkF8 | [Object](#Object) | read-only |
| oPlatformUnkFC | integer | |
| oPlatformUnk10C | number | |
| oPlatformUnk110 | number | |
| oPlatformOnTrackBaseBallIndex | integer | |
| oPlatformOnTrackDistMovedSinceLastBall | number | |
| oPlatformOnTrackSkiLiftRollVel | number | |
| oPlatformOnTrackStartWaypoint | [Waypoint](#Waypoint) | read-only |
| oPlatformOnTrackPrevWaypoint | [Waypoint](#Waypoint) | read-only |
| oPlatformOnTrackPrevWaypointFlags | integer | |
| oPlatformOnTrackPitch | integer | |
| oPlatformOnTrackYaw | integer | |
| oPlatformOnTrackOffsetY | number | |
| oPlatformOnTrackIsNotSkiLift | integer | |
| oPlatformOnTrackIsNotHMC | integer | |
| oPlatformOnTrackType | integer | |
| oPlatformOnTrackWasStoodOn | integer | |
| oPlatformSpawnerUnkF4 | integer | |
| oPlatformSpawnerUnkF8 | integer | |
| oPlatformSpawnerUnkFC | integer | |
| oPlatformSpawnerUnk100 | number | |
| oPlatformSpawnerUnk104 | number | |
| oPlatformSpawnerUnk108 | number | |
| oPokeyAliveBodyPartFlags | integer | |
| oPokeyNumAliveBodyParts | integer | |
| oPokeyBottomBodyPartSize | number | |
| oPokeyHeadWasKilled | integer | |
| oPokeyTargetYaw | integer | |
| oPokeyChangeTargetTimer | integer | |
| oPokeyTurningAwayFromWall | integer | |
| oPokeyBodyPartDeathDelayAfterHeadKilled | integer | |
| oPokeyBodyPartBlinkTimer | integer | |
| oDDDPoleVel | number | |
| oDDDPoleMaxOffset | number | |
| oDDDPoleOffset | number | |
| oPyramidTopPillarsTouched | integer | |
| oPyramidTopFragmentsScale | number | |
| oRollingLogUnkF4 | number | |
| oLllRotatingHexFlameUnkF4 | number | |
| oLllRotatingHexFlameUnkF8 | number | |
| oLllRotatingHexFlameUnkFC | number | |
| oScuttlebugUnkF4 | integer | |
| oScuttlebugUnkF8 | integer | |
| oScuttlebugUnkFC | integer | |
| oScuttlebugSpawnerUnk88 | integer | |
| oScuttlebugSpawnerUnkF4 | integer | |
| oSeesawPlatformPitchVel | number | |
| oShipPart3UnkF4 | integer | |
| oShipPart3UnkF8 | integer | |
| oSinkWhenSteppedOnUnk104 | integer | |
| oSinkWhenSteppedOnUnk108 | number | |
| oSkeeterTargetAngle | integer | |
| oSkeeterUnkF8 | integer | |
| oSkeeterUnkFC | number | |
| oSkeeterWaitTime | integer | |
| oSkeeterLastWaterY | number | |
| oSkeeterUnk1AC | integer | |
| oJrbSlidingBoxUnkF4 | [Object](#Object) | read-only |
| oJrbSlidingBoxUnkF8 | integer | |
| oJrbSlidingBoxUnkFC | number | |
| oWFSlidBrickPtfmMovVel | number | |
| oSmokeTimer | integer | |
| oSnowmansBottomUnkF4 | number | |
| oSnowmansBottomUnkF8 | integer | |
| oSnowmansBottomUnk1AC | integer | |
| oSnowmansHeadUnkF4 | integer | |
| oSLSnowmanWindOriginalYaw | integer | |
| oSnufitRecoil | integer | |
| oSnufitScale | number | |
| oSnufitCircularPeriod | integer | |
| oSnufitBodyScalePeriod | integer | |
| oSnufitBodyBaseScale | integer | |
| oSnufitBullets | integer | |
| oSnufitXOffset | integer | |
| oSnufitYOffset | integer | |
| oSnufitZOffset | integer | |
| oSnufitBodyScale | integer | |
| oSpindelUnkF4 | integer | |
| oSpindelUnkF8 | integer | |
| oSpinningHeartTotalSpin | integer | |
| oSpinningHeartPlayedSound | integer | |
| oSpinyTimeUntilTurn | integer | |
| oSpinyTargetYaw | integer | |
| oSpinyTurningAwayFromWall | integer | |
| oSoundEffectUnkF4 | integer | |
| oStarSpawnDisFromHome | number | |
| oStarSpawnUnkFC | number | |
| oHiddenStarTriggerCounter | integer | |
| oSparkleSpawnUnk1B0 | integer | |
| oUnlockDoorStarState | integer | |
| oUnlockDoorStarTimer | integer | |
| oUnlockDoorStarYawVel | integer | |
| oCelebStarUnkF4 | integer | |
| oCelebStarDiameterOfRotation | integer | |
| oStarSelectorType | integer | |
| oStarSelectorTimer | integer | |
| oStarSelectorSize | number | |
| oSushiSharkUnkF4 | integer | |
| oSwingPlatformAngle | number | |
| oSwingPlatformSpeed | number | |
| oSwoopBonkCountdown | integer | |
| oSwoopTargetPitch | integer | |
| oSwoopTargetYaw | integer | |
| oThwompRandomTimer | integer | |
| oTiltingPyramidNormalX | number | |
| oTiltingPyramidNormalY | number | |
| oTiltingPyramidNormalZ | number | |
| oTiltingPyramidMarioOnPlatform | integer | |
| oToadMessageDialogId | integer | |
| oToadMessageRecentlyTalked | integer | |
| oToadMessageState | integer | |
| oToxBoxMovementStep | integer | |
| oTTCRotatingSolidNumTurns | integer | |
| oTTCRotatingSolidNumSides | integer | |
| oTTCRotatingSolidRotationDelay | integer | |
| oTTCRotatingSolidVelY | number | |
| oTTCRotatingSolidSoundTimer | integer | |
| oTTCPendulumAccelDir | number | |
| oTTCPendulumAngle | number | |
| oTTCPendulumAngleVel | number | |
| oTTCPendulumAngleAccel | number | |
| oTTCPendulumDelay | integer | |
| oTTCPendulumSoundTimer | integer | |
| oTTCTreadmillBigSurface | Pointer <integer> | read-only |
| oTTCTreadmillSmallSurface | Pointer <integer> | read-only |
| oTTCTreadmillSpeed | number | |
| oTTCTreadmillTargetSpeed | number | |
| oTTCTreadmillTimeUntilSwitch | integer | |
| oTTCMovingBarDelay | integer | |
| oTTCMovingBarStoppedTimer | integer | |
| oTTCMovingBarOffset | number | |
| oTTCMovingBarSpeed | number | |
| oTTCMovingBarStartOffset | number | |
| oTTCCogDir | number | |
| oTTCCogSpeed | number | |
| oTTCCogTargetVel | number | |
| oTTCPitBlockPeakY | number | |
| oTTCPitBlockDir | integer | |
| oTTCPitBlockWaitTime | integer | |
| oTTCElevatorDir | number | |
| oTTCElevatorPeakY | number | |
| oTTCElevatorMoveTime | integer | |
| oTTC2DRotatorMinTimeUntilNextTurn | integer | |
| oTTC2DRotatorTargetYaw | integer | |
| oTTC2DRotatorIncrement | integer | |
| oTTC2DRotatorRandomDirTimer | integer | |
| oTTC2DRotatorSpeed | integer | |
| oTTCSpinnerDir | integer | |
| oTTCChangeDirTimer | integer | |
| oBetaTrampolineMarioOnTrampoline | integer | |
| oTreasureChestUnkF4 | integer | |
| oTreasureChestUnkF8 | integer | |
| oTreasureChestUnkFC | integer | |
| oTreasureChestSound | integer | |
| oTreeSnowOrLeafUnkF4 | integer | |
| oTreeSnowOrLeafUnkF8 | integer | |
| oTreeSnowOrLeafUnkFC | integer | |
| oTumblingBridgeUnkF4 | integer | |
| oTweesterScaleTimer | integer | |
| oTweesterUnused | integer | |
| oUkikiTauntCounter | integer | |
| oUkikiTauntsToBeDone | integer | |
| oUkikiChaseFleeRange | number | |
| oUkikiTextState | integer | |
| oUkikiTextboxTimer | integer | |
| oUkikiCageSpinTimer | integer | |
| oUkikiHasCap | integer | |
| oUkikiCageNextAction | integer | |
| oUnagiUnkF4 | number | |
| oUnagiUnkF8 | number | |
| oUnagiUnk110 | number | |
| oUnagiUnk1AC | number | |
| oUnagiUnk1B0 | integer | |
| oUnagiUnk1B2 | integer | |
| oWaterBombVerticalStretch | number | |
| oWaterBombStretchSpeed | number | |
| oWaterBombOnGround | integer | |
| oWaterBombNumBounces | number | |
| oWaterBombSpawnerBombActive | integer | |
| oWaterBombSpawnerTimeToSpawn | integer | |
| oWaterCannonUnkF4 | integer | |
| oWaterCannonUnkF8 | integer | |
| oWaterCannonUnkFC | integer | |
| oWaterCannonUnk100 | integer | |
| oCannonBarrelBubblesUnkF4 | number | |
| oWaterLevelPillarDrained | integer | |
| oWaterLevelTriggerUnkF4 | integer | |
| oWaterLevelTriggerTargetWaterLevel | integer | |
| oWaterObjUnkF4 | integer | |
| oWaterObjUnkF8 | integer | |
| oWaterObjUnkFC | integer | |
| oWaterObjUnk100 | integer | |
| oWaterRingScalePhaseX | integer | |
| oWaterRingScalePhaseY | integer | |
| oWaterRingScalePhaseZ | integer | |
| oWaterRingNormalX | number | |
| oWaterRingNormalY | number | |
| oWaterRingNormalZ | number | |
| oWaterRingMarioDistInFront | number | |
| oWaterRingIndex | integer | |
| oWaterRingAvgScale | number | |
| oWaterRingSpawnerRingsCollected | integer | |
| oWaterRingMgrNextRingIndex | integer | |
| oWaterRingMgrLastRingCollected | integer | |
| oWaveTrailSize | number | |
| oWhirlpoolInitFacePitch | integer | |
| oWhirlpoolInitFaceRoll | integer | |
| oWhirlpoolTimeout | integer | |
| oWhitePuffUnkF4 | number | |
| oWhitePuffUnkF8 | integer | |
| oWhitePuffUnkFC | integer | |
| oStrongWindParticlePenguinObj | [Object](#Object) | read-only |
| oWhompShakeVal | integer | |
| oWigglerFallThroughFloorsHeight | number | |
| oWigglerSegments | [ChainSegment](#ChainSegment) | read-only |
| oWigglerWalkAnimSpeed | number | |
| oWigglerSquishSpeed | number | |
| oWigglerTimeUntilRandomTurn | integer | |
| oWigglerTargetYaw | integer | |
| oWigglerWalkAwayFromWallTimer | integer | |
| oWigglerUnused | integer | |
| oWigglerTextStatus | integer | |
| oLllWoodPieceOscillationTimer | integer | |
| oWoodenPostTotalMarioAngle | integer | |
| oWoodenPostPrevAngleToMario | integer | |
| oWoodenPostSpeedY | number | |
| oWoodenPostMarioPounding | integer | |
| oWoodenPostOffsetY | number | |
| oYoshiBlinkTimer | integer | |
| oYoshiChosenHome | integer | |
| oYoshiTargetYaw | integer | |
| oBreakableWallForce | integer | |
[:arrow_up_small:](#)
<br />
@ -769,6 +1537,38 @@
<br />
## [SpawnParticlesInfo](#SpawnParticlesInfo)
| Field | Type | Access |
| ----- | ---- | ------ |
| behParam | integer | |
| count | integer | |
| dragStrength | integer | |
| forwardVelBase | integer | |
| forwardVelRange | integer | |
| gravity | integer | |
| model | integer | |
| offsetY | integer | |
| sizeBase | number | |
| sizeRange | number | |
| velYBase | integer | |
| velYRange | integer | |
[:arrow_up_small:](#)
<br />
## [Struct802A272C](#Struct802A272C)
| Field | Type | Access |
| ----- | ---- | ------ |
| vecF | [Vec3f](#Vec3f) | read-only |
| vecS | [Vec3s](#Vec3s) | read-only |
[:arrow_up_small:](#)
<br />
## [Surface](#Surface)
| Field | Type | Access |
@ -908,6 +1708,25 @@
<br />
## [WaterDropletParams](#WaterDropletParams)
| Field | Type | Access |
| ----- | ---- | ------ |
| flags | integer | |
| model | integer | |
| moveAngleRange | integer | |
| moveRange | integer | |
| randForwardVelOffset | number | |
| randForwardVelScale | number | |
| randSizeOffset | number | |
| randSizeScale | number | |
| randYVelOffset | number | |
| randYVelScale | number | |
[:arrow_up_small:](#)
<br />
## [Waypoint](#Waypoint)
| Field | Type | Access |
@ -930,3 +1749,14 @@
<br />
## [struct802A1230](#struct802A1230)
| Field | Type | Access |
| ----- | ---- | ------ |
| unk00 | integer | |
| unk02 | integer | |
[:arrow_up_small:](#)
<br />

View file

@ -12,18 +12,13 @@ static Vtx djui_font_normal_vertices[] = {
{{{ 0, 0, 0}, 0, { 512, 256}, { 0xff, 0xff, 0xff, 0xff }}},
};
static const Gfx djui_font_normal_text_begin[] = {
const Gfx dl_font_normal_display_list[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_FADEA, G_CC_FADEA),
//gsDPSetEnvColor(255, 255, 255, 255),
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
gsDPSetTextureFilter(G_TF_POINT),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPEndDisplayList(),
};
static const Gfx djui_font_normal_text_settings[] = {
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 3, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 4, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, ((16 * 8 + G_IM_SIZ_4b_INCR) >> G_IM_SIZ_4b_SHIFT) - 1, CALC_DXT(16, G_IM_SIZ_4b_BYTES)),
@ -43,9 +38,8 @@ static void djui_font_normal_render_char(char c) {
void* fontChar = (void*)font_normal_chars[c - '!'];
if (fontChar == NULL) { fontChar = (void*)font_normal_chars[94]; }
gDPPipeSync(gDisplayListHead++);
gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_IA, G_IM_SIZ_16b, 1, (void*)fontChar);
gSPDisplayList(gDisplayListHead++, djui_font_normal_text_settings);
gSPDisplayList(gDisplayListHead++, dl_font_normal_display_list);
}
static f32 djui_font_normal_char_width(char c) {
@ -60,7 +54,7 @@ static const struct DjuiFont sDjuiFontNormal = {
.lineHeight = 0.8125f,
.defaultFontScale = 32.0f,
.rotatedUV = true,
.textBeginDisplayList = djui_font_normal_text_begin,
.textBeginDisplayList = NULL,
.render_char = djui_font_normal_render_char,
.char_width = djui_font_normal_char_width,
};

View file

@ -479,7 +479,9 @@ static bool djui_inputbox_render(struct DjuiBase* base) {
djui_inputbox_render_selection(inputbox);
// begin font
if (font->textBeginDisplayList != NULL) {
gSPDisplayList(gDisplayListHead++, font->textBeginDisplayList);
}
// set color
gDPSetEnvColor(gDisplayListHead++, inputbox->textColor.r, inputbox->textColor.g, inputbox->textColor.b, inputbox->textColor.a);

View file

@ -33,12 +33,28 @@ static struct LuaObjectField* smlua_get_object_field(u16 lot, const char* key) {
}
struct LuaObjectTable* ot = &sLuaObjectTable[lot];
// TODO: change this to binary search or hash table or something
for (int i = 0; i < ot->fieldCount; i++) {
if (!strcmp(ot->fields[i].key, key)) {
// binary search
int min = 0;
int max = ot->fieldCount - 1;
int i = (min + max) / 2;
while (true) {
int rc = strcmp(key, ot->fields[i].key);
if (rc == 0) {
return &ot->fields[i];
} else if (rc < 0) {
max = i - 1;
i = (min + max) / 2;
} else if (rc > 0) {
min = i + 1;
i = (min + max) / 2;
}
if (min > max || max < min) {
return NULL;
}
}
return NULL;
}

View file

@ -8,7 +8,9 @@
#include "src/engine/surface_collision.h"
#include "src/pc/network/network_player.h"
#include "src/pc/djui/djui_hud_utils.h"
#include "src/game/object_helpers.h"
#include "include\object_fields.h"
#define LUA_ANIM_INFO_FIELD_COUNT 11
static struct LuaObjectField sAnimInfoFields[LUA_ANIM_INFO_FIELD_COUNT] = {
{ "animAccel", LVT_S32, offsetof(struct AnimInfo, animAccel), false, LOT_NONE },
@ -111,6 +113,16 @@ static struct LuaObjectField sCameraTriggerFields[LUA_CAMERA_TRIGGER_FIELD_COUNT
// { "event", LVT_???, offsetof(struct CameraTrigger, event), false, LOT_??? }, <--- UNIMPLEMENTED
};
#define LUA_CHAIN_SEGMENT_FIELD_COUNT 6
static struct LuaObjectField sChainSegmentFields[LUA_CHAIN_SEGMENT_FIELD_COUNT] = {
{ "pitch", LVT_S16, offsetof(struct ChainSegment, pitch), false, LOT_NONE },
{ "posX", LVT_F32, offsetof(struct ChainSegment, posX), false, LOT_NONE },
{ "posY", LVT_F32, offsetof(struct ChainSegment, posY), false, LOT_NONE },
{ "posZ", LVT_F32, offsetof(struct ChainSegment, posZ), false, LOT_NONE },
{ "roll", LVT_S16, offsetof(struct ChainSegment, roll), false, LOT_NONE },
{ "yaw", LVT_S16, offsetof(struct ChainSegment, yaw), false, LOT_NONE },
};
#define LUA_CHARACTER_FIELD_COUNT 59
static struct LuaObjectField sCharacterFields[LUA_CHARACTER_FIELD_COUNT] = {
{ "animOffsetEnabled", LVT_U8, offsetof(struct Character, animOffsetEnabled), true, LOT_NONE },
@ -270,6 +282,17 @@ static struct LuaObjectField sGraphNodeObjectFields[LUA_GRAPH_NODE_OBJECT_FIELD_
{ "unk4C", LVT_COBJECT_P, offsetof(struct GraphNodeObject, unk4C), true, LOT_SPAWNINFO },
};
#define LUA_GRAPH_NODE_802_A45_E4_FIELD_COUNT 6
static struct LuaObjectField sGraphNode_802A45E4Fields[LUA_GRAPH_NODE_802_A45_E4_FIELD_COUNT] = {
// { "0x00]", LOT_???, offsetof(struct GraphNode_802A45E4, 0x00]), false, LOT_??? }, <--- UNIMPLEMENTED
{ "unk18", LVT_S16, offsetof(struct GraphNode_802A45E4, unk18), false, LOT_NONE },
{ "unk1A", LVT_S16, offsetof(struct GraphNode_802A45E4, unk1A), false, LOT_NONE },
{ "unk1C", LVT_S16, offsetof(struct GraphNode_802A45E4, unk1C), false, LOT_NONE },
{ "unk1E", LVT_S16, offsetof(struct GraphNode_802A45E4, unk1E), false, LOT_NONE },
{ "unk20", LVT_S16, offsetof(struct GraphNode_802A45E4, unk20), false, LOT_NONE },
{ "unk22", LVT_S16, offsetof(struct GraphNode_802A45E4, unk22), false, LOT_NONE },
};
#define LUA_HANDHELD_SHAKE_POINT_FIELD_COUNT 3
static struct LuaObjectField sHandheldShakePointFields[LUA_HANDHELD_SHAKE_POINT_FIELD_COUNT] = {
{ "index", LVT_S8, offsetof(struct HandheldShakePoint, index), false, LOT_NONE },
@ -476,7 +499,7 @@ static struct LuaObjectField sNetworkPlayerFields[LUA_NETWORK_PLAYER_FIELD_COUNT
{ "type", LVT_U8, offsetof(struct NetworkPlayer, type), true, LOT_NONE },
};
#define LUA_OBJECT_FIELD_COUNT 22
#define LUA_OBJECT_FIELD_COUNT 746
static struct LuaObjectField sObjectFields[LUA_OBJECT_FIELD_COUNT] = {
{ "activeFlags", LVT_S16, offsetof(struct Object, activeFlags), false, LOT_NONE },
{ "areaTimer", LVT_U32, offsetof(struct Object, areaTimer), false, LOT_NONE },
@ -501,6 +524,735 @@ static struct LuaObjectField sObjectFields[LUA_OBJECT_FIELD_COUNT] = {
{ "hurtboxHeight", LVT_F32, offsetof(struct Object, hurtboxHeight), false, LOT_NONE },
{ "hurtboxRadius", LVT_F32, offsetof(struct Object, hurtboxRadius), false, LOT_NONE },
{ "numCollidedObjs", LVT_S16, offsetof(struct Object, numCollidedObjs), false, LOT_NONE },
{ "o1UpForceSpawn", LVT_S32, offsetof(struct Object, o1UpForceSpawn), false, LOT_NONE },
{ "o1UpHiddenUnkF4", LVT_S32, offsetof(struct Object, o1UpHiddenUnkF4), false, LOT_NONE },
{ "oAction", LVT_S32, offsetof(struct Object, oAction), false, LOT_NONE },
{ "oActivatedBackAndForthPlatformCountdown", LVT_S32, offsetof(struct Object, oActivatedBackAndForthPlatformCountdown), false, LOT_NONE },
{ "oActivatedBackAndForthPlatformFlipRotation", LVT_S32, offsetof(struct Object, oActivatedBackAndForthPlatformFlipRotation), false, LOT_NONE },
{ "oActivatedBackAndForthPlatformMaxOffset", LVT_F32, offsetof(struct Object, oActivatedBackAndForthPlatformMaxOffset), false, LOT_NONE },
{ "oActivatedBackAndForthPlatformOffset", LVT_F32, offsetof(struct Object, oActivatedBackAndForthPlatformOffset), false, LOT_NONE },
{ "oActivatedBackAndForthPlatformStartYaw", LVT_S32, offsetof(struct Object, oActivatedBackAndForthPlatformStartYaw), false, LOT_NONE },
{ "oActivatedBackAndForthPlatformVel", LVT_F32, offsetof(struct Object, oActivatedBackAndForthPlatformVel), false, LOT_NONE },
{ "oActivatedBackAndForthPlatformVertical", LVT_S32, offsetof(struct Object, oActivatedBackAndForthPlatformVertical), false, LOT_NONE },
{ "oActiveParticleFlags", LVT_U32, offsetof(struct Object, oActiveParticleFlags), false, LOT_NONE },
{ "oAmpRadiusOfRotation", LVT_F32, offsetof(struct Object, oAmpRadiusOfRotation), false, LOT_NONE },
{ "oAmpYPhase", LVT_S32, offsetof(struct Object, oAmpYPhase), false, LOT_NONE },
{ "oAngleToHome", LVT_S32, offsetof(struct Object, oAngleToHome), false, LOT_NONE },
{ "oAngleToMario", LVT_S32, offsetof(struct Object, oAngleToMario), false, LOT_NONE },
{ "oAngleVelPitch", LVT_S32, offsetof(struct Object, oAngleVelPitch), false, LOT_NONE },
{ "oAngleVelRoll", LVT_S32, offsetof(struct Object, oAngleVelRoll), false, LOT_NONE },
{ "oAngleVelYaw", LVT_S32, offsetof(struct Object, oAngleVelYaw), false, LOT_NONE },
{ "oAnimState", LVT_S32, offsetof(struct Object, oAnimState), false, LOT_NONE },
// { "oAnimations", LVT_???, offsetof(struct Object, oAnimations), false, LVT_??? }, <--- UNIMPLEMENTED
{ "oArrowLiftDisplacement", LVT_F32, offsetof(struct Object, oArrowLiftDisplacement), false, LOT_NONE },
{ "oArrowLiftUnk100", LVT_S32, offsetof(struct Object, oArrowLiftUnk100), false, LOT_NONE },
{ "oBBallSpawnerMaxSpawnDist", LVT_F32, offsetof(struct Object, oBBallSpawnerMaxSpawnDist), false, LOT_NONE },
{ "oBBallSpawnerPeriodMinus1", LVT_S32, offsetof(struct Object, oBBallSpawnerPeriodMinus1), false, LOT_NONE },
{ "oBBallSpawnerSpawnOdds", LVT_F32, offsetof(struct Object, oBBallSpawnerSpawnOdds), false, LOT_NONE },
{ "oBackAndForthPlatformUnk100", LVT_F32, offsetof(struct Object, oBackAndForthPlatformUnk100), false, LOT_NONE },
{ "oBackAndForthPlatformUnkF4", LVT_F32, offsetof(struct Object, oBackAndForthPlatformUnkF4), false, LOT_NONE },
{ "oBackAndForthPlatformUnkF8", LVT_F32, offsetof(struct Object, oBackAndForthPlatformUnkF8), false, LOT_NONE },
{ "oBackAndForthPlatformUnkFC", LVT_F32, offsetof(struct Object, oBackAndForthPlatformUnkFC), false, LOT_NONE },
{ "oBehParams", LVT_S32, offsetof(struct Object, oBehParams), false, LOT_NONE },
{ "oBehParams2ndByte", LVT_S32, offsetof(struct Object, oBehParams2ndByte), false, LOT_NONE },
{ "oBetaTrampolineMarioOnTrampoline", LVT_S32, offsetof(struct Object, oBetaTrampolineMarioOnTrampoline), false, LOT_NONE },
{ "oBigBooNumMinionBoosKilled", LVT_S32, offsetof(struct Object, oBigBooNumMinionBoosKilled), false, LOT_NONE },
{ "oBirdChirpChirpUnkF4", LVT_S32, offsetof(struct Object, oBirdChirpChirpUnkF4), false, LOT_NONE },
{ "oBirdSpeed", LVT_F32, offsetof(struct Object, oBirdSpeed), false, LOT_NONE },
{ "oBirdTargetPitch", LVT_S32, offsetof(struct Object, oBirdTargetPitch), false, LOT_NONE },
{ "oBirdTargetYaw", LVT_S32, offsetof(struct Object, oBirdTargetYaw), false, LOT_NONE },
{ "oBlackSmokeBowserUnkF4", LVT_F32, offsetof(struct Object, oBlackSmokeBowserUnkF4), false, LOT_NONE },
{ "oBlueFishRandomAngle", LVT_F32, offsetof(struct Object, oBlueFishRandomAngle), false, LOT_NONE },
{ "oBlueFishRandomTime", LVT_S32, offsetof(struct Object, oBlueFishRandomTime), false, LOT_NONE },
{ "oBlueFishRandomVel", LVT_F32, offsetof(struct Object, oBlueFishRandomVel), false, LOT_NONE },
{ "oBlueFlameUnkF8", LVT_F32, offsetof(struct Object, oBlueFlameUnkF8), false, LOT_NONE },
{ "oBobombBlinkTimer", LVT_S32, offsetof(struct Object, oBobombBlinkTimer), false, LOT_NONE },
{ "oBobombBuddyBlinkTimer", LVT_S32, offsetof(struct Object, oBobombBuddyBlinkTimer), false, LOT_NONE },
{ "oBobombBuddyCannonStatus", LVT_S32, offsetof(struct Object, oBobombBuddyCannonStatus), false, LOT_NONE },
{ "oBobombBuddyHasTalkedToMario", LVT_S32, offsetof(struct Object, oBobombBuddyHasTalkedToMario), false, LOT_NONE },
{ "oBobombBuddyPosXCopy", LVT_F32, offsetof(struct Object, oBobombBuddyPosXCopy), false, LOT_NONE },
{ "oBobombBuddyPosYCopy", LVT_F32, offsetof(struct Object, oBobombBuddyPosYCopy), false, LOT_NONE },
{ "oBobombBuddyPosZCopy", LVT_F32, offsetof(struct Object, oBobombBuddyPosZCopy), false, LOT_NONE },
{ "oBobombBuddyRole", LVT_S32, offsetof(struct Object, oBobombBuddyRole), false, LOT_NONE },
{ "oBobombExpBubGfxExpRateX", LVT_S32, offsetof(struct Object, oBobombExpBubGfxExpRateX), false, LOT_NONE },
{ "oBobombExpBubGfxExpRateY", LVT_S32, offsetof(struct Object, oBobombExpBubGfxExpRateY), false, LOT_NONE },
{ "oBobombExpBubGfxScaleFacX", LVT_S32, offsetof(struct Object, oBobombExpBubGfxScaleFacX), false, LOT_NONE },
{ "oBobombExpBubGfxScaleFacY", LVT_S32, offsetof(struct Object, oBobombExpBubGfxScaleFacY), false, LOT_NONE },
{ "oBobombFuseLit", LVT_S32, offsetof(struct Object, oBobombFuseLit), false, LOT_NONE },
{ "oBobombFuseTimer", LVT_S32, offsetof(struct Object, oBobombFuseTimer), false, LOT_NONE },
{ "oBooBaseScale", LVT_F32, offsetof(struct Object, oBooBaseScale), false, LOT_NONE },
{ "oBooDeathStatus", LVT_S32, offsetof(struct Object, oBooDeathStatus), false, LOT_NONE },
{ "oBooInitialMoveYaw", LVT_S32, offsetof(struct Object, oBooInitialMoveYaw), false, LOT_NONE },
{ "oBooMoveYawBeforeHit", LVT_F32, offsetof(struct Object, oBooMoveYawBeforeHit), false, LOT_NONE },
{ "oBooMoveYawDuringHit", LVT_S32, offsetof(struct Object, oBooMoveYawDuringHit), false, LOT_NONE },
{ "oBooNegatedAggressiveness", LVT_F32, offsetof(struct Object, oBooNegatedAggressiveness), false, LOT_NONE },
{ "oBooOscillationTimer", LVT_S32, offsetof(struct Object, oBooOscillationTimer), false, LOT_NONE },
{ "oBooParentBigBoo", LVT_COBJECT_P, offsetof(struct Object, oBooParentBigBoo), true, LOT_OBJECT },
{ "oBooTargetOpacity", LVT_S32, offsetof(struct Object, oBooTargetOpacity), false, LOT_NONE },
{ "oBooTurningSpeed", LVT_S16, offsetof(struct Object, oBooTurningSpeed), false, LOT_NONE },
{ "oBookSwitchManagerUnkF4", LVT_S32, offsetof(struct Object, oBookSwitchManagerUnkF4), false, LOT_NONE },
{ "oBookSwitchManagerUnkF8", LVT_S32, offsetof(struct Object, oBookSwitchManagerUnkF8), false, LOT_NONE },
{ "oBookSwitchUnkF4", LVT_F32, offsetof(struct Object, oBookSwitchUnkF4), false, LOT_NONE },
{ "oBookendUnkF4", LVT_S32, offsetof(struct Object, oBookendUnkF4), false, LOT_NONE },
{ "oBookendUnkF8", LVT_S32, offsetof(struct Object, oBookendUnkF8), false, LOT_NONE },
{ "oBounciness", LVT_F32, offsetof(struct Object, oBounciness), false, LOT_NONE },
{ "oBouncingFireBallUnkF4", LVT_S32, offsetof(struct Object, oBouncingFireBallUnkF4), false, LOT_NONE },
{ "oBowlingBallTargetYaw", LVT_S32, offsetof(struct Object, oBowlingBallTargetYaw), false, LOT_NONE },
{ "oBowserAngleToCentre", LVT_S16, offsetof(struct Object, oBowserAngleToCentre), false, LOT_NONE },
{ "oBowserDistToCentre", LVT_F32, offsetof(struct Object, oBowserDistToCentre), false, LOT_NONE },
{ "oBowserEyesShut", LVT_S16, offsetof(struct Object, oBowserEyesShut), false, LOT_NONE },
{ "oBowserHeldAnglePitch", LVT_S16, offsetof(struct Object, oBowserHeldAnglePitch), false, LOT_NONE },
{ "oBowserHeldAngleVelYaw", LVT_S16, offsetof(struct Object, oBowserHeldAngleVelYaw), false, LOT_NONE },
{ "oBowserKeyScale", LVT_F32, offsetof(struct Object, oBowserKeyScale), false, LOT_NONE },
{ "oBowserPuzzleCompletionFlags", LVT_S32, offsetof(struct Object, oBowserPuzzleCompletionFlags), false, LOT_NONE },
// { "oBowserPuzzlePieceActionList", LVT_???, offsetof(struct Object, oBowserPuzzlePieceActionList), false, LOT_??? }, <--- UNIMPLEMENTED
{ "oBowserPuzzlePieceContinuePerformingAction", LVT_S32, offsetof(struct Object, oBowserPuzzlePieceContinuePerformingAction), false, LOT_NONE },
// { "oBowserPuzzlePieceNextAction", LVT_???, offsetof(struct Object, oBowserPuzzlePieceNextAction), false, LOT_??? }, <--- UNIMPLEMENTED
{ "oBowserPuzzlePieceOffsetX", LVT_F32, offsetof(struct Object, oBowserPuzzlePieceOffsetX), false, LOT_NONE },
{ "oBowserPuzzlePieceOffsetY", LVT_F32, offsetof(struct Object, oBowserPuzzlePieceOffsetY), false, LOT_NONE },
{ "oBowserPuzzlePieceOffsetZ", LVT_F32, offsetof(struct Object, oBowserPuzzlePieceOffsetZ), false, LOT_NONE },
{ "oBowserShockWaveUnkF4", LVT_F32, offsetof(struct Object, oBowserShockWaveUnkF4), false, LOT_NONE },
{ "oBowserUnk106", LVT_S16, offsetof(struct Object, oBowserUnk106), false, LOT_NONE },
{ "oBowserUnk108", LVT_S16, offsetof(struct Object, oBowserUnk108), false, LOT_NONE },
{ "oBowserUnk10E", LVT_S16, offsetof(struct Object, oBowserUnk10E), false, LOT_NONE },
{ "oBowserUnk110", LVT_S16, offsetof(struct Object, oBowserUnk110), false, LOT_NONE },
{ "oBowserUnk1AC", LVT_S16, offsetof(struct Object, oBowserUnk1AC), false, LOT_NONE },
{ "oBowserUnk1AE", LVT_S16, offsetof(struct Object, oBowserUnk1AE), false, LOT_NONE },
{ "oBowserUnk1B2", LVT_S16, offsetof(struct Object, oBowserUnk1B2), false, LOT_NONE },
{ "oBowserUnk88", LVT_S32, offsetof(struct Object, oBowserUnk88), false, LOT_NONE },
{ "oBowserUnkF4", LVT_S32, offsetof(struct Object, oBowserUnkF4), false, LOT_NONE },
{ "oBowserUnkF8", LVT_S32, offsetof(struct Object, oBowserUnkF8), false, LOT_NONE },
{ "oBreakableBoxSmallFramesSinceReleased", LVT_S32, offsetof(struct Object, oBreakableBoxSmallFramesSinceReleased), false, LOT_NONE },
{ "oBreakableBoxSmallReleased", LVT_S32, offsetof(struct Object, oBreakableBoxSmallReleased), false, LOT_NONE },
{ "oBreakableWallForce", LVT_S32, offsetof(struct Object, oBreakableWallForce), false, LOT_NONE },
{ "oBubbaUnk100", LVT_S32, offsetof(struct Object, oBubbaUnk100), false, LOT_NONE },
{ "oBubbaUnk104", LVT_S32, offsetof(struct Object, oBubbaUnk104), false, LOT_NONE },
{ "oBubbaUnk108", LVT_F32, offsetof(struct Object, oBubbaUnk108), false, LOT_NONE },
{ "oBubbaUnk10C", LVT_F32, offsetof(struct Object, oBubbaUnk10C), false, LOT_NONE },
{ "oBubbaUnk1AC", LVT_S16, offsetof(struct Object, oBubbaUnk1AC), false, LOT_NONE },
{ "oBubbaUnk1AE", LVT_S16, offsetof(struct Object, oBubbaUnk1AE), false, LOT_NONE },
{ "oBubbaUnk1B0", LVT_S16, offsetof(struct Object, oBubbaUnk1B0), false, LOT_NONE },
{ "oBubbaUnk1B2", LVT_S16, offsetof(struct Object, oBubbaUnk1B2), false, LOT_NONE },
{ "oBubbaUnkF4", LVT_F32, offsetof(struct Object, oBubbaUnkF4), false, LOT_NONE },
{ "oBubbaUnkF8", LVT_S32, offsetof(struct Object, oBubbaUnkF8), false, LOT_NONE },
{ "oBubbaUnkFC", LVT_S32, offsetof(struct Object, oBubbaUnkFC), false, LOT_NONE },
{ "oBulletBillInitialMoveYaw", LVT_S32, offsetof(struct Object, oBulletBillInitialMoveYaw), false, LOT_NONE },
{ "oBullyKBTimerAndMinionKOCounter", LVT_S32, offsetof(struct Object, oBullyKBTimerAndMinionKOCounter), false, LOT_NONE },
{ "oBullyMarioCollisionAngle", LVT_S32, offsetof(struct Object, oBullyMarioCollisionAngle), false, LOT_NONE },
{ "oBullyPrevX", LVT_F32, offsetof(struct Object, oBullyPrevX), false, LOT_NONE },
{ "oBullyPrevY", LVT_F32, offsetof(struct Object, oBullyPrevY), false, LOT_NONE },
{ "oBullyPrevZ", LVT_F32, offsetof(struct Object, oBullyPrevZ), false, LOT_NONE },
{ "oBullySubtype", LVT_S32, offsetof(struct Object, oBullySubtype), false, LOT_NONE },
{ "oBuoyancy", LVT_F32, offsetof(struct Object, oBuoyancy), false, LOT_NONE },
{ "oButterflyYPhase", LVT_S32, offsetof(struct Object, oButterflyYPhase), false, LOT_NONE },
{ "oCameraLakituBlinkTimer", LVT_S32, offsetof(struct Object, oCameraLakituBlinkTimer), false, LOT_NONE },
{ "oCameraLakituCircleRadius", LVT_F32, offsetof(struct Object, oCameraLakituCircleRadius), false, LOT_NONE },
{ "oCameraLakituFinishedDialog", LVT_S32, offsetof(struct Object, oCameraLakituFinishedDialog), false, LOT_NONE },
{ "oCameraLakituPitchVel", LVT_S16, offsetof(struct Object, oCameraLakituPitchVel), false, LOT_NONE },
{ "oCameraLakituSpeed", LVT_F32, offsetof(struct Object, oCameraLakituSpeed), false, LOT_NONE },
{ "oCameraLakituUnk104", LVT_S32, offsetof(struct Object, oCameraLakituUnk104), false, LOT_NONE },
{ "oCameraLakituYawVel", LVT_S16, offsetof(struct Object, oCameraLakituYawVel), false, LOT_NONE },
{ "oCannonBarrelBubblesUnkF4", LVT_F32, offsetof(struct Object, oCannonBarrelBubblesUnkF4), false, LOT_NONE },
{ "oCannonPlayerIndex", LVT_S32, offsetof(struct Object, oCannonPlayerIndex), false, LOT_NONE },
{ "oCannonUnk10C", LVT_S32, offsetof(struct Object, oCannonUnk10C), false, LOT_NONE },
{ "oCannonUnkF4", LVT_S32, offsetof(struct Object, oCannonUnkF4), false, LOT_NONE },
{ "oCannonUnkF8", LVT_S32, offsetof(struct Object, oCannonUnkF8), false, LOT_NONE },
{ "oCapUnkF4", LVT_S32, offsetof(struct Object, oCapUnkF4), false, LOT_NONE },
{ "oCapUnkF8", LVT_S32, offsetof(struct Object, oCapUnkF8), false, LOT_NONE },
{ "oCelebStarDiameterOfRotation", LVT_S32, offsetof(struct Object, oCelebStarDiameterOfRotation), false, LOT_NONE },
{ "oCelebStarUnkF4", LVT_S32, offsetof(struct Object, oCelebStarUnkF4), false, LOT_NONE },
{ "oChainChompDistToPivot", LVT_F32, offsetof(struct Object, oChainChompDistToPivot), false, LOT_NONE },
{ "oChainChompHitGate", LVT_S32, offsetof(struct Object, oChainChompHitGate), false, LOT_NONE },
{ "oChainChompMaxDistBetweenChainParts", LVT_F32, offsetof(struct Object, oChainChompMaxDistBetweenChainParts), false, LOT_NONE },
{ "oChainChompMaxDistFromPivotPerChainPart", LVT_F32, offsetof(struct Object, oChainChompMaxDistFromPivotPerChainPart), false, LOT_NONE },
{ "oChainChompNumLunges", LVT_S32, offsetof(struct Object, oChainChompNumLunges), false, LOT_NONE },
{ "oChainChompReleaseStatus", LVT_S32, offsetof(struct Object, oChainChompReleaseStatus), false, LOT_NONE },
{ "oChainChompRestrictedByChain", LVT_S32, offsetof(struct Object, oChainChompRestrictedByChain), false, LOT_NONE },
{ "oChainChompSegments", LVT_COBJECT_P, offsetof(struct Object, oChainChompSegments), true, LOT_CHAINSEGMENT },
{ "oChainChompTargetPitch", LVT_S32, offsetof(struct Object, oChainChompTargetPitch), false, LOT_NONE },
{ "oChainChompUnk104", LVT_F32, offsetof(struct Object, oChainChompUnk104), false, LOT_NONE },
{ "oCheckerBoardPlatformUnk1AC", LVT_F32, offsetof(struct Object, oCheckerBoardPlatformUnk1AC), false, LOT_NONE },
{ "oCheckerBoardPlatformUnkF8", LVT_S32, offsetof(struct Object, oCheckerBoardPlatformUnkF8), false, LOT_NONE },
{ "oCheckerBoardPlatformUnkFC", LVT_S32, offsetof(struct Object, oCheckerBoardPlatformUnkFC), false, LOT_NONE },
{ "oCheepCheepUnk104", LVT_F32, offsetof(struct Object, oCheepCheepUnk104), false, LOT_NONE },
{ "oCheepCheepUnk108", LVT_F32, offsetof(struct Object, oCheepCheepUnk108), false, LOT_NONE },
{ "oCheepCheepUnkF4", LVT_F32, offsetof(struct Object, oCheepCheepUnkF4), false, LOT_NONE },
{ "oCheepCheepUnkF8", LVT_F32, offsetof(struct Object, oCheepCheepUnkF8), false, LOT_NONE },
{ "oCheepCheepUnkFC", LVT_F32, offsetof(struct Object, oCheepCheepUnkFC), false, LOT_NONE },
{ "oChuckyaUnk100", LVT_S32, offsetof(struct Object, oChuckyaUnk100), false, LOT_NONE },
{ "oChuckyaUnk88", LVT_S32, offsetof(struct Object, oChuckyaUnk88), false, LOT_NONE },
{ "oChuckyaUnkF8", LVT_S32, offsetof(struct Object, oChuckyaUnkF8), false, LOT_NONE },
{ "oChuckyaUnkFC", LVT_S32, offsetof(struct Object, oChuckyaUnkFC), false, LOT_NONE },
{ "oClamUnkF4", LVT_S32, offsetof(struct Object, oClamUnkF4), false, LOT_NONE },
{ "oCloudBlowing", LVT_S32, offsetof(struct Object, oCloudBlowing), false, LOT_NONE },
{ "oCloudCenterX", LVT_F32, offsetof(struct Object, oCloudCenterX), false, LOT_NONE },
{ "oCloudCenterY", LVT_F32, offsetof(struct Object, oCloudCenterY), false, LOT_NONE },
{ "oCloudFwooshMovementRadius", LVT_S16, offsetof(struct Object, oCloudFwooshMovementRadius), false, LOT_NONE },
{ "oCloudGrowSpeed", LVT_F32, offsetof(struct Object, oCloudGrowSpeed), false, LOT_NONE },
{ "oCoinUnk110", LVT_F32, offsetof(struct Object, oCoinUnk110), false, LOT_NONE },
{ "oCoinUnk1B0", LVT_S32, offsetof(struct Object, oCoinUnk1B0), false, LOT_NONE },
{ "oCoinUnkF4", LVT_S32, offsetof(struct Object, oCoinUnkF4), false, LOT_NONE },
{ "oCoinUnkF8", LVT_S32, offsetof(struct Object, oCoinUnkF8), false, LOT_NONE },
{ "oCollisionDistance", LVT_F32, offsetof(struct Object, oCollisionDistance), false, LOT_NONE },
{ "oCollisionParticleUnkF4", LVT_F32, offsetof(struct Object, oCollisionParticleUnkF4), false, LOT_NONE },
{ "oControllablePlatformUnk100", LVT_S32, offsetof(struct Object, oControllablePlatformUnk100), false, LOT_NONE },
{ "oControllablePlatformUnkF8", LVT_S32, offsetof(struct Object, oControllablePlatformUnkF8), false, LOT_NONE },
{ "oControllablePlatformUnkFC", LVT_F32, offsetof(struct Object, oControllablePlatformUnkFC), false, LOT_NONE },
{ "oDDDPoleMaxOffset", LVT_F32, offsetof(struct Object, oDDDPoleMaxOffset), false, LOT_NONE },
{ "oDDDPoleOffset", LVT_F32, offsetof(struct Object, oDDDPoleOffset), false, LOT_NONE },
{ "oDDDPoleVel", LVT_F32, offsetof(struct Object, oDDDPoleVel), false, LOT_NONE },
{ "oDamageOrCoinValue", LVT_S32, offsetof(struct Object, oDamageOrCoinValue), false, LOT_NONE },
{ "oDeathSound", LVT_S32, offsetof(struct Object, oDeathSound), false, LOT_NONE },
{ "oDialogResponse", LVT_S16, offsetof(struct Object, oDialogResponse), false, LOT_NONE },
{ "oDialogState", LVT_S16, offsetof(struct Object, oDialogState), false, LOT_NONE },
{ "oDistanceToMario", LVT_F32, offsetof(struct Object, oDistanceToMario), false, LOT_NONE },
{ "oDonutPlatformSpawnerSpawnedPlatforms", LVT_S32, offsetof(struct Object, oDonutPlatformSpawnerSpawnedPlatforms), false, LOT_NONE },
{ "oDoorUnk100", LVT_S32, offsetof(struct Object, oDoorUnk100), false, LOT_NONE },
{ "oDoorUnk88", LVT_S32, offsetof(struct Object, oDoorUnk88), false, LOT_NONE },
{ "oDoorUnkF8", LVT_S32, offsetof(struct Object, oDoorUnkF8), false, LOT_NONE },
{ "oDoorUnkFC", LVT_S32, offsetof(struct Object, oDoorUnkFC), false, LOT_NONE },
{ "oDorrieAngleToHome", LVT_S16, offsetof(struct Object, oDorrieAngleToHome), false, LOT_NONE },
{ "oDorrieDistToHome", LVT_F32, offsetof(struct Object, oDorrieDistToHome), false, LOT_NONE },
{ "oDorrieForwardDistToMario", LVT_F32, offsetof(struct Object, oDorrieForwardDistToMario), false, LOT_NONE },
{ "oDorrieGroundPounded", LVT_S16, offsetof(struct Object, oDorrieGroundPounded), false, LOT_NONE },
{ "oDorrieHeadRaiseSpeed", LVT_S16, offsetof(struct Object, oDorrieHeadRaiseSpeed), false, LOT_NONE },
{ "oDorrieLiftingMario", LVT_S32, offsetof(struct Object, oDorrieLiftingMario), false, LOT_NONE },
{ "oDorrieNeckAngle", LVT_S16, offsetof(struct Object, oDorrieNeckAngle), false, LOT_NONE },
{ "oDorrieOffsetY", LVT_F32, offsetof(struct Object, oDorrieOffsetY), false, LOT_NONE },
{ "oDorrieVelY", LVT_F32, offsetof(struct Object, oDorrieVelY), false, LOT_NONE },
{ "oDorrieYawVel", LVT_S32, offsetof(struct Object, oDorrieYawVel), false, LOT_NONE },
{ "oDragStrength", LVT_F32, offsetof(struct Object, oDragStrength), false, LOT_NONE },
{ "oDrawingDistance", LVT_F32, offsetof(struct Object, oDrawingDistance), false, LOT_NONE },
{ "oElevatorUnk100", LVT_S32, offsetof(struct Object, oElevatorUnk100), false, LOT_NONE },
{ "oElevatorUnkF4", LVT_F32, offsetof(struct Object, oElevatorUnkF4), false, LOT_NONE },
{ "oElevatorUnkF8", LVT_F32, offsetof(struct Object, oElevatorUnkF8), false, LOT_NONE },
{ "oElevatorUnkFC", LVT_F32, offsetof(struct Object, oElevatorUnkFC), false, LOT_NONE },
{ "oEndBirdUnk104", LVT_F32, offsetof(struct Object, oEndBirdUnk104), false, LOT_NONE },
{ "oEnemyLakituBlinkTimer", LVT_S32, offsetof(struct Object, oEnemyLakituBlinkTimer), false, LOT_NONE },
{ "oEnemyLakituFaceForwardCountdown", LVT_S32, offsetof(struct Object, oEnemyLakituFaceForwardCountdown), false, LOT_NONE },
{ "oEnemyLakituNumSpinies", LVT_S32, offsetof(struct Object, oEnemyLakituNumSpinies), false, LOT_NONE },
{ "oEnemyLakituSpinyCooldown", LVT_S32, offsetof(struct Object, oEnemyLakituSpinyCooldown), false, LOT_NONE },
{ "oExclamationBoxForce", LVT_S32, offsetof(struct Object, oExclamationBoxForce), false, LOT_NONE },
{ "oExclamationBoxUnkF4", LVT_F32, offsetof(struct Object, oExclamationBoxUnkF4), false, LOT_NONE },
{ "oExclamationBoxUnkF8", LVT_F32, offsetof(struct Object, oExclamationBoxUnkF8), false, LOT_NONE },
{ "oExclamationBoxUnkFC", LVT_S32, offsetof(struct Object, oExclamationBoxUnkFC), false, LOT_NONE },
{ "oEyerokBossActiveHand", LVT_S32, offsetof(struct Object, oEyerokBossActiveHand), false, LOT_NONE },
{ "oEyerokBossNumHands", LVT_S32, offsetof(struct Object, oEyerokBossNumHands), false, LOT_NONE },
{ "oEyerokBossUnk104", LVT_S32, offsetof(struct Object, oEyerokBossUnk104), false, LOT_NONE },
{ "oEyerokBossUnk108", LVT_F32, offsetof(struct Object, oEyerokBossUnk108), false, LOT_NONE },
{ "oEyerokBossUnk10C", LVT_F32, offsetof(struct Object, oEyerokBossUnk10C), false, LOT_NONE },
{ "oEyerokBossUnk110", LVT_F32, offsetof(struct Object, oEyerokBossUnk110), false, LOT_NONE },
{ "oEyerokBossUnk1AC", LVT_S32, offsetof(struct Object, oEyerokBossUnk1AC), false, LOT_NONE },
{ "oEyerokBossUnkFC", LVT_S32, offsetof(struct Object, oEyerokBossUnkFC), false, LOT_NONE },
{ "oEyerokHandDead", LVT_S32, offsetof(struct Object, oEyerokHandDead), false, LOT_NONE },
{ "oEyerokHandUnk100", LVT_S32, offsetof(struct Object, oEyerokHandUnk100), false, LOT_NONE },
{ "oEyerokHandUnkFC", LVT_S32, offsetof(struct Object, oEyerokHandUnkFC), false, LOT_NONE },
{ "oEyerokHandWakeUpTimer", LVT_S32, offsetof(struct Object, oEyerokHandWakeUpTimer), false, LOT_NONE },
{ "oEyerokReceivedAttack", LVT_S32, offsetof(struct Object, oEyerokReceivedAttack), false, LOT_NONE },
{ "oFaceAnglePitch", LVT_S32, offsetof(struct Object, oFaceAnglePitch), false, LOT_NONE },
{ "oFaceAngleRoll", LVT_S32, offsetof(struct Object, oFaceAngleRoll), false, LOT_NONE },
{ "oFaceAngleYaw", LVT_S32, offsetof(struct Object, oFaceAngleYaw), false, LOT_NONE },
{ "oFallingPillarPitchAcceleration", LVT_F32, offsetof(struct Object, oFallingPillarPitchAcceleration), false, LOT_NONE },
{ "oFirePiranhaPlantActive", LVT_S32, offsetof(struct Object, oFirePiranhaPlantActive), false, LOT_NONE },
{ "oFirePiranhaPlantDeathSpinTimer", LVT_S32, offsetof(struct Object, oFirePiranhaPlantDeathSpinTimer), false, LOT_NONE },
{ "oFirePiranhaPlantDeathSpinVel", LVT_F32, offsetof(struct Object, oFirePiranhaPlantDeathSpinVel), false, LOT_NONE },
{ "oFirePiranhaPlantNeutralScale", LVT_F32, offsetof(struct Object, oFirePiranhaPlantNeutralScale), false, LOT_NONE },
{ "oFirePiranhaPlantScale", LVT_F32, offsetof(struct Object, oFirePiranhaPlantScale), false, LOT_NONE },
{ "oFireSpitterLastWaterY", LVT_F32, offsetof(struct Object, oFireSpitterLastWaterY), false, LOT_NONE },
{ "oFireSpitterScaleVel", LVT_F32, offsetof(struct Object, oFireSpitterScaleVel), false, LOT_NONE },
{ "oFishActiveDistance", LVT_F32, offsetof(struct Object, oFishActiveDistance), false, LOT_NONE },
{ "oFishDepthDistance", LVT_F32, offsetof(struct Object, oFishDepthDistance), false, LOT_NONE },
{ "oFishPosY", LVT_F32, offsetof(struct Object, oFishPosY), false, LOT_NONE },
{ "oFishRandomOffset", LVT_F32, offsetof(struct Object, oFishRandomOffset), false, LOT_NONE },
{ "oFishRandomSpeed", LVT_S32, offsetof(struct Object, oFishRandomSpeed), false, LOT_NONE },
{ "oFishRandomVel", LVT_F32, offsetof(struct Object, oFishRandomVel), false, LOT_NONE },
{ "oFishRespawnDistance", LVT_F32, offsetof(struct Object, oFishRespawnDistance), false, LOT_NONE },
{ "oFishWaterLevel", LVT_F32, offsetof(struct Object, oFishWaterLevel), false, LOT_NONE },
{ "oFlags", LVT_U32, offsetof(struct Object, oFlags), false, LOT_NONE },
{ "oFlameThowerFlameUnk110", LVT_S32, offsetof(struct Object, oFlameThowerFlameUnk110), false, LOT_NONE },
{ "oFlameThowerUnk110", LVT_S32, offsetof(struct Object, oFlameThowerUnk110), false, LOT_NONE },
{ "oFlameUnk100", LVT_COBJECT_P, offsetof(struct Object, oFlameUnk100), true, LOT_OBJECT },
{ "oFlameUnkF4", LVT_F32, offsetof(struct Object, oFlameUnkF4), false, LOT_NONE },
{ "oFlameUnkF8", LVT_S32, offsetof(struct Object, oFlameUnkF8), false, LOT_NONE },
{ "oFlameUnkFC", LVT_F32, offsetof(struct Object, oFlameUnkFC), false, LOT_NONE },
{ "oFloatingPlatformUnk100", LVT_S32, offsetof(struct Object, oFloatingPlatformUnk100), false, LOT_NONE },
{ "oFloatingPlatformUnkF4", LVT_S32, offsetof(struct Object, oFloatingPlatformUnkF4), false, LOT_NONE },
{ "oFloatingPlatformUnkF8", LVT_F32, offsetof(struct Object, oFloatingPlatformUnkF8), false, LOT_NONE },
{ "oFloatingPlatformUnkFC", LVT_F32, offsetof(struct Object, oFloatingPlatformUnkFC), false, LOT_NONE },
{ "oFloor", LVT_COBJECT_P, offsetof(struct Object, oFloor), true, LOT_SURFACE },
{ "oFloorHeight", LVT_F32, offsetof(struct Object, oFloorHeight), false, LOT_NONE },
{ "oFloorRoom", LVT_S16, offsetof(struct Object, oFloorRoom), false, LOT_NONE },
{ "oFloorSwitchPressAnimationUnk100", LVT_S32, offsetof(struct Object, oFloorSwitchPressAnimationUnk100), false, LOT_NONE },
{ "oFloorSwitchPressAnimationUnkF4", LVT_S32, offsetof(struct Object, oFloorSwitchPressAnimationUnkF4), false, LOT_NONE },
{ "oFloorSwitchPressAnimationUnkF8", LVT_S32, offsetof(struct Object, oFloorSwitchPressAnimationUnkF8), false, LOT_NONE },
{ "oFloorSwitchPressAnimationUnkFC", LVT_S32, offsetof(struct Object, oFloorSwitchPressAnimationUnkFC), false, LOT_NONE },
{ "oFloorType", LVT_S16, offsetof(struct Object, oFloorType), false, LOT_NONE },
{ "oFlyGuyIdleTimer", LVT_S32, offsetof(struct Object, oFlyGuyIdleTimer), false, LOT_NONE },
{ "oFlyGuyLungeTargetPitch", LVT_S32, offsetof(struct Object, oFlyGuyLungeTargetPitch), false, LOT_NONE },
{ "oFlyGuyLungeYDecel", LVT_F32, offsetof(struct Object, oFlyGuyLungeYDecel), false, LOT_NONE },
{ "oFlyGuyOscTimer", LVT_S32, offsetof(struct Object, oFlyGuyOscTimer), false, LOT_NONE },
{ "oFlyGuyScaleVel", LVT_F32, offsetof(struct Object, oFlyGuyScaleVel), false, LOT_NONE },
{ "oFlyGuyTargetRoll", LVT_S32, offsetof(struct Object, oFlyGuyTargetRoll), false, LOT_NONE },
{ "oFlyGuyUnusedJitter", LVT_S32, offsetof(struct Object, oFlyGuyUnusedJitter), false, LOT_NONE },
{ "oForwardVel", LVT_F32, offsetof(struct Object, oForwardVel), false, LOT_NONE },
{ "oForwardVelS32", LVT_S32, offsetof(struct Object, oForwardVelS32), false, LOT_NONE },
{ "oFriction", LVT_F32, offsetof(struct Object, oFriction), false, LOT_NONE },
{ "oGoombaBlinkTimer", LVT_S32, offsetof(struct Object, oGoombaBlinkTimer), false, LOT_NONE },
{ "oGoombaJumpCooldown", LVT_U32, offsetof(struct Object, oGoombaJumpCooldown), false, LOT_NONE },
{ "oGoombaRelativeSpeed", LVT_F32, offsetof(struct Object, oGoombaRelativeSpeed), false, LOT_NONE },
{ "oGoombaScale", LVT_F32, offsetof(struct Object, oGoombaScale), false, LOT_NONE },
{ "oGoombaSize", LVT_S32, offsetof(struct Object, oGoombaSize), false, LOT_NONE },
{ "oGoombaTargetYaw", LVT_S32, offsetof(struct Object, oGoombaTargetYaw), false, LOT_NONE },
{ "oGoombaTurningAwayFromWall", LVT_S32, offsetof(struct Object, oGoombaTurningAwayFromWall), false, LOT_NONE },
{ "oGoombaWalkTimer", LVT_S32, offsetof(struct Object, oGoombaWalkTimer), false, LOT_NONE },
{ "oGrandStarUnk108", LVT_S32, offsetof(struct Object, oGrandStarUnk108), false, LOT_NONE },
{ "oGraphYOffset", LVT_F32, offsetof(struct Object, oGraphYOffset), false, LOT_NONE },
{ "oGravity", LVT_F32, offsetof(struct Object, oGravity), false, LOT_NONE },
{ "oHauntedBookshelfShouldOpen", LVT_S32, offsetof(struct Object, oHauntedBookshelfShouldOpen), false, LOT_NONE },
{ "oHauntedChairUnk100", LVT_S32_P, offsetof(struct Object, oHauntedChairUnk100), true, LOT_POINTER },
{ "oHauntedChairUnk104", LVT_S32, offsetof(struct Object, oHauntedChairUnk104), false, LOT_NONE },
{ "oHauntedChairUnkF4", LVT_S32, offsetof(struct Object, oHauntedChairUnkF4), false, LOT_NONE },
{ "oHauntedChairUnkF8", LVT_F32, offsetof(struct Object, oHauntedChairUnkF8), false, LOT_NONE },
{ "oHauntedChairUnkFC", LVT_F32, offsetof(struct Object, oHauntedChairUnkFC), false, LOT_NONE },
{ "oHealth", LVT_S32, offsetof(struct Object, oHealth), false, LOT_NONE },
{ "oHeaveHoUnk88", LVT_S32, offsetof(struct Object, oHeaveHoUnk88), false, LOT_NONE },
{ "oHeaveHoUnkF4", LVT_F32, offsetof(struct Object, oHeaveHoUnkF4), false, LOT_NONE },
{ "oHeldState", LVT_U32, offsetof(struct Object, oHeldState), false, LOT_NONE },
{ "oHiddenBlueCoinSwitch", LVT_COBJECT_P, offsetof(struct Object, oHiddenBlueCoinSwitch), true, LOT_OBJECT },
{ "oHiddenObjectUnkF4", LVT_COBJECT_P, offsetof(struct Object, oHiddenObjectUnkF4), true, LOT_OBJECT },
{ "oHiddenStarTriggerCounter", LVT_S32, offsetof(struct Object, oHiddenStarTriggerCounter), false, LOT_NONE },
{ "oHomeX", LVT_F32, offsetof(struct Object, oHomeX), false, LOT_NONE },
{ "oHomeY", LVT_F32, offsetof(struct Object, oHomeY), false, LOT_NONE },
{ "oHomeZ", LVT_F32, offsetof(struct Object, oHomeZ), false, LOT_NONE },
{ "oHomingAmpAvgY", LVT_F32, offsetof(struct Object, oHomingAmpAvgY), false, LOT_NONE },
{ "oHomingAmpLockedOn", LVT_S32, offsetof(struct Object, oHomingAmpLockedOn), false, LOT_NONE },
{ "oHootAvailability", LVT_S32, offsetof(struct Object, oHootAvailability), false, LOT_NONE },
{ "oHootMarioReleaseTime", LVT_S32, offsetof(struct Object, oHootMarioReleaseTime), false, LOT_NONE },
{ "oHorizontalGrindelDistToHome", LVT_F32, offsetof(struct Object, oHorizontalGrindelDistToHome), false, LOT_NONE },
{ "oHorizontalGrindelOnGround", LVT_S32, offsetof(struct Object, oHorizontalGrindelOnGround), false, LOT_NONE },
{ "oHorizontalGrindelTargetYaw", LVT_S32, offsetof(struct Object, oHorizontalGrindelTargetYaw), false, LOT_NONE },
{ "oHorizontalMovementUnk100", LVT_F32, offsetof(struct Object, oHorizontalMovementUnk100), false, LOT_NONE },
{ "oHorizontalMovementUnk104", LVT_S32, offsetof(struct Object, oHorizontalMovementUnk104), false, LOT_NONE },
{ "oHorizontalMovementUnk108", LVT_F32, offsetof(struct Object, oHorizontalMovementUnk108), false, LOT_NONE },
{ "oHorizontalMovementUnkF4", LVT_S32, offsetof(struct Object, oHorizontalMovementUnkF4), false, LOT_NONE },
{ "oHorizontalMovementUnkF8", LVT_S32, offsetof(struct Object, oHorizontalMovementUnkF8), false, LOT_NONE },
{ "oIntangibleTimer", LVT_S32, offsetof(struct Object, oIntangibleTimer), false, LOT_NONE },
{ "oInteractStatus", LVT_S32, offsetof(struct Object, oInteractStatus), false, LOT_NONE },
{ "oInteractType", LVT_U32, offsetof(struct Object, oInteractType), false, LOT_NONE },
{ "oInteractionSubtype", LVT_U32, offsetof(struct Object, oInteractionSubtype), false, LOT_NONE },
{ "oIntroLakituCloud", LVT_COBJECT_P, offsetof(struct Object, oIntroLakituCloud), true, LOT_OBJECT },
{ "oIntroLakituSplineSegment", LVT_F32, offsetof(struct Object, oIntroLakituSplineSegment), false, LOT_NONE },
{ "oIntroLakituSplineSegmentProgress", LVT_F32, offsetof(struct Object, oIntroLakituSplineSegmentProgress), false, LOT_NONE },
{ "oIntroLakituUnk100", LVT_F32, offsetof(struct Object, oIntroLakituUnk100), false, LOT_NONE },
{ "oIntroLakituUnk104", LVT_F32, offsetof(struct Object, oIntroLakituUnk104), false, LOT_NONE },
{ "oIntroLakituUnk108", LVT_F32, offsetof(struct Object, oIntroLakituUnk108), false, LOT_NONE },
{ "oIntroLakituUnk10C", LVT_F32, offsetof(struct Object, oIntroLakituUnk10C), false, LOT_NONE },
{ "oIntroLakituUnk110", LVT_F32, offsetof(struct Object, oIntroLakituUnk110), false, LOT_NONE },
{ "oIntroPeachDistToCamera", LVT_F32, offsetof(struct Object, oIntroPeachDistToCamera), false, LOT_NONE },
{ "oIntroPeachPitchFromFocus", LVT_F32, offsetof(struct Object, oIntroPeachPitchFromFocus), false, LOT_NONE },
{ "oIntroPeachYawFromFocus", LVT_F32, offsetof(struct Object, oIntroPeachYawFromFocus), false, LOT_NONE },
{ "oJrbSlidingBoxUnkF4", LVT_COBJECT_P, offsetof(struct Object, oJrbSlidingBoxUnkF4), true, LOT_OBJECT },
{ "oJrbSlidingBoxUnkF8", LVT_S32, offsetof(struct Object, oJrbSlidingBoxUnkF8), false, LOT_NONE },
{ "oJrbSlidingBoxUnkFC", LVT_F32, offsetof(struct Object, oJrbSlidingBoxUnkFC), false, LOT_NONE },
{ "oJumpingBoxUnkF4", LVT_S32, offsetof(struct Object, oJumpingBoxUnkF4), false, LOT_NONE },
{ "oJumpingBoxUnkF8", LVT_S32, offsetof(struct Object, oJumpingBoxUnkF8), false, LOT_NONE },
{ "oKickableBoardF4", LVT_S32, offsetof(struct Object, oKickableBoardF4), false, LOT_NONE },
{ "oKickableBoardF8", LVT_S32, offsetof(struct Object, oKickableBoardF8), false, LOT_NONE },
{ "oKingBobombUnk100", LVT_S32, offsetof(struct Object, oKingBobombUnk100), false, LOT_NONE },
{ "oKingBobombUnk104", LVT_S32, offsetof(struct Object, oKingBobombUnk104), false, LOT_NONE },
{ "oKingBobombUnk108", LVT_S32, offsetof(struct Object, oKingBobombUnk108), false, LOT_NONE },
{ "oKingBobombUnk88", LVT_S32, offsetof(struct Object, oKingBobombUnk88), false, LOT_NONE },
{ "oKingBobombUnkF8", LVT_S32, offsetof(struct Object, oKingBobombUnkF8), false, LOT_NONE },
{ "oKingBobombUnkFC", LVT_S32, offsetof(struct Object, oKingBobombUnkFC), false, LOT_NONE },
{ "oKleptoDistanceToTarget", LVT_F32, offsetof(struct Object, oKleptoDistanceToTarget), false, LOT_NONE },
{ "oKleptoSpeed", LVT_F32, offsetof(struct Object, oKleptoSpeed), false, LOT_NONE },
{ "oKleptoStartPosX", LVT_F32, offsetof(struct Object, oKleptoStartPosX), false, LOT_NONE },
{ "oKleptoStartPosY", LVT_F32, offsetof(struct Object, oKleptoStartPosY), false, LOT_NONE },
{ "oKleptoStartPosZ", LVT_F32, offsetof(struct Object, oKleptoStartPosZ), false, LOT_NONE },
{ "oKleptoTargetNumber", LVT_S16, offsetof(struct Object, oKleptoTargetNumber), false, LOT_NONE },
{ "oKleptoTimeUntilTargetChange", LVT_S32, offsetof(struct Object, oKleptoTimeUntilTargetChange), false, LOT_NONE },
{ "oKleptoUnk1AE", LVT_S16, offsetof(struct Object, oKleptoUnk1AE), false, LOT_NONE },
{ "oKleptoUnk1B0", LVT_S16, offsetof(struct Object, oKleptoUnk1B0), false, LOT_NONE },
{ "oKleptoUnkF8", LVT_F32, offsetof(struct Object, oKleptoUnkF8), false, LOT_NONE },
{ "oKleptoUnkFC", LVT_F32, offsetof(struct Object, oKleptoUnkFC), false, LOT_NONE },
{ "oKleptoYawToTarget", LVT_S16, offsetof(struct Object, oKleptoYawToTarget), false, LOT_NONE },
{ "oKoopaAgility", LVT_F32, offsetof(struct Object, oKoopaAgility), false, LOT_NONE },
{ "oKoopaAngleToMario", LVT_S32, offsetof(struct Object, oKoopaAngleToMario), false, LOT_NONE },
{ "oKoopaBlinkTimer", LVT_S32, offsetof(struct Object, oKoopaBlinkTimer), false, LOT_NONE },
{ "oKoopaCountdown", LVT_S16, offsetof(struct Object, oKoopaCountdown), false, LOT_NONE },
{ "oKoopaDistanceToMario", LVT_F32, offsetof(struct Object, oKoopaDistanceToMario), false, LOT_NONE },
{ "oKoopaMovementType", LVT_S32, offsetof(struct Object, oKoopaMovementType), false, LOT_NONE },
{ "oKoopaRaceEndpointKoopaFinished", LVT_S32, offsetof(struct Object, oKoopaRaceEndpointKoopaFinished), false, LOT_NONE },
{ "oKoopaRaceEndpointRaceBegun", LVT_S32, offsetof(struct Object, oKoopaRaceEndpointRaceBegun), false, LOT_NONE },
{ "oKoopaRaceEndpointRaceEnded", LVT_S32, offsetof(struct Object, oKoopaRaceEndpointRaceEnded), false, LOT_NONE },
{ "oKoopaRaceEndpointRaceStatus", LVT_S32, offsetof(struct Object, oKoopaRaceEndpointRaceStatus), false, LOT_NONE },
{ "oKoopaRaceEndpointUnk100", LVT_S32, offsetof(struct Object, oKoopaRaceEndpointUnk100), false, LOT_NONE },
{ "oKoopaShellFlameUnkF4", LVT_F32, offsetof(struct Object, oKoopaShellFlameUnkF4), false, LOT_NONE },
{ "oKoopaShellFlameUnkF8", LVT_F32, offsetof(struct Object, oKoopaShellFlameUnkF8), false, LOT_NONE },
{ "oKoopaTargetYaw", LVT_S32, offsetof(struct Object, oKoopaTargetYaw), false, LOT_NONE },
{ "oKoopaTheQuickInitTextboxCooldown", LVT_S16, offsetof(struct Object, oKoopaTheQuickInitTextboxCooldown), false, LOT_NONE },
{ "oKoopaTheQuickRaceIndex", LVT_S16, offsetof(struct Object, oKoopaTheQuickRaceIndex), false, LOT_NONE },
{ "oKoopaTurningAwayFromWall", LVT_S32, offsetof(struct Object, oKoopaTurningAwayFromWall), false, LOT_NONE },
{ "oKoopaUnshelledTimeUntilTurn", LVT_S32, offsetof(struct Object, oKoopaUnshelledTimeUntilTurn), false, LOT_NONE },
{ "oLllRotatingHexFlameUnkF4", LVT_F32, offsetof(struct Object, oLllRotatingHexFlameUnkF4), false, LOT_NONE },
{ "oLllRotatingHexFlameUnkF8", LVT_F32, offsetof(struct Object, oLllRotatingHexFlameUnkF8), false, LOT_NONE },
{ "oLllRotatingHexFlameUnkFC", LVT_F32, offsetof(struct Object, oLllRotatingHexFlameUnkFC), false, LOT_NONE },
{ "oLllWoodPieceOscillationTimer", LVT_S32, offsetof(struct Object, oLllWoodPieceOscillationTimer), false, LOT_NONE },
{ "oMacroUnk108", LVT_F32, offsetof(struct Object, oMacroUnk108), false, LOT_NONE },
{ "oMacroUnk10C", LVT_F32, offsetof(struct Object, oMacroUnk10C), false, LOT_NONE },
{ "oMacroUnk110", LVT_F32, offsetof(struct Object, oMacroUnk110), false, LOT_NONE },
{ "oMantaUnk1AC", LVT_S32, offsetof(struct Object, oMantaUnk1AC), false, LOT_NONE },
{ "oMantaUnkF4", LVT_S32, offsetof(struct Object, oMantaUnkF4), false, LOT_NONE },
{ "oMantaUnkF8", LVT_S32, offsetof(struct Object, oMantaUnkF8), false, LOT_NONE },
{ "oMarioBurnTimer", LVT_S32, offsetof(struct Object, oMarioBurnTimer), false, LOT_NONE },
{ "oMarioCannonInputYaw", LVT_S32, offsetof(struct Object, oMarioCannonInputYaw), false, LOT_NONE },
{ "oMarioCannonObjectYaw", LVT_S32, offsetof(struct Object, oMarioCannonObjectYaw), false, LOT_NONE },
{ "oMarioLongJumpIsSlow", LVT_S32, offsetof(struct Object, oMarioLongJumpIsSlow), false, LOT_NONE },
{ "oMarioParticleFlags", LVT_S32, offsetof(struct Object, oMarioParticleFlags), false, LOT_NONE },
{ "oMarioPolePos", LVT_F32, offsetof(struct Object, oMarioPolePos), false, LOT_NONE },
{ "oMarioPoleUnk108", LVT_S32, offsetof(struct Object, oMarioPoleUnk108), false, LOT_NONE },
{ "oMarioPoleYawVel", LVT_S32, offsetof(struct Object, oMarioPoleYawVel), false, LOT_NONE },
{ "oMarioReadingSignDPosX", LVT_F32, offsetof(struct Object, oMarioReadingSignDPosX), false, LOT_NONE },
{ "oMarioReadingSignDPosZ", LVT_F32, offsetof(struct Object, oMarioReadingSignDPosZ), false, LOT_NONE },
{ "oMarioReadingSignDYaw", LVT_S32, offsetof(struct Object, oMarioReadingSignDYaw), false, LOT_NONE },
{ "oMarioSteepJumpYaw", LVT_S32, offsetof(struct Object, oMarioSteepJumpYaw), false, LOT_NONE },
{ "oMarioTornadoPosY", LVT_F32, offsetof(struct Object, oMarioTornadoPosY), false, LOT_NONE },
{ "oMarioTornadoYawVel", LVT_S32, offsetof(struct Object, oMarioTornadoYawVel), false, LOT_NONE },
{ "oMarioWalkingPitch", LVT_S32, offsetof(struct Object, oMarioWalkingPitch), false, LOT_NONE },
{ "oMarioWhirlpoolPosY", LVT_F32, offsetof(struct Object, oMarioWhirlpoolPosY), false, LOT_NONE },
{ "oMenuButtonActionPhase", LVT_S32, offsetof(struct Object, oMenuButtonActionPhase), false, LOT_NONE },
{ "oMenuButtonIsCustom", LVT_S32, offsetof(struct Object, oMenuButtonIsCustom), false, LOT_NONE },
{ "oMenuButtonOrigPosX", LVT_F32, offsetof(struct Object, oMenuButtonOrigPosX), false, LOT_NONE },
{ "oMenuButtonOrigPosY", LVT_F32, offsetof(struct Object, oMenuButtonOrigPosY), false, LOT_NONE },
{ "oMenuButtonOrigPosZ", LVT_F32, offsetof(struct Object, oMenuButtonOrigPosZ), false, LOT_NONE },
{ "oMenuButtonScale", LVT_F32, offsetof(struct Object, oMenuButtonScale), false, LOT_NONE },
{ "oMenuButtonState", LVT_S32, offsetof(struct Object, oMenuButtonState), false, LOT_NONE },
{ "oMenuButtonTimer", LVT_S32, offsetof(struct Object, oMenuButtonTimer), false, LOT_NONE },
{ "oMerryGoRoundBooManagerNumBoosKilled", LVT_S32, offsetof(struct Object, oMerryGoRoundBooManagerNumBoosKilled), false, LOT_NONE },
{ "oMerryGoRoundBooManagerNumBoosSpawned", LVT_S32, offsetof(struct Object, oMerryGoRoundBooManagerNumBoosSpawned), false, LOT_NONE },
{ "oMerryGoRoundMarioIsOutside", LVT_S32, offsetof(struct Object, oMerryGoRoundMarioIsOutside), false, LOT_NONE },
{ "oMerryGoRoundMusicShouldPlay", LVT_S32, offsetof(struct Object, oMerryGoRoundMusicShouldPlay), false, LOT_NONE },
{ "oMerryGoRoundStopped", LVT_S32, offsetof(struct Object, oMerryGoRoundStopped), false, LOT_NONE },
{ "oMipsForwardVelocity", LVT_F32, offsetof(struct Object, oMipsForwardVelocity), false, LOT_NONE },
{ "oMipsStarStatus", LVT_S32, offsetof(struct Object, oMipsStarStatus), false, LOT_NONE },
{ "oMipsStartWaypointIndex", LVT_S32, offsetof(struct Object, oMipsStartWaypointIndex), false, LOT_NONE },
{ "oMoneybagJumpState", LVT_S32, offsetof(struct Object, oMoneybagJumpState), false, LOT_NONE },
{ "oMontyMoleCurrentHole", LVT_COBJECT_P, offsetof(struct Object, oMontyMoleCurrentHole), true, LOT_OBJECT },
{ "oMontyMoleHeightRelativeToFloor", LVT_F32, offsetof(struct Object, oMontyMoleHeightRelativeToFloor), false, LOT_NONE },
{ "oMontyMoleHoleCooldown", LVT_S32, offsetof(struct Object, oMontyMoleHoleCooldown), false, LOT_NONE },
{ "oMontyMoleHoleX", LVT_F32, offsetof(struct Object, oMontyMoleHoleX), false, LOT_NONE },
{ "oMontyMoleHoleY", LVT_F32, offsetof(struct Object, oMontyMoleHoleY), false, LOT_NONE },
{ "oMontyMoleHoleZ", LVT_F32, offsetof(struct Object, oMontyMoleHoleZ), false, LOT_NONE },
{ "oMoveAnglePitch", LVT_S32, offsetof(struct Object, oMoveAnglePitch), false, LOT_NONE },
{ "oMoveAngleRoll", LVT_S32, offsetof(struct Object, oMoveAngleRoll), false, LOT_NONE },
{ "oMoveAngleYaw", LVT_S32, offsetof(struct Object, oMoveAngleYaw), false, LOT_NONE },
{ "oMoveFlags", LVT_U32, offsetof(struct Object, oMoveFlags), false, LOT_NONE },
{ "oMovingFlameTimer", LVT_S32, offsetof(struct Object, oMovingFlameTimer), false, LOT_NONE },
{ "oMrBlizzardChangeInDizziness", LVT_F32, offsetof(struct Object, oMrBlizzardChangeInDizziness), false, LOT_NONE },
{ "oMrBlizzardDistFromHome", LVT_S32, offsetof(struct Object, oMrBlizzardDistFromHome), false, LOT_NONE },
{ "oMrBlizzardDizziness", LVT_F32, offsetof(struct Object, oMrBlizzardDizziness), false, LOT_NONE },
{ "oMrBlizzardGraphYOffset", LVT_F32, offsetof(struct Object, oMrBlizzardGraphYOffset), false, LOT_NONE },
{ "oMrBlizzardGraphYVel", LVT_F32, offsetof(struct Object, oMrBlizzardGraphYVel), false, LOT_NONE },
{ "oMrBlizzardHeldObj", LVT_COBJECT_P, offsetof(struct Object, oMrBlizzardHeldObj), true, LOT_OBJECT },
{ "oMrBlizzardScale", LVT_F32, offsetof(struct Object, oMrBlizzardScale), false, LOT_NONE },
{ "oMrBlizzardTargetMoveYaw", LVT_S32, offsetof(struct Object, oMrBlizzardTargetMoveYaw), false, LOT_NONE },
{ "oMrBlizzardTimer", LVT_S32, offsetof(struct Object, oMrBlizzardTimer), false, LOT_NONE },
{ "oMrISize", LVT_F32, offsetof(struct Object, oMrISize), false, LOT_NONE },
{ "oMrIUnk100", LVT_S32, offsetof(struct Object, oMrIUnk100), false, LOT_NONE },
{ "oMrIUnk104", LVT_S32, offsetof(struct Object, oMrIUnk104), false, LOT_NONE },
{ "oMrIUnk108", LVT_S32, offsetof(struct Object, oMrIUnk108), false, LOT_NONE },
{ "oMrIUnk110", LVT_S32, offsetof(struct Object, oMrIUnk110), false, LOT_NONE },
{ "oMrIUnkF4", LVT_S32, offsetof(struct Object, oMrIUnkF4), false, LOT_NONE },
{ "oMrIUnkFC", LVT_S32, offsetof(struct Object, oMrIUnkFC), false, LOT_NONE },
{ "oNumLootCoins", LVT_S32, offsetof(struct Object, oNumLootCoins), false, LOT_NONE },
{ "oOpacity", LVT_S32, offsetof(struct Object, oOpacity), false, LOT_NONE },
{ "oOpenableGrillUnk88", LVT_S32, offsetof(struct Object, oOpenableGrillUnk88), false, LOT_NONE },
{ "oOpenableGrillUnkF4", LVT_COBJECT_P, offsetof(struct Object, oOpenableGrillUnkF4), true, LOT_OBJECT },
{ "oParentRelativePosX", LVT_F32, offsetof(struct Object, oParentRelativePosX), false, LOT_NONE },
{ "oParentRelativePosY", LVT_F32, offsetof(struct Object, oParentRelativePosY), false, LOT_NONE },
{ "oParentRelativePosZ", LVT_F32, offsetof(struct Object, oParentRelativePosZ), false, LOT_NONE },
{ "oPathedPrevWaypoint", LVT_COBJECT_P, offsetof(struct Object, oPathedPrevWaypoint), true, LOT_WAYPOINT },
{ "oPathedPrevWaypointFlags", LVT_S32, offsetof(struct Object, oPathedPrevWaypointFlags), false, LOT_NONE },
{ "oPathedStartWaypoint", LVT_COBJECT_P, offsetof(struct Object, oPathedStartWaypoint), true, LOT_WAYPOINT },
{ "oPathedTargetPitch", LVT_S32, offsetof(struct Object, oPathedTargetPitch), false, LOT_NONE },
{ "oPathedTargetYaw", LVT_S32, offsetof(struct Object, oPathedTargetYaw), false, LOT_NONE },
{ "oPiranhaPlantScale", LVT_F32, offsetof(struct Object, oPiranhaPlantScale), false, LOT_NONE },
{ "oPiranhaPlantSleepMusicState", LVT_S32, offsetof(struct Object, oPiranhaPlantSleepMusicState), false, LOT_NONE },
{ "oPitouneUnkF4", LVT_F32, offsetof(struct Object, oPitouneUnkF4), false, LOT_NONE },
{ "oPitouneUnkF8", LVT_F32, offsetof(struct Object, oPitouneUnkF8), false, LOT_NONE },
{ "oPitouneUnkFC", LVT_F32, offsetof(struct Object, oPitouneUnkFC), false, LOT_NONE },
{ "oPlatformOnTrackBaseBallIndex", LVT_S32, offsetof(struct Object, oPlatformOnTrackBaseBallIndex), false, LOT_NONE },
{ "oPlatformOnTrackDistMovedSinceLastBall", LVT_F32, offsetof(struct Object, oPlatformOnTrackDistMovedSinceLastBall), false, LOT_NONE },
{ "oPlatformOnTrackIsNotHMC", LVT_S16, offsetof(struct Object, oPlatformOnTrackIsNotHMC), false, LOT_NONE },
{ "oPlatformOnTrackIsNotSkiLift", LVT_S16, offsetof(struct Object, oPlatformOnTrackIsNotSkiLift), false, LOT_NONE },
{ "oPlatformOnTrackOffsetY", LVT_F32, offsetof(struct Object, oPlatformOnTrackOffsetY), false, LOT_NONE },
{ "oPlatformOnTrackPitch", LVT_S32, offsetof(struct Object, oPlatformOnTrackPitch), false, LOT_NONE },
{ "oPlatformOnTrackPrevWaypoint", LVT_COBJECT_P, offsetof(struct Object, oPlatformOnTrackPrevWaypoint), true, LOT_WAYPOINT },
{ "oPlatformOnTrackPrevWaypointFlags", LVT_S32, offsetof(struct Object, oPlatformOnTrackPrevWaypointFlags), false, LOT_NONE },
{ "oPlatformOnTrackSkiLiftRollVel", LVT_F32, offsetof(struct Object, oPlatformOnTrackSkiLiftRollVel), false, LOT_NONE },
{ "oPlatformOnTrackStartWaypoint", LVT_COBJECT_P, offsetof(struct Object, oPlatformOnTrackStartWaypoint), true, LOT_WAYPOINT },
{ "oPlatformOnTrackType", LVT_S16, offsetof(struct Object, oPlatformOnTrackType), false, LOT_NONE },
{ "oPlatformOnTrackWasStoodOn", LVT_S16, offsetof(struct Object, oPlatformOnTrackWasStoodOn), false, LOT_NONE },
{ "oPlatformOnTrackYaw", LVT_S32, offsetof(struct Object, oPlatformOnTrackYaw), false, LOT_NONE },
{ "oPlatformSpawnerUnk100", LVT_F32, offsetof(struct Object, oPlatformSpawnerUnk100), false, LOT_NONE },
{ "oPlatformSpawnerUnk104", LVT_F32, offsetof(struct Object, oPlatformSpawnerUnk104), false, LOT_NONE },
{ "oPlatformSpawnerUnk108", LVT_F32, offsetof(struct Object, oPlatformSpawnerUnk108), false, LOT_NONE },
{ "oPlatformSpawnerUnkF4", LVT_S32, offsetof(struct Object, oPlatformSpawnerUnkF4), false, LOT_NONE },
{ "oPlatformSpawnerUnkF8", LVT_S32, offsetof(struct Object, oPlatformSpawnerUnkF8), false, LOT_NONE },
{ "oPlatformSpawnerUnkFC", LVT_S32, offsetof(struct Object, oPlatformSpawnerUnkFC), false, LOT_NONE },
{ "oPlatformTimer", LVT_S32, offsetof(struct Object, oPlatformTimer), false, LOT_NONE },
{ "oPlatformUnk10C", LVT_F32, offsetof(struct Object, oPlatformUnk10C), false, LOT_NONE },
{ "oPlatformUnk110", LVT_F32, offsetof(struct Object, oPlatformUnk110), false, LOT_NONE },
{ "oPlatformUnkF8", LVT_COBJECT_P, offsetof(struct Object, oPlatformUnkF8), true, LOT_OBJECT },
{ "oPlatformUnkFC", LVT_S32, offsetof(struct Object, oPlatformUnkFC), false, LOT_NONE },
{ "oPokeyAliveBodyPartFlags", LVT_U32, offsetof(struct Object, oPokeyAliveBodyPartFlags), false, LOT_NONE },
{ "oPokeyBodyPartBlinkTimer", LVT_S32, offsetof(struct Object, oPokeyBodyPartBlinkTimer), false, LOT_NONE },
{ "oPokeyBodyPartDeathDelayAfterHeadKilled", LVT_S32, offsetof(struct Object, oPokeyBodyPartDeathDelayAfterHeadKilled), false, LOT_NONE },
{ "oPokeyBottomBodyPartSize", LVT_F32, offsetof(struct Object, oPokeyBottomBodyPartSize), false, LOT_NONE },
{ "oPokeyChangeTargetTimer", LVT_S32, offsetof(struct Object, oPokeyChangeTargetTimer), false, LOT_NONE },
{ "oPokeyHeadWasKilled", LVT_S32, offsetof(struct Object, oPokeyHeadWasKilled), false, LOT_NONE },
{ "oPokeyNumAliveBodyParts", LVT_S32, offsetof(struct Object, oPokeyNumAliveBodyParts), false, LOT_NONE },
{ "oPokeyTargetYaw", LVT_S32, offsetof(struct Object, oPokeyTargetYaw), false, LOT_NONE },
{ "oPokeyTurningAwayFromWall", LVT_S32, offsetof(struct Object, oPokeyTurningAwayFromWall), false, LOT_NONE },
{ "oPosX", LVT_F32, offsetof(struct Object, oPosX), false, LOT_NONE },
{ "oPosY", LVT_F32, offsetof(struct Object, oPosY), false, LOT_NONE },
{ "oPosZ", LVT_F32, offsetof(struct Object, oPosZ), false, LOT_NONE },
{ "oPrevAction", LVT_S32, offsetof(struct Object, oPrevAction), false, LOT_NONE },
{ "oPyramidTopFragmentsScale", LVT_F32, offsetof(struct Object, oPyramidTopFragmentsScale), false, LOT_NONE },
{ "oPyramidTopPillarsTouched", LVT_S32, offsetof(struct Object, oPyramidTopPillarsTouched), false, LOT_NONE },
{ "oRRCruiserWingUnkF4", LVT_S32, offsetof(struct Object, oRRCruiserWingUnkF4), false, LOT_NONE },
{ "oRRCruiserWingUnkF8", LVT_S32, offsetof(struct Object, oRRCruiserWingUnkF8), false, LOT_NONE },
{ "oRacingPenguinFinalTextbox", LVT_S16, offsetof(struct Object, oRacingPenguinFinalTextbox), false, LOT_NONE },
{ "oRacingPenguinInitTextCooldown", LVT_S32, offsetof(struct Object, oRacingPenguinInitTextCooldown), false, LOT_NONE },
{ "oRacingPenguinMarioCheated", LVT_S16, offsetof(struct Object, oRacingPenguinMarioCheated), false, LOT_NONE },
{ "oRacingPenguinMarioWon", LVT_S16, offsetof(struct Object, oRacingPenguinMarioWon), false, LOT_NONE },
{ "oRacingPenguinReachedBottom", LVT_S16, offsetof(struct Object, oRacingPenguinReachedBottom), false, LOT_NONE },
{ "oRacingPenguinWeightedNewTargetSpeed", LVT_F32, offsetof(struct Object, oRacingPenguinWeightedNewTargetSpeed), false, LOT_NONE },
// { "oRespawnerBehaviorToRespawn", LVT_???, offsetof(struct Object, oRespawnerBehaviorToRespawn), true, LOT_??? }, <--- UNIMPLEMENTED
{ "oRespawnerMinSpawnDist", LVT_F32, offsetof(struct Object, oRespawnerMinSpawnDist), false, LOT_NONE },
{ "oRespawnerModelToRespawn", LVT_S32, offsetof(struct Object, oRespawnerModelToRespawn), false, LOT_NONE },
{ "oRollingLogUnkF4", LVT_F32, offsetof(struct Object, oRollingLogUnkF4), false, LOT_NONE },
{ "oRoom", LVT_S32, offsetof(struct Object, oRoom), false, LOT_NONE },
{ "oSLSnowmanWindOriginalYaw", LVT_S32, offsetof(struct Object, oSLSnowmanWindOriginalYaw), false, LOT_NONE },
{ "oSLWalkingPenguinCurStep", LVT_S32, offsetof(struct Object, oSLWalkingPenguinCurStep), false, LOT_NONE },
{ "oSLWalkingPenguinCurStepTimer", LVT_S32, offsetof(struct Object, oSLWalkingPenguinCurStepTimer), false, LOT_NONE },
{ "oSLWalkingPenguinWindCollisionXPos", LVT_F32, offsetof(struct Object, oSLWalkingPenguinWindCollisionXPos), false, LOT_NONE },
{ "oSLWalkingPenguinWindCollisionZPos", LVT_F32, offsetof(struct Object, oSLWalkingPenguinWindCollisionZPos), false, LOT_NONE },
{ "oScuttlebugSpawnerUnk88", LVT_S32, offsetof(struct Object, oScuttlebugSpawnerUnk88), false, LOT_NONE },
{ "oScuttlebugSpawnerUnkF4", LVT_S32, offsetof(struct Object, oScuttlebugSpawnerUnkF4), false, LOT_NONE },
{ "oScuttlebugUnkF4", LVT_S32, offsetof(struct Object, oScuttlebugUnkF4), false, LOT_NONE },
{ "oScuttlebugUnkF8", LVT_S32, offsetof(struct Object, oScuttlebugUnkF8), false, LOT_NONE },
{ "oScuttlebugUnkFC", LVT_S32, offsetof(struct Object, oScuttlebugUnkFC), false, LOT_NONE },
{ "oSeesawPlatformPitchVel", LVT_F32, offsetof(struct Object, oSeesawPlatformPitchVel), false, LOT_NONE },
{ "oShipPart3UnkF4", LVT_S32, offsetof(struct Object, oShipPart3UnkF4), false, LOT_NONE },
{ "oShipPart3UnkF8", LVT_S32, offsetof(struct Object, oShipPart3UnkF8), false, LOT_NONE },
{ "oSinkWhenSteppedOnUnk104", LVT_S32, offsetof(struct Object, oSinkWhenSteppedOnUnk104), false, LOT_NONE },
{ "oSinkWhenSteppedOnUnk108", LVT_F32, offsetof(struct Object, oSinkWhenSteppedOnUnk108), false, LOT_NONE },
{ "oSkeeterLastWaterY", LVT_F32, offsetof(struct Object, oSkeeterLastWaterY), false, LOT_NONE },
{ "oSkeeterTargetAngle", LVT_S32, offsetof(struct Object, oSkeeterTargetAngle), false, LOT_NONE },
{ "oSkeeterUnk1AC", LVT_S16, offsetof(struct Object, oSkeeterUnk1AC), false, LOT_NONE },
{ "oSkeeterUnkF8", LVT_S32, offsetof(struct Object, oSkeeterUnkF8), false, LOT_NONE },
{ "oSkeeterUnkFC", LVT_F32, offsetof(struct Object, oSkeeterUnkFC), false, LOT_NONE },
{ "oSkeeterWaitTime", LVT_S32, offsetof(struct Object, oSkeeterWaitTime), false, LOT_NONE },
{ "oSmallBompInitX", LVT_F32, offsetof(struct Object, oSmallBompInitX), false, LOT_NONE },
{ "oSmallPenguinUnk100", LVT_S32, offsetof(struct Object, oSmallPenguinUnk100), false, LOT_NONE },
{ "oSmallPenguinUnk104", LVT_F32, offsetof(struct Object, oSmallPenguinUnk104), false, LOT_NONE },
{ "oSmallPenguinUnk108", LVT_F32, offsetof(struct Object, oSmallPenguinUnk108), false, LOT_NONE },
{ "oSmallPenguinUnk110", LVT_S32, offsetof(struct Object, oSmallPenguinUnk110), false, LOT_NONE },
{ "oSmallPenguinUnk88", LVT_S32, offsetof(struct Object, oSmallPenguinUnk88), false, LOT_NONE },
{ "oSmallPiranhaFlameEndSpeed", LVT_F32, offsetof(struct Object, oSmallPiranhaFlameEndSpeed), false, LOT_NONE },
{ "oSmallPiranhaFlameModel", LVT_S32, offsetof(struct Object, oSmallPiranhaFlameModel), false, LOT_NONE },
{ "oSmallPiranhaFlameStartSpeed", LVT_F32, offsetof(struct Object, oSmallPiranhaFlameStartSpeed), false, LOT_NONE },
{ "oSmallPiranhaFlameUnk100", LVT_S32, offsetof(struct Object, oSmallPiranhaFlameUnk100), false, LOT_NONE },
{ "oSmallPiranhaFlameUnk104", LVT_F32, offsetof(struct Object, oSmallPiranhaFlameUnk104), false, LOT_NONE },
{ "oSmokeTimer", LVT_S32, offsetof(struct Object, oSmokeTimer), false, LOT_NONE },
{ "oSnowmansBottomUnk1AC", LVT_S32, offsetof(struct Object, oSnowmansBottomUnk1AC), false, LOT_NONE },
{ "oSnowmansBottomUnkF4", LVT_F32, offsetof(struct Object, oSnowmansBottomUnkF4), false, LOT_NONE },
{ "oSnowmansBottomUnkF8", LVT_S32, offsetof(struct Object, oSnowmansBottomUnkF8), false, LOT_NONE },
{ "oSnowmansHeadUnkF4", LVT_S32, offsetof(struct Object, oSnowmansHeadUnkF4), false, LOT_NONE },
{ "oSnufitBodyBaseScale", LVT_S32, offsetof(struct Object, oSnufitBodyBaseScale), false, LOT_NONE },
{ "oSnufitBodyScale", LVT_S16, offsetof(struct Object, oSnufitBodyScale), false, LOT_NONE },
{ "oSnufitBodyScalePeriod", LVT_S32, offsetof(struct Object, oSnufitBodyScalePeriod), false, LOT_NONE },
{ "oSnufitBullets", LVT_S32, offsetof(struct Object, oSnufitBullets), false, LOT_NONE },
{ "oSnufitCircularPeriod", LVT_S32, offsetof(struct Object, oSnufitCircularPeriod), false, LOT_NONE },
{ "oSnufitRecoil", LVT_S32, offsetof(struct Object, oSnufitRecoil), false, LOT_NONE },
{ "oSnufitScale", LVT_F32, offsetof(struct Object, oSnufitScale), false, LOT_NONE },
{ "oSnufitXOffset", LVT_S16, offsetof(struct Object, oSnufitXOffset), false, LOT_NONE },
{ "oSnufitYOffset", LVT_S16, offsetof(struct Object, oSnufitYOffset), false, LOT_NONE },
{ "oSnufitZOffset", LVT_S16, offsetof(struct Object, oSnufitZOffset), false, LOT_NONE },
{ "oSoundEffectUnkF4", LVT_S32, offsetof(struct Object, oSoundEffectUnkF4), false, LOT_NONE },
{ "oSoundStateID", LVT_S32, offsetof(struct Object, oSoundStateID), false, LOT_NONE },
{ "oSparkleSpawnUnk1B0", LVT_S32, offsetof(struct Object, oSparkleSpawnUnk1B0), false, LOT_NONE },
{ "oSpindelUnkF4", LVT_S32, offsetof(struct Object, oSpindelUnkF4), false, LOT_NONE },
{ "oSpindelUnkF8", LVT_S32, offsetof(struct Object, oSpindelUnkF8), false, LOT_NONE },
{ "oSpinningHeartPlayedSound", LVT_S32, offsetof(struct Object, oSpinningHeartPlayedSound), false, LOT_NONE },
{ "oSpinningHeartTotalSpin", LVT_S32, offsetof(struct Object, oSpinningHeartTotalSpin), false, LOT_NONE },
{ "oSpinyTargetYaw", LVT_S32, offsetof(struct Object, oSpinyTargetYaw), false, LOT_NONE },
{ "oSpinyTimeUntilTurn", LVT_S32, offsetof(struct Object, oSpinyTimeUntilTurn), false, LOT_NONE },
{ "oSpinyTurningAwayFromWall", LVT_S32, offsetof(struct Object, oSpinyTurningAwayFromWall), false, LOT_NONE },
{ "oStarSelectorSize", LVT_F32, offsetof(struct Object, oStarSelectorSize), false, LOT_NONE },
{ "oStarSelectorTimer", LVT_S32, offsetof(struct Object, oStarSelectorTimer), false, LOT_NONE },
{ "oStarSelectorType", LVT_S32, offsetof(struct Object, oStarSelectorType), false, LOT_NONE },
{ "oStarSpawnDisFromHome", LVT_F32, offsetof(struct Object, oStarSpawnDisFromHome), false, LOT_NONE },
{ "oStarSpawnUnkFC", LVT_F32, offsetof(struct Object, oStarSpawnUnkFC), false, LOT_NONE },
{ "oStrongWindParticlePenguinObj", LVT_COBJECT_P, offsetof(struct Object, oStrongWindParticlePenguinObj), true, LOT_OBJECT },
{ "oSubAction", LVT_S32, offsetof(struct Object, oSubAction), false, LOT_NONE },
{ "oSushiSharkUnkF4", LVT_S32, offsetof(struct Object, oSushiSharkUnkF4), false, LOT_NONE },
{ "oSwingPlatformAngle", LVT_F32, offsetof(struct Object, oSwingPlatformAngle), false, LOT_NONE },
{ "oSwingPlatformSpeed", LVT_F32, offsetof(struct Object, oSwingPlatformSpeed), false, LOT_NONE },
{ "oSwoopBonkCountdown", LVT_S32, offsetof(struct Object, oSwoopBonkCountdown), false, LOT_NONE },
{ "oSwoopTargetPitch", LVT_S32, offsetof(struct Object, oSwoopTargetPitch), false, LOT_NONE },
{ "oSwoopTargetYaw", LVT_S32, offsetof(struct Object, oSwoopTargetYaw), false, LOT_NONE },
{ "oSyncDeath", LVT_U32, offsetof(struct Object, oSyncDeath), false, LOT_NONE },
{ "oSyncID", LVT_U32, offsetof(struct Object, oSyncID), true, LOT_NONE },
{ "oTTC2DRotatorIncrement", LVT_S32, offsetof(struct Object, oTTC2DRotatorIncrement), false, LOT_NONE },
{ "oTTC2DRotatorMinTimeUntilNextTurn", LVT_S32, offsetof(struct Object, oTTC2DRotatorMinTimeUntilNextTurn), false, LOT_NONE },
{ "oTTC2DRotatorRandomDirTimer", LVT_S32, offsetof(struct Object, oTTC2DRotatorRandomDirTimer), false, LOT_NONE },
{ "oTTC2DRotatorSpeed", LVT_S32, offsetof(struct Object, oTTC2DRotatorSpeed), false, LOT_NONE },
{ "oTTC2DRotatorTargetYaw", LVT_S32, offsetof(struct Object, oTTC2DRotatorTargetYaw), false, LOT_NONE },
{ "oTTCChangeDirTimer", LVT_S32, offsetof(struct Object, oTTCChangeDirTimer), false, LOT_NONE },
{ "oTTCCogDir", LVT_F32, offsetof(struct Object, oTTCCogDir), false, LOT_NONE },
{ "oTTCCogSpeed", LVT_F32, offsetof(struct Object, oTTCCogSpeed), false, LOT_NONE },
{ "oTTCCogTargetVel", LVT_F32, offsetof(struct Object, oTTCCogTargetVel), false, LOT_NONE },
{ "oTTCElevatorDir", LVT_F32, offsetof(struct Object, oTTCElevatorDir), false, LOT_NONE },
{ "oTTCElevatorMoveTime", LVT_S32, offsetof(struct Object, oTTCElevatorMoveTime), false, LOT_NONE },
{ "oTTCElevatorPeakY", LVT_F32, offsetof(struct Object, oTTCElevatorPeakY), false, LOT_NONE },
{ "oTTCMovingBarDelay", LVT_S32, offsetof(struct Object, oTTCMovingBarDelay), false, LOT_NONE },
{ "oTTCMovingBarOffset", LVT_F32, offsetof(struct Object, oTTCMovingBarOffset), false, LOT_NONE },
{ "oTTCMovingBarSpeed", LVT_F32, offsetof(struct Object, oTTCMovingBarSpeed), false, LOT_NONE },
{ "oTTCMovingBarStartOffset", LVT_F32, offsetof(struct Object, oTTCMovingBarStartOffset), false, LOT_NONE },
{ "oTTCMovingBarStoppedTimer", LVT_S32, offsetof(struct Object, oTTCMovingBarStoppedTimer), false, LOT_NONE },
{ "oTTCPendulumAccelDir", LVT_F32, offsetof(struct Object, oTTCPendulumAccelDir), false, LOT_NONE },
{ "oTTCPendulumAngle", LVT_F32, offsetof(struct Object, oTTCPendulumAngle), false, LOT_NONE },
{ "oTTCPendulumAngleAccel", LVT_F32, offsetof(struct Object, oTTCPendulumAngleAccel), false, LOT_NONE },
{ "oTTCPendulumAngleVel", LVT_F32, offsetof(struct Object, oTTCPendulumAngleVel), false, LOT_NONE },
{ "oTTCPendulumDelay", LVT_S32, offsetof(struct Object, oTTCPendulumDelay), false, LOT_NONE },
{ "oTTCPendulumSoundTimer", LVT_S32, offsetof(struct Object, oTTCPendulumSoundTimer), false, LOT_NONE },
{ "oTTCPitBlockDir", LVT_S32, offsetof(struct Object, oTTCPitBlockDir), false, LOT_NONE },
{ "oTTCPitBlockPeakY", LVT_F32, offsetof(struct Object, oTTCPitBlockPeakY), false, LOT_NONE },
{ "oTTCPitBlockWaitTime", LVT_S32, offsetof(struct Object, oTTCPitBlockWaitTime), false, LOT_NONE },
{ "oTTCRotatingSolidNumSides", LVT_S32, offsetof(struct Object, oTTCRotatingSolidNumSides), false, LOT_NONE },
{ "oTTCRotatingSolidNumTurns", LVT_S32, offsetof(struct Object, oTTCRotatingSolidNumTurns), false, LOT_NONE },
{ "oTTCRotatingSolidRotationDelay", LVT_S32, offsetof(struct Object, oTTCRotatingSolidRotationDelay), false, LOT_NONE },
{ "oTTCRotatingSolidSoundTimer", LVT_S32, offsetof(struct Object, oTTCRotatingSolidSoundTimer), false, LOT_NONE },
{ "oTTCRotatingSolidVelY", LVT_F32, offsetof(struct Object, oTTCRotatingSolidVelY), false, LOT_NONE },
{ "oTTCSpinnerDir", LVT_S32, offsetof(struct Object, oTTCSpinnerDir), false, LOT_NONE },
{ "oTTCTreadmillBigSurface", LVT_S16_P, offsetof(struct Object, oTTCTreadmillBigSurface), true, LOT_POINTER },
{ "oTTCTreadmillSmallSurface", LVT_S16_P, offsetof(struct Object, oTTCTreadmillSmallSurface), true, LOT_POINTER },
{ "oTTCTreadmillSpeed", LVT_F32, offsetof(struct Object, oTTCTreadmillSpeed), false, LOT_NONE },
{ "oTTCTreadmillTargetSpeed", LVT_F32, offsetof(struct Object, oTTCTreadmillTargetSpeed), false, LOT_NONE },
{ "oTTCTreadmillTimeUntilSwitch", LVT_S32, offsetof(struct Object, oTTCTreadmillTimeUntilSwitch), false, LOT_NONE },
{ "oThwompRandomTimer", LVT_S32, offsetof(struct Object, oThwompRandomTimer), false, LOT_NONE },
{ "oTiltingPyramidMarioOnPlatform", LVT_S32, offsetof(struct Object, oTiltingPyramidMarioOnPlatform), false, LOT_NONE },
{ "oTiltingPyramidNormalX", LVT_F32, offsetof(struct Object, oTiltingPyramidNormalX), false, LOT_NONE },
{ "oTiltingPyramidNormalY", LVT_F32, offsetof(struct Object, oTiltingPyramidNormalY), false, LOT_NONE },
{ "oTiltingPyramidNormalZ", LVT_F32, offsetof(struct Object, oTiltingPyramidNormalZ), false, LOT_NONE },
{ "oTimer", LVT_S32, offsetof(struct Object, oTimer), false, LOT_NONE },
{ "oToadMessageDialogId", LVT_U32, offsetof(struct Object, oToadMessageDialogId), false, LOT_NONE },
{ "oToadMessageRecentlyTalked", LVT_S32, offsetof(struct Object, oToadMessageRecentlyTalked), false, LOT_NONE },
{ "oToadMessageState", LVT_S32, offsetof(struct Object, oToadMessageState), false, LOT_NONE },
// { "oToxBoxMovementPattern", LVT_???, offsetof(struct Object, oToxBoxMovementPattern), false, LOT_??? }, <--- UNIMPLEMENTED
{ "oToxBoxMovementStep", LVT_S32, offsetof(struct Object, oToxBoxMovementStep), false, LOT_NONE },
{ "oTreasureChestSound", LVT_S32, offsetof(struct Object, oTreasureChestSound), false, LOT_NONE },
{ "oTreasureChestUnkF4", LVT_S32, offsetof(struct Object, oTreasureChestUnkF4), false, LOT_NONE },
{ "oTreasureChestUnkF8", LVT_S32, offsetof(struct Object, oTreasureChestUnkF8), false, LOT_NONE },
{ "oTreasureChestUnkFC", LVT_S32, offsetof(struct Object, oTreasureChestUnkFC), false, LOT_NONE },
{ "oTreeSnowOrLeafUnkF4", LVT_S32, offsetof(struct Object, oTreeSnowOrLeafUnkF4), false, LOT_NONE },
{ "oTreeSnowOrLeafUnkF8", LVT_S32, offsetof(struct Object, oTreeSnowOrLeafUnkF8), false, LOT_NONE },
{ "oTreeSnowOrLeafUnkFC", LVT_S32, offsetof(struct Object, oTreeSnowOrLeafUnkFC), false, LOT_NONE },
{ "oTripletButterflyBaseYaw", LVT_F32, offsetof(struct Object, oTripletButterflyBaseYaw), false, LOT_NONE },
{ "oTripletButterflyModel", LVT_S32, offsetof(struct Object, oTripletButterflyModel), false, LOT_NONE },
{ "oTripletButterflyScale", LVT_F32, offsetof(struct Object, oTripletButterflyScale), false, LOT_NONE },
{ "oTripletButterflyScalePhase", LVT_S32, offsetof(struct Object, oTripletButterflyScalePhase), false, LOT_NONE },
{ "oTripletButterflySelectedButterfly", LVT_S32, offsetof(struct Object, oTripletButterflySelectedButterfly), false, LOT_NONE },
{ "oTripletButterflySpeed", LVT_F32, offsetof(struct Object, oTripletButterflySpeed), false, LOT_NONE },
{ "oTripletButterflyTargetPitch", LVT_S32, offsetof(struct Object, oTripletButterflyTargetPitch), false, LOT_NONE },
{ "oTripletButterflyTargetYaw", LVT_S32, offsetof(struct Object, oTripletButterflyTargetYaw), false, LOT_NONE },
{ "oTripletButterflyType", LVT_S32, offsetof(struct Object, oTripletButterflyType), false, LOT_NONE },
{ "oTumblingBridgeUnkF4", LVT_S32, offsetof(struct Object, oTumblingBridgeUnkF4), false, LOT_NONE },
{ "oTweesterScaleTimer", LVT_S32, offsetof(struct Object, oTweesterScaleTimer), false, LOT_NONE },
{ "oTweesterUnused", LVT_S32, offsetof(struct Object, oTweesterUnused), false, LOT_NONE },
{ "oUkikiCageNextAction", LVT_S32, offsetof(struct Object, oUkikiCageNextAction), false, LOT_NONE },
{ "oUkikiCageSpinTimer", LVT_S16, offsetof(struct Object, oUkikiCageSpinTimer), false, LOT_NONE },
{ "oUkikiChaseFleeRange", LVT_F32, offsetof(struct Object, oUkikiChaseFleeRange), false, LOT_NONE },
{ "oUkikiHasCap", LVT_S16, offsetof(struct Object, oUkikiHasCap), false, LOT_NONE },
{ "oUkikiTauntCounter", LVT_S16, offsetof(struct Object, oUkikiTauntCounter), false, LOT_NONE },
{ "oUkikiTauntsToBeDone", LVT_S16, offsetof(struct Object, oUkikiTauntsToBeDone), false, LOT_NONE },
{ "oUkikiTextState", LVT_S16, offsetof(struct Object, oUkikiTextState), false, LOT_NONE },
{ "oUkikiTextboxTimer", LVT_S16, offsetof(struct Object, oUkikiTextboxTimer), false, LOT_NONE },
{ "oUnagiUnk110", LVT_F32, offsetof(struct Object, oUnagiUnk110), false, LOT_NONE },
{ "oUnagiUnk1AC", LVT_F32, offsetof(struct Object, oUnagiUnk1AC), false, LOT_NONE },
{ "oUnagiUnk1B0", LVT_S16, offsetof(struct Object, oUnagiUnk1B0), false, LOT_NONE },
{ "oUnagiUnk1B2", LVT_S16, offsetof(struct Object, oUnagiUnk1B2), false, LOT_NONE },
{ "oUnagiUnkF4", LVT_F32, offsetof(struct Object, oUnagiUnkF4), false, LOT_NONE },
{ "oUnagiUnkF8", LVT_F32, offsetof(struct Object, oUnagiUnkF8), false, LOT_NONE },
{ "oUnk1A8", LVT_U32, offsetof(struct Object, oUnk1A8), false, LOT_NONE },
{ "oUnk94", LVT_U32, offsetof(struct Object, oUnk94), false, LOT_NONE },
{ "oUnkBC", LVT_F32, offsetof(struct Object, oUnkBC), false, LOT_NONE },
{ "oUnkC0", LVT_F32, offsetof(struct Object, oUnkC0), false, LOT_NONE },
{ "oUnlockDoorStarState", LVT_U32, offsetof(struct Object, oUnlockDoorStarState), false, LOT_NONE },
{ "oUnlockDoorStarTimer", LVT_S32, offsetof(struct Object, oUnlockDoorStarTimer), false, LOT_NONE },
{ "oUnlockDoorStarYawVel", LVT_S32, offsetof(struct Object, oUnlockDoorStarYawVel), false, LOT_NONE },
{ "oVelX", LVT_F32, offsetof(struct Object, oVelX), false, LOT_NONE },
{ "oVelY", LVT_F32, offsetof(struct Object, oVelY), false, LOT_NONE },
{ "oVelZ", LVT_F32, offsetof(struct Object, oVelZ), false, LOT_NONE },
{ "oWFSlidBrickPtfmMovVel", LVT_F32, offsetof(struct Object, oWFSlidBrickPtfmMovVel), false, LOT_NONE },
{ "oWallAngle", LVT_S32, offsetof(struct Object, oWallAngle), false, LOT_NONE },
{ "oWallHitboxRadius", LVT_F32, offsetof(struct Object, oWallHitboxRadius), false, LOT_NONE },
{ "oWaterBombNumBounces", LVT_F32, offsetof(struct Object, oWaterBombNumBounces), false, LOT_NONE },
{ "oWaterBombOnGround", LVT_S32, offsetof(struct Object, oWaterBombOnGround), false, LOT_NONE },
{ "oWaterBombSpawnerBombActive", LVT_S32, offsetof(struct Object, oWaterBombSpawnerBombActive), false, LOT_NONE },
{ "oWaterBombSpawnerTimeToSpawn", LVT_S32, offsetof(struct Object, oWaterBombSpawnerTimeToSpawn), false, LOT_NONE },
{ "oWaterBombStretchSpeed", LVT_F32, offsetof(struct Object, oWaterBombStretchSpeed), false, LOT_NONE },
{ "oWaterBombVerticalStretch", LVT_F32, offsetof(struct Object, oWaterBombVerticalStretch), false, LOT_NONE },
{ "oWaterCannonUnk100", LVT_S32, offsetof(struct Object, oWaterCannonUnk100), false, LOT_NONE },
{ "oWaterCannonUnkF4", LVT_S32, offsetof(struct Object, oWaterCannonUnkF4), false, LOT_NONE },
{ "oWaterCannonUnkF8", LVT_S32, offsetof(struct Object, oWaterCannonUnkF8), false, LOT_NONE },
{ "oWaterCannonUnkFC", LVT_S32, offsetof(struct Object, oWaterCannonUnkFC), false, LOT_NONE },
{ "oWaterLevelPillarDrained", LVT_S32, offsetof(struct Object, oWaterLevelPillarDrained), false, LOT_NONE },
{ "oWaterLevelTriggerTargetWaterLevel", LVT_S32, offsetof(struct Object, oWaterLevelTriggerTargetWaterLevel), false, LOT_NONE },
{ "oWaterLevelTriggerUnkF4", LVT_S32, offsetof(struct Object, oWaterLevelTriggerUnkF4), false, LOT_NONE },
{ "oWaterObjUnk100", LVT_S32, offsetof(struct Object, oWaterObjUnk100), false, LOT_NONE },
{ "oWaterObjUnkF4", LVT_S32, offsetof(struct Object, oWaterObjUnkF4), false, LOT_NONE },
{ "oWaterObjUnkF8", LVT_S32, offsetof(struct Object, oWaterObjUnkF8), false, LOT_NONE },
{ "oWaterObjUnkFC", LVT_S32, offsetof(struct Object, oWaterObjUnkFC), false, LOT_NONE },
{ "oWaterRingAvgScale", LVT_F32, offsetof(struct Object, oWaterRingAvgScale), false, LOT_NONE },
{ "oWaterRingIndex", LVT_S32, offsetof(struct Object, oWaterRingIndex), false, LOT_NONE },
{ "oWaterRingMarioDistInFront", LVT_F32, offsetof(struct Object, oWaterRingMarioDistInFront), false, LOT_NONE },
{ "oWaterRingMgrLastRingCollected", LVT_S32, offsetof(struct Object, oWaterRingMgrLastRingCollected), false, LOT_NONE },
{ "oWaterRingMgrNextRingIndex", LVT_S32, offsetof(struct Object, oWaterRingMgrNextRingIndex), false, LOT_NONE },
{ "oWaterRingNormalX", LVT_F32, offsetof(struct Object, oWaterRingNormalX), false, LOT_NONE },
{ "oWaterRingNormalY", LVT_F32, offsetof(struct Object, oWaterRingNormalY), false, LOT_NONE },
{ "oWaterRingNormalZ", LVT_F32, offsetof(struct Object, oWaterRingNormalZ), false, LOT_NONE },
{ "oWaterRingScalePhaseX", LVT_S32, offsetof(struct Object, oWaterRingScalePhaseX), false, LOT_NONE },
{ "oWaterRingScalePhaseY", LVT_S32, offsetof(struct Object, oWaterRingScalePhaseY), false, LOT_NONE },
{ "oWaterRingScalePhaseZ", LVT_S32, offsetof(struct Object, oWaterRingScalePhaseZ), false, LOT_NONE },
{ "oWaterRingSpawnerRingsCollected", LVT_S32, offsetof(struct Object, oWaterRingSpawnerRingsCollected), false, LOT_NONE },
{ "oWaveTrailSize", LVT_F32, offsetof(struct Object, oWaveTrailSize), false, LOT_NONE },
{ "oWhirlpoolInitFacePitch", LVT_S32, offsetof(struct Object, oWhirlpoolInitFacePitch), false, LOT_NONE },
{ "oWhirlpoolInitFaceRoll", LVT_S32, offsetof(struct Object, oWhirlpoolInitFaceRoll), false, LOT_NONE },
{ "oWhirlpoolTimeout", LVT_S32, offsetof(struct Object, oWhirlpoolTimeout), false, LOT_NONE },
{ "oWhitePuffUnkF4", LVT_F32, offsetof(struct Object, oWhitePuffUnkF4), false, LOT_NONE },
{ "oWhitePuffUnkF8", LVT_S32, offsetof(struct Object, oWhitePuffUnkF8), false, LOT_NONE },
{ "oWhitePuffUnkFC", LVT_S32, offsetof(struct Object, oWhitePuffUnkFC), false, LOT_NONE },
{ "oWhompShakeVal", LVT_S32, offsetof(struct Object, oWhompShakeVal), false, LOT_NONE },
{ "oWigglerFallThroughFloorsHeight", LVT_F32, offsetof(struct Object, oWigglerFallThroughFloorsHeight), false, LOT_NONE },
{ "oWigglerSegments", LVT_COBJECT_P, offsetof(struct Object, oWigglerSegments), true, LOT_CHAINSEGMENT },
{ "oWigglerSquishSpeed", LVT_F32, offsetof(struct Object, oWigglerSquishSpeed), false, LOT_NONE },
{ "oWigglerTargetYaw", LVT_S32, offsetof(struct Object, oWigglerTargetYaw), false, LOT_NONE },
{ "oWigglerTextStatus", LVT_S16, offsetof(struct Object, oWigglerTextStatus), false, LOT_NONE },
{ "oWigglerTimeUntilRandomTurn", LVT_S32, offsetof(struct Object, oWigglerTimeUntilRandomTurn), false, LOT_NONE },
{ "oWigglerUnused", LVT_S16, offsetof(struct Object, oWigglerUnused), false, LOT_NONE },
{ "oWigglerWalkAnimSpeed", LVT_F32, offsetof(struct Object, oWigglerWalkAnimSpeed), false, LOT_NONE },
{ "oWigglerWalkAwayFromWallTimer", LVT_S32, offsetof(struct Object, oWigglerWalkAwayFromWallTimer), false, LOT_NONE },
{ "oWoodenPostMarioPounding", LVT_S32, offsetof(struct Object, oWoodenPostMarioPounding), false, LOT_NONE },
{ "oWoodenPostOffsetY", LVT_F32, offsetof(struct Object, oWoodenPostOffsetY), false, LOT_NONE },
{ "oWoodenPostPrevAngleToMario", LVT_S32, offsetof(struct Object, oWoodenPostPrevAngleToMario), false, LOT_NONE },
{ "oWoodenPostSpeedY", LVT_F32, offsetof(struct Object, oWoodenPostSpeedY), false, LOT_NONE },
{ "oWoodenPostTotalMarioAngle", LVT_S32, offsetof(struct Object, oWoodenPostTotalMarioAngle), false, LOT_NONE },
{ "oYoshiBlinkTimer", LVT_S32, offsetof(struct Object, oYoshiBlinkTimer), false, LOT_NONE },
{ "oYoshiChosenHome", LVT_S32, offsetof(struct Object, oYoshiChosenHome), false, LOT_NONE },
{ "oYoshiTargetYaw", LVT_S32, offsetof(struct Object, oYoshiTargetYaw), false, LOT_NONE },
{ "parentObj", LVT_COBJECT_P, offsetof(struct Object, parentObj), true, LOT_OBJECT },
{ "platform", LVT_COBJECT_P, offsetof(struct Object, platform), true, LOT_OBJECT },
{ "prevObj", LVT_COBJECT_P, offsetof(struct Object, prevObj), true, LOT_OBJECT },
@ -593,6 +1345,28 @@ static struct LuaObjectField sSpawnInfoFields[LUA_SPAWN_INFO_FIELD_COUNT] = {
{ "unk18", LVT_COBJECT_P, offsetof(struct SpawnInfo, unk18), true, LOT_GRAPHNODE },
};
#define LUA_SPAWN_PARTICLES_INFO_FIELD_COUNT 12
static struct LuaObjectField sSpawnParticlesInfoFields[LUA_SPAWN_PARTICLES_INFO_FIELD_COUNT] = {
{ "behParam", LVT_S8, offsetof(struct SpawnParticlesInfo, behParam), false, LOT_NONE },
{ "count", LVT_S8, offsetof(struct SpawnParticlesInfo, count), false, LOT_NONE },
{ "dragStrength", LVT_S8, offsetof(struct SpawnParticlesInfo, dragStrength), false, LOT_NONE },
{ "forwardVelBase", LVT_S8, offsetof(struct SpawnParticlesInfo, forwardVelBase), false, LOT_NONE },
{ "forwardVelRange", LVT_S8, offsetof(struct SpawnParticlesInfo, forwardVelRange), false, LOT_NONE },
{ "gravity", LVT_S8, offsetof(struct SpawnParticlesInfo, gravity), false, LOT_NONE },
{ "model", LVT_U8, offsetof(struct SpawnParticlesInfo, model), false, LOT_NONE },
{ "offsetY", LVT_S8, offsetof(struct SpawnParticlesInfo, offsetY), false, LOT_NONE },
{ "sizeBase", LVT_F32, offsetof(struct SpawnParticlesInfo, sizeBase), false, LOT_NONE },
{ "sizeRange", LVT_F32, offsetof(struct SpawnParticlesInfo, sizeRange), false, LOT_NONE },
{ "velYBase", LVT_S8, offsetof(struct SpawnParticlesInfo, velYBase), false, LOT_NONE },
{ "velYRange", LVT_S8, offsetof(struct SpawnParticlesInfo, velYRange), false, LOT_NONE },
};
#define LUA_STRUCT802_A272_C_FIELD_COUNT 2
static struct LuaObjectField sStruct802A272CFields[LUA_STRUCT802_A272_C_FIELD_COUNT] = {
{ "vecF", LVT_COBJECT, offsetof(struct Struct802A272C, vecF), true, LOT_VEC3F },
{ "vecS", LVT_COBJECT, offsetof(struct Struct802A272C, vecS), true, LOT_VEC3S },
};
#define LUA_SURFACE_FIELD_COUNT 16
static struct LuaObjectField sSurfaceFields[LUA_SURFACE_FIELD_COUNT] = {
{ "flags", LVT_S8, offsetof(struct Surface, flags), false, LOT_NONE },
@ -675,6 +1449,21 @@ static struct LuaObjectField sWarpTransitionDataFields[LUA_WARP_TRANSITION_DATA_
{ "texTimer", LVT_S16, offsetof(struct WarpTransitionData, texTimer), false, LOT_NONE },
};
#define LUA_WATER_DROPLET_PARAMS_FIELD_COUNT 10
static struct LuaObjectField sWaterDropletParamsFields[LUA_WATER_DROPLET_PARAMS_FIELD_COUNT] = {
// { "behavior", LVT_???, offsetof(struct WaterDropletParams, behavior), true, LOT_??? }, <--- UNIMPLEMENTED
{ "flags", LVT_S16, offsetof(struct WaterDropletParams, flags), false, LOT_NONE },
{ "model", LVT_S16, offsetof(struct WaterDropletParams, model), false, LOT_NONE },
{ "moveAngleRange", LVT_S16, offsetof(struct WaterDropletParams, moveAngleRange), false, LOT_NONE },
{ "moveRange", LVT_S16, offsetof(struct WaterDropletParams, moveRange), false, LOT_NONE },
{ "randForwardVelOffset", LVT_F32, offsetof(struct WaterDropletParams, randForwardVelOffset), false, LOT_NONE },
{ "randForwardVelScale", LVT_F32, offsetof(struct WaterDropletParams, randForwardVelScale), false, LOT_NONE },
{ "randSizeOffset", LVT_F32, offsetof(struct WaterDropletParams, randSizeOffset), false, LOT_NONE },
{ "randSizeScale", LVT_F32, offsetof(struct WaterDropletParams, randSizeScale), false, LOT_NONE },
{ "randYVelOffset", LVT_F32, offsetof(struct WaterDropletParams, randYVelOffset), false, LOT_NONE },
{ "randYVelScale", LVT_F32, offsetof(struct WaterDropletParams, randYVelScale), false, LOT_NONE },
};
#define LUA_WAYPOINT_FIELD_COUNT 2
static struct LuaObjectField sWaypointFields[LUA_WAYPOINT_FIELD_COUNT] = {
{ "flags", LVT_S16, offsetof(struct Waypoint, flags), false, LOT_NONE },
@ -687,6 +1476,12 @@ static struct LuaObjectField sWhirlpoolFields[LUA_WHIRLPOOL_FIELD_COUNT] = {
{ "strength", LVT_S16, offsetof(struct Whirlpool, strength), false, LOT_NONE },
};
#define LUA_STRUCT802_A1230_FIELD_COUNT 2
static struct LuaObjectField sstruct802A1230Fields[LUA_STRUCT802_A1230_FIELD_COUNT] = {
{ "unk00", LVT_S16, offsetof(struct struct802A1230, unk00), false, LOT_NONE },
{ "unk02", LVT_S16, offsetof(struct struct802A1230, unk02), false, LOT_NONE },
};
struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] = {
{ LOT_ANIMINFO, sAnimInfoFields, LUA_ANIM_INFO_FIELD_COUNT },
{ LOT_ANIMATION, sAnimationFields, LUA_ANIMATION_FIELD_COUNT },
@ -695,6 +1490,7 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN]
{ LOT_CAMERAFOVSTATUS, sCameraFOVStatusFields, LUA_CAMERA_FOVSTATUS_FIELD_COUNT },
{ LOT_CAMERASTOREDINFO, sCameraStoredInfoFields, LUA_CAMERA_STORED_INFO_FIELD_COUNT },
{ LOT_CAMERATRIGGER, sCameraTriggerFields, LUA_CAMERA_TRIGGER_FIELD_COUNT },
{ LOT_CHAINSEGMENT, sChainSegmentFields, LUA_CHAIN_SEGMENT_FIELD_COUNT },
{ LOT_CHARACTER, sCharacterFields, LUA_CHARACTER_FIELD_COUNT },
{ LOT_CONTROLLER, sControllerFields, LUA_CONTROLLER_FIELD_COUNT },
{ LOT_CUTSCENE, sCutsceneFields, LUA_CUTSCENE_FIELD_COUNT },
@ -704,6 +1500,7 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN]
{ LOT_GLOBALTEXTURES, sGlobalTexturesFields, LUA_GLOBAL_TEXTURES_FIELD_COUNT },
{ LOT_GRAPHNODE, sGraphNodeFields, LUA_GRAPH_NODE_FIELD_COUNT },
{ LOT_GRAPHNODEOBJECT, sGraphNodeObjectFields, LUA_GRAPH_NODE_OBJECT_FIELD_COUNT },
{ LOT_GRAPHNODE_802A45E4, sGraphNode_802A45E4Fields, LUA_GRAPH_NODE_802_A45_E4_FIELD_COUNT },
{ LOT_HANDHELDSHAKEPOINT, sHandheldShakePointFields, LUA_HANDHELD_SHAKE_POINT_FIELD_COUNT },
{ LOT_INSTANTWARP, sInstantWarpFields, LUA_INSTANT_WARP_FIELD_COUNT },
{ LOT_LAKITUSTATE, sLakituStateFields, LUA_LAKITU_STATE_FIELD_COUNT },
@ -722,6 +1519,8 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN]
{ LOT_PLAYERCAMERASTATE, sPlayerCameraStateFields, LUA_PLAYER_CAMERA_STATE_FIELD_COUNT },
{ LOT_PLAYERGEOMETRY, sPlayerGeometryFields, LUA_PLAYER_GEOMETRY_FIELD_COUNT },
{ LOT_SPAWNINFO, sSpawnInfoFields, LUA_SPAWN_INFO_FIELD_COUNT },
{ LOT_SPAWNPARTICLESINFO, sSpawnParticlesInfoFields, LUA_SPAWN_PARTICLES_INFO_FIELD_COUNT },
{ LOT_STRUCT802A272C, sStruct802A272CFields, LUA_STRUCT802_A272_C_FIELD_COUNT },
{ LOT_SURFACE, sSurfaceFields, LUA_SURFACE_FIELD_COUNT },
{ LOT_TEXTUREINFO, sTextureInfoFields, LUA_TEXTURE_INFO_FIELD_COUNT },
{ LOT_TRANSITIONINFO, sTransitionInfoFields, LUA_TRANSITION_INFO_FIELD_COUNT },
@ -729,8 +1528,10 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN]
{ LOT_WARPNODE, sWarpNodeFields, LUA_WARP_NODE_FIELD_COUNT },
{ LOT_WARPTRANSITION, sWarpTransitionFields, LUA_WARP_TRANSITION_FIELD_COUNT },
{ LOT_WARPTRANSITIONDATA, sWarpTransitionDataFields, LUA_WARP_TRANSITION_DATA_FIELD_COUNT },
{ LOT_WATERDROPLETPARAMS, sWaterDropletParamsFields, LUA_WATER_DROPLET_PARAMS_FIELD_COUNT },
{ LOT_WAYPOINT, sWaypointFields, LUA_WAYPOINT_FIELD_COUNT },
{ LOT_WHIRLPOOL, sWhirlpoolFields, LUA_WHIRLPOOL_FIELD_COUNT },
{ LOT_STRUCT802A1230, sstruct802A1230Fields, LUA_STRUCT802_A1230_FIELD_COUNT },
};
struct LuaObjectField* smlua_get_object_field_autogen(u16 lot, const char* key) {

View file

@ -12,6 +12,7 @@ enum LuaObjectAutogenType {
LOT_CAMERAFOVSTATUS,
LOT_CAMERASTOREDINFO,
LOT_CAMERATRIGGER,
LOT_CHAINSEGMENT,
LOT_CHARACTER,
LOT_CONTROLLER,
LOT_CUTSCENE,
@ -21,6 +22,7 @@ enum LuaObjectAutogenType {
LOT_GLOBALTEXTURES,
LOT_GRAPHNODE,
LOT_GRAPHNODEOBJECT,
LOT_GRAPHNODE_802A45E4,
LOT_HANDHELDSHAKEPOINT,
LOT_INSTANTWARP,
LOT_LAKITUSTATE,
@ -39,6 +41,8 @@ enum LuaObjectAutogenType {
LOT_PLAYERCAMERASTATE,
LOT_PLAYERGEOMETRY,
LOT_SPAWNINFO,
LOT_SPAWNPARTICLESINFO,
LOT_STRUCT802A272C,
LOT_SURFACE,
LOT_TEXTUREINFO,
LOT_TRANSITIONINFO,
@ -46,8 +50,10 @@ enum LuaObjectAutogenType {
LOT_WARPNODE,
LOT_WARPTRANSITION,
LOT_WARPTRANSITIONDATA,
LOT_WATERDROPLETPARAMS,
LOT_WAYPOINT,
LOT_WHIRLPOOL,
LOT_STRUCT802A1230,
LOT_AUTOGEN_MAX,
};