sm64coopdx/autogen/lua_definitions/structs.lua
2026-01-28 22:13:38 -05:00

2775 lines
175 KiB
Lua

-- AUTOGENERATED FOR CODE EDITORS --
--- @class AnimInfo
--- @field public curAnim Animation
--- @field public prevAnimPtr Animation
--- @field public animID integer
--- @field public prevAnimID integer
--- @field public animFrame integer
--- @field public prevAnimFrame integer
--- @field public prevAnimFrameTimestamp integer
--- @field public animFrameAccelAssist integer
--- @field public animAccel integer
--- @field public animTimer integer
--- @field public animYTrans integer
--- @class Animation
--- @field public flags integer
--- @field public animYTransDivisor integer
--- @field public startFrame integer
--- @field public loopStart integer
--- @field public loopEnd integer
--- @field public values Pointer_integer
--- @field public index Pointer_integer
--- @field public length integer
--- @field public valuesLength integer
--- @field public indexLength integer
--- @class Area
--- @field public index integer
--- @field public flags integer
--- @field public terrainType integer
--- @field public root GraphNodeRoot
--- @field public terrainData Pointer_integer
--- @field public surfaceRooms Pointer_integer
--- @field public macroObjects Pointer_integer
--- @field public warpNodes ObjectWarpNode
--- @field public paintingWarpNodes WarpNode
--- @field public instantWarps InstantWarp
--- @field public objectSpawnInfos SpawnInfo
--- @field public camera Camera
--- @field public whirlpools Whirlpool[]
--- @field public dialog integer[]
--- @field public musicParam integer
--- @field public musicParam2 integer
--- @field public localAreaTimer integer
--- @field public macroObjectsAltered Pointer_integer
--- @field public numRedCoins integer
--- @field public numSecrets integer
--- @field public nextSyncID integer
--- @class BehaviorDialogs
--- @field public BobombBuddyBob1Dialog DialogId
--- @field public BobombBuddyBob2Dialog DialogId
--- @field public BobombBuddyOther1Dialog DialogId
--- @field public BobombBuddyOther2Dialog DialogId
--- @field public Bowser1DefeatedDialog DialogId
--- @field public Bowser1Dialog DialogId
--- @field public Bowser2DefeatedDialog DialogId
--- @field public Bowser2Dialog DialogId
--- @field public Bowser3Defeated120StarsDialog DialogId
--- @field public Bowser3DefeatedDialog DialogId
--- @field public Bowser3Dialog DialogId
--- @field public CapswitchBaseDialog DialogId
--- @field public CapswitchMetalDialog DialogId
--- @field public CapswitchVanishDialog DialogId
--- @field public CapswitchWingDialog DialogId
--- @field public CastleEnterDialog DialogId
--- @field public CollectedStarDialog DialogId
--- @field public DefaultCutsceneDialog DialogId
--- @field public DoorNeed1StarDialog DialogId
--- @field public DoorNeed30StarsDialog DialogId
--- @field public DoorNeed3StarsDialog DialogId
--- @field public DoorNeed50StarsDialog DialogId
--- @field public DoorNeed70StarsDialog DialogId
--- @field public DoorNeed8StarsDialog DialogId
--- @field public DoorNeedKeyDialog DialogId
--- @field public EyerokDefeatedDialog DialogId
--- @field public EyerokIntroDialog DialogId
--- @field public GhostHuntAfterDialog DialogId
--- @field public GhostHuntDialog DialogId
--- @field public HootIntroDialog DialogId
--- @field public HootTiredDialog DialogId
--- @field public HundredCoinsDialog DialogId
--- @field public IntroPipeDialog DialogId
--- @field public KeyDoor1DontHaveDialog DialogId
--- @field public KeyDoor1HaveDialog DialogId
--- @field public KeyDoor2DontHaveDialog DialogId
--- @field public KeyDoor2HaveDialog DialogId
--- @field public KingBobombCheatDialog DialogId
--- @field public KingBobombDefeatDialog DialogId
--- @field public KingBobombIntroDialog DialogId
--- @field public KingWhompDefeatDialog DialogId
--- @field public KingWhompDialog DialogId
--- @field public KoopaQuickBobStartDialog DialogId
--- @field public KoopaQuickBobWinDialog DialogId
--- @field public KoopaQuickCheatedDialog DialogId
--- @field public KoopaQuickLostDialog DialogId
--- @field public KoopaQuickThiStartDialog DialogId
--- @field public KoopaQuickThiWinDialog DialogId
--- @field public LakituIntroDialog DialogId
--- @field public MetalCourseDialog DialogId
--- @field public Mips1Dialog DialogId
--- @field public Mips2Dialog DialogId
--- @field public PeachLetterDialog DialogId
--- @field public RacingPenguinBigStartDialog DialogId
--- @field public RacingPenguinCheatDialog DialogId
--- @field public RacingPenguinLostDialog DialogId
--- @field public RacingPenguinStartDialog DialogId
--- @field public RacingPenguinWinDialog DialogId
--- @field public SnowmanHeadAfterDialog DialogId
--- @field public SnowmanHeadBodyDialog DialogId
--- @field public SnowmanHeadDialog DialogId
--- @field public SnowmanWindDialog DialogId
--- @field public StarCollectionBaseDialog DialogId
--- @field public StarDoorDialog DialogId
--- @field public ToadStar1AfterDialog DialogId
--- @field public ToadStar1Dialog DialogId
--- @field public ToadStar2AfterDialog DialogId
--- @field public ToadStar2Dialog DialogId
--- @field public ToadStar3AfterDialog DialogId
--- @field public ToadStar3Dialog DialogId
--- @field public TuxieMotherDialog DialogId
--- @field public TuxieMotherBabyFoundDialog DialogId
--- @field public TuxieMotherBabyWrongDialog DialogId
--- @field public UkikiCageDialog DialogId
--- @field public UkikiCapGiveDialog DialogId
--- @field public UkikiCapStealDialog DialogId
--- @field public UkikiHeldDialog DialogId
--- @field public VanishCourseDialog DialogId
--- @field public WigglerAttack1Dialog DialogId
--- @field public WigglerAttack2Dialog DialogId
--- @field public WigglerAttack3Dialog DialogId
--- @field public WigglerDialog DialogId
--- @field public WingCourseDialog DialogId
--- @field public YoshiDialog DialogId
--- @class BehaviorTrajectories
--- @field public KoopaBobTrajectory Pointer_Trajectory
--- @field public KoopaThiTrajectory Pointer_Trajectory
--- @field public UnagiTrajectory Pointer_Trajectory
--- @field public Unagi2Trajectory Pointer_Trajectory
--- @field public SnowmanHeadTrajectory Pointer_Trajectory
--- @field public RacingPenguinTrajectory Pointer_Trajectory
--- @field public BowlingBallBobTrajectory Pointer_Trajectory
--- @field public BowlingBallBob2Trajectory Pointer_Trajectory
--- @field public BowlingBallTtmTrajectory Pointer_Trajectory
--- @field public BowlingBallThiLargeTrajectory Pointer_Trajectory
--- @field public BowlingBallThiSmallTrajectory Pointer_Trajectory
--- @field public MipsTrajectory Pointer_Trajectory
--- @field public Mips2Trajectory Pointer_Trajectory
--- @field public Mips3Trajectory Pointer_Trajectory
--- @field public Mips4Trajectory Pointer_Trajectory
--- @field public Mips5Trajectory Pointer_Trajectory
--- @field public Mips6Trajectory Pointer_Trajectory
--- @field public Mips7Trajectory Pointer_Trajectory
--- @field public Mips8Trajectory Pointer_Trajectory
--- @field public Mips9Trajectory Pointer_Trajectory
--- @field public Mips10Trajectory Pointer_Trajectory
--- @field public PlatformRrTrajectory Pointer_Trajectory
--- @field public PlatformRr2Trajectory Pointer_Trajectory
--- @field public PlatformRr3Trajectory Pointer_Trajectory
--- @field public PlatformRr4Trajectory Pointer_Trajectory
--- @field public PlatformCcmTrajectory Pointer_Trajectory
--- @field public PlatformBitfsTrajectory Pointer_Trajectory
--- @field public PlatformHmcTrajectory Pointer_Trajectory
--- @field public PlatformLllTrajectory Pointer_Trajectory
--- @field public PlatformLll2Trajectory Pointer_Trajectory
--- @class BehaviorValues
--- @field public KoopaBobAgility number
--- @field public KoopaCatchupAgility number
--- @field public KoopaThiAgility number
--- @field public RacingPenguinBigHeight number
--- @field public RacingPenguinBigRadius number
--- @field public RacingPenguinHeight number
--- @field public RacingPenguinRadius number
--- @field public ToadStar1Requirement integer
--- @field public ToadStar2Requirement integer
--- @field public ToadStar3Requirement integer
--- @field public KingBobombFVel number
--- @field public KingBobombYawVel integer
--- @field public KingBobombHealth integer
--- @field public KingWhompHealth integer
--- @field public MipsStar1Requirement integer
--- @field public MipsStar2Requirement integer
--- @field public BowlingBallBobSpeed number
--- @field public BowlingBallBob2Speed number
--- @field public BowlingBallTtmSpeed number
--- @field public BowlingBallThiLargeSpeed number
--- @field public BowlingBallThiSmallSpeed number
--- @field public GrateStarRequirement integer
--- @field public ChillBullyDeathPosY number
--- @field public ShowStarMilestones integer
--- @field public ShowStarDialog integer
--- @field public RespawnShellBoxes integer
--- @field public MultipleCapCollection integer
--- @field public InfiniteRenderDistance integer
--- @field public ProcessLODs integer
--- @field public CourtyardBoosRequirement integer
--- @field public starsNeededForDialog StarsNeededForDialog
--- @field public dialogs BehaviorDialogs
--- @field public trajectories BehaviorTrajectories
--- @class Camera
--- @field public mode integer
--- @field public defMode integer
--- @field public yaw integer
--- @field public focus Vec3f
--- @field public pos Vec3f
--- @field public unusedVec1 Vec3f
--- @field public areaCenX number
--- @field public areaCenZ number
--- @field public cutscene integer
--- @field public filler31 integer[]
--- @field public nextYaw integer
--- @field public filler3C integer[]
--- @field public doorStatus integer
--- @field public areaCenY number
--- @field public mtx Mat4
--- @class ChainSegment
--- @field public posX number
--- @field public posY number
--- @field public posZ number
--- @field public pitch integer
--- @field public yaw integer
--- @field public roll integer
--- @class Character
--- @field public type CharacterType
--- @field public name string
--- @field public hudHead integer
--- @field public hudHeadTexture TextureInfo
--- @field public cameraHudHead integer
--- @field public modelId integer
--- @field public capModelId integer
--- @field public capMetalModelId integer
--- @field public capWingModelId integer
--- @field public capMetalWingModelId integer
--- @field public capEnemyLayer integer
--- @field public capEnemyGfx Pointer_Gfx
--- @field public capEnemyDecalGfx Pointer_Gfx
--- @field public torsoRotMult number
--- @field public animOffsetEnabled integer
--- @field public animOffsetLowYPoint number
--- @field public animOffsetFeet number
--- @field public animOffsetHand number
--- @field public animSlowLedgeGrab integer
--- @field public animFallOverBackwards integer
--- @field public animBackwardAirKb integer
--- @field public animDyingOnBack integer
--- @field public animBackflip integer
--- @field public animClimbUpPole integer
--- @field public animGrabPoleShort integer
--- @field public animGrabPoleSwingPart1 integer
--- @field public animGrabPoleSwingPart2 integer
--- @field public animHandstandIdle integer
--- @field public animHandstandJump integer
--- @field public animStartHandstand integer
--- @field public animReturnFromHandstand integer
--- @field public animIdleOnPole integer
--- @field public animAPose integer
--- @field public animSkidOnGround integer
--- @field public animStopSkid integer
--- @field public animCrouchFromFastLongjump integer
--- @field public animCrouchFromSlowLongjump integer
--- @field public animFastLongjump integer
--- @field public animSlowLongjump integer
--- @field public animAirborneOnStomach integer
--- @field public animWalkWithLightObj integer
--- @field public animRunWithLightObj integer
--- @field public animSlowWalkWithLightObj integer
--- @field public animShiveringWarmingHand integer
--- @field public animShiveringReturnToIdle integer
--- @field public animShivering integer
--- @field public animClimbDownLedge integer
--- @field public animCreditsWaving integer
--- @field public animCreditsLookUp integer
--- @field public animCreditsReturnFromLookUp integer
--- @field public animCreditsRaiseHand integer
--- @field public animCreditsLowerHand integer
--- @field public animCreditsTakeOffCap integer
--- @field public animCreditsStartWalkLookUp integer
--- @field public animCreditsLookBackThenRun integer
--- @field public animFinalBowserRaiseHandSpin integer
--- @field public animFinalBowserWingCapTakeOff integer
--- @field public animCreditsPeaceSign integer
--- @field public animStandUpFromLavaBoost integer
--- @field public animFireLavaBurn integer
--- @field public animWingCapFly integer
--- @field public animHangOnOwl integer
--- @field public animLandOnStomach integer
--- @field public animAirForwardKb integer
--- @field public animDyingOnStomach integer
--- @field public animSuffocating integer
--- @field public animCoughing integer
--- @field public animThrowCatchKey integer
--- @field public animDyingFallOver integer
--- @field public animIdleOnLedge integer
--- @field public animFastLedgeGrab integer
--- @field public animHangOnCeiling integer
--- @field public animPutCapOn integer
--- @field public animTakeCapOffThenOn integer
--- @field public animQuicklyPutCapOn integer
--- @field public animHeadStuckInGround integer
--- @field public animGroundPoundLanding integer
--- @field public animTripleJumpGroundPound integer
--- @field public animStartGroundPound integer
--- @field public animGroundPound integer
--- @field public animBottomStuckInGround integer
--- @field public animIdleWithLightObj integer
--- @field public animJumpLandWithLightObj integer
--- @field public animJumpWithLightObj integer
--- @field public animFallLandWithLightObj integer
--- @field public animFallWithLightObj integer
--- @field public animFallFromSlidingWithLightObj integer
--- @field public animSlidingOnBottomWithLightObj integer
--- @field public animStandUpFromSlidingWithLightObj integer
--- @field public animRidingShell integer
--- @field public animWalking integer
--- @field public animForwardFlip integer
--- @field public animJumpRidingShell integer
--- @field public animLandFromDoubleJump integer
--- @field public animDoubleJumpFall integer
--- @field public animSingleJump integer
--- @field public animLandFromSingleJump integer
--- @field public animAirKick integer
--- @field public animDoubleJumpRise integer
--- @field public animStartForwardSpinning integer
--- @field public animThrowLightObject integer
--- @field public animFallFromSlideKick integer
--- @field public animBendKnessRidingShell integer
--- @field public animLegsStuckInGround integer
--- @field public animGeneralFall integer
--- @field public animGeneralLand integer
--- @field public animBeingGrabbed integer
--- @field public animGrabHeavyObject integer
--- @field public animSlowLandFromDive integer
--- @field public animFlyFromCannon integer
--- @field public animMoveOnWireNetRight integer
--- @field public animMoveOnWireNetLeft integer
--- @field public animMissingCap integer
--- @field public animPullDoorWalkIn integer
--- @field public animPushDoorWalkIn integer
--- @field public animUnlockDoor integer
--- @field public animStartReachPocket integer
--- @field public animReachPocket integer
--- @field public animStopReachPocket integer
--- @field public animGroundThrow integer
--- @field public animGroundKick integer
--- @field public animFirstPunch integer
--- @field public animSecondPunch integer
--- @field public animFirstPunchFast integer
--- @field public animSecondPunchFast integer
--- @field public animPickUpLightObj integer
--- @field public animPushing integer
--- @field public animStartRidingShell integer
--- @field public animPlaceLightObj integer
--- @field public animForwardSpinning integer
--- @field public animBackwardSpinning integer
--- @field public animBreakdance integer
--- @field public animRunning integer
--- @field public animRunningUnused integer
--- @field public animSoftBackKb integer
--- @field public animSoftFrontKb integer
--- @field public animDyingInQuicksand integer
--- @field public animIdleInQuicksand integer
--- @field public animMoveInQuicksand integer
--- @field public animElectrocution integer
--- @field public animShocked integer
--- @field public animBackwardKb integer
--- @field public animForwardKb integer
--- @field public animIdleHeavyObj integer
--- @field public animStandAgainstWall integer
--- @field public animSidestepLeft integer
--- @field public animSidestepRight integer
--- @field public animStartSleepIdle integer
--- @field public animStartSleepScratch integer
--- @field public animStartSleepYawn integer
--- @field public animStartSleepSitting integer
--- @field public animSleepIdle integer
--- @field public animSleepStartLying integer
--- @field public animSleepLying integer
--- @field public animDive integer
--- @field public animSlideDive integer
--- @field public animGroundBonk integer
--- @field public animStopSlideLightObj integer
--- @field public animSlideKick integer
--- @field public animCrouchFromSlideKick integer
--- @field public animSlideMotionless integer
--- @field public animStopSlide integer
--- @field public animFallFromSlide integer
--- @field public animSlide integer
--- @field public animTiptoe integer
--- @field public animTwirlLand integer
--- @field public animTwirl integer
--- @field public animStartTwirl integer
--- @field public animStopCrouching integer
--- @field public animStartCrouching integer
--- @field public animCrouching integer
--- @field public animCrawling integer
--- @field public animStopCrawling integer
--- @field public animStartCrawling integer
--- @field public animSummonStar integer
--- @field public animReturnStarApproachDoor integer
--- @field public animBackwardsWaterKb integer
--- @field public animSwimWithObjPart1 integer
--- @field public animSwimWithObjPart2 integer
--- @field public animFlutterkickWithObj integer
--- @field public animWaterActionEndWithObj integer
--- @field public animStopGrabObjWater integer
--- @field public animWaterIdleWithObj integer
--- @field public animDrowningPart1 integer
--- @field public animDrowningPart2 integer
--- @field public animWaterDying integer
--- @field public animWaterForwardKb integer
--- @field public animFallFromWater integer
--- @field public animSwimPart1 integer
--- @field public animSwimPart2 integer
--- @field public animFlutterkick integer
--- @field public animWaterActionEnd integer
--- @field public animWaterPickUpObj integer
--- @field public animWaterGrabObjPart2 integer
--- @field public animWaterGrabObjPart1 integer
--- @field public animWaterThrowObj integer
--- @field public animWaterIdle integer
--- @field public animWaterStarDance integer
--- @field public animReturnFromWaterStarDance integer
--- @field public animGrabBowser integer
--- @field public animSwingingBowser integer
--- @field public animReleaseBowser integer
--- @field public animHoldingBowser integer
--- @field public animHeavyThrow integer
--- @field public animWalkPanting integer
--- @field public animWalkWithHeavyObj integer
--- @field public animTurningPart1 integer
--- @field public animTurningPart2 integer
--- @field public animSlideflipLand integer
--- @field public animSlideflip integer
--- @field public animTripleJumpLand integer
--- @field public animTripleJump integer
--- @field public animFirstPerson integer
--- @field public animIdleHeadLeft integer
--- @field public animIdleHeadRight integer
--- @field public animIdleHeadCenter integer
--- @field public animHandstandLeft integer
--- @field public animHandstandRight integer
--- @field public animWakeFromSleep integer
--- @field public animWakeFromLying integer
--- @field public animStartTiptoe integer
--- @field public animSlidejump integer
--- @field public animStartWallkick integer
--- @field public animStarDance integer
--- @field public animReturnFromStarDance integer
--- @field public animForwardSpinningFlip integer
--- @field public animTripleJumpFly integer
--- @field public anims integer[]
--- @field public soundFreqScale number
--- @field public soundYahWahHoo integer
--- @field public soundHoohoo integer
--- @field public soundYahoo integer
--- @field public soundUh integer
--- @field public soundHrmm integer
--- @field public soundWah2 integer
--- @field public soundWhoa integer
--- @field public soundEeuh integer
--- @field public soundAttacked integer
--- @field public soundOoof integer
--- @field public soundOoof2 integer
--- @field public soundHereWeGo integer
--- @field public soundYawning integer
--- @field public soundSnoring1 integer
--- @field public soundSnoring2 integer
--- @field public soundWaaaooow integer
--- @field public soundHaha integer
--- @field public soundHaha_2 integer
--- @field public soundUh2 integer
--- @field public soundUh2_2 integer
--- @field public soundOnFire integer
--- @field public soundDying integer
--- @field public soundPantingCold integer
--- @field public soundPanting integer
--- @field public soundCoughing1 integer
--- @field public soundCoughing2 integer
--- @field public soundCoughing3 integer
--- @field public soundPunchYah integer
--- @field public soundPunchHoo integer
--- @field public soundMamaMia integer
--- @field public soundGroundPoundWah integer
--- @field public soundDrowning integer
--- @field public soundPunchWah integer
--- @field public soundYahooWahaYippee integer
--- @field public soundDoh integer
--- @field public soundGameOver integer
--- @field public soundHello integer
--- @field public soundPressStartToPlay integer
--- @field public soundTwirlBounce integer
--- @field public soundSnoring3 integer
--- @field public soundSoLongaBowser integer
--- @field public soundImaTired integer
--- @field public soundLetsAGo integer
--- @field public soundOkeyDokey integer
--- @field public sounds integer[]
--- @class Controller
--- @field public port integer
--- @field public stickX number
--- @field public stickY number
--- @field public stickMag number
--- @field public rawStickX integer
--- @field public rawStickY integer
--- @field public extStickX integer
--- @field public extStickY integer
--- @field public buttonDown integer
--- @field public buttonPressed integer
--- @field public buttonReleased integer
--- @class CustomLevelInfo
--- @field public script Pointer_LevelScript
--- @field public scriptEntryName string
--- @field public courseNum integer
--- @field public levelNum integer
--- @field public fullName string
--- @field public shortName string
--- @field public acousticReach integer
--- @field public echoLevel1 integer
--- @field public echoLevel2 integer
--- @field public echoLevel3 integer
--- @field public modIndex integer
--- @field public next CustomLevelInfo
--- @class DateTime
--- @field public year integer
--- @field public month integer
--- @field public day integer
--- @field public hour integer
--- @field public minute integer
--- @field public second integer
--- @class DialogEntry
--- @field public unused integer
--- @field public linesPerBox integer
--- @field public leftOffset integer
--- @field public width integer
--- @field public text string
--- @field public replaced boolean
--- @class DisplayListNode
--- @field public displayList Pointer_Gfx
--- @field public next DisplayListNode
--- @field public usingCamSpace integer
--- @class DjuiColor
--- @field public r integer
--- @field public g integer
--- @field public b integer
--- @field public a integer
--- @class DjuiInteractableTheme
--- @field public textColor DjuiColor
--- @field public defaultRectColor DjuiColor
--- @field public cursorDownRectColor DjuiColor
--- @field public hoveredRectColor DjuiColor
--- @field public defaultBorderColor DjuiColor
--- @field public cursorDownBorderColor DjuiColor
--- @field public hoveredBorderColor DjuiColor
--- @class DjuiPanelTheme
--- @field public hudFontHeader boolean
--- @class DjuiTheme
--- @field public id string
--- @field public name string
--- @field public interactables DjuiInteractableTheme
--- @field public threePanels DjuiThreePanelTheme
--- @field public panels DjuiPanelTheme
--- @class DjuiThreePanelTheme
--- @field public rectColor DjuiColor
--- @field public borderColor DjuiColor
--- @class ExclamationBoxContent
--- @field public id integer
--- @field public unused integer
--- @field public firstByte integer
--- @field public model ModelExtendedId
--- @field public behavior BehaviorId
--- @class FirstPersonCamera
--- @field public enabled boolean
--- @field public forcePitch boolean
--- @field public forceYaw boolean
--- @field public forceRoll boolean
--- @field public centerL boolean
--- @field public pitch integer
--- @field public yaw integer
--- @field public crouch number
--- @field public fov number
--- @field public offset Vec3f
--- @class FnGraphNode
--- @field public node GraphNode
--- @class Gfx
--- @field public w0 integer
--- @field public w1 integer
--- @class GlobalObjectAnimations
--- @field public amp_seg8_anims_08004034 Pointer_ObjectAnimPointer
--- @field public birds_seg5_anims_050009E8 Pointer_ObjectAnimPointer
--- @field public blargg_seg5_anims_0500616C Pointer_ObjectAnimPointer
--- @field public blue_fish_seg3_anims_0301C2B0 Pointer_ObjectAnimPointer
--- @field public bobomb_seg8_anims_0802396C Pointer_ObjectAnimPointer
--- @field public bookend_seg5_anims_05002540 Pointer_ObjectAnimPointer
--- @field public bowser_key_seg3_anims_list Pointer_ObjectAnimPointer
--- @field public bowser_seg6_anims_06057690 Pointer_ObjectAnimPointer
--- @field public bub_seg6_anims_06012354 Pointer_ObjectAnimPointer
--- @field public bully_seg5_anims_0500470C Pointer_ObjectAnimPointer
--- @field public butterfly_seg3_anims_030056B0 Pointer_ObjectAnimPointer
--- @field public castle_grounds_seg7_anims_flags Pointer_ObjectAnimPointer
--- @field public chain_chomp_seg6_anims_06025178 Pointer_ObjectAnimPointer
--- @field public chair_seg5_anims_05005784 Pointer_ObjectAnimPointer
--- @field public chilly_chief_seg6_anims_06003994 Pointer_ObjectAnimPointer
--- @field public chuckya_seg8_anims_0800C070 Pointer_ObjectAnimPointer
--- @field public clam_shell_seg5_anims_05001744 Pointer_ObjectAnimPointer
--- @field public cyan_fish_seg6_anims_0600E264 Pointer_ObjectAnimPointer
--- @field public door_seg3_anims_030156C0 Pointer_ObjectAnimPointer
--- @field public dorrie_seg6_anims_0600F638 Pointer_ObjectAnimPointer
--- @field public eyerok_seg5_anims_050116E4 Pointer_ObjectAnimPointer
--- @field public flyguy_seg8_anims_08011A64 Pointer_ObjectAnimPointer
--- @field public goomba_seg8_anims_0801DA4C Pointer_ObjectAnimPointer
--- @field public heave_ho_seg5_anims_0501534C Pointer_ObjectAnimPointer
--- @field public hoot_seg5_anims_05005768 Pointer_ObjectAnimPointer
--- @field public king_bobomb_seg5_anims_0500FE30 Pointer_ObjectAnimPointer
--- @field public klepto_seg5_anims_05008CFC Pointer_ObjectAnimPointer
--- @field public koopa_flag_seg6_anims_06001028 Pointer_ObjectAnimPointer
--- @field public koopa_seg6_anims_06011364 Pointer_ObjectAnimPointer
--- @field public lakitu_enemy_seg5_anims_050144D4 Pointer_ObjectAnimPointer
--- @field public lakitu_seg6_anims_060058F8 Pointer_ObjectAnimPointer
--- @field public mad_piano_seg5_anims_05009B14 Pointer_ObjectAnimPointer
--- @field public manta_seg5_anims_05008EB4 Pointer_ObjectAnimPointer
--- @field public mips_seg6_anims_06015634 Pointer_ObjectAnimPointer
--- @field public moneybag_seg6_anims_06005E5C Pointer_ObjectAnimPointer
--- @field public monty_mole_seg5_anims_05007248 Pointer_ObjectAnimPointer
--- @field public peach_seg5_anims_0501C41C Pointer_ObjectAnimPointer
--- @field public penguin_seg5_anims_05008B74 Pointer_ObjectAnimPointer
--- @field public piranha_plant_seg6_anims_0601C31C Pointer_ObjectAnimPointer
--- @field public scuttlebug_seg6_anims_06015064 Pointer_ObjectAnimPointer
--- @field public seaweed_seg6_anims_0600A4D4 Pointer_ObjectAnimPointer
--- @field public skeeter_seg6_anims_06007DE0 Pointer_ObjectAnimPointer
--- @field public snowman_seg5_anims_0500D118 Pointer_ObjectAnimPointer
--- @field public spindrift_seg5_anims_05002D68 Pointer_ObjectAnimPointer
--- @field public spiny_seg5_anims_05016EAC Pointer_ObjectAnimPointer
--- @field public spiny_egg_seg5_anims_050157E4 Pointer_ObjectAnimPointer
--- @field public sushi_seg5_anims_0500AE54 Pointer_ObjectAnimPointer
--- @field public swoop_seg6_anims_060070D0 Pointer_ObjectAnimPointer
--- @field public toad_seg6_anims_0600FB58 Pointer_ObjectAnimPointer
--- @field public ukiki_seg5_anims_05015784 Pointer_ObjectAnimPointer
--- @field public unagi_seg5_anims_05012824 Pointer_ObjectAnimPointer
--- @field public water_ring_seg6_anims_06013F7C Pointer_ObjectAnimPointer
--- @field public whomp_seg6_anims_06020A04 Pointer_ObjectAnimPointer
--- @field public wiggler_seg5_anims_0500C874 Pointer_ObjectAnimPointer
--- @field public wiggler_seg5_anims_0500EC8C Pointer_ObjectAnimPointer
--- @field public yoshi_seg5_anims_05024100 Pointer_ObjectAnimPointer
--- @class GlobalObjectCollisionData
--- @field public bbh_seg7_collision_coffin Pointer_Collision
--- @field public bbh_seg7_collision_haunted_bookshelf Pointer_Collision
--- @field public bbh_seg7_collision_merry_go_round Pointer_Collision
--- @field public bbh_seg7_collision_mesh_elevator Pointer_Collision
--- @field public bbh_seg7_collision_staircase_step Pointer_Collision
--- @field public bbh_seg7_collision_tilt_floor_platform Pointer_Collision
--- @field public bitdw_seg7_collision_moving_pyramid Pointer_Collision
--- @field public bitfs_seg7_collision_inverted_pyramid Pointer_Collision
--- @field public bitfs_seg7_collision_sinking_cage_platform Pointer_Collision
--- @field public bitfs_seg7_collision_sinking_platform Pointer_Collision
--- @field public bitfs_seg7_collision_squishable_platform Pointer_Collision
--- @field public blue_coin_switch_seg8_collision_08000E98 Pointer_Collision
--- @field public bob_seg7_collision_chain_chomp_gate Pointer_Collision
--- @field public bowser_2_seg7_collision_tilting_platform Pointer_Collision
--- @field public breakable_box_seg8_collision_08012D70 Pointer_Collision
--- @field public cannon_lid_seg8_collision_08004950 Pointer_Collision
--- @field public capswitch_collision_050033D0 Pointer_Collision
--- @field public capswitch_collision_05003448 Pointer_Collision
--- @field public castle_grounds_seg7_collision_cannon_grill Pointer_Collision
--- @field public castle_grounds_seg7_collision_moat_grills Pointer_Collision
--- @field public checkerboard_platform_seg8_collision_0800D710 Pointer_Collision
--- @field public ddd_seg7_collision_bowser_sub_door Pointer_Collision
--- @field public ddd_seg7_collision_submarine Pointer_Collision
--- @field public door_seg3_collision_0301CE78 Pointer_Collision
--- @field public dorrie_seg6_collision_0600F644 Pointer_Collision
--- @field public dorrie_seg6_collision_0600FBB8 Pointer_Collision
--- @field public exclamation_box_outline_seg8_collision_08025F78 Pointer_Collision
--- @field public hmc_seg7_collision_controllable_platform Pointer_Collision
--- @field public hmc_seg7_collision_controllable_platform_sub Pointer_Collision
--- @field public hmc_seg7_collision_elevator Pointer_Collision
--- @field public inside_castle_seg7_collision_floor_trap Pointer_Collision
--- @field public inside_castle_seg7_collision_star_door Pointer_Collision
--- @field public inside_castle_seg7_collision_water_level_pillar Pointer_Collision
--- @field public jrb_seg7_collision_floating_box Pointer_Collision
--- @field public jrb_seg7_collision_floating_platform Pointer_Collision
--- @field public jrb_seg7_collision_in_sunken_ship Pointer_Collision
--- @field public jrb_seg7_collision_in_sunken_ship_2 Pointer_Collision
--- @field public jrb_seg7_collision_in_sunken_ship_3 Pointer_Collision
--- @field public jrb_seg7_collision_pillar_base Pointer_Collision
--- @field public jrb_seg7_collision_rock_solid Pointer_Collision
--- @field public lll_hexagonal_mesh_seg3_collision_0301CECC Pointer_Collision
--- @field public lll_seg7_collision_drawbridge Pointer_Collision
--- @field public lll_seg7_collision_falling_wall Pointer_Collision
--- @field public lll_seg7_collision_floating_block Pointer_Collision
--- @field public lll_seg7_collision_hexagonal_platform Pointer_Collision
--- @field public lll_seg7_collision_inverted_pyramid Pointer_Collision
--- @field public lll_seg7_collision_octagonal_moving_platform Pointer_Collision
--- @field public lll_seg7_collision_pitoune Pointer_Collision
--- @field public lll_seg7_collision_puzzle_piece Pointer_Collision
--- @field public lll_seg7_collision_rotating_fire_bars Pointer_Collision
--- @field public lll_seg7_collision_rotating_platform Pointer_Collision
--- @field public lll_seg7_collision_sinking_pyramids Pointer_Collision
--- @field public lll_seg7_collision_slow_tilting_platform Pointer_Collision
--- @field public lll_seg7_collision_wood_piece Pointer_Collision
--- @field public metal_box_seg8_collision_08024C28 Pointer_Collision
--- @field public penguin_seg5_collision_05008B88 Pointer_Collision
--- @field public poundable_pole_collision_06002490 Pointer_Collision
--- @field public purple_switch_seg8_collision_0800C7A8 Pointer_Collision
--- @field public rr_seg7_collision_donut_platform Pointer_Collision
--- @field public rr_seg7_collision_elevator_platform Pointer_Collision
--- @field public rr_seg7_collision_pendulum Pointer_Collision
--- @field public rr_seg7_collision_rotating_platform_with_fire Pointer_Collision
--- @field public sl_seg7_collision_pound_explodes Pointer_Collision
--- @field public sl_seg7_collision_sliding_snow_mound Pointer_Collision
--- @field public springboard_collision_05001A28 Pointer_Collision
--- @field public ssl_seg7_collision_0702808C Pointer_Collision
--- @field public ssl_seg7_collision_grindel Pointer_Collision
--- @field public ssl_seg7_collision_pyramid_elevator Pointer_Collision
--- @field public ssl_seg7_collision_pyramid_top Pointer_Collision
--- @field public ssl_seg7_collision_spindel Pointer_Collision
--- @field public ssl_seg7_collision_tox_box Pointer_Collision
--- @field public thi_seg7_collision_top_trap Pointer_Collision
--- @field public thwomp_seg5_collision_0500B7D0 Pointer_Collision
--- @field public thwomp_seg5_collision_0500B92C Pointer_Collision
--- @field public ttc_seg7_collision_clock_main_rotation Pointer_Collision
--- @field public ttc_seg7_collision_clock_pendulum Pointer_Collision
--- @field public ttc_seg7_collision_clock_platform Pointer_Collision
--- @field public ttc_seg7_collision_rotating_clock_platform2 Pointer_Collision
--- @field public ttc_seg7_collision_sliding_surface Pointer_Collision
--- @field public ttm_seg7_collision_pitoune_2 Pointer_Collision
--- @field public ttm_seg7_collision_podium_warp Pointer_Collision
--- @field public ttm_seg7_collision_ukiki_cage Pointer_Collision
--- @field public unknown_seg8_collision_080262F8 Pointer_Collision
--- @field public warp_pipe_seg3_collision_03009AC8 Pointer_Collision
--- @field public wdw_seg7_collision_arrow_lift Pointer_Collision
--- @field public wdw_seg7_collision_express_elevator_platform Pointer_Collision
--- @field public wdw_seg7_collision_rect_floating_platform Pointer_Collision
--- @field public wdw_seg7_collision_square_floating_platform Pointer_Collision
--- @field public wf_seg7_collision_breakable_wall Pointer_Collision
--- @field public wf_seg7_collision_breakable_wall_2 Pointer_Collision
--- @field public wf_seg7_collision_bullet_bill_cannon Pointer_Collision
--- @field public wf_seg7_collision_clocklike_rotation Pointer_Collision
--- @field public wf_seg7_collision_kickable_board Pointer_Collision
--- @field public wf_seg7_collision_large_bomp Pointer_Collision
--- @field public wf_seg7_collision_platform Pointer_Collision
--- @field public wf_seg7_collision_sliding_brick_platform Pointer_Collision
--- @field public wf_seg7_collision_small_bomp Pointer_Collision
--- @field public wf_seg7_collision_tower Pointer_Collision
--- @field public wf_seg7_collision_tower_door Pointer_Collision
--- @field public whomp_seg6_collision_06020A0C Pointer_Collision
--- @field public wooden_signpost_seg3_collision_0302DD80 Pointer_Collision
--- @class GlobalTextures
--- @field public camera TextureInfo
--- @field public lakitu TextureInfo
--- @field public no_camera TextureInfo
--- @field public arrow_up TextureInfo
--- @field public arrow_down TextureInfo
--- @field public coin TextureInfo
--- @field public star TextureInfo
--- @field public apostrophe TextureInfo
--- @field public double_quote TextureInfo
--- @field public mario_head TextureInfo
--- @field public luigi_head TextureInfo
--- @field public toad_head TextureInfo
--- @field public waluigi_head TextureInfo
--- @field public wario_head TextureInfo
--- @class GraphNode
--- @field public prev GraphNode
--- @field public next GraphNode
--- @field public parent GraphNode
--- @field public children GraphNode
--- @field public type integer
--- @field public flags integer
--- @field public extraFlags integer
--- @field public hookProcess integer
--- @class GraphNodeAnimatedPart
--- @field public node GraphNode
--- @field public displayList Pointer_Gfx
--- @field public translation Vec3s
--- @class GraphNodeBackground
--- @field public fnNode FnGraphNode
--- @field public unused integer
--- @field public background integer
--- @field public prevCameraPos Vec3f
--- @field public prevCameraFocus Vec3f
--- @field public prevCameraTimestamp integer
--- @class GraphNodeBillboard
--- @field public node GraphNode
--- @field public displayList Pointer_Gfx
--- @field public translation Vec3s
--- @class GraphNodeBone
--- @field public node GraphNode
--- @field public displayList Pointer_Gfx
--- @field public translation Vec3s
--- @field public rotation Vec3s
--- @field public scale Vec3f
--- @class GraphNodeCamera
--- @field public fnNode FnGraphNode
--- @field public pos Vec3f
--- @field public focus Vec3f
--- @field public prevPos Vec3f
--- @field public prevFocus Vec3f
--- @field public prevTimestamp integer
--- @field public matrixPtr Pointer_Mat4
--- @field public matrixPtrPrev Pointer_Mat4
--- @field public roll integer
--- @field public rollScreen integer
--- @class GraphNodeCullingRadius
--- @field public node GraphNode
--- @field public cullingRadius integer
--- @field public pad1E integer[]
--- @class GraphNodeDisplayList
--- @field public node GraphNode
--- @field public displayList Pointer_Gfx
--- @class GraphNodeGenerated
--- @field public fnNode FnGraphNode
--- @field public parameter integer
--- @class GraphNodeHeldObject
--- @field public fnNode FnGraphNode
--- @field public playerIndex integer
--- @field public objNode Object
--- @field public translation Vec3s
--- @field public prevShadowPos Vec3f
--- @field public prevShadowPosTimestamp integer
--- @class GraphNodeLevelOfDetail
--- @field public node GraphNode
--- @field public minDistance integer
--- @field public maxDistance integer
--- @class GraphNodeMasterList
--- @field public node GraphNode
--- @class GraphNodeObject
--- @field public node GraphNode
--- @field public sharedChild GraphNode
--- @field public unk4C SpawnInfo
--- @field public throwMatrix Pointer_Mat4
--- @field public throwMatrixPrev Pointer_Mat4
--- @field public prevThrowMatrix Mat4
--- @field public angle Vec3s
--- @field public prevAngle Vec3s
--- @field public pos Vec3f
--- @field public prevPos Vec3f
--- @field public shadowPos Vec3f
--- @field public prevShadowPos Vec3f
--- @field public scale Vec3f
--- @field public prevScale Vec3f
--- @field public cameraToObject Vec3f
--- @field public prevTimestamp integer
--- @field public prevShadowPosTimestamp integer
--- @field public prevScaleTimestamp integer
--- @field public prevThrowMatrixTimestamp integer
--- @field public skipInterpolationTimestamp integer
--- @field public animInfo AnimInfo
--- @field public areaIndex integer
--- @field public activeAreaIndex integer
--- @field public shadowInvisible boolean
--- @field public disableAutomaticShadowPos boolean
--- @field public skipInViewCheck boolean
--- @field public inited boolean
--- @class GraphNodeObjectParent
--- @field public node GraphNode
--- @field public sharedChild GraphNode
--- @class GraphNodeOrthoProjection
--- @field public node GraphNode
--- @field public scale number
--- @class GraphNodePerspective
--- @field public fnNode FnGraphNode
--- @field public unused integer
--- @field public fov number
--- @field public near integer
--- @field public far integer
--- @field public prevFov number
--- @field public prevTimestamp number
--- @class GraphNodeRoot
--- @field public node GraphNode
--- @field public areaIndex integer
--- @field public x integer
--- @field public y integer
--- @field public width integer
--- @field public height integer
--- @field public numViews integer
--- @class GraphNodeRotation
--- @field public node GraphNode
--- @field public displayList Pointer_Gfx
--- @field public rotation Vec3s
--- @class GraphNodeScale
--- @field public node GraphNode
--- @field public displayList Pointer_Gfx
--- @field public scale number
--- @class GraphNodeScaleXYZ
--- @field public node GraphNode
--- @field public displayList Pointer_Gfx
--- @field public scale Vec3f
--- @class GraphNodeShadow
--- @field public node GraphNode
--- @field public shadowScale integer
--- @field public shadowSolidity integer
--- @field public shadowType integer
--- @class GraphNodeStart
--- @field public node GraphNode
--- @class GraphNodeSwitchCase
--- @field public fnNode FnGraphNode
--- @field public unused integer
--- @field public parameter integer
--- @field public selectedCase integer
--- @class GraphNodeTranslation
--- @field public node GraphNode
--- @field public displayList Pointer_Gfx
--- @field public translation Vec3s
--- @field public pad1E integer[]
--- @class GraphNodeTranslationRotation
--- @field public node GraphNode
--- @field public displayList Pointer_Gfx
--- @field public translation Vec3s
--- @field public rotation Vec3s
--- @class HudUtilsRotation
--- @field public rotation number
--- @field public rotationDiff number
--- @field public prevPivotX number
--- @field public prevPivotY number
--- @field public pivotX number
--- @field public pivotY number
--- @class InstantWarp
--- @field public id integer
--- @field public area integer
--- @field public displacement Vec3s
--- @class LakituState
--- @field public curFocus Vec3f
--- @field public curPos Vec3f
--- @field public goalFocus Vec3f
--- @field public goalPos Vec3f
--- @field public filler30 integer[]
--- @field public mode integer
--- @field public defMode integer
--- @field public filler3E integer[]
--- @field public focusDistance number
--- @field public oldPitch integer
--- @field public oldYaw integer
--- @field public oldRoll integer
--- @field public shakeMagnitude Vec3s
--- @field public shakePitchPhase integer
--- @field public shakePitchVel integer
--- @field public shakePitchDecay integer
--- @field public unusedVec1 Vec3f
--- @field public unusedVec2 Vec3s
--- @field public filler72 integer[]
--- @field public roll integer
--- @field public yaw integer
--- @field public nextYaw integer
--- @field public focus Vec3f
--- @field public pos Vec3f
--- @field public shakeRollPhase integer
--- @field public shakeRollVel integer
--- @field public shakeRollDecay integer
--- @field public shakeYawPhase integer
--- @field public shakeYawVel integer
--- @field public shakeYawDecay integer
--- @field public focHSpeed number
--- @field public focVSpeed number
--- @field public posHSpeed number
--- @field public posVSpeed number
--- @field public keyDanceRoll integer
--- @field public lastFrameAction integer
--- @field public unused integer
--- @field public skipCameraInterpolationTimestamp integer
--- @class LevelValues
--- @field public fixCollisionBugs integer
--- @field public fixCollisionBugsRoundedCorners integer
--- @field public fixCollisionBugsFalseLedgeGrab integer
--- @field public fixCollisionBugsGroundPoundBonks integer
--- @field public fixCollisionBugsPickBestWall integer
--- @field public fixVanishFloors integer
--- @field public fixInvalidShellRides integer
--- @field public hudCapTimer integer
--- @field public hudRedCoinsRadar integer
--- @field public hudSecretsRadar integer
--- @field public starHeal integer
--- @field public mushroom1UpHeal integer
--- @field public floatingStarDance integer
--- @field public previewBlueCoins integer
--- @field public respawnBlueCoinsSwitch integer
--- @field public visibleSecrets integer
--- @field public showStarNumber integer
--- @field public extendedPauseDisplay integer
--- @field public pauseExitAnywhere integer
--- @field public disableActs integer
--- @field public bubbleOnDeathBarrierInCapStages integer
--- @field public entryLevel LevelNum
--- @field public exitCastleLevel LevelNum
--- @field public exitCastleArea integer
--- @field public exitCastleWarpNode integer
--- @field public wingCapLookUpReq integer
--- @field public skipCreditsAt LevelNum
--- @field public pssSlideStarTime integer
--- @field public pssSlideStarIndex integer
--- @field public coinsRequiredForCoinStar integer
--- @field public infiniteStairsRequirement integer
--- @field public wingCapDuration integer
--- @field public metalCapDuration integer
--- @field public vanishCapDuration integer
--- @field public wingCapDurationTotwc integer
--- @field public metalCapDurationCotmc integer
--- @field public vanishCapDurationVcutm integer
--- @field public wingCapSequence SeqId
--- @field public metalCapSequence SeqId
--- @field public vanishCapSequence SeqId
--- @field public shellSequence SeqId
--- @field public starPositions StarPositions
--- @field public cellHeightLimit integer
--- @field public floorLowerLimit integer
--- @field public floorLowerLimitMisc integer
--- @field public floorLowerLimitShadow integer
--- @field public maxLives integer
--- @field public maxCoins integer
--- @field public numCoinsToLife integer
--- @field public wdwWaterLevelSpeed number
--- @field public useGlobalStarIds integer
--- @field public zoomOutCameraOnPause integer
--- @field public jrbDarkenSkybox integer
--- @field public wallMaxRadius number
--- @field public floorNormalMinY number
--- @field public ceilNormalMaxY number
--- @class MarioAnimation
--- @field public currentAnimAddr Pointer_integer
--- @field public targetAnim Animation
--- @class MarioBodyState
--- @field public capState integer
--- @field public eyeState integer
--- @field public handState integer
--- @field public punchState integer
--- @field public modelState integer
--- @field public allowPartRotation integer
--- @field public grabPos integer
--- @field public wingFlutter integer
--- @field public mirrorMario boolean
--- @field public headAngle Vec3s
--- @field public torsoAngle Vec3s
--- @field public headPos Vec3f
--- @field public torsoPos Vec3f
--- @field public heldObjLastPosition Vec3f
--- @field public animPartsPos Vec3f[]
--- @field public animPartsRot Vec3s[]
--- @field public currAnimPart integer
--- @field public updateTorsoTime integer
--- @field public updateHeadPosTime integer
--- @field public action integer
--- @field public shadeR integer
--- @field public shadeG integer
--- @field public shadeB integer
--- @field public lightR integer
--- @field public lightG integer
--- @field public lightB integer
--- @field public lightingDirX number
--- @field public lightingDirY number
--- @field public lightingDirZ number
--- @class MarioState
--- @field public playerIndex integer
--- @field public input integer
--- @field public numCoins integer
--- @field public numStars integer
--- @field public numLives integer
--- @field public numKeys integer
--- @field public health integer
--- @field public hurtCounter integer
--- @field public healCounter integer
--- @field public isSnoring integer
--- @field public freeze integer
--- @field public cap integer
--- @field public capTimer integer
--- @field public invincTimer integer
--- @field public skipWarpInteractionsTimer integer
--- @field public squishTimer integer
--- @field public bounceSquishTimer integer
--- @field public knockbackTimer integer
--- @field public wallKickTimer integer
--- @field public doubleJumpTimer integer
--- @field public specialTripleJump integer
--- @field public fadeWarpOpacity integer
--- @field public wasNetworkVisible integer
--- @field public dialogId integer
--- @field public prevNumStarsForDialog integer
--- @field public unkB0 integer
--- @field public action integer
--- @field public prevAction integer
--- @field public actionArg integer
--- @field public actionTimer integer
--- @field public actionState integer
--- @field public flags integer
--- @field public quicksandDepth number
--- @field public controller Controller
--- @field public marioBodyState MarioBodyState
--- @field public character Character
--- @field public terrainSoundAddend integer
--- @field public pos Vec3f
--- @field public nonInstantWarpPos Vec3f
--- @field public vel Vec3f
--- @field public slideVelX number
--- @field public slideVelZ number
--- @field public forwardVel number
--- @field public peakHeight number
--- @field public intendedMag number
--- @field public intendedYaw integer
--- @field public framesSinceA integer
--- @field public framesSinceB integer
--- @field public faceAngle Vec3s
--- @field public angleVel Vec3s
--- @field public slideYaw integer
--- @field public twirlYaw integer
--- @field public heldObj Object
--- @field public heldByObj Object
--- @field public interactObj Object
--- @field public riddenObj Object
--- @field public usedObj Object
--- @field public marioObj Object
--- @field public bubbleObj Object
--- @field public collidedObjInteractTypes integer
--- @field public particleFlags integer
--- @field public animation MarioAnimation
--- @field public splineKeyframe Pointer_Vec4s
--- @field public splineKeyframeFraction number
--- @field public splineState integer
--- @field public curAnimOffset number
--- @field public minimumBoneY number
--- @field public wall Surface
--- @field public ceil Surface
--- @field public floor Surface
--- @field public spawnInfo SpawnInfo
--- @field public area Area
--- @field public statusForCamera PlayerCameraState
--- @field public ceilHeight number
--- @field public floorHeight number
--- @field public wallNormal Vec3f
--- @field public unkC4 number
--- @field public floorAngle integer
--- @field public waterLevel integer
--- @field public currentRoom integer
--- @field public get_character fun(m: MarioState): Character Gets a Character struct from `m`
--- @field public play_character_sound fun(m: MarioState, characterSound: CharacterSound) Plays a character-specific sound based on the given `characterSound` value. The sound is tied to Mario's current state (`m`). Useful for triggering sound effects for actions like jumping or interacting with the environment
--- @field public play_character_sound_offset fun(m: MarioState, characterSound: CharacterSound, offset: integer) Plays a character-specific sound with an additional `offset`, allowing variations or delays in the sound effect. Uses Mario's current state (`m`). Useful for adding dynamic sound effects or syncing sounds to specific animations or events
--- @field public play_character_sound_if_no_flag fun(m: MarioState, characterSound: CharacterSound, flags: integer) Plays a character-specific sound only if certain flags are not set. This ensures that sounds are not repeated unnecessarily. The sound is based on `characterSound`, and the flags are checked using `flags`. Useful for avoiding duplicate sound effects in rapid succession or conditional actions
--- @field public get_character_anim_offset fun(m: MarioState): number Calculates the animation offset for Mario's current animation. The offset is determined by the type of animation being played (e.g., hand, feet, or torso movement). Useful for smoothly syncing Mario's model height or positional adjustments during animations
--- @field public get_character_anim fun(m: MarioState, characterAnim: CharacterAnimID): integer Gets the animation ID to use for a specific character and animation combination. The ID is based on `characterAnim` and the character currently controlled by Mario (`m`). Useful for determining which animation to play for actions like walking, jumping, or idle states
--- @field public update_character_anim_offset fun(m: MarioState) Updates Mario's current animation offset. This adjusts Mario's position based on the calculated offset to ensure animations appear smooth and natural. Useful for keeping Mario's animations visually aligned, particularly when transitioning between animations
--- @field public first_person_check_cancels fun(m: MarioState): boolean Checks common cancels for first person
--- @field public interact_coin fun(m: MarioState, interactType: integer, o: Object): integer Handles Mario's interaction with coins. Collecting a coin increases Mario's coin count and heals him slightly. Useful for score, and coin management
--- @field public interact_water_ring fun(m: MarioState, interactType: integer, o: Object): integer Handles interactions with water rings that heal Mario. Passing through water rings increases his health counter. Useful for underwater stages
--- @field public interact_star_or_key fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with Stars or Keys. If Mario collects a star or key, it triggers a specific star grab cutscene and progression is updated. Also handles no-exit variants (like the wing cap stage star). Useful for the main progression system of collecting Stars and unlocking new areas
--- @field public interact_bbh_entrance fun(m: MarioState, interactType: integer, o: Object): integer Handles Mario's interaction with the Boo's Big Haunt (BBH) entrance object. When Mario tries to enter the BBH area, this function determines the resulting action (e.g., a jump or spin entrance)
--- @field public interact_warp fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with warps, including warp pipes and hole warps. If Mario steps onto a warp, he either transitions into another area or level. Useful for connecting different parts of the game world and controlling transitions between levels as well as custom warp areas
--- @field public interact_warp_door fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with warp doors that lead to other areas or require keys. If Mario can open the door (has enough stars or a key), he proceeds. Otherwise, it may show a dialog. Useful for restricting access to certain areas based on progression
--- @field public interact_door fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction when Mario touches a door. If Mario meets the star requirement or has the key, he can unlock/open the door. Otherwise, it may display dialog indicating the requirement. Useful for controlling access to locked areas and providing progression gating in the game
--- @field public interact_cannon_base fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction when Mario touches a cannon base. If the cannon is ready, Mario enters the cannon, triggering a special action and camera behavior. Useful for transitioning to cannon-aiming mode and enabling cannon travel within levels
--- @field public interact_player fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with another player (in multiplayer scenarios). Checks if Mario and another player collide and resolves any special behavior like bouncing on top. Useful for multiplayer interactions, such as PvP or cooperative gameplay mechanics
--- @field public interact_igloo_barrier fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with the igloo barrier found in Snowman's Land. If Mario runs into the barrier, this function pushes him away and prevents passage without the vanish cap. Useful for enforcing require-caps to access certain areas
--- @field public interact_tornado fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with tornados. If Mario touches a tornado, he enters a spinning twirl action, losing control temporarily. Useful for desert levels or areas where environmental hazards lift Mario into the air
--- @field public interact_whirlpool fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with whirlpools. If Mario gets caught in a whirlpool, he's pulled toward it, resulting in a unique "caught" action. Useful for hazards that trap Mario like whirlpools
--- @field public interact_strong_wind fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with strong wind gusts. These gusts push Mario back, often knocking him off platforms or sending him flying backwards. Useful for environmental wind hazards
--- @field public interact_flame fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with flame objects. If Mario touches a flame and is not invulnerable or protected by certain caps, he takes damage and may be set on fire, causing a burning jump. Useful for simulating fire damage and hazards in levels
--- @field public interact_snufit_bullet fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with Snufit bullets (projectiles fired by certain enemies). If Mario is not protected, he takes damage. Otherwise, the bullet can be destroyed
--- @field public interact_clam_or_bubba fun(m: MarioState, interactType: integer, o: Object): integer Handles interactions with objects like Clams or Bubbas, which can damage Mario or, in Bubba's case, eat Mario. If Bubba eats Mario, it triggers a unique "caught" action. Otherwise, it deals damage and knockback if hit by a Clam
--- @field public interact_bully fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with Bully enemies. Determines if Mario attacks the Bully or gets knocked back. Updates Mario's velocity and state accordingly, and can defeat the Bully if attacked successfully. Useful for enemy encounters that involve pushing and shoving mechanics rather than just stomping like the bullies
--- @field public interact_shock fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with shocking objects. If Mario touches an electrified enemy or hazard, he takes damage and may be stunned or shocked. Useful for electric-themed enemies and obstacles
--- @field public interact_mr_blizzard fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with Mr. Blizzard (the snowman enemy) or similar objects. If Mario is attacked or collides with Mr. Blizzard, it applies damage and knockback if not protected or attacking
--- @field public interact_hit_from_below fun(m: MarioState, interactType: integer, o: Object): integer Handles interactions where Mario hits an object from below (e.g., hitting a block from underneath). Determines if Mario damages/destroys the object, or if it damages Mario. Useful for handling upward attacks, hitting coin blocks, or interacting with certain NPCs from below
--- @field public interact_bounce_top fun(m: MarioState, interactType: integer, o: Object): integer Handles interactions where Mario bounces off the top of an object (e.g., Goombas, Koopas). Checks if Mario attacks the object from above and applies the appropriate knockback, sound effects, and object state changes. Useful for enemy defeat mechanics and platform bouncing
--- @field public interact_spiny_walking fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with Spiny-walking enemies. If Mario attacks it (e.g., by punching), the enemy is hurt. If he fails to attack properly (say bouncing on top), Mario takes damage and knockback. Useful for enemies that cannot be stomped from above and require direct attacks
--- @field public interact_damage fun(m: MarioState, interactType: integer, o: Object): integer Handles damaging interactions from various objects (e.g., enemies, hazards). If Mario takes damage, it applies knockback and reduces health. Useful for enemy attacks, environmental hazards, and managing damage related behaviors
--- @field public interact_breakable fun(m: MarioState, interactType: integer, o: Object): integer Handles interactions with breakable objects (e.g., breakable boxes or bob-ombs). If Mario hits the object with a valid attack (like a punch or kick), the object is destroyed or changes state. Useful for managing collectible items hidden in breakable objects and level progression through destructible blocks or walls
--- @field public interact_koopa_shell fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction when Mario touches a Koopa Shell. If conditions are met, Mario can hop onto the shell and start riding it, changing his movement mechanics. Useful for implementing Koopa Shell behavior
--- @field public interact_pole fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with poles (e.g., climbing poles). If Mario runs into a vertical pole, he can grab it and start climbing. Useful for platforming mechanics
--- @field public interact_hoot fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with Hoot, the owl. If Mario can grab onto Hoot, this sets Mario onto a riding action, allowing him to fly around the level. Useful for special traversal mechanics and shortcuts within a course
--- @field public interact_cap fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction when Mario picks up a cap object. This includes normal caps, wing caps, vanish caps, and metal caps. Updates Mario's state (e.g., cap timers, sound effects) and may initiate putting on the cap animation. Useful for managing cap statuses
--- @field public interact_grabbable fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with grabbable objects (e.g., crates, small enemies, or Bowser). Checks if Mario can pick up the object and initiates the grab action if possible. Useful for course mechanics, throwing items, and Bowser
--- @field public interact_text fun(m: MarioState, interactType: integer, o: Object): integer Handles interaction with signs, NPCs, and other text-bearing objects. If Mario presses the interact button facing them, he enters a dialog reading state. Useful for managing hints, story elements, or gameplay instructions through in-game dialogue
--- @field public obj_angle_to_object fun(m: MarioState, o: Object): integer Calculates the angle between Mario and a specified object. Used for determining Mario's orientation relative to the object. Useful for deciding directions between Mario and NPCs
--- @field public stop_riding_object fun(m: MarioState) Stops Mario from riding any currently ridden object (e.g., a Koopa shell or Hoot), updating the object's interaction status and Mario's state. Useful for cleanly dismounting ridden objects
--- @field public grab_used_object fun(m: MarioState) Grabs the object currently referenced by Mario's `usedObj` if it's not already being held. Changes the object's state to indicate it is now held by Mario. Useful for handling the moment Mario successfully picks up an object
--- @field public drop_held_object fun(m: MarioState) Causes Mario to drop the object he is currently holding. Sets the held object's state accordingly and places it in front of Mario. Useful for releasing carried objects, such as throwing Bob-ombs or setting down crates
--- @field public throw_held_object fun(m: MarioState) Throws the object Mario is currently holding. The object is placed in front of Mario and given a forward velocity. Useful for attacking enemies with thrown objects, solving puzzles by throwing crates, or interacting with environment items
--- @field public stop_riding_and_holding fun(m: MarioState) Causes Mario to stop riding any object (like a shell or Hoot) and also drop any held object. Resets related states to ensure Mario is no longer attached to or holding anything. Useful when changing Mario's state after certain actions, transitions, or to prevent exploits
--- @field public does_have_normal_cap_on_head fun(m: MarioState): integer Checks if Mario is currently wearing his normal cap on his head. Returns true if Mario's flag state matches that of having the normal cap equipped on his head, otherwise false. Useful for determining Mario's cap status
--- @field public does_have_blown_cap fun(m: MarioState): boolean Checks if Mario has already had a cap blown off of his head in the current level, Returns true if a blown cap can be found for Mario, false if not. Useful to check if a blown cap exists in the level currently.
--- @field public blow_off_cap fun(m: MarioState, capSpeed: number) Makes Mario blow off his normal cap at a given speed. Removes the normal cap from Mario's head and spawns it as a collectible object in the game world. Useful for simulating events where Mario loses his cap due to enemy attacks or environmental forces
--- @field public lose_cap_to_enemy fun(m: MarioState, arg: integer): integer Makes Mario lose his normal cap to an enemy, such as Klepto or Ukiki. Updates flags so that the cap is no longer on Mario's head. Returns true if Mario was wearing his normal cap, otherwise false. Useful for scenarios where enemies steal Mario's cap
--- @field public retrieve_cap fun(m: MarioState) Retrieves Mario's normal cap if it was previously lost. Removes the cap from Mario's hand state and places it on his head. Useful when Mario recovers his normal cap from enemies, finds it in a level, or if it were to disappear
--- @field public get_collided_object fun(m: MarioState, interactType: integer): Object Returns a collided object that matches a given interaction type from Mario's current collision data. Useful for determining which object Mario has come into contact with
--- @field public check_object_grab fun(m: MarioState): integer Checks if Mario can grab the currently encountered object (usually triggered when Mario punches or dives). If conditions are met, initiates the grabbing process. Useful for picking up objects, throwing enemies, or grabbing special items
--- @field public passes_pvp_interaction_checks fun(attacker: MarioState, victim: MarioState): integer Checks if the necessary conditions are met for one player to successfully attack another player in a PvP scenario. Considers factors like invincibility, action states, and whether the attack is valid. Useful for multiplayer where players can harm each other
--- @field public should_push_or_pull_door fun(m: MarioState, o: Object): integer Determines whether Mario should push or pull a door when he interacts with it, based on his orientation and position. Useful for animating door interactions realistically, depending on which side Mario approaches from
--- @field public take_damage_and_knock_back fun(m: MarioState, o: Object): integer Handles the logic of Mario taking damage and being knocked back by a damaging object. Decreases Mario's health, sets his knockback state, and triggers appropriate sound and camera effects. Useful for implementing enemy attacks, hazards, and ensuring Mario receives proper feedback upon taking damage
--- @field public determine_interaction fun(m: MarioState, o: Object): integer Determines how Mario interacts with a given object based on his current action, position, and other state variables. Calculates the appropriate interaction type (e.g., punch, kick, ground pound) that should result from Mario's contact with the specified object (`o`). Useful for handling different types of player-object collisions, attacks, and object behaviors
--- @field public level_trigger_warp fun(m: MarioState, warpOp: integer): integer Triggers a warp (WARP_OP_*) for the level. Pass in `gMarioStates[0]` for `m`
--- @field public is_anim_at_end fun(m: MarioState): integer Checks if Mario's current animation has reached its final frame (i.e., the last valid frame in the animation). Useful for deciding when to transition out of an animation-driven action
--- @field public is_anim_past_end fun(m: MarioState): integer Checks if Mario's current animation has passed the second-to-last valid frame (i.e., effectively at or beyond its final frames). Useful for advanced checks where slightly early transitions or timing are needed before the final frame
--- @field public set_animation fun(m: MarioState, targetAnimID: integer): integer Sets Mario's current animation to `targetAnimID` at a default acceleration (no speed change)
--- @field public set_anim_with_accel fun(m: MarioState, targetAnimID: integer, accel: integer): integer Sets Mario's current animation to `targetAnimID` with a custom `accel` value to speed up or slow down the animation. Useful for controlling animation timing, e.g., slow-motion or fast-forward effects
--- @field public set_character_animation fun(m: MarioState, targetAnimID: CharacterAnimID): integer Sets the character-specific animation at its default rate (no acceleration)
--- @field public set_character_anim_with_accel fun(m: MarioState, targetAnimID: CharacterAnimID, accel: integer): integer Sets a character-specific animation where the animation speed is adjusted by `accel`. Useful for varying animation speeds based on context or dynamic conditions (e.g., slow-motion)
--- @field public set_anim_to_frame fun(m: MarioState, animFrame: integer) Sets the current animation frame to a specific `animFrame`
--- @field public is_anim_past_frame fun(m: MarioState, animFrame: integer): integer Checks if Mario's current animation is past a specified `animFrame`. Useful for conditional logic where an action can branch after reaching a specific point in the animation
--- @field public update_pos_for_anim fun(m: MarioState) Applies the translation from Mario's current animation to his world position. Considers animation flags (horizontal/vertical translation)
--- @field public return_anim_y_translation fun(m: MarioState): integer Determines the vertical translation from Mario's animation (how much the animation moves Mario up or down). Returns the y-component of the animation's translation. Useful for adjusting Mario's vertical position based on an ongoing animation (e.g., a bounce or jump)
--- @field public play_sound_if_no_flag fun(m: MarioState, soundBits: integer, flags: integer) Plays a sound if Mario does not currently have a specific flag set. Once played, the flag is set to prevent immediate repeats
--- @field public play_jump_sound fun(m: MarioState) Plays Mario's jump sound if it hasn't been played yet since the last action change. This helps avoid overlapping jump voice lines on repeated jumps
--- @field public adjust_sound_for_speed fun(m: MarioState) Adjusts the pitch/volume of Mario's movement-based sounds according to his forward velocity (`m.forwardVel`). Useful for adding dynamic audio feedback based on Mario's running or walking speed
--- @field public play_sound_and_spawn_particles fun(m: MarioState, soundBits: integer, waveParticleType: integer) Plays the specified sound effect and spawns surface-appropriate particles (e.g., water splash, snow, sand). Checks if Mario is metal to adjust audio accordingly
--- @field public play_action_sound fun(m: MarioState, soundBits: integer, waveParticleType: integer) Plays an action sound once per action, optionally spawning wave or dust particles depending on the surface. This sets the `MARIO_ACTION_SOUND_PLAYED` flag to prevent repeats
--- @field public play_landing_sound fun(m: MarioState, soundBits: integer) Plays a normal landing sound (or metal landing sound if Mario is metal) and spawns appropriate particle effects (water splash, dust, etc.)
--- @field public play_landing_sound_once fun(m: MarioState, soundBits: integer) A variant of `play_mario_landing_sound` that ensures the sound is only played once per action. Uses `play_mario_action_sound` internally
--- @field public play_heavy_landing_sound fun(m: MarioState, soundBits: integer) Plays a heavier, more forceful landing sound, possibly for ground pounds or large impacts. Takes into account whether Mario has a metal cap equipped. Useful for making big impact landings stand out aurally
--- @field public play_heavy_landing_sound_once fun(m: MarioState, soundBits: integer) A variant of `play_mario_heavy_landing_sound` that ensures the sound is only played once per action (using `play_mario_action_sound` internally). Useful for consistent heavy landing effects without repetition
--- @field public play_sound fun(m: MarioState, primarySoundBits: integer, scondarySoundBits: integer) Plays a given action sound (like a jump or landing) and also a Mario voice line if certain conditions are met. It manages flags to avoid repeated sounds
--- @field public is_crouching fun(m: MarioState): boolean Returns true if Mario is in any of the crouching or crawling states, checking his current action
--- @field public is_ground_pound_landing fun(m: MarioState): boolean Returns true if Mario is in a ground pound landing state (`ACT_GROUND_POUND_LAND` or any ground action with `INT_GROUND_POUND` interaction)
--- @field public can_bubble fun(m: MarioState): boolean Checks whether Mario can become bubbled under certain game conditions (multiplayer bubble mechanic). Returns false if already bubbled or if not allowed by settings
--- @field public set_bubbled fun(m: MarioState) Transitions Mario into a bubbled state (if available in multiplayer), decrementing lives and preventing normal movement
--- @field public set_forward_vel fun(m: MarioState, speed: number) Sets Mario's forward velocity (`m.forwardVel`) and updates `slideVelX/Z` and `m.vel` accordingly, based on `m.faceAngle.y`. Useful for controlling Mario's speed and direction in various actions (jumping, walking, sliding, etc.)
--- @field public get_floor_class fun(m: MarioState): integer Retrieves the slipperiness class of Mario's current floor, ranging from not slippery to very slippery. Considers terrain types and special surfaces. Useful for controlling friction, movement speed adjustments, and whether Mario slips or walks
--- @field public get_terrain_sound_addend fun(m: MarioState): integer Computes a value added to terrain sounds, depending on the floor's type (sand, snow, water, etc.) and slipperiness. This returns a sound 'addend' used with sound effects. Useful for playing context-specific footstep or movement sounds
--- @field public facing_downhill fun(m: MarioState, turnYaw: integer): integer Determines if Mario is facing downhill relative to his floor angle, optionally accounting for forward velocity direction. Returns true if he is oriented down the slope. Useful for deciding if Mario will walk or slide on sloped floors
--- @field public floor_is_slippery fun(m: MarioState): integer Checks whether Mario's current floor is slippery based on both the floor's surface class and Mario's environment (e.g., special slides). Useful for deciding if Mario should transition to sliding or maintain normal traction
--- @field public floor_is_slope fun(m: MarioState): integer Checks whether Mario's floor is a slope, i.e., not flat but not necessarily steep. This depends on the floor's surface class and angle
--- @field public floor_is_steep fun(m: MarioState): integer Checks whether Mario's floor is steep enough to cause special behavior, such as forcing slides or preventing certain actions. Returns true if the slope is too steep. Useful for restricting normal movement on surfaces with extreme angles
--- @field public find_floor_height_relative_polar fun(m: MarioState, angleFromMario: integer, distFromMario: number): number Finds the floor height relative to Mario's current position given a polar displacement (`angleFromMario`, `distFromMario`). Useful for determining height differentials ahead or behind Mario, e.g. for slope checks or collision logic
--- @field public find_floor_slope fun(m: MarioState, yawOffset: integer): integer Returns a slope angle based on comparing the floor heights slightly in front and behind Mario. It essentially calculates how steep the ground is in a specific yaw direction. Useful for slope-based calculations such as setting walking or sliding behaviors
--- @field public update_sound_and_camera fun(m: MarioState) Updates the background noise and camera modes based on Mario's action. Especially relevant for actions like first-person view or sleeping. Useful for synchronizing camera behavior and ambient sounds with Mario's state changes
--- @field public set_steep_jump_action fun(m: MarioState) Transitions Mario into ACT_STEEP_JUMP if the floor is too steep, adjusting his forward velocity and orientation accordingly. Useful for forcing special jump states on surfaces exceeding normal slope limits
--- @field public set_y_vel_based_on_fspeed fun(m: MarioState, initialVelY: number, multiplier: number) Adjusts Mario's vertical velocity (`m.vel.y`) based on his forward speed. This function also accounts for conditions like quicksand to halve velocity
--- @field public set_action fun(m: MarioState, action: integer, actionArg: integer): integer Sets Mario's action to the specified `action` and `actionArg`, routing through group-specific transition functions (e.g., airborne actions). Resets sound flags and updates internal timers
--- @field public set_jump_from_landing fun(m: MarioState): integer When Mario lands on the ground, decides whether to jump again (single, double, triple) or enter a steep jump if the floor is very steep. Handles quicksand logic as well
--- @field public set_jumping_action fun(m: MarioState, action: integer, actionArg: integer): integer Sets Mario to a jumping action (regular, double, triple, or steep jump) if conditions allow it. If the floor is too steep or if in quicksand, it changes the action accordingly
--- @field public drop_and_set_action fun(m: MarioState, action: integer, actionArg: integer): integer Drops any currently held object and sets Mario to a new action. This function is typically used when Mario transitions to states where he cannot hold objects
--- @field public hurt_and_set_action fun(m: MarioState, action: integer, actionArg: integer, hurtCounter: integer): integer Increments Mario's `hurtCounter` and immediately sets a new action. Often used when Mario takes damage and transitions into a knockback or stunned action.
--- @field public check_common_action_exits fun(m: MarioState): integer Checks for inputs that cause common action transitions (jump, freefall, walking, sliding). Useful for quickly exiting certain stationary actions when Mario begins moving or leaves the floor
--- @field public check_common_hold_action_exits fun(m: MarioState): integer Checks for inputs that cause common hold-action transitions (hold jump, hold freefall, hold walking, hold sliding)
--- @field public transition_submerged_to_walking fun(m: MarioState): integer Transitions Mario from being underwater to a walking state. Resets camera to the default mode and can handle object-holding states. Useful for restoring standard ground movement when emerging from water
--- @field public set_water_plunge_action fun(m: MarioState): integer Transitions Mario into a "water plunge" action, used when he enters water from above. Adjusts position, velocity, and camera mode
--- @field public force_idle_state fun(m: MarioState): integer Forces Mario into an idle state, either `ACT_IDLE` or `ACT_WATER_IDLE` depending on whether he is submerged. Useful for quickly resetting Mario's state to an idle pose under special conditions (e.g., cutscene triggers)
--- @field public init_single fun(m: MarioState) Initializes the fields of a single `MarioState` structure when the player spawns or respawns. Sets starting position, velocity, action, and various internal flags
--- @field public set_particle_flags fun(m: MarioState, flags: integer, clear: integer) Sets Mario's particle flags to spawn various visual effects (dust, water splashes, etc.), with an option to clear or set new flags
--- @field public update_wall fun(m: MarioState, wcd: WallCollisionData) Updates Mario's wall information based on wall collisions (`WallCollisionData`). Chooses the most relevant wall depending on the level's collision fix settings
--- @field public play_flip_sounds fun(m: MarioState, frame1: integer, frame2: integer, frame3: integer) Plays a spinning sound at specific animation frames for flips (usually side flips or certain jump flips). If the current animation frame matches any of the specified frames, it triggers `SOUND_ACTION_SPIN`
--- @field public play_far_fall_sound fun(m: MarioState) Plays a unique sound when Mario has fallen a significant distance without being invulnerable, twirling, or flying. If the fall exceeds a threshold, triggers a "long fall" exclamation. Also sets a flag to prevent repeated triggering
--- @field public play_knockback_sound fun(m: MarioState) Plays a knockback sound effect if Mario is hit or knocked back with significant velocity. The specific sound differs depending on whether Mario's forward velocity is high enough to be considered a strong knockback
--- @field public lava_boost_on_wall fun(m: MarioState): integer Allows Mario to 'lava boost' off a lava wall, reorienting him to face away from the wall and adjusting forward velocity. Increases Mario's hurt counter if he's not metal, plays a burning sound, and transitions his action to `ACT_LAVA_BOOST`. Useful for handling collisions with lava walls, giving Mario a strong upward/forward boost at the cost of health
--- @field public check_fall_damage fun(m: MarioState, hardFallAction: integer): integer Evaluates whether Mario should take fall damage based on the height difference between his peak and current position. If the fall is large enough and does not occur over burning surfaces or while twirling, Mario may get hurt or enter a hard fall action. If the fall is significant but not extreme, minimal damage and a squish effect may be applied. Useful for determining if Mario's fall warrants a health penalty or a special landing action
--- @field public check_kick_or_dive_in_air fun(m: MarioState): integer Checks if Mario should perform a kick or a dive while in mid-air, depending on his current forward velocity. Pressing the B button in the air can trigger a jump kick (at lower speeds) or a dive (at higher speeds)
--- @field public should_get_stuck_in_ground fun(m: MarioState): integer Determines whether Mario should become stuck in the ground after landing, specifically for soft terrain such as snow or sand, provided certain conditions are met (height of the fall, normal of the floor, etc.). Returns true if Mario should be stuck, false otherwise
--- @field public check_fall_damage_or_get_stuck fun(m: MarioState, hardFallAction: integer): integer Checks if Mario should get stuck in the ground after a large fall onto soft terrain (like snow or sand) or if he should just proceed with regular fall damage calculations. If the terrain and height conditions are met, Mario's action changes to being stuck in the ground. Otherwise, normal fall damage logic applies
--- @field public check_horizontal_wind fun(m: MarioState): integer Checks for the presence of a horizontal wind surface under Mario. If found, applies a push force to Mario's horizontal velocity. Caps speed at certain thresholds, updates Mario's forward velocity and yaw for sliding/wind movement
--- @field public update_air_with_turn fun(m: MarioState) Updates Mario's air movement while allowing him to turn. Checks horizontal wind and applies a moderate amount of drag, approaches the forward velocity toward zero if no input is pressed, and modifies forward velocity/angle based on stick input
--- @field public update_air_without_turn fun(m: MarioState) Updates Mario's air movement without directly turning his facing angle to match his intended yaw. Instead, Mario can move sideways relative to his current facing direction. Also checks horizontal wind and applies drag
--- @field public update_lava_boost_or_twirling fun(m: MarioState) Updates Mario's movement when in actions like lava boost or twirling in mid-air. Applies player input to adjust forward velocity and facing angle, but in a more restricted manner compared to standard jump movement. Used by `ACT_LAVA_BOOST` and `ACT_TWIRLING`
--- @field public update_flying_yaw fun(m: MarioState) Calculates and applies a change in Mario's yaw while flying, based on horizontal stick input. Approaches a target yaw velocity and sets Mario's roll angle to simulate banking turns. This results in a more natural, curved flight path
--- @field public update_flying_pitch fun(m: MarioState) Calculates and applies a change in Mario's pitch while flying, based on vertical stick input. Approaches a target pitch velocity and clamps the final pitch angle to a certain range, simulating a smooth flight control
--- @field public update_flying fun(m: MarioState) Handles the complete flying logic for Mario (usually with the wing cap). Continuously updates pitch and yaw based on controller input, applies drag, and adjusts forward velocity. Also updates Mario's model angles for flight animations
--- @field public common_air_action_step fun(m: MarioState, landAction: integer, animation: integer, stepArg: integer): integer Performs a standard step update for air actions without knockback, typically used for jumps or freefalls. Updates Mario's velocity (and possibly checks horizontal wind), then calls `perform_air_step` with given `stepArg`. Handles how Mario lands, hits walls, grabs ledges, or grabs ceilings. Optionally sets an animation
--- @field public common_air_knockback_step fun(m: MarioState, landAction: integer, hardFallAction: integer, animation: integer, speed: number): integer A shared step update used for airborne knockback states (both forward and backward). Updates velocity, calls `perform_air_step`, and handles wall collisions or landing transitions to appropriate ground knockback actions. Also sets animation and speed
--- @field public check_wall_kick fun(m: MarioState): integer Checks if Mario should wall kick after performing an air hit against a wall. If the input conditions (e.g., pressing A) and the `wallKickTimer` allow, Mario transitions to `ACT_WALL_KICK_AIR`
--- @field public check_common_airborne_cancels fun(m: MarioState): integer Checks for and handles common conditions that would cancel Mario's current air action. This includes transitioning to a water plunge if below the water level, becoming squished if appropriate, or switching to vertical wind action if on certain wind surfaces. Also resets `m.quicksandDepth`
--- @field public execute_airborne_action fun(m: MarioState): integer Executes Mario's current airborne action by first checking common airborne cancels, then playing a far-fall sound if needed. Dispatches to the appropriate action function, such as jump, double jump, freefall, etc
--- @field public add_tree_leaf_particles fun(m: MarioState) Spawns leaf particles when Mario climbs a tree, if he is sufficiently high above the floor. In Shifting Sand Land, the leaf effect spawns higher due to the taller palm trees
--- @field public play_climbing_sounds fun(m: MarioState, b: integer) Plays the appropriate climbing sound effect depending on whether Mario is on a tree or a pole. If `b == 1`, it plays the "climbing up" sound; otherwise, it plays the "sliding down" sound
--- @field public set_pole_position fun(m: MarioState, offsetY: number): integer Sets Mario's position and alignment while he is on a climbable pole or tree. This function checks collisions with floors and ceilings, and updates Mario's action if he leaves the pole or touches the floor. Useful for ensuring Mario's correct placement and transitions when climbing poles or trees
--- @field public perform_hanging_step fun(m: MarioState, nextPos: Vec3f): integer Performs a single step of movement while Mario is hanging from a ceiling. It handles wall collisions and checks the floor and ceiling to determine if Mario remains hanging, leaves the ceiling, or hits it
--- @field public update_hang_moving fun(m: MarioState): integer Updates Mario's velocity and position while he is moving across a hangable ceiling. It calls `perform_hanging_step()` to handle collisions and movement logic, returning a status code indicating if Mario is still hanging or if he left the ceiling
--- @field public update_hang_stationary fun(m: MarioState) Keeps Mario stationary while he is hanging from a ceiling. This function zeroes out his velocity and ensures he remains aligned with the ceiling
--- @field public let_go_of_ledge fun(m: MarioState): integer Handles Mario letting go of a ledge by adjusting his position and setting his velocity to make him fall away from the ledge. The action then transitions to a 'soft bonk' state
--- @field public climb_up_ledge fun(m: MarioState) Moves Mario onto the top of a ledge once he finishes climbing it. This shifts Mario forward slightly on the ledge and updates his animation accordingly
--- @field public update_ledge_climb_camera fun(m: MarioState) Gradually adjusts the camera position to track Mario as he climbs a ledge. This creates a smoother view transition from the ledge-grab camera angle to Mario's new location on top of the ledge
--- @field public update_ledge_climb fun(m: MarioState, animation: integer, endAction: integer) Updates Mario's climb onto a ledge by setting the chosen climbing animation and transitioning to the specified end action (e.g., standing idle) once the animation finishes. If the end action is `ACT_IDLE`, Mario is placed on top of the ledge
--- @field public pop_bubble fun(m: MarioState) Makes Mario act like he was popped from a bubble. Useful for custom bubble popping behaviors.
--- @field public check_common_automatic_cancels fun(m: MarioState): integer Checks if Mario should cancel his current automatic action, primarily by detecting if he falls into deep water. If so, transitions him to the water-plunge state
--- @field public execute_automatic_action fun(m: MarioState): integer Executes Mario's current automatic action (e.g., climbing a pole, hanging, ledge-grabbing) by calling the corresponding function. It also checks for common cancellations, like falling into water. Returns true if the action was canceled and a new action was set, or false otherwise
--- @field public get_star_collection_dialog fun(m: MarioState): integer Determines which (if any) dialog to show when Mario collects a star. Checks milestone star counts against `prevNumStarsForDialog`, and returns a dialog ID if a milestone is reached. Otherwise, returns 0
--- @field public handle_save_menu fun(m: MarioState) Handles interactions with the save menu after collecting a star/key. Checks the user's selection (e.g., Save and Continue) and performs the corresponding action, such as saving the file or returning Mario to idle
--- @field public cutscene_take_cap_off fun(m: MarioState) Transitions Mario's state from wearing the cap on his head to holding it in his hand. Clears the `MARIO_CAP_ON_HEAD` flag, sets the `MARIO_CAP_IN_HAND` flag, and plays the 'take cap off' sound
--- @field public cutscene_put_cap_on fun(m: MarioState) Transitions Mario's state from having the cap in his hand to wearing it on his head. Clears the `MARIO_CAP_IN_HAND` flag, sets the `MARIO_CAP_ON_HEAD` flag, and plays the 'put cap on' sound
--- @field public ready_to_speak fun(m: MarioState): integer Checks if Mario's current action allows him to speak. For Mario to be ready, his action must be in a 'stationary' or 'moving' group (or waiting for dialog), and he must not be riding a shell, invulnerable, or in first-person mode
--- @field public should_start_or_continue_dialog fun(m: MarioState, object: Object): integer Checks if the dialog from a specified `object` should start or continue for this particular Mario. Ensures Mario is visible to enemies (i.e., not in certain invulnerable states) and, for remote players, validates the correct dialog object
--- @field public general_star_dance_handler fun(m: MarioState, isInWater: integer) Manages the star collection dance sequence for Mario, both on land and in water. Plays music, spawns the celebration star, increments the star count, and triggers level exits or dialogs at the correct times
--- @field public common_death_handler fun(m: MarioState, animation: integer, frameToDeathWarp: integer): integer Handles shared logic for Mario's various death states. Plays the specified death animation (`animation`), checks for a specific frame (`frameToDeathWarp`) to trigger a warp or bubble state if allowed, and sets Mario's eye state to 'dead'
--- @field public launch_until_land fun(m: MarioState, endAction: integer, animation: integer, forwardVel: number): integer Launches Mario forward with a given velocity (`forwardVel`) and sets his animation. Continues moving him through the air until he lands, then changes Mario's action to `endAction`
--- @field public stuck_in_ground_handler fun(m: MarioState, animation: integer, unstuckFrame: integer, target2: integer, target3: integer, endAction: integer) Handles the cutscene and animation sequence for when Mario is stuck in the ground (head, butt, or feet). Plays a designated `animation`, checks specific frames (`unstuckFrame`, `target2`, `target3`) for sound effects or transitions, and frees Mario to the `endAction` once the animation completes
--- @field public execute_cutscene_action fun(m: MarioState): integer Executes Mario's current cutscene action based on his `action` field. Includes various story-related sequences like entering doors, collecting stars, and final boss cutscenes. Delegates to the appropriate function for each cutscene action
--- @field public tilt_body_running fun(m: MarioState): integer Tilts Mario's body according to his running speed and slope angle. Calculates a pitch offset used while running to simulate leaning forward at higher speeds or on slopes
--- @field public play_step_sound fun(m: MarioState, frame1: integer, frame2: integer) Checks the current animation frame against two specified frames to trigger footstep sounds. Also chooses specific sounds if Mario is wearing Metal Cap or is in quicksand
--- @field public align_with_floor fun(m: MarioState) Aligns Mario's position and model transformation matrix to match the floor's angle. Specifically: Sets Mario's vertical position to be at `m.floorHeight` plus any active character animation offset and adjusts Mario's `throwMatrix` so that his body appears flush with the floor
--- @field public begin_walking_action fun(m: MarioState, forwardVel: number, action: integer, actionArg: integer): integer Sets Mario's facing yaw to his intended yaw, applies a specified forward velocity, and transitions to the given action (e.g., `ACT_WALKING`).
--- @field public check_ledge_climb_down fun(m: MarioState) Checks if Mario is near an edge while moving slowly and the floor below that edge is significantly lower. If the conditions are met, transitions Mario into a ledge-climb-down action and positions him accordingly on the edge
--- @field public slide_bonk fun(m: MarioState, fastAction: integer, slowAction: integer) Handles the scenario where Mario slides into a wall. If Mario is moving fast, reflects his velocity and transitions to a fast knockback, Otherwise, stops his forward velocity and sets a slower knockback
--- @field public set_triple_jump_action fun(m: MarioState, action: integer, actionArg: integer): integer Determines the proper triple jump action based on Mario's forward velocity and the Wing Cap flag: Normal triple jump, flying triple jump, or just a single jump if not enough speed
--- @field public update_sliding_angle fun(m: MarioState, accel: number, lossFactor: number) Adjusts Mario's slide velocity and facing angle when on a slope. Calculates slope direction and steepness, then modifies velocity accordingly (speed up downhill, slow uphill). Handles facing-direction changes and maximum speed limits
--- @field public update_sliding fun(m: MarioState, stopSpeed: number): integer Updates Mario's sliding state each frame, applying additional friction or acceleration based on the surface's slipperiness. Also checks if speed has slowed below a threshold to end the slide. Returns `true` if sliding has stopped
--- @field public apply_slope_accel fun(m: MarioState) Applies acceleration or deceleration based on the slope of the floor. On downward slopes, Mario gains speed, while on upward slopes, Mario loses speed
--- @field public apply_landing_accel fun(m: MarioState, frictionFactor: number): integer Applies friction-like deceleration if the floor is flat, or slope-based acceleration if the floor is sloped. Capped in such a way that Mario eventually stops or stabilizes on flatter ground
--- @field public update_shell_speed fun(m: MarioState) Controls Mario's speed when riding a Koopa Shell on the ground.
--- @field public apply_slope_decel fun(m: MarioState, decelCoef: number): integer Approaches Mario's forward velocity toward zero at a rate dependent on the floor's slipperiness. This function can completely stop Mario if the slope is gentle enough or if friction is high
--- @field public update_decelerating_speed fun(m: MarioState): integer Gradually reduces Mario's forward speed to zero over time on level ground, unless otherwise influenced by slope or friction. Returns true if Mario's speed reaches zero, meaning he has stopped
--- @field public update_walking_speed fun(m: MarioState) Updates Mario's walking speed based on player input and floor conditions (e.g., a slow floor or quicksand). Caps speed at a certain value and may reduce it slightly on steep slopes
--- @field public should_begin_sliding fun(m: MarioState): integer Checks if Mario should begin sliding, based on player input (facing downhill, pressing the analog stick backward, or on a slide terrain), and current floor steepness. Returns true if conditions to slide are met.
--- @field public analog_stick_held_back fun(m: MarioState): integer Checks if the analog stick is held significantly behind Mario's current facing angle. Returns true if the stick is far enough in the opposite direction, indicating Mario wants to move backward
--- @field public check_ground_dive_or_punch fun(m: MarioState): integer Checks if the B button was pressed to either initiate a dive (if moving fast enough) or a punch (if moving slowly). Returns `true` if the action was changed to either a dive or a punching attack
--- @field public begin_braking_action fun(m: MarioState): integer Begins a braking action if Mario's forward velocity is high enough or transitions to a decelerating action otherwise. Also handles the scenario where Mario is up against a wall, transitioning to a standing state
--- @field public anim_and_audio_for_walk fun(m: MarioState) Handles the animation and audio (footstep sounds) for normal walking or running. The specific animation used (tiptoe, walk, or run) depends on Mario's current speed
--- @field public anim_and_audio_for_hold_walk fun(m: MarioState) Plays the appropriate animation and footstep sounds for walking while carrying a lighter object (like a small box). Adjusts the animation speed dynamically based on Mario's velocity
--- @field public anim_and_audio_for_heavy_walk fun(m: MarioState) Plays the appropriate animation and footstep sounds for walking while carrying a heavy object. Sets the character animation speed based on Mario's intended movement speed
--- @field public push_or_sidle_wall fun(m: MarioState, startPos: Vec3f) When Mario hits a wall during movement, decides whether he's pushing against the wall or sidling along it. Plays pushing animations and sounds if he's head-on, sidles along the wall if he's more angled
--- @field public tilt_body_walking fun(m: MarioState, startYaw: integer) Applies a left/right tilt to Mario's torso (and some pitch if running fast) while walking or running. The tilt is based on his change in yaw and current speed, giving a leaning appearance when turning
--- @field public tilt_body_ground_shell fun(m: MarioState, startYaw: integer) Tilts Mario's torso and head while riding a shell on the ground to reflect turning. Similar to other tilt functions but tuned for shell-riding speeds and angles
--- @field public tilt_body_butt_slide fun(m: MarioState) Tilts Mario's torso while butt sliding based on analog input direction and magnitude. Gives the appearance that Mario is balancing or leaning into a turn
--- @field public common_slide_action fun(m: MarioState, endAction: integer, airAction: integer, animation: integer) Applies shared logic for sliding-related actions while playing sliding sounds, managing ground steps (falling off edges, hitting walls), updates animation
--- @field public common_slide_action_with_jump fun(m: MarioState, stopAction: integer, jumpAction: integer, airAction: integer, animation: integer): integer Builds on `common_slide_action` by also allowing Mario to jump out of a slide if A is pressed after a short delay. If the sliding slows enough, Mario transitions to a specified stopping action
--- @field public stomach_slide_action fun(m: MarioState, stopAction: integer, airAction: integer, animation: integer): integer Updates Mario's sliding state where he is on his stomach. Similar to other slide actions but has a chance to roll out if A or B is pressed. Uses `common_slide_action` for the core movement logic
--- @field public common_ground_knockback_action fun(m: MarioState, animation: integer, arg2: integer, arg3: integer, arg4: integer): integer Handles knockback on the ground (getting hit while on the ground) with shared logic for multiple knockback states. Applies deceleration or minimal momentum, chooses appropriate landing action if Mario leaves the ground, and handles death transitions if Mario's health is depleted
--- @field public common_landing_action fun(m: MarioState, animation: integer, airAction: integer): integer Applies movement upon landing from a jump or fall. Adjusts velocity based on slope or friction, checks for transitions like sliding or hitting a wall, handles small dust particles if moving fast
--- @field public common_landing_cancels function
--- @field public quicksand_jump_land_action fun(m: MarioState, animation1: integer, animation2: integer, endAction: integer, airAction: integer): integer Handles a special landing in quicksand after a jump. Over several frames, Mario emerges from the quicksand. First part of the animation reduces his quicksand depth. Ends with a normal landing action or transitions back to air if he leaves the ground
--- @field public check_common_moving_cancels fun(m: MarioState): integer Performs common checks when Mario is in a moving state, transitions to water plunge if underwater, handles squished or shockwave bounce scenarios, and checks for death conditions
--- @field public execute_moving_action fun(m: MarioState): integer Executes Mario's current moving actions by: checking common cancellations (e.g., water plunge, squish, death), handling quicksand updates, and switching to the correct sub-action handler based on `m.action`
--- @field public animated_stationary_ground_step fun(m: MarioState, animation: integer, endAction: integer) Performs a stationary step, sets `m`'s animation and sets action to `endAction` once the animation finishes
--- @field public update_punch_sequence fun(m: MarioState): integer Updates Mario's punching state
--- @field public check_common_object_cancels fun(m: MarioState): integer Checks for and handles common conditions that would cancel Mario's current object action. This includes transitioning to a water plunge if below the water level, becoming squished if appropriate, or switching to standing death action if Mario is dead
--- @field public execute_object_action fun(m: MarioState): integer Executes Mario's current object action by first checking common object cancels, then updating quicksand state. Dispatches to the appropriate action function, such as punching, throwing, picking up Bowser, etc
--- @field public check_common_idle_cancels fun(m: MarioState): integer Checks for and handles common conditions that would cancel Mario's current idle action.
--- @field public check_common_hold_idle_cancels fun(m: MarioState): integer Checks for and handles common conditions that would cancel Mario's current idle holding object action.
--- @field public play_anim_sound fun(m: MarioState, actionState: integer, animFrame: integer, sound: integer) Plays a `sound` if Mario's action state and animation frame match the parameters
--- @field public stopping_step fun(m: MarioState, animID: integer, action: integer) Runs a stationary step, sets the character animation, and changes action if the animation has ended
--- @field public landing_step fun(m: MarioState, animID: integer, action: integer): integer Runs a stationary step, sets the character animation, and changes action if the animation has ended
--- @field public check_common_landing_cancels fun(m: MarioState, action: integer): integer Checks for and handles common conditions that would cancel Mario's current landing action.
--- @field public exit_palette_editor fun(m: MarioState, c: Camera): integer
--- @field public check_common_stationary_cancels fun(m: MarioState): integer Checks for and handles common conditions that would cancel Mario's current stationary action.
--- @field public execute_stationary_action fun(m: MarioState): integer Executes Mario's current object action by first checking common stationary cancels, then updating quicksand state. Dispatches to the appropriate action function, such as idle, sleeping, crouching, ect
--- @field public set_swimming_at_surface_particles fun(m: MarioState, particleFlag: integer) Sets Mario's particle flags if he's at the surface of a water box
--- @field public perform_water_full_step fun(m: MarioState, nextPos: Vec3f): integer Performs a full water movement step where ceilings, floors, and walls are handled. Generally, you should use `perform_water_step` for the full step functionality
--- @field public apply_water_current fun(m: MarioState, step: Vec3f) Calculates a water current and outputs it in `step`
--- @field public perform_water_step fun(m: MarioState): integer Performs a water step
--- @field public float_surface_gfx fun(m: MarioState) Controls the bobbing that happens when you swim near the water surface
--- @field public execute_submerged_action fun(m: MarioState): integer Executes Mario's current submerged action by first checking common submerged cancels, then setting quicksand depth and head angles to 0. Dispatches to the appropriate action function, such as breaststroke, flutterkick, water punch, ect
--- @field public bonk_reflection fun(m: MarioState, negateSpeed: integer) Reflects Mario off a wall if he is colliding with one and flips forward velocity if `negateSpeed` is TRUE
--- @field public update_quicksand fun(m: MarioState, sinkingSpeed: number): integer Updates Mario's state in quicksand, sinks him at `sinkingSpeed` if he's in non instant quicksand
--- @field public push_off_steep_floor fun(m: MarioState, action: integer, actionArg: integer): integer Pushes Mario off a steep floor and sets his action to `action` with `actionArg`
--- @field public update_moving_sand fun(m: MarioState): integer Pushes Mario in the direction of the quicksand based on the floor surface
--- @field public update_windy_ground fun(m: MarioState): integer Pushes Mario in the direction of the wind based on the floor surface
--- @field public stop_and_set_height_to_floor fun(m: MarioState) Sets all of Mario's velocity variables to 0 and sets his Y position to the floor height
--- @field public stationary_ground_step fun(m: MarioState): integer Performs a full Mario stationary physics step (4 substeps) and returns a `GROUND_STEP_*` result
--- @field public perform_ground_step fun(m: MarioState): integer Performs a full Mario ground physics step (4 substeps) and returns a `GROUND_STEP_*` result
--- @field public perform_air_step fun(m: MarioState, stepArg: integer): integer Performs a full Mario air physics step (4 substeps) and returns an `AIR_STEP_*` result
--- @field public set_vel_from_pitch_and_yaw fun(m: MarioState) Sets Mario's velocity to his forward velocity multiplied by the cosine and sine of his pitch and yaw
--- @field public spline_get_weights fun(m: MarioState, result: Vec4f, t: number, c: integer) Computes spline interpolation weights for a given parameter `t` and stores these weights in `result`. This is used in spline-based animations to find intermediate positions between keyframes
--- @field public anim_spline_init fun(m: MarioState, keyFrames: Pointer_Vec4s) Initializes a spline-based animation for the `MarioState` structure `m` using the provided array of 3D signed-integer vectors `keyFrames`. This sets up the animation so that it can be advanced by polling
--- @field public anim_spline_poll fun(m: MarioState, result: Vec3f): integer Advances the spline-based animation associated with `m` and stores the current interpolated position in `result`. It returns the animation's status, allowing the caller to determine if the animation is ongoing or has completed
--- @field public is_player_active fun(m: MarioState): integer Checks if `m` is in the current course/act/level/area and isn't bubbled
--- @field public is_player_in_local_area fun(m: MarioState): integer Checks if `m` is in the current course/act/level/area
--- @field public is_nearest_state_to_object fun(m: MarioState, obj: Object): integer Checks if `m` is the nearest Mario to `obj`
--- @field public obj_is_near_to_and_facing fun(m: MarioState, maxDist: number, maxAngleDiff: integer): integer Checks if the current object is in `maxDist` to `m` and the angle difference is less than `maxAngleDiff`
--- @field public obj_turn_pitch_toward fun(m: MarioState, targetOffsetY: number, turnAmount: integer): integer Turns the current object towards `m` by `turnAmount` and subtracts and adds `targetOffsetY` to the Y position, effectively cancelling any effect out
--- @field public cur_obj_set_vel_from_vel fun(m: MarioState, f12: number, f14: number)
--- @field public is_in_air_action fun(m: MarioState): integer
--- @field public is_dive_sliding fun(m: MarioState): integer
--- @field public cur_obj_spawn_loot_coin_at_pos fun(m: MarioState)
--- @field public obj_is_ground_pounding_platform fun(m: MarioState, obj: Object): integer
--- @field public cur_obj_can_activate_textbox fun(m: MarioState, radius: number, height: number, unused: integer): integer
--- @field public cur_obj_can_activate_textbox_2 fun(m: MarioState, radius: number, height: number): integer
--- @field public cur_obj_end_dialog fun(m: MarioState, dialogFlags: integer, dialogResult: integer)
--- @field public queue_rumble_data fun(m: MarioState, a0: integer, a1: integer) Queues rumble data for Mario
--- @field public reset_rumble_timers fun(m: MarioState) Resets rumble timers
--- @field public reset_rumble_timers_2 fun(m: MarioState, a0: integer) Resets rumble timers and sets a field based on `a0`
--- @field public get_hand_foot_pos_x fun(m: MarioState, index: integer): number Gets the X coordinate of Mario's hand (0-1) or foot (2-3) but it is important to note that the positions are not updated off-screen
--- @field public get_hand_foot_pos_y fun(m: MarioState, index: integer): number Gets the Y coordinate of Mario's hand (0-1) or foot (2-3) but It is important to note that the positions are not updated off-screen
--- @field public get_hand_foot_pos_z fun(m: MarioState, index: integer): number Gets the Z coordinate of Mario's hand (0-1) or foot (2-3) but it is important to note that the positions are not updated off-screen
--- @field public get_anim_part_pos fun(m: MarioState, animPart: integer, pos: Vec3f): boolean Retrieves the animated part position associated to `animPart` from the MarioState `m` and stores it into `pos`. Returns `true` on success or `false` on failure
--- @field public get_anim_part_rot fun(m: MarioState, animPart: integer, rot: Vec3s): boolean Retrieves the animated part rotation associated to `animPart` from the MarioState `m` and stores it into `rot`. Returns `true` on success or `false` on failure
--- @class Mod
--- @field public name string
--- @field public incompatible string
--- @field public category string
--- @field public description string
--- @field public relativePath string
--- @field public basePath string
--- @field public index integer
--- @field public fileCount integer
--- @field public fileCapacity integer
--- @field public isDirectory boolean
--- @field public enabled boolean
--- @field public selectable boolean
--- @field public renderBehindHud boolean
--- @field public pausable boolean
--- @field public ignoreScriptWarnings boolean
--- @field public size integer
--- @field public customBehaviorIndex integer
--- @class ModAudio
--- @field public filepath string
--- @field public isStream boolean
--- @field public baseVolume number
--- @field public loaded boolean
--- @class ModFs
--- @field public mod Mod
--- @field public modPath string
--- @field public numFiles integer
--- @field public totalSize integer
--- @field public isPublic boolean
--- @field public get_filename fun(modFs: ModFs, index: integer): string
--- @field public get_file fun(modFs: ModFs, filepath: string): ModFsFile
--- @field public create_file fun(modFs: ModFs, filepath: string, text: boolean): ModFsFile
--- @field public move_file fun(modFs: ModFs, oldpath: string, newpath: string, overwriteExisting: boolean): boolean
--- @field public copy_file fun(modFs: ModFs, srcpath: string, dstpath: string, overwriteExisting: boolean): boolean
--- @field public delete_file fun(modFs: ModFs, filepath: string): boolean
--- @field public clear fun(modFs: ModFs): boolean
--- @field public save fun(modFs: ModFs): boolean
--- @field public delete fun(modFs: ModFs): boolean
--- @field public set_public fun(modFs: ModFs, pub: boolean): boolean
--- @class ModFsFile
--- @field public modFs ModFs
--- @field public filepath string
--- @field public size integer
--- @field public offset integer
--- @field public isText boolean
--- @field public isPublic boolean
--- @field public read_bool fun(file: ModFsFile): boolean
--- @field public read_integer fun(file: ModFsFile, intType: ModFsFileIntType): integer
--- @field public read_number fun(file: ModFsFile, floatType: ModFsFileFloatType): number
--- @field public read_bytes fun(file: ModFsFile, length: integer): string
--- @field public read_string fun(file: ModFsFile): string
--- @field public read_line fun(file: ModFsFile): string
--- @field public write_bool fun(file: ModFsFile, value: boolean): boolean
--- @field public write_integer fun(file: ModFsFile, value: integer, intType: ModFsFileIntType): boolean
--- @field public write_number fun(file: ModFsFile, value: number, floatType: ModFsFileFloatType): boolean
--- @field public write_bytes fun(file: ModFsFile, bytestring: string): boolean
--- @field public write_string fun(file: ModFsFile, str: string): boolean
--- @field public write_line fun(file: ModFsFile, str: string): boolean
--- @field public seek fun(file: ModFsFile, offset: integer, origin: ModFsFileSeek): boolean
--- @field public rewind fun(file: ModFsFile): boolean
--- @field public is_eof fun(file: ModFsFile): boolean
--- @field public fill fun(file: ModFsFile, byte: integer, length: integer): boolean
--- @field public erase fun(file: ModFsFile, length: integer): boolean
--- @field public set_text_mode fun(file: ModFsFile, text: boolean): boolean
--- @field public set_public fun(file: ModFsFile, pub: boolean): boolean
--- @class NametagsSettings
--- @field public showHealth boolean
--- @field public showSelfTag boolean
--- @class NetworkPlayer
--- @field public connected boolean
--- @field public type integer
--- @field public localIndex integer
--- @field public globalIndex integer
--- @field public lastReceived number
--- @field public lastSent number
--- @field public lastPingSent number
--- @field public currLevelAreaSeqId integer
--- @field public currCourseNum integer
--- @field public currActNum integer
--- @field public currLevelNum integer
--- @field public currAreaIndex integer
--- @field public currLevelSyncValid boolean
--- @field public currAreaSyncValid boolean
--- @field public currPositionValid boolean
--- @field public fadeOpacity integer
--- @field public onRxSeqId integer
--- @field public modelIndex integer
--- @field public ping integer
--- @field public palette PlayerPalette
--- @field public name string
--- @field public description string
--- @field public descriptionR integer
--- @field public descriptionG integer
--- @field public descriptionB integer
--- @field public descriptionA integer
--- @field public overrideLocation string
--- @field public overrideModelIndex integer
--- @field public overridePalette PlayerPalette
--- @field public paletteIndex integer
--- @field public overridePaletteIndex integer
--- @field public overridePaletteIndexLp integer
--- @class Object
--- @field public header ObjectNode
--- @field public prevObj Object
--- @field public parentObj Object
--- @field public usingObj Object
--- @field public platform Object
--- @field public collidedObjs Object[]
--- @field public collisionData Pointer_Collision
--- @field public behavior Pointer_BehaviorScript
--- @field public curBhvCommand Pointer_BehaviorScript
--- @field public bhvStack integer[]
--- @field public bhvStackIndex integer
--- @field public bhvDelayTimer integer
--- @field public activeFlags integer
--- @field public collidedObjInteractTypes integer
--- @field public numCollidedObjs integer
--- @field public respawnInfoType integer
--- @field public hitboxRadius number
--- @field public hitboxHeight number
--- @field public hurtboxRadius number
--- @field public hurtboxHeight number
--- @field public hitboxDownOffset number
--- @field public unused1 integer
--- @field public areaTimer integer
--- @field public areaTimerDuration integer
--- @field public areaTimerType AreaTimerType
--- @field public transform Mat4
--- @field public numSurfaces integer
--- @field public heldByPlayerIndex integer
--- @field public setHome integer
--- @field public ctx integer
--- @field public allowRemoteInteractions integer
--- @field public globalPlayerIndex integer
--- @field public coopFlags integer
--- @field public hookRender integer
--- @field public oFlags integer
--- @field public oDialogResponse integer
--- @field public oDialogState integer
--- @field public oUnk94 integer
--- @field public oSyncID integer
--- @field public oIntangibleTimer integer
--- @field public oPosX number
--- @field public oPosY number
--- @field public oPosZ number
--- @field public oVelX number
--- @field public oVelY number
--- @field public oVelZ number
--- @field public oForwardVel number
--- @field public oForwardVelS32 integer
--- @field public oUnkBC number
--- @field public oUnkC0 number
--- @field public oMoveAnglePitch integer
--- @field public oMoveAngleYaw integer
--- @field public oMoveAngleRoll integer
--- @field public oFaceAnglePitch integer
--- @field public oFaceAngleYaw integer
--- @field public oFaceAngleRoll integer
--- @field public oGraphYOffset number
--- @field public oActiveParticleFlags integer
--- @field public oGravity number
--- @field public oFloorHeight number
--- @field public oMoveFlags integer
--- @field public oAnimState integer
--- @field public oAngleVelPitch integer
--- @field public oAngleVelYaw integer
--- @field public oAngleVelRoll integer
--- @field public oAnimations Pointer_ObjectAnimPointer
--- @field public oHeldState integer
--- @field public oWallHitboxRadius number
--- @field public oDragStrength number
--- @field public oInteractType integer
--- @field public oInteractStatus integer
--- @field public oParentRelativePosX number
--- @field public oParentRelativePosY number
--- @field public oParentRelativePosZ number
--- @field public oBehParams2ndByte integer
--- @field public oAction integer
--- @field public oSubAction integer
--- @field public oTimer integer
--- @field public oBounciness number
--- @field public oDistanceToMario number
--- @field public oAngleToMario integer
--- @field public oHomeX number
--- @field public oHomeY number
--- @field public oHomeZ number
--- @field public oFriction number
--- @field public oBuoyancy number
--- @field public oSoundStateID integer
--- @field public oOpacity integer
--- @field public oDamageOrCoinValue integer
--- @field public oHealth integer
--- @field public oBehParams integer
--- @field public oPrevAction integer
--- @field public oInteractionSubtype integer
--- @field public oCollisionDistance number
--- @field public oNumLootCoins integer
--- @field public oDrawingDistance number
--- @field public oRoom integer
--- @field public oSyncDeath integer
--- @field public oUnk1A8 integer
--- @field public oWallAngle integer
--- @field public oFloorType integer
--- @field public oFloorRoom integer
--- @field public oAngleToHome integer
--- @field public oFloor Surface
--- @field public oDeathSound integer
--- @field public oPathedStartWaypoint Waypoint
--- @field public oPathedPrevWaypoint Waypoint
--- @field public oPathedPrevWaypointFlags integer
--- @field public oPathedTargetPitch integer
--- @field public oPathedTargetYaw integer
--- @field public oMacroUnk108 number
--- @field public oMacroUnk10C number
--- @field public oMacroUnk110 number
--- @field public oMarioParticleFlags integer
--- @field public oMarioPoleUnk108 integer
--- @field public oMarioReadingSignDYaw integer
--- @field public oMarioPoleYawVel integer
--- @field public oMarioCannonObjectYaw integer
--- @field public oMarioTornadoYawVel integer
--- @field public oMarioReadingSignDPosX number
--- @field public oMarioPolePos number
--- @field public oMarioCannonInputYaw integer
--- @field public oMarioTornadoPosY number
--- @field public oMarioReadingSignDPosZ number
--- @field public oMarioWhirlpoolPosY number
--- @field public oMarioJumboStarCutscenePosZ number
--- @field public oMarioBurnTimer integer
--- @field public oMarioLongJumpIsSlow integer
--- @field public oMarioSteepJumpYaw integer
--- @field public oMarioWalkingPitch integer
--- @field public o1UpHiddenUnkF4 integer
--- @field public o1UpForceSpawn integer
--- @field public oActivatedBackAndForthPlatformMaxOffset number
--- @field public oActivatedBackAndForthPlatformOffset number
--- @field public oActivatedBackAndForthPlatformVel number
--- @field public oActivatedBackAndForthPlatformCountdown integer
--- @field public oActivatedBackAndForthPlatformStartYaw integer
--- @field public oActivatedBackAndForthPlatformVertical integer
--- @field public oActivatedBackAndForthPlatformFlipRotation integer
--- @field public oAmpRadiusOfRotation number
--- @field public oAmpYPhase integer
--- @field public oHomingAmpLockedOn integer
--- @field public oHomingAmpAvgY number
--- @field public oArrowLiftDisplacement number
--- @field public oArrowLiftUnk100 integer
--- @field public oBackAndForthPlatformDirection number
--- @field public oBackAndForthPlatformPathLength number
--- @field public oBackAndForthPlatformDistance number
--- @field public oBackAndForthPlatformVel number
--- @field public oBirdSpeed number
--- @field public oBirdTargetPitch integer
--- @field public oBirdTargetYaw integer
--- @field public oBirdChirpChirpUnkF4 integer
--- @field public oEndBirdUnk104 number
--- @field public oHiddenBlueCoinSwitch Object
--- @field public oBobombBlinkTimer integer
--- @field public oBobombFuseLit integer
--- @field public oBobombFuseTimer integer
--- @field public oBobombBuddyBlinkTimer integer
--- @field public oBobombBuddyHasTalkedToMario integer
--- @field public oBobombBuddyRole integer
--- @field public oBobombBuddyCannonStatus integer
--- @field public oBobombBuddyPosXCopy number
--- @field public oBobombBuddyPosYCopy number
--- @field public oBobombBuddyPosZCopy number
--- @field public oBobombExpBubGfxScaleFacX integer
--- @field public oBobombExpBubGfxScaleFacY integer
--- @field public oBobombExpBubGfxExpRateX integer
--- @field public oBobombExpBubGfxExpRateY integer
--- @field public oSmallBompInitX number
--- @field public oBooDeathStatus integer
--- @field public oBooTargetOpacity integer
--- @field public oBooBaseScale number
--- @field public oBooOscillationTimer integer
--- @field public oBooMoveYawDuringHit integer
--- @field public oBooMoveYawBeforeHit number
--- @field public oBooParentBigBoo Object
--- @field public oBooNegatedAggressiveness number
--- @field public oBooInitialMoveYaw integer
--- @field public oBooTurningSpeed integer
--- @field public oBigBooNumMinionBoosKilled integer
--- @field public oBookendUnkF4 integer
--- @field public oBookendUnkF8 integer
--- @field public oBookSwitchUnkF4 number
--- @field public oBookSwitchManagerUnkF4 integer
--- @field public oBookSwitchManagerUnkF8 integer
--- @field public oHauntedBookshelfShouldOpen integer
--- @field public oBouncingFireBallUnkF4 integer
--- @field public oBowlingBallTargetYaw integer
--- @field public oBBallSpawnerMaxSpawnDist number
--- @field public oBBallSpawnerSpawnOdds number
--- @field public oBBallSpawnerPeriodMinus1 integer
--- @field public oBowserUnk88 integer
--- @field public oBowserUnkF4 integer
--- @field public oBowserUnkF8 integer
--- @field public oBowserDistToCentre number
--- @field public oBowserUnk106 integer
--- @field public oBowserUnk108 integer
--- @field public oBowserHeldAnglePitch integer
--- @field public oBowserHeldAngleVelYaw integer
--- @field public oBowserUnk10E integer
--- @field public oBowserUnk110 integer
--- @field public oBowserAngleToCentre integer
--- @field public oBowserUnk1AC integer
--- @field public oBowserUnk1AE integer
--- @field public oBowserEyesShut integer
--- @field public oBowserUnk1B2 integer
--- @field public oBowserShockWaveUnkF4 number
--- @field public oBlackSmokeBowserUnkF4 number
--- @field public oBowserKeyScale number
--- @field public oBowserPuzzleCompletionFlags integer
--- @field public oBowserPuzzlePieceOffsetX number
--- @field public oBowserPuzzlePieceOffsetY number
--- @field public oBowserPuzzlePieceOffsetZ number
--- @field public oBowserPuzzlePieceContinuePerformingAction integer
--- @field public oBubbaUnkF4 number
--- @field public oBubbaUnkF8 integer
--- @field public oBubbaUnkFC integer
--- @field public oBubbaUnk100 integer
--- @field public oBubbaUnk104 integer
--- @field public oBubbaUnk108 number
--- @field public oBubbaUnk10C number
--- @field public oBubbaUnk1AC integer
--- @field public oBubbaUnk1AE integer
--- @field public oBubbaUnk1B0 integer
--- @field public oBubbaUnk1B2 integer
--- @field public oBulletBillInitialMoveYaw integer
--- @field public oBullySubtype integer
--- @field public oBullyPrevX number
--- @field public oBullyPrevY number
--- @field public oBullyPrevZ number
--- @field public oBullyKBTimerAndMinionKOCounter integer
--- @field public oBullyMarioCollisionAngle integer
--- @field public oBullyLastNetworkPlayerIndex integer
--- @field public oButterflyYPhase integer
--- @field public oTripletButterflyScale number
--- @field public oTripletButterflySpeed number
--- @field public oTripletButterflyBaseYaw number
--- @field public oTripletButterflyTargetPitch integer
--- @field public oTripletButterflyTargetYaw integer
--- @field public oTripletButterflyType integer
--- @field public oTripletButterflyModel integer
--- @field public oTripletButterflySelectedButterfly integer
--- @field public oTripletButterflyScalePhase integer
--- @field public oCannonUnkF4 integer
--- @field public oCannonUnkF8 integer
--- @field public oCannonUnk10C integer
--- @field public oCannonPlayerIndex integer
--- @field public oCapUnkF4 integer
--- @field public oCapUnkF8 integer
--- @field public oChainChompSegments ChainSegment
--- @field public oChainChompMaxDistFromPivotPerChainPart number
--- @field public oChainChompMaxDistBetweenChainParts number
--- @field public oChainChompDistToPivot number
--- @field public oChainChompUnk104 number
--- @field public oChainChompRestrictedByChain integer
--- @field public oChainChompTargetPitch integer
--- @field public oChainChompNumLunges integer
--- @field public oChainChompReleaseStatus integer
--- @field public oChainChompHitGate integer
--- @field public oCheckerBoardPlatformUnkF8 integer
--- @field public oCheckerBoardPlatformUnkFC integer
--- @field public oCheckerBoardPlatformUnk1AC number
--- @field public oCheepCheepUnkF4 number
--- @field public oCheepCheepUnkF8 number
--- @field public oCheepCheepUnkFC number
--- @field public oCheepCheepUnk104 number
--- @field public oCheepCheepUnk108 number
--- @field public oChuckyaUnk88 integer
--- @field public oChuckyaUnkF8 integer
--- @field public oChuckyaUnkFC integer
--- @field public oChuckyaUnk100 integer
--- @field public oClamUnkF4 integer
--- @field public oCloudCenterX number
--- @field public oCloudCenterY number
--- @field public oCloudBlowing integer
--- @field public oCloudGrowSpeed number
--- @field public oCloudFwooshMovementRadius integer
--- @field public oCoinUnkF4 integer
--- @field public oCoinUnkF8 integer
--- @field public oCoinUnk110 number
--- @field public oCoinUnk1B0 integer
--- @field public oCollisionParticleUnkF4 number
--- @field public oControllablePlatformUnkF8 integer
--- @field public oControllablePlatformUnkFC number
--- @field public oControllablePlatformUnk100 integer
--- @field public oBreakableBoxSmallReleased integer
--- @field public oBreakableBoxSmallFramesSinceReleased integer
--- @field public oJumpingBoxUnkF4 integer
--- @field public oJumpingBoxUnkF8 integer
--- @field public oRRCruiserWingUnkF4 integer
--- @field public oRRCruiserWingUnkF8 integer
--- @field public oDonutPlatformSpawnerSpawnedPlatforms integer
--- @field public oDoorUnk88 integer
--- @field public oDoorUnkF8 integer
--- @field public oDoorUnkFC integer
--- @field public oDoorUnk100 integer
--- @field public oDorrieDistToHome number
--- @field public oDorrieOffsetY number
--- @field public oDorrieVelY number
--- @field public oDorrieForwardDistToMario number
--- @field public oDorrieYawVel integer
--- @field public oDorrieLiftingMario integer
--- @field public oDorrieGroundPounded integer
--- @field public oDorrieAngleToHome integer
--- @field public oDorrieNeckAngle integer
--- @field public oDorrieHeadRaiseSpeed integer
--- @field public oElevatorUnkF4 number
--- @field public oElevatorUnkF8 number
--- @field public oElevatorUnkFC number
--- @field public oElevatorUnk100 integer
--- @field public oExclamationBoxUnkF4 number
--- @field public oExclamationBoxUnkF8 number
--- @field public oExclamationBoxUnkFC integer
--- @field public oExclamationBoxForce integer
--- @field public oEyerokBossNumHands integer
--- @field public oEyerokBossUnkFC integer
--- @field public oEyerokBossActiveHand integer
--- @field public oEyerokBossUnk104 integer
--- @field public oEyerokBossUnk108 number
--- @field public oEyerokBossUnk10C number
--- @field public oEyerokBossUnk110 number
--- @field public oEyerokBossUnk1AC integer
--- @field public oEyerokHandWakeUpTimer integer
--- @field public oEyerokReceivedAttack integer
--- @field public oEyerokHandUnkFC integer
--- @field public oEyerokHandUnk100 integer
--- @field public oEyerokHandDead integer
--- @field public oFallingPillarPitchAcceleration number
--- @field public oFireSpitterScaleVel number
--- @field public oFireSpitterLastWaterY number
--- @field public oBlueFishRandomVel number
--- @field public oBlueFishRandomTime integer
--- @field public oBlueFishRandomAngle number
--- @field public oFishWaterLevel number
--- @field public oFishGoalY number
--- @field public oFishHeightOffset number
--- @field public oFishYawVel integer
--- @field public oFishRoamDistance number
--- @field public oFishGoalVel number
--- @field public oFishDepthDistance number
--- @field public oFishActiveDistance number
--- @field public oFlameScale number
--- @field public oFlameSpeedTimerOffset integer
--- @field public oFlameUnkFC number
--- @field public oFlameBowser Object
--- @field public oBlueFlameNextScale number
--- @field public oSmallPiranhaFlameStartSpeed number
--- @field public oSmallPiranhaFlameEndSpeed number
--- @field public oSmallPiranhaFlameModel integer
--- @field public oSmallPiranhaFlameNextFlameTimer integer
--- @field public oSmallPiranhaFlameSpeed number
--- @field public oMovingFlameTimer integer
--- @field public oFlameThowerFlameUnk110 integer
--- @field public oFlameThowerUnk110 integer
--- @field public oFloatingPlatformUnkF4 integer
--- @field public oFloatingPlatformUnkF8 number
--- @field public oFloatingPlatformUnkFC number
--- @field public oFloatingPlatformUnk100 integer
--- @field public oFloorSwitchPressAnimationUnkF4 integer
--- @field public oFloorSwitchPressAnimationUnkF8 integer
--- @field public oFloorSwitchPressAnimationUnkFC integer
--- @field public oFloorSwitchPressAnimationUnk100 integer
--- @field public oFlyGuyIdleTimer integer
--- @field public oFlyGuyOscTimer integer
--- @field public oFlyGuyUnusedJitter integer
--- @field public oFlyGuyLungeYDecel number
--- @field public oFlyGuyLungeTargetPitch integer
--- @field public oFlyGuyTargetRoll integer
--- @field public oFlyGuyScaleVel number
--- @field public oGrandStarUnk108 integer
--- @field public oHorizontalGrindelTargetYaw integer
--- @field public oHorizontalGrindelDistToHome number
--- @field public oHorizontalGrindelOnGround integer
--- @field public oGoombaSize integer
--- @field public oGoombaScale number
--- @field public oGoombaWalkTimer integer
--- @field public oGoombaTargetYaw integer
--- @field public oGoombaBlinkTimer integer
--- @field public oGoombaTurningAwayFromWall integer
--- @field public oGoombaRelativeSpeed number
--- @field public oGoombaJumpCooldown integer
--- @field public oHauntedChairUnkF4 integer
--- @field public oHauntedChairUnkF8 number
--- @field public oHauntedChairUnkFC number
--- @field public oHauntedChairUnk100 Pointer_integer
--- @field public oHauntedChairUnk104 integer
--- @field public oHeaveHoUnk88 integer
--- @field public oHeaveHoUnkF4 number
--- @field public oHiddenObjectUnkF4 Object
--- @field public oHootAvailability integer
--- @field public oHootMarioReleaseTime integer
--- @field public oHorizontalMovementUnkF4 integer
--- @field public oHorizontalMovementUnkF8 integer
--- @field public oHorizontalMovementUnk100 number
--- @field public oHorizontalMovementUnk104 integer
--- @field public oHorizontalMovementUnk108 number
--- @field public oKickableBoardF4 integer
--- @field public oKickableBoardF8 integer
--- @field public oKingBobombUnk88 integer
--- @field public oKingBobombUnkF8 integer
--- @field public oKingBobombUnkFC integer
--- @field public oKingBobombUnk100 integer
--- @field public oKingBobombUnk104 integer
--- @field public oKingBobombUnk108 integer
--- @field public oKleptoDistanceToTarget number
--- @field public oKleptoUnkF8 number
--- @field public oKleptoUnkFC number
--- @field public oKleptoSpeed number
--- @field public oKleptoStartPosX number
--- @field public oKleptoStartPosY number
--- @field public oKleptoStartPosZ number
--- @field public oKleptoTimeUntilTargetChange integer
--- @field public oKleptoTargetNumber integer
--- @field public oKleptoUnk1AE integer
--- @field public oKleptoUnk1B0 integer
--- @field public oKleptoYawToTarget integer
--- @field public oKoopaAgility number
--- @field public oKoopaMovementType integer
--- @field public oKoopaTargetYaw integer
--- @field public oKoopaUnshelledTimeUntilTurn integer
--- @field public oKoopaTurningAwayFromWall integer
--- @field public oKoopaDistanceToMario number
--- @field public oKoopaAngleToMario integer
--- @field public oKoopaBlinkTimer integer
--- @field public oKoopaCountdown integer
--- @field public oKoopaTheQuickRaceIndex integer
--- @field public oKoopaTheQuickInitTextboxCooldown integer
--- @field public oKoopaRaceEndpointRaceBegun integer
--- @field public oKoopaRaceEndpointKoopaFinished integer
--- @field public oKoopaRaceEndpointRaceStatus integer
--- @field public oKoopaRaceEndpointUnk100 integer
--- @field public oKoopaRaceEndpointRaceEnded integer
--- @field public oKoopaShellFlameUnkF4 number
--- @field public oKoopaShellFlameUnkF8 number
--- @field public oCameraLakituBlinkTimer integer
--- @field public oCameraLakituSpeed number
--- @field public oCameraLakituCircleRadius number
--- @field public oCameraLakituFinishedDialog integer
--- @field public oCameraLakituUnk104 integer
--- @field public oCameraLakituPitchVel integer
--- @field public oCameraLakituYawVel integer
--- @field public oEnemyLakituNumSpinies integer
--- @field public oEnemyLakituBlinkTimer integer
--- @field public oEnemyLakituSpinyCooldown integer
--- @field public oEnemyLakituFaceForwardCountdown integer
--- @field public oIntroLakituSplineSegmentProgress number
--- @field public oIntroLakituSplineSegment number
--- @field public oIntroLakituUnk100 number
--- @field public oIntroLakituUnk104 number
--- @field public oIntroLakituUnk108 number
--- @field public oIntroLakituUnk10C number
--- @field public oIntroLakituUnk110 number
--- @field public oIntroLakituCloud Object
--- @field public oMenuButtonState integer
--- @field public oMenuButtonTimer integer
--- @field public oMenuButtonOrigPosX number
--- @field public oMenuButtonOrigPosY number
--- @field public oMenuButtonOrigPosZ number
--- @field public oMenuButtonScale number
--- @field public oMenuButtonActionPhase integer
--- @field public oMenuButtonIsCustom integer
--- @field public oMantaTargetPitch integer
--- @field public oMantaTargetYaw integer
--- @field public oMerryGoRoundStopped integer
--- @field public oMerryGoRoundMusicShouldPlay integer
--- @field public oMerryGoRoundMarioIsOutside integer
--- @field public oMerryGoRoundBooManagerNumBoosKilled integer
--- @field public oMerryGoRoundBooManagerNumBoosSpawned integer
--- @field public oMipsStarStatus integer
--- @field public oMipsStartWaypointIndex integer
--- @field public oMipsForwardVelocity number
--- @field public oMoneybagJumpState integer
--- @field public oMontyMoleCurrentHole Object
--- @field public oMontyMoleHeightRelativeToFloor number
--- @field public oMontyMoleHoleX number
--- @field public oMontyMoleHoleY number
--- @field public oMontyMoleHoleZ number
--- @field public oMontyMoleHoleCooldown integer
--- @field public oMrBlizzardScale number
--- @field public oMrBlizzardHeldObj Object
--- @field public oMrBlizzardGraphYVel number
--- @field public oMrBlizzardTimer integer
--- @field public oMrBlizzardDizziness number
--- @field public oMrBlizzardChangeInDizziness number
--- @field public oMrBlizzardGraphYOffset number
--- @field public oMrBlizzardDistFromHome integer
--- @field public oMrBlizzardTargetMoveYaw integer
--- @field public oMrIUnkF4 integer
--- @field public oMrIUnkFC integer
--- @field public oMrIUnk100 integer
--- @field public oMrIUnk104 integer
--- @field public oMrIUnk108 integer
--- @field public oMrISize number
--- @field public oMrIUnk110 integer
--- @field public oRespawnerModelToRespawn integer
--- @field public oRespawnerMinSpawnDist number
--- @field public oOpenableGrillUnk88 integer
--- @field public oOpenableGrillUnkF4 Object
--- @field public oIntroPeachYawFromFocus number
--- @field public oIntroPeachPitchFromFocus number
--- @field public oIntroPeachDistToCamera number
--- @field public oRacingPenguinInitTextCooldown integer
--- @field public oRacingPenguinWeightedNewTargetSpeed number
--- @field public oRacingPenguinFinalTextbox integer
--- @field public oRacingPenguinMarioWon integer
--- @field public oRacingPenguinReachedBottom integer
--- @field public oRacingPenguinMarioCheated integer
--- @field public oSmallPenguinUnk88 integer
--- @field public oSmallPenguinUnk100 integer
--- @field public oSmallPenguinUnk104 number
--- @field public oSmallPenguinUnk108 number
--- @field public oSmallPenguinUnk110 integer
--- @field public oSLWalkingPenguinWindCollisionXPos number
--- @field public oSLWalkingPenguinWindCollisionZPos number
--- @field public oSLWalkingPenguinCurStep integer
--- @field public oSLWalkingPenguinCurStepTimer integer
--- @field public oPiranhaPlantSleepMusicState integer
--- @field public oPiranhaPlantScale number
--- @field public oFirePiranhaPlantNeutralScale number
--- @field public oFirePiranhaPlantScale number
--- @field public oFirePiranhaPlantActive integer
--- @field public oFirePiranhaPlantDeathSpinTimer integer
--- @field public oFirePiranhaPlantDeathSpinVel number
--- @field public oPitouneUnkF4 number
--- @field public oPitouneUnkF8 number
--- @field public oPitouneUnkFC number
--- @field public oPlatformTimer integer
--- @field public oPlatformUnkF8 Object
--- @field public oPlatformUnkFC integer
--- @field public oPlatformUnk10C number
--- @field public oPlatformUnk110 number
--- @field public oPlatformOnTrackBaseBallIndex integer
--- @field public oPlatformOnTrackDistMovedSinceLastBall number
--- @field public oPlatformOnTrackSkiLiftRollVel number
--- @field public oPlatformOnTrackStartWaypoint Waypoint
--- @field public oPlatformOnTrackPrevWaypoint Waypoint
--- @field public oPlatformOnTrackPrevWaypointFlags integer
--- @field public oPlatformOnTrackPitch integer
--- @field public oPlatformOnTrackYaw integer
--- @field public oPlatformOnTrackOffsetY number
--- @field public oPlatformOnTrackIsNotSkiLift integer
--- @field public oPlatformOnTrackIsNotHMC integer
--- @field public oPlatformOnTrackType integer
--- @field public oPlatformOnTrackWasStoodOn integer
--- @field public oPlatformSpawnerUnkF4 integer
--- @field public oPlatformSpawnerUnkF8 integer
--- @field public oPlatformSpawnerUnkFC integer
--- @field public oPlatformSpawnerUnk100 number
--- @field public oPlatformSpawnerUnk104 number
--- @field public oPlatformSpawnerUnk108 number
--- @field public oPokeyAliveBodyPartFlags integer
--- @field public oPokeyNumAliveBodyParts integer
--- @field public oPokeyBottomBodyPartSize number
--- @field public oPokeyHeadWasKilled integer
--- @field public oPokeyTargetYaw integer
--- @field public oPokeyChangeTargetTimer integer
--- @field public oPokeyTurningAwayFromWall integer
--- @field public oPokeyBodyPartDeathDelayAfterHeadKilled integer
--- @field public oPokeyBodyPartBlinkTimer integer
--- @field public oDDDPoleVel number
--- @field public oDDDPoleMaxOffset number
--- @field public oDDDPoleOffset number
--- @field public oPyramidTopPillarsTouched integer
--- @field public oPyramidTopFragmentsScale number
--- @field public oRollingLogUnkF4 number
--- @field public oLllRotatingHexFlameUnkF4 number
--- @field public oLllRotatingHexFlameUnkF8 number
--- @field public oLllRotatingHexFlameUnkFC number
--- @field public oScuttlebugUnkF4 integer
--- @field public oScuttlebugUnkF8 integer
--- @field public oScuttlebugUnkFC integer
--- @field public oScuttlebugSpawnerUnk88 integer
--- @field public oScuttlebugSpawnerUnkF4 integer
--- @field public oSeesawPlatformPitchVel number
--- @field public oShipPart3UnkF4 integer
--- @field public oShipPart3UnkF8 integer
--- @field public oSinkWhenSteppedOnUnk104 integer
--- @field public oSinkWhenSteppedOnUnk108 number
--- @field public oSkeeterTargetAngle integer
--- @field public oSkeeterUnkF8 integer
--- @field public oSkeeterUnkFC number
--- @field public oSkeeterWaitTime integer
--- @field public oSkeeterLastWaterY number
--- @field public oSkeeterUnk1AC integer
--- @field public oJrbSlidingBoxUnkF4 Object
--- @field public oJrbSlidingBoxUnkF8 integer
--- @field public oJrbSlidingBoxUnkFC number
--- @field public oWFSlidBrickPtfmMovVel number
--- @field public oSmokeTimer integer
--- @field public oSnowmansBottomUnkF4 number
--- @field public oSnowmansBottomUnkF8 integer
--- @field public oSnowmansBottomUnk1AC integer
--- @field public oSnowmansHeadUnkF4 integer
--- @field public oSLSnowmanWindOriginalYaw integer
--- @field public oSnufitRecoil integer
--- @field public oSnufitScale number
--- @field public oSnufitCircularPeriod integer
--- @field public oSnufitBodyScalePeriod integer
--- @field public oSnufitBodyBaseScale integer
--- @field public oSnufitBullets integer
--- @field public oSnufitXOffset integer
--- @field public oSnufitYOffset integer
--- @field public oSnufitZOffset integer
--- @field public oSnufitBodyScale integer
--- @field public oSpindelUnkF4 integer
--- @field public oSpindelUnkF8 integer
--- @field public oSpinningHeartTotalSpin integer
--- @field public oSpinningHeartPlayedSound integer
--- @field public oSpinyTimeUntilTurn integer
--- @field public oSpinyTargetYaw integer
--- @field public oSpinyTurningAwayFromWall integer
--- @field public oSoundEffectUnkF4 integer
--- @field public oStarSpawnDisFromHome number
--- @field public oStarSpawnUnkFC number
--- @field public oStarSpawnExtCutsceneFlags integer
--- @field public oHiddenStarTriggerCounter integer
--- @field public oSparkleSpawnUnk1B0 integer
--- @field public oUnlockDoorStarState integer
--- @field public oUnlockDoorStarTimer integer
--- @field public oUnlockDoorStarYawVel integer
--- @field public oCelebStarUnkF4 integer
--- @field public oCelebStarDiameterOfRotation integer
--- @field public oStarSelectorType integer
--- @field public oStarSelectorTimer integer
--- @field public oStarSelectorSize number
--- @field public oSushiSharkUnkF4 integer
--- @field public oSwingPlatformAngle number
--- @field public oSwingPlatformSpeed number
--- @field public oSwoopBonkCountdown integer
--- @field public oSwoopTargetPitch integer
--- @field public oSwoopTargetYaw integer
--- @field public oThwompRandomTimer integer
--- @field public oTiltingPyramidNormalX number
--- @field public oTiltingPyramidNormalY number
--- @field public oTiltingPyramidNormalZ number
--- @field public oTiltingPyramidMarioOnPlatform integer
--- @field public oToadMessageDialogId integer
--- @field public oToadMessageRecentlyTalked integer
--- @field public oToadMessageState integer
--- @field public oToxBoxMovementStep integer
--- @field public oTTCRotatingSolidNumTurns integer
--- @field public oTTCRotatingSolidNumSides integer
--- @field public oTTCRotatingSolidRotationDelay integer
--- @field public oTTCRotatingSolidVelY number
--- @field public oTTCRotatingSolidSoundTimer integer
--- @field public oTTCPendulumAccelDir number
--- @field public oTTCPendulumAngle number
--- @field public oTTCPendulumAngleVel number
--- @field public oTTCPendulumAngleAccel number
--- @field public oTTCPendulumDelay integer
--- @field public oTTCPendulumSoundTimer integer
--- @field public oTTCTreadmillBigSurface Pointer_integer
--- @field public oTTCTreadmillSmallSurface Pointer_integer
--- @field public oTTCTreadmillSpeed number
--- @field public oTTCTreadmillTargetSpeed number
--- @field public oTTCTreadmillTimeUntilSwitch integer
--- @field public oTTCMovingBarDelay integer
--- @field public oTTCMovingBarStoppedTimer integer
--- @field public oTTCMovingBarOffset number
--- @field public oTTCMovingBarSpeed number
--- @field public oTTCMovingBarStartOffset number
--- @field public oTTCCogDir number
--- @field public oTTCCogSpeed number
--- @field public oTTCCogTargetVel number
--- @field public oTTCPitBlockPeakY number
--- @field public oTTCPitBlockDir integer
--- @field public oTTCPitBlockWaitTime integer
--- @field public oTTCElevatorDir number
--- @field public oTTCElevatorPeakY number
--- @field public oTTCElevatorMoveTime integer
--- @field public oTTC2DRotatorMinTimeUntilNextTurn integer
--- @field public oTTC2DRotatorTargetYaw integer
--- @field public oTTC2DRotatorIncrement integer
--- @field public oTTC2DRotatorRandomDirTimer integer
--- @field public oTTC2DRotatorSpeed integer
--- @field public oTTCSpinnerDir integer
--- @field public oTTCChangeDirTimer integer
--- @field public oBetaTrampolineMarioOnTrampoline integer
--- @field public oTreasureChestCurrentAnswer integer
--- @field public oTreasureChestIsLastInteractionIncorrect integer
--- @field public oTreasureChestIsAboveWater integer
--- @field public oTreasureChestSound integer
--- @field public oTreasureChestLastNetworkPlayerIndex integer
--- @field public oTreeSnowOrLeafUnkF4 integer
--- @field public oTreeSnowOrLeafUnkF8 integer
--- @field public oTreeSnowOrLeafUnkFC integer
--- @field public oTumblingBridgeUnkF4 integer
--- @field public oTweesterScaleTimer integer
--- @field public oTweesterUnused integer
--- @field public oUkikiTauntCounter integer
--- @field public oUkikiTauntsToBeDone integer
--- @field public oUkikiChaseFleeRange number
--- @field public oUkikiTextState integer
--- @field public oUkikiTextboxTimer integer
--- @field public oUkikiCageSpinTimer integer
--- @field public oUkikiHasCap integer
--- @field public oUkikiCageNextAction integer
--- @field public oUnagiUnkF4 number
--- @field public oUnagiUnkF8 number
--- @field public oUnagiUnk110 number
--- @field public oUnagiUnk1AC number
--- @field public oUnagiUnk1B0 integer
--- @field public oUnagiUnk1B2 integer
--- @field public oWaterBombVerticalStretch number
--- @field public oWaterBombStretchSpeed number
--- @field public oWaterBombOnGround integer
--- @field public oWaterBombNumBounces number
--- @field public oWaterBombSpawnerBombActive integer
--- @field public oWaterBombSpawnerTimeToSpawn integer
--- @field public oWaterCannonUnkF4 integer
--- @field public oWaterCannonUnkF8 integer
--- @field public oWaterCannonUnkFC integer
--- @field public oWaterCannonUnk100 integer
--- @field public oCannonBarrelBubblesUnkF4 number
--- @field public oWaterLevelPillarDrained integer
--- @field public oWaterLevelTriggerUnkF4 integer
--- @field public oWaterLevelTriggerTargetWaterLevel integer
--- @field public oWaterObjUnkF4 integer
--- @field public oWaterObjUnkF8 integer
--- @field public oWaterObjUnkFC integer
--- @field public oWaterObjUnk100 integer
--- @field public oWaterRingScalePhaseX integer
--- @field public oWaterRingScalePhaseY integer
--- @field public oWaterRingScalePhaseZ integer
--- @field public oWaterRingNormalX number
--- @field public oWaterRingNormalY number
--- @field public oWaterRingNormalZ number
--- @field public oWaterRingMarioDistInFront number
--- @field public oWaterRingIndex integer
--- @field public oWaterRingAvgScale number
--- @field public oWaterRingSpawnerRingsCollected integer
--- @field public oWaterRingMgrNextRingIndex integer
--- @field public oWaterRingMgrLastRingCollected integer
--- @field public oWaveTrailSize number
--- @field public oWhirlpoolInitFacePitch integer
--- @field public oWhirlpoolInitFaceRoll integer
--- @field public oWhirlpoolTimeout integer
--- @field public oWhitePuffUnkF4 number
--- @field public oWhitePuffUnkF8 integer
--- @field public oWhitePuffUnkFC integer
--- @field public oStrongWindParticlePenguinObj Object
--- @field public oWhompShakeVal integer
--- @field public oWigglerFallThroughFloorsHeight number
--- @field public oWigglerSegments ChainSegment
--- @field public oWigglerWalkAnimSpeed number
--- @field public oWigglerSquishSpeed number
--- @field public oWigglerTimeUntilRandomTurn integer
--- @field public oWigglerTargetYaw integer
--- @field public oWigglerWalkAwayFromWallTimer integer
--- @field public oWigglerUnused integer
--- @field public oWigglerTextStatus integer
--- @field public oLllWoodPieceOscillationTimer integer
--- @field public oWoodenPostTotalMarioAngle integer
--- @field public oWoodenPostPrevAngleToMario integer
--- @field public oWoodenPostSpeedY number
--- @field public oWoodenPostMarioPounding integer
--- @field public oWoodenPostOffsetY number
--- @field public oYoshiBlinkTimer integer
--- @field public oYoshiChosenHome integer
--- @field public oYoshiTargetYaw integer
--- @field public oBreakableWallForce integer
--- @field public oLightID integer
--- @field public get_mario_spawn_type fun(o: Object): integer Derives a `MARIO_SPAWN_*` constant from `o`
--- @field public area_get_warp_node_from_params fun(o: Object): ObjectWarpNode Finds a warp node in the current area using parameters from the provided object. The object's behavior parameters are used to determine the warp node ID. Useful for associating an object (like a door or warp pipe) with its corresponding warp node in the area
--- @field public bhv_spawn_star_no_level_exit fun(object: Object, params: integer, networkSendEvent: integer) Spawns a Star parented to `object` that won't make Mario exit the level with an ID corresponding to `params`' first byte
--- @field public update_gfx_pos_and_angle fun(obj: Object) Updates an object's graphical position and angle
--- @field public vec3f_to_pos fun(o: Object, src: Vec3f) Converts a `Vec3f` position to an object's internal format. Useful for syncing 3D positions between objects and the game world
--- @field public vec3s_to_face_angle fun(o: Object, src: Vec3s) Converts a `Vec3s` angle to an object's face angle internal format
--- @field public vec3s_to_move_angle fun(o: Object, src: Vec3s) Converts a `Vec3s` angle to an object's move angle internal format
--- @field public rotate_towards_point fun(o: Object, point: Vec3f, pitchOff: integer, yawOff: integer, pitchDiv: integer, yawDiv: integer) Rotates an object toward a specific point in 3D space. Gradually updates the object's pitch and yaw angles to face the target
--- @field public get_door_save_file_flag fun(door: Object): integer Retrieves the save file flag associated with a door, based on the number of stars required to open it. Used to check if the player has unlocked certain star doors or progressed far enough to access new areas
--- @field public get_mario_cap_flag fun(capObject: Object): integer Determines the type of cap an object represents. Depending on the object's behavior, it returns a cap type (normal, metal, wing, vanish). Useful for handling the logic of picking up, wearing, or losing different kinds of caps
--- @field public find_mario_anim_flags_and_translation fun(o: Object, yaw: integer, translation: Vec3s): integer Retrieves the current animation flags and calculates the translation for Mario's animation, rotating it into the global coordinate system based on `yaw`. Useful for determining positional offsets from animations (e.g., stepping forward in a walk animation) and applying them to Mario's position
--- @field public execute_mario_action fun(o: Object): integer Main driver for Mario's behavior. Executes the current action group (stationary, moving, airborne, etc.) in a loop until no further action changes are necessary
--- @field public get_mario_state_from fun(o: Object): MarioState Gets the MarioState corresponding to the provided object if the object is a Mario object
--- @field public orient_graph fun(obj: Object, normalX: number, normalY: number, normalZ: number) Orients an object with the given normals, typically the surface under the object.
--- @field public move_xyz_using_fvel_and_yaw fun(obj: Object) Don't use this function outside of of a context where the current object and `obj` are the same. Moves `obj` based on a seemingly random mix of using either the current obj or `obj`'s fields
--- @field public nearest_mario_state_to fun(obj: Object): MarioState Gets the nearest active Mario who isn't bubbled to `obj`
--- @field public nearest_possible_mario_state_to fun(obj: Object): MarioState Gets the nearest possible Mario to `obj` despite anything like bubbled state or enemy visibility
--- @field public nearest_player_to fun(obj: Object): Object Gets the nearest player (Mario Object) to `obj`
--- @field public nearest_interacting_mario_state_to fun(obj: Object): MarioState Gets the nearest interacting Mario to `obj`
--- @field public nearest_interacting_player_to fun(obj: Object): Object Gets the nearest interacting player (Mario Object) to `obj`
--- @field public is_nearest_player_to fun(m: Object, obj: Object): integer Checks if `m` is the nearest player (Mario Object) to `obj`
--- @field public is_point_close_to fun(obj: Object, x: number, y: number, z: number, dist: integer): integer Checks if a point is within `dist` of `obj`
--- @field public set_visibility fun(obj: Object, dist: integer) Sets an object as visible if within a certain distance of Mario's graphical position
--- @field public return_home_if_safe fun(obj: Object, homeX: number, y: number, homeZ: number, dist: integer): integer Turns an object towards home if Mario is not near to it
--- @field public return_and_displace_home fun(obj: Object, homeX: number, homeY: number, homeZ: number, baseDisp: integer) Randomly displaces an objects home if RNG says to, and turns the object towards its home
--- @field public spawn_yellow_coins fun(obj: Object, nCoins: integer) Spawns a number of coins at the location of an object with a random forward velocity, y velocity, and direction
--- @field public flicker_and_disappear fun(obj: Object, lifeSpan: integer): integer Controls whether certain objects should flicker/when to despawn
--- @field public apply_scale_to_matrix fun(obj: Object, dst: Mat4, src: Mat4)
--- @field public set_held_state fun(obj: Object, heldBehavior: Pointer_BehaviorScript)
--- @field public lateral_dist_betweens fun(obj1: Object, obj2: Object): number
--- @field public dist_betweens fun(obj1: Object, obj2: Object): number
--- @field public dist_between_and_point fun(obj: Object, pointX: number, pointY: number, pointZ: number): number
--- @field public angle_to fun(obj1: Object, obj2: Object): integer
--- @field public pitch_to fun(obj: Object, target: Object): integer
--- @field public angle_to_point fun(obj: Object, pointX: number, pointZ: number): integer
--- @field public turn_toward fun(obj: Object, target: Object, angleIndex: integer, turnAmount: integer): integer
--- @field public set_parent_relative_pos fun(obj: Object, relX: integer, relY: integer, relZ: integer)
--- @field public set_pos fun(obj: Object, x: integer, y: integer, z: integer)
--- @field public set_angle fun(obj: Object, pitch: integer, yaw: integer, roll: integer)
--- @field public set_move_angle fun(obj: Object, pitch: integer, yaw: integer, roll: integer)
--- @field public set_face_angle fun(obj: Object, pitch: integer, yaw: integer, roll: integer)
--- @field public set_gfx_angle fun(obj: Object, pitch: integer, yaw: integer, roll: integer)
--- @field public set_gfx_pos fun(obj: Object, x: number, y: number, z: number)
--- @field public set_gfx_scale fun(obj: Object, x: number, y: number, z: number)
--- @field public spawn_water_droplet fun(parent: Object, params: WaterDropletParams): Object
--- @field public build_relative_transform fun(obj: Object)
--- @field public copy_graph_y_offset fun(dst: Object, src: Object)
--- @field public copy_pos_and_angle fun(dst: Object, src: Object)
--- @field public copy_pos fun(dst: Object, src: Object)
--- @field public copy_angle fun(dst: Object, src: Object)
--- @field public set_gfx_pos_from_pos fun(obj: Object)
--- @field public init_animation fun(obj: Object, animIndex: integer)
--- @field public apply_scale_to_transform fun(obj: Object)
--- @field public copy_scale fun(dst: Object, src: Object)
--- @field public scale_xyz fun(obj: Object, xScale: number, yScale: number, zScale: number)
--- @field public scale fun(obj: Object, scale: number)
--- @field public init_animation_with_accel_and_sound fun(obj: Object, animIndex: integer, accel: number)
--- @field public init_animation_with_sound function
--- @field public cur_enable_rendering_and_become_tangible fun(obj: Object)
--- @field public cur_disable_rendering_and_become_intangible fun(obj: Object)
--- @field public cur_set_pos_relative fun(other: Object, dleft: number, dy: number, dforward: number)
--- @field public set_face_angle_to_move_angle fun(obj: Object)
--- @field public mark_for_deletion fun(obj: Object) Marks an object to be unloaded at the end of the frame
--- @field public become_tangible fun(obj: Object)
--- @field public check_if_collided_with fun(obj1: Object, obj2: Object): integer
--- @field public set_behavior fun(obj: Object, behavior: Pointer_BehaviorScript)
--- @field public has_behavior fun(obj: Object, behavior: Pointer_BehaviorScript): integer
--- @field public cur_lateral_dist_from_obj_to_home fun(obj: Object): number
--- @field public cur_start_cam_event fun(obj: Object, cameraEvent: integer)
--- @field public set_billboard fun(obj: Object)
--- @field public set_cylboard fun(obj: Object)
--- @field public set_hitbox_radius_and_height fun(o: Object, radius: number, height: number)
--- @field public set_hurtbox_radius_and_height fun(o: Object, radius: number, height: number)
--- @field public spawn_loot_coins fun(obj: Object, numCoins: integer, sp30: number, coinBehavior: Pointer_BehaviorScript, posJitter: integer, model: integer)
--- @field public spawn_loot_blue_coins fun(obj: Object, numCoins: integer, sp28: number, posJitter: integer)
--- @field public spawn_loot_yellow_coins fun(obj: Object, numCoins: integer, sp28: number)
--- @field public set_pos_relative fun(obj: Object, other: Object, dleft: number, dy: number, dforward: number)
--- @field public set_gfx_pos_at_obj_pos fun(obj1: Object, obj2: Object)
--- @field public translate_local fun(obj: Object, posIndex: integer, localTranslateIndex: integer) Transforms the vector at `localTranslateIndex` into the object's local coordinates, and then adds it to the vector at `posIndex`
--- @field public build_transform_from_pos_and_angle fun(obj: Object, posIndex: integer, angleIndex: integer)
--- @field public set_throw_matrix_from_transform fun(obj: Object)
--- @field public build_transform_relative_to_parent fun(obj: Object)
--- @field public create_transform_from_self fun(obj: Object)
--- @field public scale_random fun(obj: Object, rangeLength: number, minScale: number)
--- @field public translate_xyz_random fun(obj: Object, rangeLength: number)
--- @field public translate_xz_random fun(obj: Object, rangeLength: number)
--- @field public build_vel_from_transform fun(a0: Object)
--- @field public set_hitbox fun(obj: Object, hitbox: ObjectHitbox)
--- @field public set_collision_data function
--- @field public is_hidden fun(obj: Object): integer
--- @field public attack_collided_from_other fun(obj: Object): integer
--- @field public copy_behavior_params fun(dst: Object, src: Object)
--- @field public set_respawn_info_bits fun(obj: Object, bits: integer) Runs an OR operator on the `obj`'s respawn info with `bits` << 8. If `bits` is 0xFF, this prevents the object from respawning after leaving and re-entering the area
--- @field public apply_platform_displacement fun(o: Object, platform: Object) Apply one frame of platform rotation to the object using the given platform
--- @field public queue_rumble_data fun(object: Object, a0: integer, a1: integer) Queues rumble data for object, factoring in its distance from Mario
--- @field public smlua_anim_util_set_animation fun(obj: Object, name: string) Sets the animation of `obj` to the animation `name` corresponds to
--- @field public smlua_anim_util_get_current_animation_name fun(obj: Object): string Gets the name of the current animation playing on `obj`, returns `nil` if there's no name
--- @field public has_behavior_id fun(o: Object, behaviorId: BehaviorId): integer Checks if an object has `behaviorId`
--- @field public has_model_extended fun(o: Object, modelId: ModelExtendedId): integer Checks if an object's model is equal to `modelId`
--- @field public get_model_id_extended fun(o: Object): ModelExtendedId Returns an object's extended model id
--- @field public set_model_extended fun(o: Object, modelId: ModelExtendedId) Sets an object's model to `modelId`
--- @field public set_cutscene_focus fun(o: Object) Sets the cutscene focus object
--- @field public set_secondary_camera_focus fun(o: Object) Sets the secondary camera focus object
--- @field public get_next fun(o: Object): Object Gets the next object in an object list
--- @field public get_next_with_same_behavior_id fun(o: Object): Object Gets the next object loaded with the same behavior ID
--- @field public get_next_with_same_behavior_id_and_field_s32 fun(o: Object, fieldIndex: integer, value: integer): Object Gets the next object loaded with the same behavior ID and object signed 32-bit integer field (look in `object_fields.h` to get the index of a field)
--- @field public get_next_with_same_behavior_id_and_field_f32 fun(o: Object, fieldIndex: integer, value: number): Object Gets the next object loaded with the same behavior ID and object float field (look in `object_fields.h` to get the index of a field)
--- @field public get_nearest_with_behavior_id fun(o: Object, behaviorId: BehaviorId): Object Gets the nearest object with `behaviorId` to `o`
--- @field public get_collided fun(o: Object, index: integer): Object Gets the corresponding collided object to an index from `o`
--- @field public get_field_u32 fun(o: Object, fieldIndex: integer): integer Gets the unsigned 32-bit integer value from the field corresponding to `fieldIndex`
--- @field public get_field_s32 fun(o: Object, fieldIndex: integer): integer Gets the signed 32-bit integer value from the field corresponding to `fieldIndex`
--- @field public get_field_f32 fun(o: Object, fieldIndex: integer): number Sets the float value from the field corresponding to `fieldIndex`
--- @field public get_field_s16 fun(o: Object, fieldIndex: integer, fieldSubIndex: integer): integer Gets the signed 32-bit integer value from the sub field corresponding to `fieldSubIndex` from the field corresponding to `fieldIndex`
--- @field public set_field_u32 fun(o: Object, fieldIndex: integer, value: integer) Sets the unsigned 32-bit integer value from the field corresponding to `fieldIndex`
--- @field public set_field_s32 fun(o: Object, fieldIndex: integer, value: integer) Sets the signed 32-bit integer value from the field corresponding to `fieldIndex`
--- @field public set_field_f32 fun(o: Object, fieldIndex: integer, value: number) Sets the float value from the field corresponding to `fieldIndex`
--- @field public set_field_s16 fun(o: Object, fieldIndex: integer, fieldSubIndex: integer, value: integer) Sets the signed 32-bit integer value from the sub field corresponding to `fieldSubIndex` from the field corresponding to `fieldIndex`
--- @field public is_attackable fun(o: Object): boolean Checks if `o` is attackable
--- @field public is_breakable fun(o: Object): boolean Checks if `o` is breakable
--- @field public is_bully fun(o: Object): boolean Checks if `o` is a Bully
--- @field public is_coin fun(o: Object): boolean Checks if `o` is a coin
--- @field public is_exclamation_box fun(o: Object): boolean Checks if `o` is an exclamation box
--- @field public is_grabbable fun(o: Object): boolean Checks if `o` is grabbable
--- @field public is_mushroom_1up fun(o: Object): boolean Checks if `o` is a 1-Up Mushroom
--- @field public is_secret fun(o: Object): boolean Checks if `o` is a secret
--- @field public is_valid_for_interaction fun(o: Object): boolean Checks if `o` is activated, tangible, and interactible
--- @field public check_hitbox_overlap fun(o1: Object, o2: Object): boolean Checks if `o1`'s hitbox is colliding with `o2`'s hitbox
--- @field public check_overlap_with_hitbox_params fun(o: Object, x: number, y: number, z: number, h: number, r: number, d: number): boolean Checks if `o`'s hitbox is colliding with the parameters of a hitbox
--- @field public set_vel fun(o: Object, vx: number, vy: number, vz: number) Sets an object's velocity to `vx`, `vy`, and `vz`
--- @field public move_xyz fun(o: Object, dx: number, dy: number, dz: number) Moves the object in the direction of `dx`, `dy`, and `dz`
--- @field public get_surface_from_index fun(o: Object, index: integer): Surface Gets a surface corresponding to `index` from the surface pool buffer
--- @class ObjectHitbox
--- @field public interactType integer
--- @field public health integer
--- @field public damageOrCoinValue integer
--- @field public numLootCoins integer
--- @field public downOffset integer
--- @field public radius integer
--- @field public height integer
--- @field public hurtboxRadius integer
--- @field public hurtboxHeight integer
--- @class ObjectNode
--- @field public gfx GraphNodeObject
--- @field public next ObjectNode
--- @field public prev ObjectNode
--- @class ObjectWarpNode
--- @field public node WarpNode
--- @field public object Object
--- @field public next ObjectWarpNode
--- @class Painting
--- @field public id integer
--- @field public imageCount integer
--- @field public textureType integer
--- @field public lastFloor integer
--- @field public currFloor integer
--- @field public floorEntered integer
--- @field public state integer
--- @field public pitch number
--- @field public yaw number
--- @field public posX number
--- @field public posY number
--- @field public posZ number
--- @field public currRippleMag number
--- @field public passiveRippleMag number
--- @field public entryRippleMag number
--- @field public rippleDecay number
--- @field public passiveRippleDecay number
--- @field public entryRippleDecay number
--- @field public currRippleRate number
--- @field public passiveRippleRate number
--- @field public entryRippleRate number
--- @field public dispersionFactor number
--- @field public passiveDispersionFactor number
--- @field public entryDispersionFactor number
--- @field public rippleTimer number
--- @field public rippleX number
--- @field public rippleY number
--- @field public textureArray Pointer_Texture[]
--- @field public textureWidth integer
--- @field public textureHeight integer
--- @field public rippleTrigger integer
--- @field public alpha integer
--- @field public marioWasUnder integer
--- @field public marioIsUnder integer
--- @field public marioWentUnder integer
--- @field public size number
--- @class PaintingValues
--- @field public cotmc_painting Painting
--- @field public bob_painting Painting
--- @field public ccm_painting Painting
--- @field public wf_painting Painting
--- @field public jrb_painting Painting
--- @field public lll_painting Painting
--- @field public ssl_painting Painting
--- @field public hmc_painting Painting
--- @field public ddd_painting Painting
--- @field public wdw_painting Painting
--- @field public thi_tiny_painting Painting
--- @field public ttm_painting Painting
--- @field public ttc_painting Painting
--- @field public sl_painting Painting
--- @field public thi_huge_painting Painting
--- @field public ttm_slide_painting Painting
--- @class PlayerCameraState
--- @field public action integer
--- @field public pos Vec3f
--- @field public faceAngle Vec3s
--- @field public headRotation Vec3s
--- @field public unused integer
--- @field public cameraEvent integer
--- @field public usedObj Object
--- @class PlayerPalette
--- @field public parts Color[]
--- @class RayIntersectionInfo
--- @field public surface Surface
--- @field public hitPos Vec3f
--- @class RomhackCameraSettings
--- @field public enable RomhackCameraOverride
--- @field public centering integer
--- @field public dpad integer
--- @field public collisions integer
--- @field public slowFall integer
--- @field public zoomedInDist integer
--- @field public zoomedOutDist integer
--- @field public zoomedInHeight integer
--- @field public zoomedOutHeight integer
--- @field public modsOnly integer
--- @class ServerSettings
--- @field public playerInteractions PlayerInteractions
--- @field public bouncyLevelBounds BouncyLevelBounds
--- @field public pvpType PvpType
--- @field public playerKnockbackStrength integer
--- @field public stayInLevelAfterStar integer
--- @field public skipIntro integer
--- @field public bubbleDeath integer
--- @field public enablePlayersInLevelDisplay integer
--- @field public enablePlayerList integer
--- @field public headlessServer integer
--- @field public nametags integer
--- @field public maxPlayers integer
--- @field public pauseAnywhere integer
--- @class SpawnInfo
--- @field public startPos Vec3s
--- @field public startAngle Vec3s
--- @field public areaIndex integer
--- @field public activeAreaIndex integer
--- @field public behaviorArg integer
--- @field public unk18 GraphNode
--- @field public next SpawnInfo
--- @field public syncID integer
--- @class SpawnParticlesInfo
--- @field public behParam integer
--- @field public count integer
--- @field public model integer
--- @field public offsetY integer
--- @field public forwardVelBase integer
--- @field public forwardVelRange integer
--- @field public velYBase integer
--- @field public velYRange integer
--- @field public gravity integer
--- @field public dragStrength integer
--- @field public sizeBase number
--- @field public sizeRange number
--- @class StarPositions
--- @field public KoopaBobStarPos Vec3f
--- @field public KoopaThiStarPos Vec3f
--- @field public KingBobombStarPos Vec3f
--- @field public KingWhompStarPos Vec3f
--- @field public EyerockStarPos Vec3f
--- @field public BigBullyStarPos Vec3f
--- @field public ChillBullyStarPos Vec3f
--- @field public BigPiranhasStarPos Vec3f
--- @field public TuxieMotherStarPos Vec3f
--- @field public WigglerStarPos Vec3f
--- @field public PssSlideStarPos Vec3f
--- @field public RacingPenguinStarPos Vec3f
--- @field public TreasureJrbStarPos Vec3f
--- @field public TreasureChestStarPos Vec3f
--- @field public GhostHuntBooStarPos Vec3f
--- @field public KleptoStarPos Vec3f
--- @field public MerryGoRoundStarPos Vec3f
--- @field public MrIStarPos Vec3f
--- @field public BalconyBooStarPos Vec3f
--- @field public BigBullyTrioStarPos Vec3f
--- @field public MantaRayStarPos Vec3f
--- @field public SnowmanHeadStarPos Vec3f
--- @field public CcmSlideStarPos Vec3f
--- @field public UkikiCageStarPos Vec3f
--- @field public UnagiStarPos Vec3f
--- @field public JetstreamRingStarPos Vec3f
--- @class StarsNeededForDialog
--- @field public dialog1 integer
--- @field public dialog2 integer
--- @field public dialog3 integer
--- @field public dialog4 integer
--- @field public dialog5 integer
--- @field public dialog6 integer
--- @class StaticObjectCollision
--- @field public index integer
--- @field public length integer
--- @class Surface
--- @field public type integer
--- @field public flags integer
--- @field public room integer
--- @field public force integer
--- @field public lowerY integer
--- @field public upperY integer
--- @field public vertex1 Vec3s
--- @field public vertex2 Vec3s
--- @field public vertex3 Vec3s
--- @field public prevVertex1 Vec3s
--- @field public prevVertex2 Vec3s
--- @field public prevVertex3 Vec3s
--- @field public normal Vec3f
--- @field public originOffset number
--- @field public modifiedTimestamp integer
--- @field public object Object
--- @field public turn_obj_away_from_steep_floor fun(objFloor: Surface, floorY: number, objVelX: number, objVelZ: number): integer Turns an object away from steep floors, similarly to walls.
--- @field public calc_new_obj_vel_and_pos_y fun(objFloor: Surface, objFloorY: number, objVelX: number, objVelZ: number) Updates an objects speed for gravity and updates Y position.
--- @field public calc_new_obj_vel_and_pos_y_underwater fun(objFloor: Surface, floorY: number, objVelX: number, objVelZ: number, waterY: number) Adjusts the current object's veloicty and y position for being underwater
--- @field public is_quicksand fun(surf: Surface): boolean Checks if the surface is quicksand
--- @field public is_not_hard fun(surf: Surface): boolean Checks if the surface is not a hard surface
--- @field public is_painting_warp fun(surf: Surface): boolean Checks if the surface is a painting warp
--- @field public closest_point_to_triangle fun(surf: Surface, src: Vec3f, out: Vec3f) Gets the closest point of the triangle to `src` and returns it in `out`.
--- @class TextureInfo
--- @field public texture Pointer_Texture
--- @field public name string
--- @field public width integer
--- @field public height integer
--- @field public format integer
--- @field public size integer
--- @class Vtx
--- @field public x number
--- @field public y number
--- @field public z number
--- @field public flag integer
--- @field public tu integer
--- @field public tv integer
--- @field public r integer
--- @field public nx integer
--- @field public g integer
--- @field public ny integer
--- @field public b integer
--- @field public nz integer
--- @field public a integer
--- @class WallCollisionData
--- @field public x number
--- @field public y number
--- @field public z number
--- @field public offsetY number
--- @field public radius number
--- @field public unused integer
--- @field public numWalls integer
--- @field public walls Surface[]
--- @field public normalAddition Vec3f
--- @field public normalCount integer
--- @class WarpNode
--- @field public id integer
--- @field public destLevel integer
--- @field public destArea integer
--- @field public destNode integer
--- @class WaterDropletParams
--- @field public flags integer
--- @field public model integer
--- @field public behavior Pointer_BehaviorScript
--- @field public moveAngleRange integer
--- @field public moveRange integer
--- @field public randForwardVelOffset number
--- @field public randForwardVelScale number
--- @field public randYVelOffset number
--- @field public randYVelScale number
--- @field public randSizeOffset number
--- @field public randSizeScale number
--- @class Waypoint
--- @field public flags integer
--- @field public pos Vec3s
--- @class Whirlpool
--- @field public pos Vec3s
--- @field public strength integer
--- @class Vec2f
--- @field public x number
--- @field public y number
--- @class Vec3f
--- @field public x number
--- @field public y number
--- @field public z number
--- @class Vec4f
--- @field public x number
--- @field public y number
--- @field public z number
--- @field public w number
--- @class Vec2i
--- @field public x integer
--- @field public y integer
--- @class Vec3i
--- @field public x integer
--- @field public y integer
--- @field public z integer
--- @class Vec4i
--- @field public x integer
--- @field public y integer
--- @field public z integer
--- @field public w integer
--- @class Vec2s
--- @field public x integer
--- @field public y integer
--- @class Vec3s
--- @field public x integer
--- @field public y integer
--- @field public z integer
--- @class Vec4s
--- @field public x integer
--- @field public y integer
--- @field public z integer
--- @field public w integer
--- @class Mat4
--- @field public m00 number
--- @field public m01 number
--- @field public m02 number
--- @field public m03 number
--- @field public m10 number
--- @field public m11 number
--- @field public m12 number
--- @field public m13 number
--- @field public m20 number
--- @field public m21 number
--- @field public m22 number
--- @field public m23 number
--- @field public m30 number
--- @field public m31 number
--- @field public m32 number
--- @field public m33 number
--- @class Color
--- @field public r integer
--- @field public g integer
--- @field public b integer
--- @alias Pointer_integer integer
--- @alias Pointer_Trajectory Trajectory
--- @alias Pointer_Gfx Gfx
--- @alias Pointer_LevelScript LevelScript
--- @alias Pointer_ObjectAnimPointer ObjectAnimPointer
--- @alias Pointer_Collision Collision
--- @alias Pointer_Mat4 Mat4
--- @alias Pointer_Vec4s Vec4s
--- @alias Pointer_BehaviorScript BehaviorScript
--- @alias Pointer_Texture[] Texture[]
--- @alias Pointer_Texture Texture