diff --git a/autogen/convert_structs.py b/autogen/convert_structs.py
index 8ed0628e..89f84ba9 100644
--- a/autogen/convert_structs.py
+++ b/autogen/convert_structs.py
@@ -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];
@@ -57,6 +60,7 @@ override_field_immutable = {
"Character": [ "*" ],
"NetworkPlayer": [ "*" ],
"TextureInfo": [ "*" ],
+ "Object": ["oSyncID"],
}
sLuaManuallyDefinedStructs = [
@@ -160,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
@@ -294,6 +301,42 @@ def doc_struct_index(structs):
s += '\n
\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)
@@ -304,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
\n'
diff --git a/autogen/extract_object_fields.py b/autogen/extract_object_fields.py
new file mode 100644
index 00000000..f7df655a
--- /dev/null
+++ b/autogen/extract_object_fields.py
@@ -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
diff --git a/docs/lua/structs.md b/docs/lua/structs.md
index 3a9d1bf5..a592195e 100644
--- a/docs/lua/structs.md
+++ b/docs/lua/structs.md
@@ -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)
@@ -181,6 +187,21 @@
+## [ChainSegment](#ChainSegment)
+
+| Field | Type | Access |
+| ----- | ---- | ------ |
+| pitch | integer | |
+| posX | number | |
+| posY | number | |
+| posZ | number | |
+| roll | integer | |
+| yaw | integer | |
+
+[:arrow_up_small:](#)
+
+
+
## [Character](#Character)
| Field | Type | Access |
@@ -376,6 +397,21 @@
+## [GraphNode_802A45E4](#GraphNode_802A45E4)
+
+| Field | Type | Access |
+| ----- | ---- | ------ |
+| unk18 | integer | |
+| unk1A | integer | |
+| unk1C | integer | |
+| unk1E | integer | |
+| unk20 | integer | |
+| unk22 | integer | |
+
+[:arrow_up_small:](#)
+
+
+
## [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 | 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 | read-only |
+| oTTCTreadmillSmallSurface | Pointer | 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:](#)
@@ -769,6 +1537,38 @@
+## [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:](#)
+
+
+
+## [Struct802A272C](#Struct802A272C)
+
+| Field | Type | Access |
+| ----- | ---- | ------ |
+| vecF | [Vec3f](#Vec3f) | read-only |
+| vecS | [Vec3s](#Vec3s) | read-only |
+
+[:arrow_up_small:](#)
+
+
+
## [Surface](#Surface)
| Field | Type | Access |
@@ -908,6 +1708,25 @@
+## [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:](#)
+
+
+
## [Waypoint](#Waypoint)
| Field | Type | Access |
@@ -930,3 +1749,14 @@
+## [struct802A1230](#struct802A1230)
+
+| Field | Type | Access |
+| ----- | ---- | ------ |
+| unk00 | integer | |
+| unk02 | integer | |
+
+[:arrow_up_small:](#)
+
+
+
diff --git a/src/pc/lua/smlua_cobject_autogen.c b/src/pc/lua/smlua_cobject_autogen.c
index e584a745..b18c8151 100644
--- a/src/pc/lua/smlua_cobject_autogen.c
+++ b/src/pc/lua/smlua_cobject_autogen.c
@@ -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,40 +499,769 @@ 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 },
- { "areaTimerDuration", LVT_U32, offsetof(struct Object, areaTimerDuration), false, LOT_NONE },
-// { "areaTimerRunOnceCallback)(void)", LVT_???, offsetof(struct Object, areaTimerRunOnceCallback)(void)), false, LOT_??? }, <--- UNIMPLEMENTED
- { "areaTimerType", LVT_S32, offsetof(struct Object, areaTimerType), false, LOT_NONE },
-// { "behavior", LVT_???, offsetof(struct Object, behavior), true, LOT_??? }, <--- UNIMPLEMENTED
- { "bhvDelayTimer", LVT_S16, offsetof(struct Object, bhvDelayTimer), false, LOT_NONE },
-// { "bhvStack", LOT_???, offsetof(struct Object, bhvStack), false, LOT_??? }, <--- UNIMPLEMENTED
- { "bhvStackIndex", LVT_U32, offsetof(struct Object, bhvStackIndex), false, LOT_NONE },
- { "collidedObjInteractTypes", LVT_U32, offsetof(struct Object, collidedObjInteractTypes), false, LOT_NONE },
-// { "collidedObjs", LOT_???, offsetof(struct Object, collidedObjs), false, LOT_??? }, <--- UNIMPLEMENTED
-// { "collisionData", LVT_???, offsetof(struct Object, collisionData), false, LOT_??? }, <--- UNIMPLEMENTED
- { "createdThroughNetwork", LVT_U8, offsetof(struct Object, createdThroughNetwork), false, LOT_NONE },
-// { "curBhvCommand", LVT_???, offsetof(struct Object, curBhvCommand), true, LOT_??? }, <--- UNIMPLEMENTED
- { "globalPlayerIndex", LVT_U8, offsetof(struct Object, globalPlayerIndex), false, LOT_NONE },
- { "header", LVT_COBJECT, offsetof(struct Object, header), true, LOT_OBJECTNODE },
- { "heldByPlayerIndex", LVT_U32, offsetof(struct Object, heldByPlayerIndex), false, LOT_NONE },
- { "hitboxDownOffset", LVT_F32, offsetof(struct Object, hitboxDownOffset), false, LOT_NONE },
- { "hitboxHeight", LVT_F32, offsetof(struct Object, hitboxHeight), false, LOT_NONE },
- { "hitboxRadius", LVT_F32, offsetof(struct Object, hitboxRadius), false, LOT_NONE },
- { "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 },
- { "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 },
-// { "ptrData", LOT_???, offsetof(struct Object, ptrData), false, LOT_??? }, <--- UNIMPLEMENTED
-// { "rawData", LOT_???, offsetof(struct Object, rawData), false, LOT_??? }, <--- UNIMPLEMENTED
-// { "respawnInfo", LVT_???, offsetof(struct Object, respawnInfo), false, LOT_??? }, <--- UNIMPLEMENTED
- { "respawnInfoType", LVT_S16, offsetof(struct Object, respawnInfoType), false, LOT_NONE },
-// { "transform", LVT_???, offsetof(struct Object, transform), false, LOT_??? }, <--- UNIMPLEMENTED
- { "unused1", LVT_U32, offsetof(struct Object, unused1), false, LOT_NONE },
+ { "activeFlags", LVT_S16, offsetof(struct Object, activeFlags), false, LOT_NONE },
+ { "areaTimer", LVT_U32, offsetof(struct Object, areaTimer), false, LOT_NONE },
+ { "areaTimerDuration", LVT_U32, offsetof(struct Object, areaTimerDuration), false, LOT_NONE },
+// { "areaTimerRunOnceCallback)(void)", LVT_???, offsetof(struct Object, areaTimerRunOnceCallback)(void)), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "areaTimerType", LVT_S32, offsetof(struct Object, areaTimerType), false, LOT_NONE },
+// { "behavior", LVT_???, offsetof(struct Object, behavior), true, LOT_??? }, <--- UNIMPLEMENTED
+ { "bhvDelayTimer", LVT_S16, offsetof(struct Object, bhvDelayTimer), false, LOT_NONE },
+// { "bhvStack", LOT_???, offsetof(struct Object, bhvStack), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "bhvStackIndex", LVT_U32, offsetof(struct Object, bhvStackIndex), false, LOT_NONE },
+ { "collidedObjInteractTypes", LVT_U32, offsetof(struct Object, collidedObjInteractTypes), false, LOT_NONE },
+// { "collidedObjs", LOT_???, offsetof(struct Object, collidedObjs), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "collisionData", LVT_???, offsetof(struct Object, collisionData), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "createdThroughNetwork", LVT_U8, offsetof(struct Object, createdThroughNetwork), false, LOT_NONE },
+// { "curBhvCommand", LVT_???, offsetof(struct Object, curBhvCommand), true, LOT_??? }, <--- UNIMPLEMENTED
+ { "globalPlayerIndex", LVT_U8, offsetof(struct Object, globalPlayerIndex), false, LOT_NONE },
+ { "header", LVT_COBJECT, offsetof(struct Object, header), true, LOT_OBJECTNODE },
+ { "heldByPlayerIndex", LVT_U32, offsetof(struct Object, heldByPlayerIndex), false, LOT_NONE },
+ { "hitboxDownOffset", LVT_F32, offsetof(struct Object, hitboxDownOffset), false, LOT_NONE },
+ { "hitboxHeight", LVT_F32, offsetof(struct Object, hitboxHeight), false, LOT_NONE },
+ { "hitboxRadius", LVT_F32, offsetof(struct Object, hitboxRadius), false, LOT_NONE },
+ { "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 },
+// { "ptrData", LOT_???, offsetof(struct Object, ptrData), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "rawData", LOT_???, offsetof(struct Object, rawData), false, LOT_??? }, <--- UNIMPLEMENTED
+// { "respawnInfo", LVT_???, offsetof(struct Object, respawnInfo), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "respawnInfoType", LVT_S16, offsetof(struct Object, respawnInfoType), false, LOT_NONE },
+// { "transform", LVT_???, offsetof(struct Object, transform), false, LOT_??? }, <--- UNIMPLEMENTED
+ { "unused1", LVT_U32, offsetof(struct Object, unused1), false, LOT_NONE },
};
#define LUA_OBJECT_HITBOX_FIELD_COUNT 9
@@ -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) {
diff --git a/src/pc/lua/smlua_cobject_autogen.h b/src/pc/lua/smlua_cobject_autogen.h
index 4d58296b..20aa65df 100644
--- a/src/pc/lua/smlua_cobject_autogen.h
+++ b/src/pc/lua/smlua_cobject_autogen.h
@@ -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,
};