sm64coopdx/autogen/lua_definitions/structs.lua

2193 lines
90 KiB
Lua
Raw Normal View History

-- AUTOGENERATED FOR CODE EDITORS --
--- @meta
--- @diagnostic disable
--- @class AnimInfo
--- @field public animAccel integer
--- @field public animFrame integer
--- @field public animFrameAccelAssist integer
--- @field public animID integer
--- @field public animTimer integer
--- @field public animYTrans integer
--- @field public curAnim Animation
--- @field public prevAnimFrame integer
--- @field public prevAnimFrameTimestamp integer
--- @field public prevAnimID integer
--- @field public prevAnimPtr Animation
--- @class Animation
--- @field public animYTransDivisor integer
--- @field public flags integer
--- @field public index Pointer_integer
2023-05-19 00:54:29 +00:00
--- @field public indexLength integer
--- @field public length integer
--- @field public loopEnd integer
--- @field public loopStart integer
--- @field public startFrame integer
--- @field public unusedBoneCount integer
--- @field public values Pointer_integer
2023-05-19 00:54:29 +00:00
--- @field public valuesLength integer
--- @class AnimationTable
--- @field public count integer
--- @class Area
--- @field public camera Camera
--- @field public flags integer
--- @field public index integer
--- @field public instantWarps InstantWarp
2022-03-26 04:39:03 +00:00
--- @field public localAreaTimer integer
--- @field public macroObjects Pointer_integer
2022-03-30 04:12:42 +00:00
--- @field public macroObjectsAltered Pointer_integer
--- @field public musicParam integer
--- @field public musicParam2 integer
--- @field public nextSyncID integer
--- @field public numRedCoins integer
--- @field public numSecrets integer
--- @field public objectSpawnInfos SpawnInfo
--- @field public paintingWarpNodes WarpNode
--- @field public surfaceRooms Pointer_integer
--- @field public terrainData Pointer_integer
--- @field public terrainType integer
--- @field public warpNodes ObjectWarpNode
--- @class BassAudio
--- @field public file ModFile
--- @field public handle integer
--- @field public isStream boolean
--- @field public loaded boolean
--- @field public rawData string
--- @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 TuxieMotherBabyFoundDialog DialogId
--- @field public TuxieMotherBabyWrongDialog DialogId
--- @field public TuxieMotherDialog 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
2022-04-09 04:01:17 +00:00
--- @class BehaviorTrajectories
--- @field public BowlingBallBob2Trajectory Pointer_Trajectory
--- @field public BowlingBallBobTrajectory Pointer_Trajectory
2022-06-03 02:45:01 +00:00
--- @field public BowlingBallThiLargeTrajectory Pointer_Trajectory
--- @field public BowlingBallThiSmallTrajectory Pointer_Trajectory
2022-04-09 04:01:17 +00:00
--- @field public BowlingBallTtmTrajectory Pointer_Trajectory
--- @field public KoopaBobTrajectory Pointer_Trajectory
--- @field public KoopaThiTrajectory Pointer_Trajectory
--- @field public Mips10Trajectory 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 MipsTrajectory Pointer_Trajectory
--- @field public PlatformBitfsTrajectory Pointer_Trajectory
--- @field public PlatformCcmTrajectory Pointer_Trajectory
--- @field public PlatformHmcTrajectory Pointer_Trajectory
--- @field public PlatformLll2Trajectory Pointer_Trajectory
--- @field public PlatformLllTrajectory Pointer_Trajectory
--- @field public PlatformRr2Trajectory Pointer_Trajectory
--- @field public PlatformRr3Trajectory Pointer_Trajectory
--- @field public PlatformRr4Trajectory Pointer_Trajectory
--- @field public PlatformRrTrajectory Pointer_Trajectory
--- @field public RacingPenguinTrajectory Pointer_Trajectory
--- @field public SnowmanHeadTrajectory Pointer_Trajectory
--- @field public Unagi2Trajectory Pointer_Trajectory
--- @field public UnagiTrajectory Pointer_Trajectory
--- @class BehaviorValues
2022-06-03 02:50:41 +00:00
--- @field public BowlingBallBob2Speed number
--- @field public BowlingBallBobSpeed number
--- @field public BowlingBallThiLargeSpeed number
--- @field public BowlingBallThiSmallSpeed number
--- @field public BowlingBallTtmSpeed number
--- @field public ChillBullyDeathPosY number
--- @field public GrateStarRequirement integer
--- @field public InfiniteRenderDistance integer
--- @field public KingBobombFVel number
--- @field public KingBobombHealth integer
--- @field public KingBobombYawVel integer
--- @field public KingWhompHealth integer
2022-04-09 06:01:41 +00:00
--- @field public KoopaBobAgility number
--- @field public KoopaCatchupAgility number
--- @field public KoopaThiAgility number
--- @field public MipsStar1Requirement integer
--- @field public MipsStar2Requirement integer
--- @field public MultipleCapCollection integer
--- @field public RacingPenguinBigHeight number
--- @field public RacingPenguinBigRadius number
--- @field public RacingPenguinHeight number
--- @field public RacingPenguinRadius number
--- @field public RespawnShellBoxes integer
--- @field public ShowStarMilestones integer
--- @field public ToadStar1Requirement integer
--- @field public ToadStar2Requirement integer
--- @field public ToadStar3Requirement integer
--- @field public dialogs BehaviorDialogs
--- @field public starsNeededForDialog StarsNeededForDialog
2022-04-09 04:01:17 +00:00
--- @field public trajectories BehaviorTrajectories
--- @class BullyCollisionData
--- @field public conversionRatio number
--- @field public posX number
--- @field public posZ number
--- @field public radius number
--- @field public velX number
--- @field public velZ number
--- @class Camera
--- @field public areaCenX number
--- @field public areaCenY number
--- @field public areaCenZ number
--- @field public cutscene integer
--- @field public defMode integer
--- @field public doorStatus integer
--- @field public focus Vec3f
--- @field public mode integer
--- @field public mtx Mat4
--- @field public nextYaw integer
--- @field public pos Vec3f
--- @field public unusedVec1 Vec3f
--- @field public yaw integer
--- @class CameraFOVStatus
--- @field public decay integer
--- @field public fov number
--- @field public fovFunc integer
--- @field public fovOffset number
--- @field public shakeAmplitude number
--- @field public shakePhase integer
--- @field public shakeSpeed integer
--- @field public unusedIsSleeping integer
--- @class CameraStoredInfo
--- @field public cannonYOffset number
--- @field public focus Vec3f
--- @field public panDist number
--- @field public pos Vec3f
--- @class CameraTrigger
--- @field public area integer
--- @field public boundsX integer
--- @field public boundsY integer
--- @field public boundsYaw integer
--- @field public boundsZ integer
--- @field public centerX integer
--- @field public centerY integer
--- @field public centerZ integer
--- @class ChainSegment
--- @field public pitch integer
--- @field public posX number
--- @field public posY number
--- @field public posZ number
--- @field public roll integer
--- @field public yaw integer
--- @class Character
--- @field public animAPose integer
--- @field public animAirForwardKb integer
--- @field public animAirKick integer
--- @field public animAirborneOnStomach integer
--- @field public animBackflip integer
--- @field public animBackwardAirKb integer
--- @field public animBackwardKb integer
--- @field public animBackwardSpinning integer
--- @field public animBackwardsWaterKb integer
--- @field public animBeingGrabbed integer
--- @field public animBendKnessRidingShell integer
--- @field public animBottomStuckInGround integer
--- @field public animBreakdance integer
--- @field public animClimbDownLedge integer
--- @field public animClimbUpPole integer
--- @field public animCoughing integer
--- @field public animCrawling integer
--- @field public animCreditsLookBackThenRun integer
--- @field public animCreditsLookUp integer
--- @field public animCreditsLowerHand integer
--- @field public animCreditsPeaceSign integer
--- @field public animCreditsRaiseHand integer
--- @field public animCreditsReturnFromLookUp integer
--- @field public animCreditsStartWalkLookUp integer
--- @field public animCreditsTakeOffCap integer
--- @field public animCreditsWaving integer
--- @field public animCrouchFromFastLongjump integer
--- @field public animCrouchFromSlideKick integer
--- @field public animCrouchFromSlowLongjump integer
--- @field public animCrouching integer
--- @field public animDive integer
--- @field public animDoubleJumpFall integer
--- @field public animDoubleJumpRise integer
--- @field public animDrowningPart1 integer
--- @field public animDrowningPart2 integer
--- @field public animDyingFallOver integer
--- @field public animDyingInQuicksand integer
--- @field public animDyingOnBack integer
--- @field public animDyingOnStomach integer
--- @field public animElectrocution integer
--- @field public animFallFromSlide integer
--- @field public animFallFromSlideKick integer
--- @field public animFallFromSlidingWithLightObj integer
--- @field public animFallFromWater integer
--- @field public animFallLandWithLightObj integer
--- @field public animFallOverBackwards integer
--- @field public animFallWithLightObj integer
--- @field public animFastLedgeGrab integer
--- @field public animFastLongjump integer
--- @field public animFinalBowserRaiseHandSpin integer
--- @field public animFinalBowserWingCapTakeOff integer
--- @field public animFireLavaBurn integer
--- @field public animFirstPerson integer
--- @field public animFirstPunch integer
--- @field public animFirstPunchFast integer
--- @field public animFlutterkick integer
--- @field public animFlutterkickWithObj integer
--- @field public animFlyFromCannon integer
--- @field public animForwardFlip integer
--- @field public animForwardKb integer
--- @field public animForwardSpinning integer
--- @field public animForwardSpinningFlip integer
--- @field public animGeneralFall integer
--- @field public animGeneralLand integer
--- @field public animGrabBowser integer
--- @field public animGrabHeavyObject integer
--- @field public animGrabPoleShort integer
--- @field public animGrabPoleSwingPart1 integer
--- @field public animGrabPoleSwingPart2 integer
--- @field public animGroundBonk integer
--- @field public animGroundKick integer
--- @field public animGroundPound integer
--- @field public animGroundPoundLanding integer
--- @field public animGroundThrow integer
--- @field public animHandstandIdle integer
--- @field public animHandstandJump integer
--- @field public animHandstandLeft integer
--- @field public animHandstandRight integer
--- @field public animHangOnCeiling integer
--- @field public animHangOnOwl integer
--- @field public animHeadStuckInGround integer
--- @field public animHeavyThrow integer
--- @field public animHoldingBowser integer
--- @field public animIdleHeadCenter integer
--- @field public animIdleHeadLeft integer
--- @field public animIdleHeadRight integer
--- @field public animIdleHeavyObj integer
--- @field public animIdleInQuicksand integer
--- @field public animIdleOnLedge integer
--- @field public animIdleOnPole integer
--- @field public animIdleWithLightObj integer
--- @field public animJumpLandWithLightObj integer
--- @field public animJumpRidingShell integer
--- @field public animJumpWithLightObj integer
--- @field public animLandFromDoubleJump integer
--- @field public animLandFromSingleJump integer
--- @field public animLandOnStomach integer
--- @field public animLegsStuckInGround integer
--- @field public animMissingCap integer
--- @field public animMoveInQuicksand integer
--- @field public animMoveOnWireNetLeft integer
--- @field public animMoveOnWireNetRight integer
--- @field public animOffsetEnabled integer
--- @field public animOffsetFeet number
--- @field public animOffsetHand number
--- @field public animOffsetLowYPoint number
--- @field public animPickUpLightObj integer
--- @field public animPlaceLightObj integer
--- @field public animPullDoorWalkIn integer
--- @field public animPushDoorWalkIn integer
--- @field public animPushing integer
--- @field public animPutCapOn integer
--- @field public animQuicklyPutCapOn integer
--- @field public animReachPocket integer
--- @field public animReleaseBowser integer
--- @field public animReturnFromHandstand integer
--- @field public animReturnFromStarDance integer
--- @field public animReturnFromWaterStarDance integer
--- @field public animReturnStarApproachDoor integer
--- @field public animRidingShell integer
--- @field public animRunWithLightObj integer
--- @field public animRunning integer
--- @field public animRunningUnused integer
--- @field public animSecondPunch integer
--- @field public animSecondPunchFast integer
--- @field public animShivering integer
--- @field public animShiveringReturnToIdle integer
--- @field public animShiveringWarmingHand integer
--- @field public animShocked integer
--- @field public animSidestepLeft integer
--- @field public animSidestepRight integer
--- @field public animSingleJump integer
--- @field public animSkidOnGround integer
--- @field public animSleepIdle integer
--- @field public animSleepLying integer
--- @field public animSleepStartLying integer
--- @field public animSlide integer
--- @field public animSlideDive integer
--- @field public animSlideKick integer
--- @field public animSlideMotionless integer
--- @field public animSlideflip integer
--- @field public animSlideflipLand integer
--- @field public animSlidejump integer
--- @field public animSlidingOnBottomWithLightObj integer
--- @field public animSlowLandFromDive integer
--- @field public animSlowLedgeGrab integer
--- @field public animSlowLongjump integer
--- @field public animSlowWalkWithLightObj integer
--- @field public animSoftBackKb integer
--- @field public animSoftFrontKb integer
--- @field public animStandAgainstWall integer
--- @field public animStandUpFromLavaBoost integer
--- @field public animStandUpFromSlidingWithLightObj integer
--- @field public animStarDance integer
--- @field public animStartCrawling integer
--- @field public animStartCrouching integer
--- @field public animStartForwardSpinning integer
--- @field public animStartGroundPound integer
--- @field public animStartHandstand integer
--- @field public animStartReachPocket integer
--- @field public animStartRidingShell integer
--- @field public animStartSleepIdle integer
--- @field public animStartSleepScratch integer
--- @field public animStartSleepSitting integer
--- @field public animStartSleepYawn integer
--- @field public animStartTiptoe integer
--- @field public animStartTwirl integer
--- @field public animStartWallkick integer
--- @field public animStopCrawling integer
--- @field public animStopCrouching integer
--- @field public animStopGrabObjWater integer
--- @field public animStopReachPocket integer
--- @field public animStopSkid integer
--- @field public animStopSlide integer
--- @field public animStopSlideLightObj integer
--- @field public animSuffocating integer
--- @field public animSummonStar integer
--- @field public animSwimPart1 integer
--- @field public animSwimPart2 integer
--- @field public animSwimWithObjPart1 integer
--- @field public animSwimWithObjPart2 integer
--- @field public animSwingingBowser integer
--- @field public animTakeCapOffThenOn integer
--- @field public animThrowCatchKey integer
--- @field public animThrowLightObject integer
--- @field public animTiptoe integer
--- @field public animTripleJump integer
--- @field public animTripleJumpFly integer
--- @field public animTripleJumpGroundPound integer
--- @field public animTripleJumpLand integer
--- @field public animTurningPart1 integer
--- @field public animTurningPart2 integer
--- @field public animTwirl integer
--- @field public animTwirlLand integer
--- @field public animUnlockDoor integer
--- @field public animWakeFromLying integer
--- @field public animWakeFromSleep integer
--- @field public animWalkPanting integer
--- @field public animWalkWithHeavyObj integer
--- @field public animWalkWithLightObj integer
--- @field public animWalking integer
--- @field public animWaterActionEnd integer
--- @field public animWaterActionEndWithObj integer
--- @field public animWaterDying integer
--- @field public animWaterForwardKb integer
--- @field public animWaterGrabObjPart1 integer
--- @field public animWaterGrabObjPart2 integer
--- @field public animWaterIdle integer
--- @field public animWaterIdleWithObj integer
--- @field public animWaterPickUpObj integer
--- @field public animWaterStarDance integer
--- @field public animWaterThrowObj integer
--- @field public animWingCapFly integer
--- @field public cameraHudHead integer
--- @field public capEnemyLayer integer
--- @field public capMetalModelId integer
--- @field public capMetalWingModelId integer
--- @field public capModelId integer
--- @field public capWingModelId integer
--- @field public hudHead integer
--- @field public hudHeadTexture TextureInfo
--- @field public modelId integer
--- @field public name string
--- @field public soundAttacked integer
--- @field public soundCoughing1 integer
--- @field public soundCoughing2 integer
--- @field public soundCoughing3 integer
--- @field public soundDoh integer
--- @field public soundDrowning integer
--- @field public soundDying integer
--- @field public soundEeuh integer
--- @field public soundFreqScale number
--- @field public soundGameOver integer
--- @field public soundGroundPoundWah integer
--- @field public soundHaha integer
--- @field public soundHaha_2 integer
--- @field public soundHello integer
--- @field public soundHereWeGo integer
--- @field public soundHoohoo integer
--- @field public soundHrmm integer
--- @field public soundImaTired integer
Fixed various audio bugs; DynOS can now detect texture duplicates to decrease generated bin files size (#110) Fixed the following audio bugs: Bug: Rom-hacks sequences don't seem to be affected by volume scaling and muting Fix: Force the BGM sequences to follow the vanilla behavior: Volume can't go higher than default volume Volume is reduced to 31% when the game is paused Audio is stopped when the game is paused outside the Castle levels Bug: (Pointed out by Draco) Mario's voice clips are not replaced by the player's character's in the following instances: fall to death barrier, "here we go" in the ending cutscene, "let's a go" after selecting a star, "okey dokey" after starting the game. Fix: The first two ones now call play_character_sound(m, CHAR_SOUND_...) instead of play_sound(SOUND_MARIO_..., pos). The last two ones couldn't be fixed the same way for two reasons: First, the corresponding sounds were not referenced in the sound table, second, the sound played is always cut-off after a few frames (due to how sm64 resets the sound banks after loading a level). Added SOUND_*_LETS_A_GO and SOUND_*_OKEY_DOKEY sounds for each playable character as Bass samples. Character Bass sounds work the same way as vanilla sounds (i.e. can be played with play_character_sound), but they cannot be prematurely stopped by sm64 sound banks shenanigans. This fixes the cut-off for both the star select and the castle grounds entry, plays the sound corresponding to the player's character, and doesn't need to extend or edit the sound table. DynOS can detect texture duplicates when generating a bin or lvl file. When a duplicate is detected, the name of the original texture node is written instead of the whole PNG data, decreasing significantly the resulting file size.
2022-05-19 23:40:45 +00:00
--- @field public soundLetsAGo integer
--- @field public soundMamaMia integer
Fixed various audio bugs; DynOS can now detect texture duplicates to decrease generated bin files size (#110) Fixed the following audio bugs: Bug: Rom-hacks sequences don't seem to be affected by volume scaling and muting Fix: Force the BGM sequences to follow the vanilla behavior: Volume can't go higher than default volume Volume is reduced to 31% when the game is paused Audio is stopped when the game is paused outside the Castle levels Bug: (Pointed out by Draco) Mario's voice clips are not replaced by the player's character's in the following instances: fall to death barrier, "here we go" in the ending cutscene, "let's a go" after selecting a star, "okey dokey" after starting the game. Fix: The first two ones now call play_character_sound(m, CHAR_SOUND_...) instead of play_sound(SOUND_MARIO_..., pos). The last two ones couldn't be fixed the same way for two reasons: First, the corresponding sounds were not referenced in the sound table, second, the sound played is always cut-off after a few frames (due to how sm64 resets the sound banks after loading a level). Added SOUND_*_LETS_A_GO and SOUND_*_OKEY_DOKEY sounds for each playable character as Bass samples. Character Bass sounds work the same way as vanilla sounds (i.e. can be played with play_character_sound), but they cannot be prematurely stopped by sm64 sound banks shenanigans. This fixes the cut-off for both the star select and the castle grounds entry, plays the sound corresponding to the player's character, and doesn't need to extend or edit the sound table. DynOS can detect texture duplicates when generating a bin or lvl file. When a duplicate is detected, the name of the original texture node is written instead of the whole PNG data, decreasing significantly the resulting file size.
2022-05-19 23:40:45 +00:00
--- @field public soundOkeyDokey integer
--- @field public soundOnFire integer
--- @field public soundOoof integer
--- @field public soundOoof2 integer
--- @field public soundPanting integer
--- @field public soundPantingCold integer
--- @field public soundPressStartToPlay integer
--- @field public soundPunchHoo integer
--- @field public soundPunchWah integer
--- @field public soundPunchYah integer
--- @field public soundSnoring1 integer
--- @field public soundSnoring2 integer
--- @field public soundSnoring3 integer
--- @field public soundSoLongaBowser integer
--- @field public soundTwirlBounce integer
--- @field public soundUh integer
--- @field public soundUh2 integer
--- @field public soundUh2_2 integer
--- @field public soundWaaaooow integer
--- @field public soundWah2 integer
--- @field public soundWhoa integer
--- @field public soundYahWahHoo integer
--- @field public soundYahoo integer
--- @field public soundYahooWahaYippee integer
--- @field public soundYawning integer
--- @field public torsoRotMult number
--- @field public type CharacterType
--- @class Controller
--- @field public buttonDown integer
--- @field public buttonPressed integer
--- @field public extStickX integer
--- @field public extStickY integer
--- @field public port integer
--- @field public rawStickX integer
--- @field public rawStickY integer
--- @field public stickMag number
--- @field public stickX number
--- @field public stickY number
--- @class CustomLevelInfo
--- @field public acousticReach integer
--- @field public courseNum integer
--- @field public echoLevel1 integer
--- @field public echoLevel2 integer
--- @field public echoLevel3 integer
--- @field public fullName string
--- @field public levelNum integer
--- @field public modIndex integer
--- @field public next CustomLevelInfo
--- @field public script Pointer_LevelScript
--- @field public scriptEntryName string
--- @field public shortName string
--- @class Cutscene
--- @field public duration integer
--- @class CutsceneSplinePoint
--- @field public index integer
--- @field public point Vec3s
--- @field public speed integer
--- @class CutsceneVariable
--- @field public angle Vec3s
--- @field public point Vec3f
--- @field public unused1 integer
--- @field public unused2 integer
--- @field public unusedPoint Vec3f
--- @class DateTime
--- @field public day integer
--- @field public hour integer
--- @field public minute integer
--- @field public month integer
--- @field public second integer
--- @field public year integer
--- @class DjuiColor
--- @field public a integer
--- @field public b integer
--- @field public g integer
--- @field public r integer
--- @class FloorGeometry
--- @field public normalX number
--- @field public normalY number
--- @field public normalZ number
--- @field public originOffset number
--- @class GlobalObjectAnimations
--- @field public amp_seg8_anims_08004034 Pointer_ObjectAnimPointer
--- @field public birds_seg5_anims_050009E8 Pointer_ObjectAnimPointer
2022-06-03 02:33:28 +00:00
--- @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
2022-06-03 02:33:28 +00:00
--- @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
2022-06-03 02:33:28 +00:00
--- @field public spiny_egg_seg5_anims_050157E4 Pointer_ObjectAnimPointer
--- @field public spiny_seg5_anims_05016EAC 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
2022-06-03 02:33:28 +00:00
--- @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
2022-06-03 02:33:28 +00:00
--- @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
2023-02-16 00:45:11 +00:00
--- @field public apostrophe TextureInfo
--- @field public arrow_down TextureInfo
--- @field public arrow_up TextureInfo
--- @field public camera TextureInfo
--- @field public coin TextureInfo
2023-02-16 00:45:11 +00:00
--- @field public double_quote TextureInfo
--- @field public lakitu TextureInfo
--- @field public luigi_head TextureInfo
--- @field public mario_head TextureInfo
--- @field public no_camera TextureInfo
--- @field public star TextureInfo
--- @field public toad_head TextureInfo
--- @field public waluigi_head TextureInfo
--- @field public wario_head TextureInfo
--- @class GraphNode
--- @field public children GraphNode
Changes in level_info; play_transition; dev-only warp command; bug fix for moving sounds played via lua (#69) Improved level_info.c and added functions to LUA: const char *get_level_name_ascii(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase): Return a level name as an ascii string. If charCase is 1, capitalize all letters. If charCase is -1, decapitalize all letters except the first one of each word. const u8 *get_level_name_sm64(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase): Return a level name as an sm64 u8 string. If charCase is 1, capitalize all letters. If charCase is -1, decapitalize all letters except the first one of each word. const char *get_level_name(s16 courseNum, s16 levelNum, s16 areaIndex): Shortcut for get_level_name_ascii(courseNum, levelNum, areaIndex, -1). const char *get_star_name_ascii(s16 courseNum, s16 starNum, s16 charCase): Return a star name as an ascii string. If charCase is 1, capitalize all letters. If charCase is -1, decapitalize all letters except the first one of each word. const u8 *get_star_name_sm64(s16 courseNum, s16 starNum, s16 charCase): Return a star name as an sm64 u8 string. If charCase is 1, capitalize all letters. If charCase is -1, decapitalize all letters except the first one of each word. const char *get_star_name(s16 courseNum, s16 starNum): Shortcut for get_star_name_ascii(courseNum, starNum, -1). Added play_transition function to LUA. I chose to copy the function declaration to smlua_misc_utils.h instead of adding area.h to the autogen tool, as most structures, variables and functions in area.h aren't meant to be used by LUA scripts. Added a dev-only warp chat command. This command signature is /warp [LEVEL] [AREA] [ACT]. Level can be either a number or a shorthand name (bob, wf, ccm...). Area and Act are numbers. This command is available only when building the game with DEBUG and DEVELOPMENT. This command cannot be used if hosting through Discord. Fixed a bug with moving sounds when they are played via a lua script. Bug: Moving sounds (including terrain sounds, flying sound, quicksand sound) are not played correctly when a lua script play them via a call of play_sound or play_sound_with_freq_scale. This is due to how the moving sounds are handled internally. They use the f32 pointer provided to the play_sound functions to decide if the sound must be kept playing, stopped or restarted. Most of the time, the pointer provided is the cameraToObject field of Mario's object graph node. Since smlua uses a circular buffer for Vec3f conversion, this pointer is lost, and the sound engine can't decide what to do with the sound, resulting in a weird and incorrect sound effect. Fix: play_sound and play_sound_with_freq_scale now calls smlua_get_vec3f_for_play_sound before filling the sound request queue, to retrieve the correct pointer from the Vec3f provided by smlua.
2022-04-26 20:48:50 +00:00
--- @field public extraFlags integer
--- @field public flags integer
--- @field public next GraphNode
--- @field public parent GraphNode
--- @field public prev GraphNode
--- @field public type integer
--- @class GraphNodeObject
--- @field public activeAreaIndex integer
--- @field public angle Vec3s
--- @field public animInfo AnimInfo
--- @field public areaIndex integer
--- @field public cameraToObject Vec3f
--- @field public disableAutomaticShadowPos boolean
--- @field public node GraphNode
--- @field public pos Vec3f
--- @field public prevAngle Vec3s
--- @field public prevPos Vec3f
--- @field public prevScale Vec3f
--- @field public prevScaleTimestamp integer
--- @field public prevShadowPos Vec3f
--- @field public prevShadowPosTimestamp integer
--- @field public prevThrowMatrix Mat4
--- @field public prevThrowMatrixTimestamp integer
--- @field public prevTimestamp integer
--- @field public scale Vec3f
--- @field public shadowInvisible boolean
--- @field public shadowPos Vec3f
--- @field public sharedChild GraphNode
--- @field public skipInViewCheck boolean
--- @field public skipInterpolationTimestamp integer
--- @field public throwMatrix Pointer_Mat4
--- @field public throwMatrixPrev Pointer_Mat4
--- @field public unk4C SpawnInfo
--- @class GraphNode_802A45E4
--- @field public unk18 integer
--- @field public unk1A integer
--- @field public unk1C integer
--- @field public unk1E integer
--- @field public unk20 integer
--- @field public unk22 integer
--- @class HandheldShakePoint
--- @field public index integer
--- @field public pad integer
--- @field public point Vec3s
--- @class HudUtilsRotation
--- @field public pivotX number
--- @field public pivotY number
--- @field public rotation number
--- @class InstantWarp
--- @field public area integer
--- @field public displacement Vec3s
--- @field public id integer
--- @class LakituState
--- @field public curFocus Vec3f
--- @field public curPos Vec3f
--- @field public defMode integer
--- @field public focHSpeed number
--- @field public focVSpeed number
--- @field public focus Vec3f
--- @field public focusDistance number
--- @field public goalFocus Vec3f
--- @field public goalPos Vec3f
--- @field public keyDanceRoll integer
--- @field public lastFrameAction integer
--- @field public mode integer
--- @field public nextYaw integer
--- @field public oldPitch integer
--- @field public oldRoll integer
--- @field public oldYaw integer
--- @field public pos Vec3f
--- @field public posHSpeed number
--- @field public posVSpeed number
--- @field public roll integer
--- @field public shakeMagnitude Vec3s
--- @field public shakePitchDecay integer
--- @field public shakePitchPhase integer
--- @field public shakePitchVel integer
--- @field public shakeRollDecay integer
--- @field public shakeRollPhase integer
--- @field public shakeRollVel integer
--- @field public shakeYawDecay integer
--- @field public shakeYawPhase integer
--- @field public shakeYawVel integer
--- @field public skipCameraInterpolationTimestamp integer
--- @field public unused integer
--- @field public unusedVec1 Vec3f
--- @field public unusedVec2 Vec3s
--- @field public yaw integer
--- @class LevelValues
--- @field public bubbleOnDeathBarrierInCapStages integer
--- @field public cellHeightLimit integer
--- @field public coinsRequiredForCoinStar integer
--- @field public disableActs integer
--- @field public entryLevel LevelNum
2022-04-10 09:29:44 +00:00
--- @field public exitCastleArea integer
--- @field public exitCastleLevel LevelNum
--- @field public exitCastleWarpNode integer
--- @field public extendedPauseDisplay integer
--- @field public fixCollisionBugs integer
--- @field public fixCollisionBugsFalseLedgeGrab integer
--- @field public fixCollisionBugsGroundPoundBonks integer
--- @field public fixCollisionBugsPickBestWall integer
--- @field public fixCollisionBugsRoundedCorners integer
--- @field public fixVanishFloors integer
--- @field public floatingStarDance integer
--- @field public floorLowerLimit integer
--- @field public floorLowerLimitMisc integer
--- @field public floorLowerLimitShadow integer
--- @field public hudCapTimer integer
--- @field public hudRedCoinsRadar integer
--- @field public hudSecretsRadar integer
--- @field public maxCoins integer
--- @field public maxLives integer
--- @field public metalCapDuration integer
--- @field public metalCapDurationCotmc integer
--- @field public metalCapSequence SeqId
--- @field public mushroom1UpHeal integer
--- @field public numCoinsToLife integer
--- @field public pauseExitAnywhere integer
--- @field public previewBlueCoins integer
--- @field public pssSlideStarIndex integer
--- @field public pssSlideStarTime integer
--- @field public respawnBlueCoinsSwitch integer
--- @field public showStarNumber integer
--- @field public skipCreditsAt LevelNum
--- @field public starHeal integer
2022-04-09 02:46:01 +00:00
--- @field public starPositions StarPositions
--- @field public vanishCapDuration integer
--- @field public vanishCapDurationVcutm integer
--- @field public vanishCapSequence SeqId
--- @field public visibleSecrets integer
--- @field public wdwWaterLevelSpeed number
--- @field public wingCapDuration integer
--- @field public wingCapDurationTotwc integer
2023-02-19 04:45:13 +00:00
--- @field public wingCapLookUpReq integer
--- @field public wingCapSequence SeqId
--- @class LinearTransitionPoint
--- @field public dist number
--- @field public focus Vec3f
--- @field public pitch integer
--- @field public pos Vec3f
--- @field public yaw integer
--- @class MarioAnimation
--- @field public currentAnimAddr Pointer_integer
--- @field public targetAnim Animation
--- @class MarioBodyState
--- @field public action integer
--- @field public capState integer
--- @field public eyeState integer
--- @field public grabPos integer
--- @field public handState integer
--- @field public headAngle Vec3s
2022-04-21 01:21:36 +00:00
--- @field public headPos Vec3f
--- @field public heldObjLastPosition Vec3f
2023-07-10 19:40:45 +00:00
--- @field public lightB integer
--- @field public lightG integer
--- @field public lightR integer
--- @field public lightingDirX number
--- @field public lightingDirY number
--- @field public lightingDirZ number
--- @field public modelState integer
--- @field public punchState integer
2023-07-10 19:40:45 +00:00
--- @field public shadeB integer
--- @field public shadeG integer
--- @field public shadeR integer
--- @field public torsoAngle Vec3s
--- @field public torsoPos Vec3f
2022-03-26 04:39:03 +00:00
--- @field public updateTorsoTime integer
--- @field public wingFlutter integer
--- @class MarioState
--- @field public action integer
--- @field public actionArg integer
--- @field public actionState integer
--- @field public actionTimer integer
--- @field public angleVel Vec3s
--- @field public animation MarioAnimation
--- @field public area Area
2023-04-03 06:02:14 +00:00
--- @field public bounceSquishTimer integer
--- @field public bubbleObj Object
--- @field public cap integer
--- @field public capTimer integer
--- @field public ceil Surface
--- @field public ceilHeight number
--- @field public character Character
--- @field public collidedObjInteractTypes integer
--- @field public controller Controller
--- @field public curAnimOffset number
--- @field public currentRoom integer
--- @field public doubleJumpTimer integer
--- @field public faceAngle Vec3s
--- @field public fadeWarpOpacity integer
--- @field public flags integer
--- @field public floor Surface
--- @field public floorAngle integer
--- @field public floorHeight number
--- @field public forwardVel number
--- @field public framesSinceA integer
--- @field public framesSinceB integer
--- @field public freeze integer
--- @field public healCounter integer
--- @field public health integer
--- @field public heldByObj Object
--- @field public heldObj Object
--- @field public hurtCounter integer
--- @field public input integer
--- @field public intendedMag number
--- @field public intendedYaw integer
--- @field public interactObj Object
--- @field public invincTimer integer
--- @field public isSnoring integer
--- @field public knockbackTimer integer
--- @field public marioBodyState MarioBodyState
--- @field public marioObj Object
--- @field public minimumBoneY number
--- @field public nonInstantWarpPos Vec3f
--- @field public numCoins integer
--- @field public numKeys integer
--- @field public numLives integer
--- @field public numStars integer
--- @field public particleFlags integer
--- @field public peakHeight number
--- @field public playerIndex integer
--- @field public pos Vec3f
--- @field public prevAction integer
--- @field public prevNumStarsForDialog integer
--- @field public quicksandDepth number
--- @field public riddenObj Object
2023-10-27 00:15:01 +00:00
--- @field public skipWarpInteractionsTimer integer
--- @field public slideVelX number
--- @field public slideVelZ number
--- @field public slideYaw integer
--- @field public spawnInfo SpawnInfo
--- @field public specialTripleJump integer
--- @field public splineKeyframe Pointer_Vec4s
--- @field public splineKeyframeFraction number
--- @field public splineState integer
--- @field public squishTimer integer
--- @field public statusForCamera PlayerCameraState
--- @field public terrainSoundAddend integer
--- @field public twirlYaw integer
--- @field public unkB0 integer
--- @field public unkC4 number
--- @field public usedObj Object
--- @field public vel Vec3f
--- @field public wall Surface
--- @field public wallKickTimer integer
2022-06-01 08:00:21 +00:00
--- @field public wallNormal Vec3f
--- @field public wasNetworkVisible integer
--- @field public waterLevel integer
2022-04-23 01:44:59 +00:00
--- @class Mod
--- @field public basePath string
2023-04-20 07:51:34 +00:00
--- @field public customBehaviorIndex integer
2022-04-23 01:44:59 +00:00
--- @field public description string
--- @field public enabled boolean
--- @field public fileCount integer
--- @field public incompatible string
--- @field public index integer
--- @field public isDirectory boolean
--- @field public name string
--- @field public relativePath string
--- @field public renderBehindHud boolean
2022-04-23 01:44:59 +00:00
--- @field public selectable boolean
--- @class ModFile
--- @field public cachedPath string
--- @field public relativePath string
--- @field public wroteBytes integer
--- @class ModeTransitionInfo
--- @field public frame integer
--- @field public lastMode integer
--- @field public max integer
--- @field public newMode integer
--- @field public transitionEnd LinearTransitionPoint
--- @field public transitionStart LinearTransitionPoint
--- @class NametagsSettings
--- @field public showHealth boolean
--- @field public showSelfTag boolean
--- @class NetworkPlayer
--- @field public connected boolean
--- @field public currActNum integer
--- @field public currAreaIndex integer
--- @field public currAreaSyncValid boolean
--- @field public currCourseNum integer
--- @field public currLevelAreaSeqId integer
--- @field public currLevelNum integer
--- @field public currLevelSyncValid boolean
2022-08-07 22:26:32 +00:00
--- @field public currPositionValid boolean
--- @field public description string
--- @field public descriptionA integer
--- @field public descriptionB integer
--- @field public descriptionG integer
--- @field public descriptionR integer
--- @field public fadeOpacity integer
--- @field public globalIndex integer
--- @field public lastPingSent number
--- @field public lastReceived number
--- @field public lastSent number
--- @field public localIndex integer
--- @field public modelIndex integer
--- @field public name string
--- @field public onRxSeqId integer
--- @field public overrideModelIndex integer
Arbitrary shirt, pants, glove colors + settings menu (#145) * Support for more granular player colors You can now configure RGB values for shirt, pants, gloves, and shoes. Due to some limitations, configuring shoes does nothing at the moment. * Remove paletteIndex and friends Restructured and filled in some remaining code to account for that. * Add Edit Palette panel to Player panel * Change PlayerPalette contents to an enum-indexed array, remove shoes This gets rid of all the hokey code doing switch cases on the different parts. * Fix goof with player model selection box Should actually have affect now even if a custom palette is being used. * Fix gap in player color display list commands The extra space was leftover from when I was trying to get shoes working. Forgot to clean it up. * Standardize PlayerParts enum, including for lua constants autogen * djui_panel_player.c: Properly hook sending palette changes on unpause Editing the palette and then unpausing should send out the packet to everyone with the new palette changes (and update the palette preset selection box), but since we weren't hooking that situation before, it would stay changed only for you. You would have had to press the Back button for it to work right. * Allow Lua mods to continue using `paletteIndex`, `overridePaletteIndex` This lets mod code like this still work unchanged: if s.team == 2 then np.overridePaletteIndex = 7 elseif s.team == 1 then np.overridePaletteIndex = 15 else np.overridePaletteIndex = np.paletteIndex end It's essentially faked, and would work strangely if the value of either variable was inspected more closely directly. This should at least handle the typical use case, though. Every frame, `overridePaletteIndex` is checked to see if it was modified from its previous value. If so, `overridePalette` is set to the preset corresponding to the index. `paletteIndex` contains a special value that when used to assign to `overridePaletteIndex`, it copies `palette` into `overridePalette` to restore the real colors, which of course may not follow the presets at all. * characters.h: Pack `PlayerPalette` to eliminate size differences between computers * mario_misc.c: Remove remaining "TODO GAG"
2022-08-07 22:13:19 +00:00
--- @field public overridePalette PlayerPalette
--- @field public overridePaletteIndex integer
Arbitrary shirt, pants, glove colors + settings menu (#145) * Support for more granular player colors You can now configure RGB values for shirt, pants, gloves, and shoes. Due to some limitations, configuring shoes does nothing at the moment. * Remove paletteIndex and friends Restructured and filled in some remaining code to account for that. * Add Edit Palette panel to Player panel * Change PlayerPalette contents to an enum-indexed array, remove shoes This gets rid of all the hokey code doing switch cases on the different parts. * Fix goof with player model selection box Should actually have affect now even if a custom palette is being used. * Fix gap in player color display list commands The extra space was leftover from when I was trying to get shoes working. Forgot to clean it up. * Standardize PlayerParts enum, including for lua constants autogen * djui_panel_player.c: Properly hook sending palette changes on unpause Editing the palette and then unpausing should send out the packet to everyone with the new palette changes (and update the palette preset selection box), but since we weren't hooking that situation before, it would stay changed only for you. You would have had to press the Back button for it to work right. * Allow Lua mods to continue using `paletteIndex`, `overridePaletteIndex` This lets mod code like this still work unchanged: if s.team == 2 then np.overridePaletteIndex = 7 elseif s.team == 1 then np.overridePaletteIndex = 15 else np.overridePaletteIndex = np.paletteIndex end It's essentially faked, and would work strangely if the value of either variable was inspected more closely directly. This should at least handle the typical use case, though. Every frame, `overridePaletteIndex` is checked to see if it was modified from its previous value. If so, `overridePalette` is set to the preset corresponding to the index. `paletteIndex` contains a special value that when used to assign to `overridePaletteIndex`, it copies `palette` into `overridePalette` to restore the real colors, which of course may not follow the presets at all. * characters.h: Pack `PlayerPalette` to eliminate size differences between computers * mario_misc.c: Remove remaining "TODO GAG"
2022-08-07 22:13:19 +00:00
--- @field public overridePaletteIndexLp integer
--- @field public palette PlayerPalette
--- @field public paletteIndex integer
--- @field public ping integer
--- @field public type integer
--- @class Object
--- @field public activeFlags integer
--- @field public allowRemoteInteractions integer
--- @field public areaTimer integer
--- @field public areaTimerDuration integer
--- @field public areaTimerType AreaTimerType
--- @field public behavior Pointer_BehaviorScript
--- @field public bhvDelayTimer integer
--- @field public bhvStackIndex integer
--- @field public collidedObjInteractTypes integer
--- @field public collisionData Pointer_Collision
--- @field public coopFlags integer
2023-05-03 08:01:36 +00:00
--- @field public ctx integer
--- @field public curBhvCommand Pointer_BehaviorScript
--- @field public globalPlayerIndex integer
--- @field public header ObjectNode
--- @field public heldByPlayerIndex integer
--- @field public hitboxDownOffset number
--- @field public hitboxHeight number
--- @field public hitboxRadius number
2022-04-20 05:36:47 +00:00
--- @field public hookRender integer
--- @field public hurtboxHeight number
--- @field public hurtboxRadius number
--- @field public numCollidedObjs integer
--- @field public o1UpForceSpawn integer
--- @field public o1UpHiddenUnkF4 integer
--- @field public oAction integer
--- @field public oActivatedBackAndForthPlatformCountdown integer
--- @field public oActivatedBackAndForthPlatformFlipRotation integer
--- @field public oActivatedBackAndForthPlatformMaxOffset number
--- @field public oActivatedBackAndForthPlatformOffset number
--- @field public oActivatedBackAndForthPlatformStartYaw integer
--- @field public oActivatedBackAndForthPlatformVel number
--- @field public oActivatedBackAndForthPlatformVertical integer
--- @field public oActiveParticleFlags integer
--- @field public oAmpRadiusOfRotation number
--- @field public oAmpYPhase integer
--- @field public oAngleToHome integer
--- @field public oAngleToMario integer
--- @field public oAngleVelPitch integer
--- @field public oAngleVelRoll integer
--- @field public oAngleVelYaw integer
--- @field public oAnimState integer
--- @field public oAnimations Pointer_ObjectAnimPointer
--- @field public oArrowLiftDisplacement number
--- @field public oArrowLiftUnk100 integer
--- @field public oBBallSpawnerMaxSpawnDist number
--- @field public oBBallSpawnerPeriodMinus1 integer
--- @field public oBBallSpawnerSpawnOdds number
--- @field public oBackAndForthPlatformDirection number
--- @field public oBackAndForthPlatformDistance number
--- @field public oBackAndForthPlatformPathLength number
--- @field public oBackAndForthPlatformVel number
--- @field public oBehParams integer
--- @field public oBehParams2ndByte integer
--- @field public oBetaTrampolineMarioOnTrampoline integer
--- @field public oBigBooNumMinionBoosKilled integer
--- @field public oBirdChirpChirpUnkF4 integer
--- @field public oBirdSpeed number
--- @field public oBirdTargetPitch integer
--- @field public oBirdTargetYaw integer
--- @field public oBlackSmokeBowserUnkF4 number
--- @field public oBlueFishRandomAngle number
--- @field public oBlueFishRandomTime integer
--- @field public oBlueFishRandomVel number
--- @field public oBlueFlameNextScale number
--- @field public oBobombBlinkTimer integer
--- @field public oBobombBuddyBlinkTimer integer
--- @field public oBobombBuddyCannonStatus integer
--- @field public oBobombBuddyHasTalkedToMario integer
--- @field public oBobombBuddyPosXCopy number
--- @field public oBobombBuddyPosYCopy number
--- @field public oBobombBuddyPosZCopy number
--- @field public oBobombBuddyRole integer
--- @field public oBobombExpBubGfxExpRateX integer
--- @field public oBobombExpBubGfxExpRateY integer
--- @field public oBobombExpBubGfxScaleFacX integer
--- @field public oBobombExpBubGfxScaleFacY integer
--- @field public oBobombFuseLit integer
--- @field public oBobombFuseTimer integer
--- @field public oBooBaseScale number
--- @field public oBooDeathStatus integer
--- @field public oBooInitialMoveYaw integer
--- @field public oBooMoveYawBeforeHit number
--- @field public oBooMoveYawDuringHit integer
--- @field public oBooNegatedAggressiveness number
--- @field public oBooOscillationTimer integer
--- @field public oBooParentBigBoo Object
--- @field public oBooTargetOpacity integer
--- @field public oBooTurningSpeed integer
--- @field public oBookSwitchManagerUnkF4 integer
--- @field public oBookSwitchManagerUnkF8 integer
--- @field public oBookSwitchUnkF4 number
--- @field public oBookendUnkF4 integer
--- @field public oBookendUnkF8 integer
--- @field public oBounciness number
--- @field public oBouncingFireBallUnkF4 integer
--- @field public oBowlingBallTargetYaw integer
--- @field public oBowserAngleToCentre integer
--- @field public oBowserDistToCentre number
--- @field public oBowserEyesShut integer
--- @field public oBowserHeldAnglePitch integer
--- @field public oBowserHeldAngleVelYaw integer
--- @field public oBowserKeyScale number
--- @field public oBowserPuzzleCompletionFlags integer
--- @field public oBowserPuzzlePieceContinuePerformingAction integer
--- @field public oBowserPuzzlePieceOffsetX number
--- @field public oBowserPuzzlePieceOffsetY number
--- @field public oBowserPuzzlePieceOffsetZ number
--- @field public oBowserShockWaveUnkF4 number
--- @field public oBowserUnk106 integer
--- @field public oBowserUnk108 integer
--- @field public oBowserUnk10E integer
--- @field public oBowserUnk110 integer
--- @field public oBowserUnk1AC integer
--- @field public oBowserUnk1AE integer
--- @field public oBowserUnk1B2 integer
--- @field public oBowserUnk88 integer
--- @field public oBowserUnkF4 integer
--- @field public oBowserUnkF8 integer
--- @field public oBreakableBoxSmallFramesSinceReleased integer
--- @field public oBreakableBoxSmallReleased integer
--- @field public oBreakableWallForce 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 oBubbaUnkF4 number
--- @field public oBubbaUnkF8 integer
--- @field public oBubbaUnkFC integer
--- @field public oBulletBillInitialMoveYaw integer
--- @field public oBullyKBTimerAndMinionKOCounter integer
2022-04-21 01:27:34 +00:00
--- @field public oBullyLastNetworkPlayerIndex integer
--- @field public oBullyMarioCollisionAngle integer
--- @field public oBullyPrevX number
--- @field public oBullyPrevY number
--- @field public oBullyPrevZ number
--- @field public oBullySubtype integer
--- @field public oBuoyancy number
--- @field public oButterflyYPhase integer
--- @field public oCameraLakituBlinkTimer integer
--- @field public oCameraLakituCircleRadius number
--- @field public oCameraLakituFinishedDialog integer
--- @field public oCameraLakituPitchVel integer
--- @field public oCameraLakituSpeed number
--- @field public oCameraLakituUnk104 integer
--- @field public oCameraLakituYawVel integer
--- @field public oCannonBarrelBubblesUnkF4 number
--- @field public oCannonPlayerIndex integer
--- @field public oCannonUnk10C integer
--- @field public oCannonUnkF4 integer
--- @field public oCannonUnkF8 integer
--- @field public oCapUnkF4 integer
--- @field public oCapUnkF8 integer
--- @field public oCelebStarDiameterOfRotation integer
--- @field public oCelebStarUnkF4 integer
--- @field public oChainChompDistToPivot number
--- @field public oChainChompHitGate integer
--- @field public oChainChompMaxDistBetweenChainParts number
--- @field public oChainChompMaxDistFromPivotPerChainPart number
--- @field public oChainChompNumLunges integer
--- @field public oChainChompReleaseStatus integer
--- @field public oChainChompRestrictedByChain integer
--- @field public oChainChompSegments ChainSegment
--- @field public oChainChompTargetPitch integer
--- @field public oChainChompUnk104 number
--- @field public oCheckerBoardPlatformUnk1AC number
--- @field public oCheckerBoardPlatformUnkF8 integer
--- @field public oCheckerBoardPlatformUnkFC integer
--- @field public oCheepCheepUnk104 number
--- @field public oCheepCheepUnk108 number
--- @field public oCheepCheepUnkF4 number
--- @field public oCheepCheepUnkF8 number
--- @field public oCheepCheepUnkFC number
--- @field public oChuckyaUnk100 integer
--- @field public oChuckyaUnk88 integer
--- @field public oChuckyaUnkF8 integer
--- @field public oChuckyaUnkFC integer
--- @field public oClamUnkF4 integer
--- @field public oCloudBlowing integer
--- @field public oCloudCenterX number
--- @field public oCloudCenterY number
--- @field public oCloudFwooshMovementRadius integer
--- @field public oCloudGrowSpeed number
--- @field public oCoinUnk110 number
--- @field public oCoinUnk1B0 integer
--- @field public oCoinUnkF4 integer
--- @field public oCoinUnkF8 integer
--- @field public oCollisionDistance number
--- @field public oCollisionParticleUnkF4 number
--- @field public oControllablePlatformUnk100 integer
--- @field public oControllablePlatformUnkF8 integer
--- @field public oControllablePlatformUnkFC number
--- @field public oDDDPoleMaxOffset number
--- @field public oDDDPoleOffset number
--- @field public oDDDPoleVel number
--- @field public oDamageOrCoinValue integer
--- @field public oDeathSound integer
--- @field public oDialogResponse integer
--- @field public oDialogState integer
--- @field public oDistanceToMario number
--- @field public oDonutPlatformSpawnerSpawnedPlatforms integer
--- @field public oDoorUnk100 integer
--- @field public oDoorUnk88 integer
--- @field public oDoorUnkF8 integer
--- @field public oDoorUnkFC integer
--- @field public oDorrieAngleToHome integer
--- @field public oDorrieDistToHome number
--- @field public oDorrieForwardDistToMario number
--- @field public oDorrieGroundPounded integer
--- @field public oDorrieHeadRaiseSpeed integer
--- @field public oDorrieLiftingMario integer
--- @field public oDorrieNeckAngle integer
--- @field public oDorrieOffsetY number
--- @field public oDorrieVelY number
--- @field public oDorrieYawVel integer
--- @field public oDragStrength number
--- @field public oDrawingDistance number
--- @field public oElevatorUnk100 integer
--- @field public oElevatorUnkF4 number
--- @field public oElevatorUnkF8 number
--- @field public oElevatorUnkFC number
--- @field public oEndBirdUnk104 number
--- @field public oEnemyLakituBlinkTimer integer
--- @field public oEnemyLakituFaceForwardCountdown integer
--- @field public oEnemyLakituNumSpinies integer
--- @field public oEnemyLakituSpinyCooldown integer
--- @field public oExclamationBoxForce integer
--- @field public oExclamationBoxUnkF4 number
--- @field public oExclamationBoxUnkF8 number
--- @field public oExclamationBoxUnkFC integer
--- @field public oEyerokBossActiveHand integer
--- @field public oEyerokBossNumHands integer
--- @field public oEyerokBossUnk104 integer
--- @field public oEyerokBossUnk108 number
--- @field public oEyerokBossUnk10C number
--- @field public oEyerokBossUnk110 number
--- @field public oEyerokBossUnk1AC integer
--- @field public oEyerokBossUnkFC integer
--- @field public oEyerokHandDead integer
--- @field public oEyerokHandUnk100 integer
--- @field public oEyerokHandUnkFC integer
--- @field public oEyerokHandWakeUpTimer integer
--- @field public oEyerokReceivedAttack integer
--- @field public oFaceAnglePitch integer
--- @field public oFaceAngleRoll integer
--- @field public oFaceAngleYaw integer
--- @field public oFallingPillarPitchAcceleration number
--- @field public oFirePiranhaPlantActive integer
--- @field public oFirePiranhaPlantDeathSpinTimer integer
--- @field public oFirePiranhaPlantDeathSpinVel number
--- @field public oFirePiranhaPlantNeutralScale number
--- @field public oFirePiranhaPlantScale number
--- @field public oFireSpitterLastWaterY number
--- @field public oFireSpitterScaleVel number
--- @field public oFishActiveDistance number
--- @field public oFishDepthDistance number
--- @field public oFishGoalVel number
--- @field public oFishGoalY number
--- @field public oFishHeightOffset number
--- @field public oFishRoamDistance number
--- @field public oFishWaterLevel number
--- @field public oFishYawVel integer
--- @field public oFlags integer
--- @field public oFlameBowser Object
--- @field public oFlameScale number
--- @field public oFlameSpeedTimerOffset integer
--- @field public oFlameThowerFlameUnk110 integer
--- @field public oFlameThowerUnk110 integer
--- @field public oFlameUnkFC number
--- @field public oFloatingPlatformUnk100 integer
--- @field public oFloatingPlatformUnkF4 integer
--- @field public oFloatingPlatformUnkF8 number
--- @field public oFloatingPlatformUnkFC number
--- @field public oFloor Surface
--- @field public oFloorHeight number
--- @field public oFloorRoom integer
--- @field public oFloorSwitchPressAnimationUnk100 integer
--- @field public oFloorSwitchPressAnimationUnkF4 integer
--- @field public oFloorSwitchPressAnimationUnkF8 integer
--- @field public oFloorSwitchPressAnimationUnkFC integer
--- @field public oFloorType integer
--- @field public oFlyGuyIdleTimer integer
--- @field public oFlyGuyLungeTargetPitch integer
--- @field public oFlyGuyLungeYDecel number
--- @field public oFlyGuyOscTimer integer
--- @field public oFlyGuyScaleVel number
--- @field public oFlyGuyTargetRoll integer
--- @field public oFlyGuyUnusedJitter integer
--- @field public oForwardVel number
--- @field public oForwardVelS32 integer
--- @field public oFriction number
--- @field public oGoombaBlinkTimer integer
--- @field public oGoombaJumpCooldown integer
--- @field public oGoombaRelativeSpeed number
--- @field public oGoombaScale number
--- @field public oGoombaSize integer
--- @field public oGoombaTargetYaw integer
--- @field public oGoombaTurningAwayFromWall integer
--- @field public oGoombaWalkTimer integer
--- @field public oGrandStarUnk108 integer
--- @field public oGraphYOffset number
--- @field public oGravity number
--- @field public oHauntedBookshelfShouldOpen integer
--- @field public oHauntedChairUnk100 Pointer_integer
--- @field public oHauntedChairUnk104 integer
--- @field public oHauntedChairUnkF4 integer
--- @field public oHauntedChairUnkF8 number
--- @field public oHauntedChairUnkFC number
--- @field public oHealth integer
--- @field public oHeaveHoUnk88 integer
--- @field public oHeaveHoUnkF4 number
--- @field public oHeldState integer
--- @field public oHiddenBlueCoinSwitch Object
--- @field public oHiddenObjectUnkF4 Object
--- @field public oHiddenStarTriggerCounter integer
--- @field public oHomeX number
--- @field public oHomeY number
--- @field public oHomeZ number
--- @field public oHomingAmpAvgY number
--- @field public oHomingAmpLockedOn integer
--- @field public oHootAvailability integer
--- @field public oHootMarioReleaseTime integer
--- @field public oHorizontalGrindelDistToHome number
--- @field public oHorizontalGrindelOnGround integer
--- @field public oHorizontalGrindelTargetYaw integer
--- @field public oHorizontalMovementUnk100 number
--- @field public oHorizontalMovementUnk104 integer
--- @field public oHorizontalMovementUnk108 number
--- @field public oHorizontalMovementUnkF4 integer
--- @field public oHorizontalMovementUnkF8 integer
--- @field public oIntangibleTimer integer
--- @field public oInteractStatus integer
--- @field public oInteractType integer
--- @field public oInteractionSubtype integer
--- @field public oIntroLakituCloud Object
--- @field public oIntroLakituSplineSegment number
--- @field public oIntroLakituSplineSegmentProgress number
--- @field public oIntroLakituUnk100 number
--- @field public oIntroLakituUnk104 number
--- @field public oIntroLakituUnk108 number
--- @field public oIntroLakituUnk10C number
--- @field public oIntroLakituUnk110 number
--- @field public oIntroPeachDistToCamera number
--- @field public oIntroPeachPitchFromFocus number
--- @field public oIntroPeachYawFromFocus number
--- @field public oJrbSlidingBoxUnkF4 Object
--- @field public oJrbSlidingBoxUnkF8 integer
--- @field public oJrbSlidingBoxUnkFC number
--- @field public oJumpingBoxUnkF4 integer
--- @field public oJumpingBoxUnkF8 integer
--- @field public oKickableBoardF4 integer
--- @field public oKickableBoardF8 integer
--- @field public oKingBobombUnk100 integer
--- @field public oKingBobombUnk104 integer
--- @field public oKingBobombUnk108 integer
--- @field public oKingBobombUnk88 integer
--- @field public oKingBobombUnkF8 integer
--- @field public oKingBobombUnkFC integer
--- @field public oKleptoDistanceToTarget number
--- @field public oKleptoSpeed number
--- @field public oKleptoStartPosX number
--- @field public oKleptoStartPosY number
--- @field public oKleptoStartPosZ number
--- @field public oKleptoTargetNumber integer
--- @field public oKleptoTimeUntilTargetChange integer
--- @field public oKleptoUnk1AE integer
--- @field public oKleptoUnk1B0 integer
--- @field public oKleptoUnkF8 number
--- @field public oKleptoUnkFC number
--- @field public oKleptoYawToTarget integer
--- @field public oKoopaAgility number
--- @field public oKoopaAngleToMario integer
--- @field public oKoopaBlinkTimer integer
--- @field public oKoopaCountdown integer
--- @field public oKoopaDistanceToMario number
--- @field public oKoopaMovementType integer
--- @field public oKoopaRaceEndpointKoopaFinished integer
--- @field public oKoopaRaceEndpointRaceBegun integer
--- @field public oKoopaRaceEndpointRaceEnded integer
--- @field public oKoopaRaceEndpointRaceStatus integer
--- @field public oKoopaRaceEndpointUnk100 integer
--- @field public oKoopaShellFlameUnkF4 number
--- @field public oKoopaShellFlameUnkF8 number
--- @field public oKoopaTargetYaw integer
--- @field public oKoopaTheQuickInitTextboxCooldown integer
--- @field public oKoopaTheQuickRaceIndex integer
--- @field public oKoopaTurningAwayFromWall integer
--- @field public oKoopaUnshelledTimeUntilTurn integer
--- @field public oLllRotatingHexFlameUnkF4 number
--- @field public oLllRotatingHexFlameUnkF8 number
--- @field public oLllRotatingHexFlameUnkFC number
--- @field public oLllWoodPieceOscillationTimer integer
--- @field public oMacroUnk108 number
--- @field public oMacroUnk10C number
--- @field public oMacroUnk110 number
--- @field public oMantaTargetPitch integer
--- @field public oMantaTargetYaw integer
--- @field public oMarioBurnTimer integer
--- @field public oMarioCannonInputYaw integer
--- @field public oMarioCannonObjectYaw integer
--- @field public oMarioLongJumpIsSlow integer
--- @field public oMarioParticleFlags integer
--- @field public oMarioPolePos number
--- @field public oMarioPoleUnk108 integer
--- @field public oMarioPoleYawVel integer
--- @field public oMarioReadingSignDPosX number
--- @field public oMarioReadingSignDPosZ number
--- @field public oMarioReadingSignDYaw integer
--- @field public oMarioSteepJumpYaw integer
--- @field public oMarioTornadoPosY number
--- @field public oMarioTornadoYawVel integer
--- @field public oMarioWalkingPitch integer
--- @field public oMarioWhirlpoolPosY number
--- @field public oMenuButtonActionPhase integer
--- @field public oMenuButtonIsCustom integer
--- @field public oMenuButtonOrigPosX number
--- @field public oMenuButtonOrigPosY number
--- @field public oMenuButtonOrigPosZ number
--- @field public oMenuButtonScale number
--- @field public oMenuButtonState integer
--- @field public oMenuButtonTimer integer
--- @field public oMerryGoRoundBooManagerNumBoosKilled integer
--- @field public oMerryGoRoundBooManagerNumBoosSpawned integer
--- @field public oMerryGoRoundMarioIsOutside integer
--- @field public oMerryGoRoundMusicShouldPlay integer
--- @field public oMerryGoRoundStopped integer
--- @field public oMipsForwardVelocity number
--- @field public oMipsStarStatus integer
--- @field public oMipsStartWaypointIndex integer
--- @field public oMoneybagJumpState integer
--- @field public oMontyMoleCurrentHole Object
--- @field public oMontyMoleHeightRelativeToFloor number
--- @field public oMontyMoleHoleCooldown integer
--- @field public oMontyMoleHoleX number
--- @field public oMontyMoleHoleY number
--- @field public oMontyMoleHoleZ number
--- @field public oMoveAnglePitch integer
--- @field public oMoveAngleRoll integer
--- @field public oMoveAngleYaw integer
--- @field public oMoveFlags integer
--- @field public oMovingFlameTimer integer
--- @field public oMrBlizzardChangeInDizziness number
--- @field public oMrBlizzardDistFromHome integer
--- @field public oMrBlizzardDizziness number
--- @field public oMrBlizzardGraphYOffset number
--- @field public oMrBlizzardGraphYVel number
--- @field public oMrBlizzardHeldObj Object
--- @field public oMrBlizzardScale number
--- @field public oMrBlizzardTargetMoveYaw integer
--- @field public oMrBlizzardTimer integer
--- @field public oMrISize number
--- @field public oMrIUnk100 integer
--- @field public oMrIUnk104 integer
--- @field public oMrIUnk108 integer
--- @field public oMrIUnk110 integer
--- @field public oMrIUnkF4 integer
--- @field public oMrIUnkFC integer
--- @field public oNumLootCoins integer
--- @field public oOpacity integer
--- @field public oOpenableGrillUnk88 integer
--- @field public oOpenableGrillUnkF4 Object
--- @field public oParentRelativePosX number
--- @field public oParentRelativePosY number
--- @field public oParentRelativePosZ number
--- @field public oPathedPrevWaypoint Waypoint
--- @field public oPathedPrevWaypointFlags integer
--- @field public oPathedStartWaypoint Waypoint
--- @field public oPathedTargetPitch integer
--- @field public oPathedTargetYaw integer
--- @field public oPiranhaPlantScale number
--- @field public oPiranhaPlantSleepMusicState integer
--- @field public oPitouneUnkF4 number
--- @field public oPitouneUnkF8 number
--- @field public oPitouneUnkFC number
--- @field public oPlatformOnTrackBaseBallIndex integer
--- @field public oPlatformOnTrackDistMovedSinceLastBall number
--- @field public oPlatformOnTrackIsNotHMC integer
--- @field public oPlatformOnTrackIsNotSkiLift integer
--- @field public oPlatformOnTrackOffsetY number
--- @field public oPlatformOnTrackPitch integer
--- @field public oPlatformOnTrackPrevWaypoint Waypoint
--- @field public oPlatformOnTrackPrevWaypointFlags integer
--- @field public oPlatformOnTrackSkiLiftRollVel number
--- @field public oPlatformOnTrackStartWaypoint Waypoint
--- @field public oPlatformOnTrackType integer
--- @field public oPlatformOnTrackWasStoodOn integer
--- @field public oPlatformOnTrackYaw integer
--- @field public oPlatformSpawnerUnk100 number
--- @field public oPlatformSpawnerUnk104 number
--- @field public oPlatformSpawnerUnk108 number
--- @field public oPlatformSpawnerUnkF4 integer
--- @field public oPlatformSpawnerUnkF8 integer
--- @field public oPlatformSpawnerUnkFC integer
--- @field public oPlatformTimer integer
--- @field public oPlatformUnk10C number
--- @field public oPlatformUnk110 number
--- @field public oPlatformUnkF8 Object
--- @field public oPlatformUnkFC integer
--- @field public oPokeyAliveBodyPartFlags integer
--- @field public oPokeyBodyPartBlinkTimer integer
--- @field public oPokeyBodyPartDeathDelayAfterHeadKilled integer
--- @field public oPokeyBottomBodyPartSize number
--- @field public oPokeyChangeTargetTimer integer
--- @field public oPokeyHeadWasKilled integer
--- @field public oPokeyNumAliveBodyParts integer
--- @field public oPokeyTargetYaw integer
--- @field public oPokeyTurningAwayFromWall integer
--- @field public oPosX number
--- @field public oPosY number
--- @field public oPosZ number
--- @field public oPrevAction integer
--- @field public oPyramidTopFragmentsScale number
--- @field public oPyramidTopPillarsTouched integer
--- @field public oRRCruiserWingUnkF4 integer
--- @field public oRRCruiserWingUnkF8 integer
--- @field public oRacingPenguinFinalTextbox integer
--- @field public oRacingPenguinInitTextCooldown integer
--- @field public oRacingPenguinMarioCheated integer
--- @field public oRacingPenguinMarioWon integer
--- @field public oRacingPenguinReachedBottom integer
--- @field public oRacingPenguinWeightedNewTargetSpeed number
--- @field public oRespawnerMinSpawnDist number
--- @field public oRespawnerModelToRespawn integer
--- @field public oRollingLogUnkF4 number
--- @field public oRoom integer
--- @field public oSLSnowmanWindOriginalYaw integer
--- @field public oSLWalkingPenguinCurStep integer
--- @field public oSLWalkingPenguinCurStepTimer integer
--- @field public oSLWalkingPenguinWindCollisionXPos number
--- @field public oSLWalkingPenguinWindCollisionZPos number
--- @field public oScuttlebugSpawnerUnk88 integer
--- @field public oScuttlebugSpawnerUnkF4 integer
--- @field public oScuttlebugUnkF4 integer
--- @field public oScuttlebugUnkF8 integer
--- @field public oScuttlebugUnkFC integer
--- @field public oSeesawPlatformPitchVel number
--- @field public oShipPart3UnkF4 integer
--- @field public oShipPart3UnkF8 integer
--- @field public oSinkWhenSteppedOnUnk104 integer
--- @field public oSinkWhenSteppedOnUnk108 number
--- @field public oSkeeterLastWaterY number
--- @field public oSkeeterTargetAngle integer
--- @field public oSkeeterUnk1AC integer
--- @field public oSkeeterUnkF8 integer
--- @field public oSkeeterUnkFC number
--- @field public oSkeeterWaitTime integer
--- @field public oSmallBompInitX number
--- @field public oSmallPenguinUnk100 integer
--- @field public oSmallPenguinUnk104 number
--- @field public oSmallPenguinUnk108 number
--- @field public oSmallPenguinUnk110 integer
--- @field public oSmallPenguinUnk88 integer
--- @field public oSmallPiranhaFlameEndSpeed number
--- @field public oSmallPiranhaFlameModel integer
--- @field public oSmallPiranhaFlameNextFlameTimer integer
--- @field public oSmallPiranhaFlameSpeed number
--- @field public oSmallPiranhaFlameStartSpeed number
--- @field public oSmokeTimer integer
--- @field public oSnowmansBottomUnk1AC integer
--- @field public oSnowmansBottomUnkF4 number
--- @field public oSnowmansBottomUnkF8 integer
--- @field public oSnowmansHeadUnkF4 integer
--- @field public oSnufitBodyBaseScale integer
--- @field public oSnufitBodyScale integer
--- @field public oSnufitBodyScalePeriod integer
--- @field public oSnufitBullets integer
--- @field public oSnufitCircularPeriod integer
--- @field public oSnufitRecoil integer
--- @field public oSnufitScale number
--- @field public oSnufitXOffset integer
--- @field public oSnufitYOffset integer
--- @field public oSnufitZOffset integer
--- @field public oSoundEffectUnkF4 integer
--- @field public oSoundStateID integer
--- @field public oSparkleSpawnUnk1B0 integer
--- @field public oSpindelUnkF4 integer
--- @field public oSpindelUnkF8 integer
--- @field public oSpinningHeartPlayedSound integer
--- @field public oSpinningHeartTotalSpin integer
--- @field public oSpinyTargetYaw integer
--- @field public oSpinyTimeUntilTurn integer
--- @field public oSpinyTurningAwayFromWall integer
--- @field public oStarSelectorSize number
--- @field public oStarSelectorTimer integer
--- @field public oStarSelectorType integer
--- @field public oStarSpawnDisFromHome number
--- @field public oStarSpawnExtCutsceneFlags integer
--- @field public oStarSpawnUnkFC number
--- @field public oStrongWindParticlePenguinObj Object
--- @field public oSubAction integer
--- @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 oSyncDeath integer
--- @field public oSyncID integer
--- @field public oTTC2DRotatorIncrement integer
--- @field public oTTC2DRotatorMinTimeUntilNextTurn integer
--- @field public oTTC2DRotatorRandomDirTimer integer
--- @field public oTTC2DRotatorSpeed integer
--- @field public oTTC2DRotatorTargetYaw integer
--- @field public oTTCChangeDirTimer integer
--- @field public oTTCCogDir number
--- @field public oTTCCogSpeed number
--- @field public oTTCCogTargetVel number
--- @field public oTTCElevatorDir number
--- @field public oTTCElevatorMoveTime integer
--- @field public oTTCElevatorPeakY number
--- @field public oTTCMovingBarDelay integer
--- @field public oTTCMovingBarOffset number
--- @field public oTTCMovingBarSpeed number
--- @field public oTTCMovingBarStartOffset number
--- @field public oTTCMovingBarStoppedTimer integer
--- @field public oTTCPendulumAccelDir number
--- @field public oTTCPendulumAngle number
--- @field public oTTCPendulumAngleAccel number
--- @field public oTTCPendulumAngleVel number
--- @field public oTTCPendulumDelay integer
--- @field public oTTCPendulumSoundTimer integer
--- @field public oTTCPitBlockDir integer
--- @field public oTTCPitBlockPeakY number
--- @field public oTTCPitBlockWaitTime integer
--- @field public oTTCRotatingSolidNumSides integer
--- @field public oTTCRotatingSolidNumTurns integer
--- @field public oTTCRotatingSolidRotationDelay integer
--- @field public oTTCRotatingSolidSoundTimer integer
--- @field public oTTCRotatingSolidVelY number
--- @field public oTTCSpinnerDir 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 oThwompRandomTimer integer
--- @field public oTiltingPyramidMarioOnPlatform integer
--- @field public oTiltingPyramidNormalX number
--- @field public oTiltingPyramidNormalY number
--- @field public oTiltingPyramidNormalZ number
--- @field public oTimer integer
--- @field public oToadMessageDialogId integer
--- @field public oToadMessageRecentlyTalked integer
--- @field public oToadMessageState integer
--- @field public oToxBoxMovementStep integer
--- @field public oTreasureChestCurrentAnswer integer
--- @field public oTreasureChestIsAboveWater integer
--- @field public oTreasureChestIsLastInteractionIncorrect integer
--- @field public oTreasureChestLastNetworkPlayerIndex integer
--- @field public oTreasureChestSound integer
--- @field public oTreeSnowOrLeafUnkF4 integer
--- @field public oTreeSnowOrLeafUnkF8 integer
--- @field public oTreeSnowOrLeafUnkFC integer
--- @field public oTripletButterflyBaseYaw number
--- @field public oTripletButterflyModel integer
--- @field public oTripletButterflyScale number
--- @field public oTripletButterflyScalePhase integer
--- @field public oTripletButterflySelectedButterfly integer
--- @field public oTripletButterflySpeed number
--- @field public oTripletButterflyTargetPitch integer
--- @field public oTripletButterflyTargetYaw integer
--- @field public oTripletButterflyType integer
--- @field public oTumblingBridgeUnkF4 integer
--- @field public oTweesterScaleTimer integer
--- @field public oTweesterUnused integer
--- @field public oUkikiCageNextAction integer
--- @field public oUkikiCageSpinTimer integer
--- @field public oUkikiChaseFleeRange number
--- @field public oUkikiHasCap integer
--- @field public oUkikiTauntCounter integer
--- @field public oUkikiTauntsToBeDone integer
--- @field public oUkikiTextState integer
--- @field public oUkikiTextboxTimer integer
--- @field public oUnagiUnk110 number
--- @field public oUnagiUnk1AC number
--- @field public oUnagiUnk1B0 integer
--- @field public oUnagiUnk1B2 integer
--- @field public oUnagiUnkF4 number
--- @field public oUnagiUnkF8 number
--- @field public oUnk1A8 integer
--- @field public oUnk94 integer
--- @field public oUnkBC number
--- @field public oUnkC0 number
--- @field public oUnlockDoorStarState integer
--- @field public oUnlockDoorStarTimer integer
--- @field public oUnlockDoorStarYawVel integer
--- @field public oVelX number
--- @field public oVelY number
--- @field public oVelZ number
--- @field public oWFSlidBrickPtfmMovVel number
--- @field public oWallAngle integer
--- @field public oWallHitboxRadius number
--- @field public oWaterBombNumBounces number
--- @field public oWaterBombOnGround integer
--- @field public oWaterBombSpawnerBombActive integer
--- @field public oWaterBombSpawnerTimeToSpawn integer
--- @field public oWaterBombStretchSpeed number
--- @field public oWaterBombVerticalStretch number
--- @field public oWaterCannonUnk100 integer
--- @field public oWaterCannonUnkF4 integer
--- @field public oWaterCannonUnkF8 integer
--- @field public oWaterCannonUnkFC integer
--- @field public oWaterLevelPillarDrained integer
--- @field public oWaterLevelTriggerTargetWaterLevel integer
--- @field public oWaterLevelTriggerUnkF4 integer
--- @field public oWaterObjUnk100 integer
--- @field public oWaterObjUnkF4 integer
--- @field public oWaterObjUnkF8 integer
--- @field public oWaterObjUnkFC integer
--- @field public oWaterRingAvgScale number
--- @field public oWaterRingIndex integer
--- @field public oWaterRingMarioDistInFront number
--- @field public oWaterRingMgrLastRingCollected integer
--- @field public oWaterRingMgrNextRingIndex integer
--- @field public oWaterRingNormalX number
--- @field public oWaterRingNormalY number
--- @field public oWaterRingNormalZ number
--- @field public oWaterRingScalePhaseX integer
--- @field public oWaterRingScalePhaseY integer
--- @field public oWaterRingScalePhaseZ integer
--- @field public oWaterRingSpawnerRingsCollected 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 oWhompShakeVal integer
--- @field public oWigglerFallThroughFloorsHeight number
--- @field public oWigglerSegments ChainSegment
--- @field public oWigglerSquishSpeed number
--- @field public oWigglerTargetYaw integer
--- @field public oWigglerTextStatus integer
--- @field public oWigglerTimeUntilRandomTurn integer
--- @field public oWigglerUnused integer
--- @field public oWigglerWalkAnimSpeed number
--- @field public oWigglerWalkAwayFromWallTimer integer
--- @field public oWoodenPostMarioPounding integer
--- @field public oWoodenPostOffsetY number
--- @field public oWoodenPostPrevAngleToMario integer
--- @field public oWoodenPostSpeedY number
--- @field public oWoodenPostTotalMarioAngle integer
--- @field public oYoshiBlinkTimer integer
--- @field public oYoshiChosenHome integer
--- @field public oYoshiTargetYaw integer
--- @field public parentObj Object
--- @field public platform Object
--- @field public prevObj Object
--- @field public respawnInfoType integer
--- @field public setHome integer
--- @field public transform Mat4
--- @field public unused1 integer
2022-03-30 04:12:42 +00:00
--- @field public usingObj Object
--- @class ObjectHitbox
--- @field public damageOrCoinValue integer
--- @field public downOffset integer
--- @field public health integer
--- @field public height integer
--- @field public hurtboxHeight integer
--- @field public hurtboxRadius integer
--- @field public interactType integer
--- @field public numLootCoins integer
--- @field public radius integer
--- @class ObjectNode
--- @field public gfx GraphNodeObject
--- @field public next ObjectNode
--- @field public prev ObjectNode
--- @class ObjectWarpNode
--- @field public next ObjectWarpNode
--- @field public node WarpNode
--- @field public object Object
--- @class OffsetSizePair
--- @field public offset integer
--- @field public size integer
--- @class Painting
--- @field public alpha integer
--- @field public currFloor integer
--- @field public currRippleMag number
--- @field public currRippleRate number
--- @field public dispersionFactor number
--- @field public entryDispersionFactor number
--- @field public entryRippleDecay number
--- @field public entryRippleMag number
--- @field public entryRippleRate number
--- @field public floorEntered integer
--- @field public id integer
--- @field public imageCount integer
--- @field public lastFloor integer
--- @field public marioIsUnder integer
--- @field public marioWasUnder integer
--- @field public marioWentUnder integer
--- @field public passiveDispersionFactor number
--- @field public passiveRippleDecay number
--- @field public passiveRippleMag number
--- @field public passiveRippleRate number
--- @field public pitch number
--- @field public posX number
--- @field public posY number
--- @field public posZ number
--- @field public rippleDecay number
--- @field public rippleTimer number
--- @field public rippleTrigger integer
--- @field public rippleX number
--- @field public rippleY number
--- @field public size number
--- @field public state integer
--- @field public textureHeight integer
--- @field public textureType integer
--- @field public textureWidth integer
--- @field public yaw number
--- @class PaintingMeshVertex
--- @class PaintingValues
--- @field public bob_painting Painting
--- @field public ccm_painting Painting
--- @field public cotmc_painting Painting
--- @field public ddd_painting Painting
--- @field public hmc_painting Painting
--- @field public jrb_painting Painting
--- @field public lll_painting Painting
--- @field public sl_painting Painting
--- @field public ssl_painting Painting
--- @field public thi_huge_painting Painting
--- @field public thi_tiny_painting Painting
--- @field public ttc_painting Painting
--- @field public ttm_painting Painting
--- @field public ttm_slide_painting Painting
--- @field public wdw_painting Painting
--- @field public wf_painting Painting
--- @class ParallelTrackingPoint
--- @field public distThresh number
--- @field public pos Vec3f
--- @field public startOfPath integer
--- @field public zoom number
--- @class PlayerCameraState
--- @field public action integer
--- @field public cameraEvent integer
--- @field public faceAngle Vec3s
--- @field public headRotation Vec3s
--- @field public pos Vec3f
--- @field public unused integer
--- @field public usedObj Object
--- @class PlayerGeometry
--- @field public currCeil Surface
--- @field public currCeilHeight number
--- @field public currCeilType integer
--- @field public currFloor Surface
--- @field public currFloorHeight number
--- @field public currFloorType integer
--- @field public prevCeil Surface
--- @field public prevCeilHeight number
--- @field public prevCeilType integer
--- @field public prevFloor Surface
--- @field public prevFloorHeight number
--- @field public prevFloorType integer
--- @field public waterHeight number
Arbitrary shirt, pants, glove colors + settings menu (#145) * Support for more granular player colors You can now configure RGB values for shirt, pants, gloves, and shoes. Due to some limitations, configuring shoes does nothing at the moment. * Remove paletteIndex and friends Restructured and filled in some remaining code to account for that. * Add Edit Palette panel to Player panel * Change PlayerPalette contents to an enum-indexed array, remove shoes This gets rid of all the hokey code doing switch cases on the different parts. * Fix goof with player model selection box Should actually have affect now even if a custom palette is being used. * Fix gap in player color display list commands The extra space was leftover from when I was trying to get shoes working. Forgot to clean it up. * Standardize PlayerParts enum, including for lua constants autogen * djui_panel_player.c: Properly hook sending palette changes on unpause Editing the palette and then unpausing should send out the packet to everyone with the new palette changes (and update the palette preset selection box), but since we weren't hooking that situation before, it would stay changed only for you. You would have had to press the Back button for it to work right. * Allow Lua mods to continue using `paletteIndex`, `overridePaletteIndex` This lets mod code like this still work unchanged: if s.team == 2 then np.overridePaletteIndex = 7 elseif s.team == 1 then np.overridePaletteIndex = 15 else np.overridePaletteIndex = np.paletteIndex end It's essentially faked, and would work strangely if the value of either variable was inspected more closely directly. This should at least handle the typical use case, though. Every frame, `overridePaletteIndex` is checked to see if it was modified from its previous value. If so, `overridePalette` is set to the preset corresponding to the index. `paletteIndex` contains a special value that when used to assign to `overridePaletteIndex`, it copies `palette` into `overridePalette` to restore the real colors, which of course may not follow the presets at all. * characters.h: Pack `PlayerPalette` to eliminate size differences between computers * mario_misc.c: Remove remaining "TODO GAG"
2022-08-07 22:13:19 +00:00
--- @class PlayerPalette
--- @class RayIntersectionInfo
--- @field public hitPos Vec3f
--- @field public surface Surface
--- @class ServerSettings
--- @field public bubbleDeath integer
--- @field public enableCheats integer
--- @field public enablePlayerList integer
--- @field public enablePlayersInLevelDisplay integer
--- @field public headlessServer integer
--- @field public maxPlayers integer
--- @field public nametags integer
--- @field public playerInteractions PlayerInteractions
--- @field public playerKnockbackStrength integer
--- @field public skipIntro integer
--- @field public stayInLevelAfterStar integer
--- @class SoundState
--- @field public animFrame1 integer
--- @field public animFrame2 integer
--- @field public playSound integer
--- @field public soundMagic integer
--- @class SpawnInfo
--- @field public activeAreaIndex integer
--- @field public areaIndex integer
--- @field public behaviorArg integer
--- @field public next SpawnInfo
--- @field public startAngle Vec3s
--- @field public startPos Vec3s
--- @field public syncID integer
--- @field public unk18 GraphNode
--- @class SpawnParticlesInfo
--- @field public behParam integer
--- @field public count integer
--- @field public dragStrength integer
--- @field public forwardVelBase integer
--- @field public forwardVelRange integer
--- @field public gravity integer
--- @field public model integer
--- @field public offsetY integer
--- @field public sizeBase number
--- @field public sizeRange number
--- @field public velYBase integer
--- @field public velYRange integer
--- @class StarPositions
--- @field public BalconyBooStarPos Vec3f
--- @field public BigBullyStarPos Vec3f
--- @field public BigBullyTrioStarPos Vec3f
--- @field public BigPiranhasStarPos Vec3f
--- @field public CcmSlideStarPos Vec3f
--- @field public ChillBullyStarPos Vec3f
--- @field public EyerockStarPos Vec3f
--- @field public GhostHuntBooStarPos Vec3f
--- @field public JetstreamRingStarPos Vec3f
--- @field public KingBobombStarPos Vec3f
--- @field public KingWhompStarPos Vec3f
--- @field public KleptoStarPos Vec3f
--- @field public KoopaBobStarPos Vec3f
--- @field public KoopaThiStarPos Vec3f
--- @field public MantaRayStarPos Vec3f
--- @field public MerryGoRoundStarPos Vec3f
--- @field public MrIStarPos Vec3f
--- @field public PssSlideStarPos Vec3f
--- @field public RacingPenguinStarPos Vec3f
--- @field public SnowmanHeadStarPos Vec3f
--- @field public TreasureChestStarPos Vec3f
--- @field public TreasureJrbStarPos Vec3f
--- @field public TuxieMotherStarPos Vec3f
--- @field public UkikiCageStarPos Vec3f
--- @field public UnagiStarPos Vec3f
--- @field public WigglerStarPos 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 Struct802A272C
--- @field public vecF Vec3f
--- @field public vecS Vec3s
--- @class Surface
--- @field public flags integer
--- @field public force integer
--- @field public lowerY integer
--- @field public modifiedTimestamp integer
--- @field public normal Vec3f
--- @field public object Object
--- @field public originOffset number
--- @field public prevVertex1 Vec3s
--- @field public prevVertex2 Vec3s
--- @field public prevVertex3 Vec3s
--- @field public room integer
--- @field public type integer
--- @field public upperY integer
--- @field public vertex1 Vec3s
--- @field public vertex2 Vec3s
--- @field public vertex3 Vec3s
--- @class TextureInfo
--- @field public bitSize integer
--- @field public height integer
--- @field public texture Pointer_integer
--- @field public width integer
--- @class TransitionInfo
--- @field public focDist number
--- @field public focPitch integer
--- @field public focYaw integer
--- @field public framesLeft integer
--- @field public marioPos Vec3f
--- @field public pad integer
--- @field public posDist number
--- @field public posPitch integer
--- @field public posYaw integer
--- @class WallCollisionData
2022-06-01 08:00:21 +00:00
--- @field public normalAddition Vec3f
--- @field public normalCount integer
--- @field public numWalls integer
--- @field public offsetY number
--- @field public radius number
--- @field public unused integer
--- @field public x number
--- @field public y number
--- @field public z number
--- @class WarpNode
--- @field public destArea integer
--- @field public destLevel integer
--- @field public destNode integer
--- @field public id integer
--- @class WarpTransition
--- @field public data WarpTransitionData
--- @field public isActive integer
--- @field public pauseRendering integer
--- @field public time integer
--- @field public type integer
--- @class WarpTransitionData
--- @field public blue integer
--- @field public endTexRadius integer
--- @field public endTexX integer
--- @field public endTexY integer
--- @field public green integer
--- @field public red integer
--- @field public startTexRadius integer
--- @field public startTexX integer
--- @field public startTexY integer
--- @field public texTimer integer
--- @class WaterDropletParams
--- @field public behavior Pointer_BehaviorScript
--- @field public flags integer
--- @field public model integer
--- @field public moveAngleRange integer
--- @field public moveRange integer
--- @field public randForwardVelOffset number
--- @field public randForwardVelScale number
--- @field public randSizeOffset number
--- @field public randSizeScale number
--- @field public randYVelOffset number
--- @field public randYVelScale number
--- @class Waypoint
--- @field public flags integer
--- @field public pos Vec3s
--- @class Whirlpool
--- @field public pos Vec3s
--- @field public strength integer
--- @class struct802A1230
--- @field public unk00 integer
--- @field public unk02 integer
--- @class Vec3f
--- @field public x number
--- @field public y number
--- @field public z number
--- @class Vec3s
--- @field public x integer
--- @field public y integer
--- @field public z integer
--- @class Color
--- @field public b integer
--- @field public g integer
--- @field public r integer
--- @class ExclamationBoxContents
--- @field public behaviorId BehaviorId
--- @field public emodel ModelExtendedId
--- @field public firstByte integer
--- @field public index integer
--- @field public unused integer
--- @class Pointer_integer
2022-04-09 04:01:17 +00:00
--- @class Pointer_Trajectory
--- @class Pointer_LevelScript
--- @class Pointer_ObjectAnimPointer
--- @class Pointer_Collision
--- @class Pointer_Mat4
--- @class Pointer_Vec4s
--- @class Pointer_BehaviorScript