#pragma once #include class Mario; class MarioActor; /// @brief The table of player character constants. struct MarioConstTable { /* 0x000 */ f32 mJumpHeight[9]; /* 0x024 */ f32 mGravityJumping[12]; /* 0x054 */ f32 mGravityAirWalk; /* 0x058 */ f32 mGravityRatioA; /* 0x05C */ f32 mJumpFrontSpeed; /* 0x060 */ f32 mJumpTornadoSpeed; /* 0x064 */ f32 mDropFrontSpeed; /* 0x068 */ s16 mJumpConnectTime; /* 0x06C */ f32 mJumpConnectSpeed; /* 0x070 */ f32 mSquatJumpFrontSpeed; /* 0x074 */ f32 mSquatJumpBackSpeed; /* 0x078 */ f32 mTurnJumpFrontSpeed; /* 0x07C */ f32 mMaxDropSpeed[5]; /* 0x090 */ s16 mGrReductionDropTimer; /* 0x092 */ u16 mDropWaitTime; /* 0x094 */ f32 mJumpFrontReduction; /* 0x098 */ s16 mJumpFrontReductionBeginTime; /* 0x09C */ f32 mSquatJumpFrontReduction; /* 0x0A0 */ s16 mSquatJumpFrontReductionBTime; /* 0x0A4 */ f32 mMudFloorJumpWeakRatio; /* 0x0A8 */ f32 mGravityHipDrop; /* 0x0AC */ f32 mLimitSpeedHipDrop; /* 0x0B0 */ f32 mHipDropLimitHeight; /* 0x0B4 */ u16 mHipDropZeroGrTime; /* 0x0B6 */ s16 mHipDropLimitTimerAfterTornado; /* 0x0B8 */ s16 mSlipUpSpdCtrlTimer; /* 0x0BC */ f32 mSlipUpSpdRatio; /* 0x0C0 */ f32 mSlipUpHeight; /* 0x0C4 */ f32 mSlipUpFront; /* 0x0C8 */ f32 mSlipUpFrontWeak; /* 0x0CC */ f32 mSlipUpHeightHang; /* 0x0D0 */ f32 mSlipUpFrontHang; /* 0x0D4 */ f32 mSlipUpContinueHeight; /* 0x0D8 */ u16 mAirWalkTime; /* 0x0DC */ f32 mAirWalkTimerFact1; /* 0x0E0 */ s16 mAirWalkTimerFact2; /* 0x0E4 */ f32 mAirWalkTimerFact3; /* 0x0E8 */ f32 mMaxJumpSpeed; /* 0x0EC */ f32 mAirWalkBackBonus; /* 0x0F0 */ f32 mAirWalkSpeedKiller; /* 0x0F4 */ f32 mMaxBackJumpSpeed; /* 0x0F8 */ f32 mAirWalkBonus; /* 0x0FC */ s16 mBackJumpLimitFrame; /* 0x100 */ f32 mBackJumpRatio; /* 0x104 */ s16 mWaitNeutralTimer; /* 0x108 */ f32 mHardLandingHeight; /* 0x10C */ u16 mHardLandStunTimer; /* 0x110 */ f32 mCodeJumpPower[4]; /* 0x120 */ f32 mTrampleNormal; /* 0x124 */ f32 mTrampleLong; /* 0x128 */ f32 mTrampleNormalTaco; /* 0x12C */ f32 mTrampleBegoma; /* 0x130 */ f32 mTrampleBegomaRotRise; /* 0x134 */ f32 mTrampleBegomaRotFall; /* 0x138 */ u16 mTrampleBegomaOpenTime; /* 0x13C */ f32 mDropUnderPowerMin; /* 0x140 */ f32 mDropUnderPowerMax; /* 0x144 */ f32 mMsgJumpGroundPowerXZ; /* 0x148 */ f32 mMsgJumpGroundPowerY; /* 0x14C */ f32 mMsgJumpAirPower; /* 0x150 */ f32 mBilliardJumpExtra; /* 0x154 */ s16 mFutureJumpReqLimitTime; /* 0x158 */ f32 mWarpPodJumpX; /* 0x15C */ f32 mWarpPodJumpY; /* 0x160 */ f32 mJumpHeightDamage; /* 0x164 */ f32 mJumpDistDamage; /* 0x168 */ f32 mGravityDamage; /* 0x16C */ f32 mJumpHeightLargeDamage; /* 0x170 */ f32 mJumpDistLargeDamage; /* 0x174 */ f32 mSlideDistFaint; /* 0x178 */ s16 mFaintTimer1; /* 0x17A */ s16 mFaintTimer2; /* 0x17C */ f32 mFaintFriction1; /* 0x180 */ f32 mFaintFriction2; /* 0x184 */ f32 mSlideDistFlip; /* 0x188 */ f32 mSlideDistFlipSpin; /* 0x18C */ s16 mFlipTimer1; /* 0x18E */ s16 mFlipTimer2; /* 0x190 */ f32 mFlipFriction1; /* 0x194 */ f32 mFlipFriction2; /* 0x198 */ f32 mFlipFriction3; /* 0x19C */ u16 mFireRunTimer1; /* 0x19E */ u16 mFireRunTimer2; /* 0x1A0 */ u16 mFireRunTimer3; /* 0x1A4 */ f32 mFireRunSpeed; /* 0x1A8 */ f32 mFireRunTurnRatio; /* 0x1AC */ f32 mFireRunGravity; /* 0x1B0 */ f32 mFireRunFirstJump; /* 0x1B4 */ f32 mFireDanceTurnRatio; /* 0x1B8 */ f32 mFireDanceGravityRise; /* 0x1BC */ f32 mFireDanceGravityDrop; /* 0x1C0 */ f32 mFireDanceFirstJump; /* 0x1C4 */ f32 mFireDanceSecondJump; /* 0x1C8 */ f32 mFireDanceMoveSpeed; /* 0x1CC */ f32 mFireDanceMoveAcc; /* 0x1D0 */ f32 mBlackHoleRadiusRatio; /* 0x1D4 */ f32 mBlackHoleScaleSpeed; /* 0x1D8 */ f32 mBlackHoleScaleLimit; /* 0x1DC */ f32 mBlackHoleRotateSpeed; /* 0x1E0 */ f32 mBlackHoleRotateLimit; /* 0x1E4 */ f32 mBlackHoleFirstRadius; /* 0x1E8 */ u16 mBlackHoleHideTime; /* 0x1EA */ u16 mWaterInnerFaintTime; /* 0x1EC */ f32 mSwimFaintSpeed; /* 0x1F0 */ u16 mWaterInnerDamageTime; /* 0x1F4 */ f32 mSwimDamageSpeed; /* 0x1F8 */ f32 mSwimSurfaceDamageSpeed; /* 0x1FC */ f32 mWaterSurfaceDamageJump; /* 0x200 */ u16 mSwimDamageTimerEx1; /* 0x204 */ f32 mSwimDamageSpeedEx1; /* 0x208 */ f32 mJumpHeightFlow; /* 0x20C */ f32 mJumpDistFlow; /* 0x210 */ f32 mGravityFlow; /* 0x214 */ f32 mFlatAngle; /* 0x218 */ f32 mSlipAngle; /* 0x21C */ f32 mForceWallAngle; /* 0x220 */ f32 mDebugMoveSpeed; /* 0x224 */ f32 mWalkSpeed; /* 0x228 */ f32 mInertiaStandardStop; /* 0x22C */ f32 mInertiaStandardMax; /* 0x230 */ f32 mInertiaBdash; /* 0x234 */ f32 mInertiaBdashAfter; /* 0x238 */ f32 mInertiaStop; /* 0x23C */ f32 mInertiaSquat; /* 0x240 */ f32 mInertiaTurnSlip; /* 0x244 */ f32 mInertiaTurning; /* 0x248 */ f32 mInertiaJumpFinish; /* 0x24C */ f32 mInertiaReflectSlip; /* 0x250 */ f32 mInertiaStartSpin; /* 0x254 */ f32 mInertiaOverSpeed; /* 0x258 */ f32 mTurnAngleSpeed; /* 0x25C */ f32 mTurnAngleSpeed2; /* 0x260 */ f32 mTurnAngleSpeed3; /* 0x264 */ f32 mTurnAngleSpeedSlowWalk; /* 0x268 */ f32 mGravityStandard; /* 0x26C */ f32 mGravityGrounding; /* 0x270 */ f32 mDashMultiply; /* 0x274 */ f32 mCameraAngleLimit; /* 0x278 */ u16 mStartSpinTime; /* 0x27A */ u16 mDashAfterTime; /* 0x27C */ u16 mAutoBdashTime; /* 0x27E */ u16 mSlowStartTime; /* 0x280 */ f32 mStartSpinAnimeRatio; /* 0x284 */ f32 mSlopeAnimeRatio; /* 0x288 */ f32 mSlopeSpinAnimeRatio; /* 0x28C */ f32 mItemDashRatio; /* 0x290 */ u16 mItemDashTimer; /* 0x294 */ f32 mInertiaIceStandardStop; /* 0x298 */ f32 mInertiaIceStandardMax; /* 0x29C */ f32 mInertiaIceStartSpin; /* 0x2A0 */ f32 mInertiaIceStop; /* 0x2A4 */ f32 mInertiaIceTurn; /* 0x2A8 */ f32 mInertiaSlipStandardStop; /* 0x2AC */ f32 mInertiaSlipStandardMax; /* 0x2B0 */ f32 mInertiaSlipStartSpin; /* 0x2B4 */ f32 mInertiaSlipStop; /* 0x2B8 */ f32 mInertiaSlipTurn; /* 0x2BC */ f32 mTurnSlipAngle; /* 0x2C0 */ u16 mTurnReadyTime; /* 0x2C4 */ f32 mTurnSlipNeutral; /* 0x2C8 */ f32 mSlipSpeed; /* 0x2CC */ f32 mFastTurnSpeed; /* 0x2D0 */ s16 mTurnSlipTime; /* 0x2D2 */ s16 mTurnSlipTimeB; /* 0x2D4 */ s16 mTurnJumpInhibitTime; /* 0x2D8 */ f32 mLandTurnHeight; /* 0x2DC */ f32 mInertiaBrake; /* 0x2E0 */ u16 mStandingTurnTime; /* 0x2E2 */ u16 mWeakTurnTime; /* 0x2E4 */ u16 mBrakeFirstTimer; /* 0x2E6 */ u16 mBrakeSecondTimer; /* 0x2E8 */ f32 mSlopeSpeedMax; /* 0x2EC */ f32 mSlopeAccel; /* 0x2F0 */ f32 mSlopeSpeedMaxBraking; /* 0x2F4 */ f32 mSlopeFinishInertia; /* 0x2F8 */ f32 mSlopeCancelInertia; /* 0x2FC */ f32 mSlopeAnimeFinishSpeed; /* 0x300 */ f32 mSlopeDashAngleFactor; /* 0x304 */ f32 mSlopeDashSpeedFactor; /* 0x308 */ f32 mSlopeDashAccelFactor; /* 0x30C */ u16 mSlopeDashAccelTime; /* 0x310 */ f32 mSlopeSideMoveInertia; /* 0x314 */ f32 mSlopeSideStopInertia; /* 0x318 */ f32 mSlopeSideMoveSpeed; /* 0x31C */ f32 mSlopeCurveAssist; /* 0x320 */ f32 mSlipMoveTurnAngleRad; /* 0x324 */ f32 mWalkStepHeight; /* 0x328 */ f32 mTiltRatio; /* 0x32C */ f32 mLookDownRatio; /* 0x330 */ f32 mSpeedStep[3]; /* 0x33C */ f32 mMaxAnmSpeedA; /* 0x340 */ f32 mMinAnmSpeedA; /* 0x344 */ f32 mMaxAnmSpeedB; /* 0x348 */ f32 mMinAnmSpeedB; /* 0x34C */ f32 mMaxAnmSpeedC; /* 0x350 */ f32 mMinAnmSpeedC; /* 0x354 */ f32 mWeightBlendRatio; /* 0x358 */ f32 mMudFloorSlipRatio; /* 0x35C */ f32 mStickAngleMargin; /* 0x360 */ f32 mStickMarginX; /* 0x364 */ f32 mStickMarginY; /* 0x368 */ f32 mStickMarginYstart; /* 0x36C */ f32 mStickMarginXstart; /* 0x370 */ f32 mStickHeavyMinRatio; /* 0x374 */ f32 mStickHeavyMinAngle; /* 0x378 */ f32 mStickHeavyMaxAngle; /* 0x37C */ f32 mSpeedSquatWalkLower; /* 0x380 */ f32 mSquatWalkStep; /* 0x384 */ f32 mSquatWalkMaxSpeed; /* 0x388 */ f32 mSquatWalkMinSpeed; /* 0x38C */ f32 mWindSlideLimit; /* 0x390 */ f32 mWindSlideFriction; /* 0x394 */ f32 mWindForwardFriction; /* 0x398 */ f32 mWindSlideFrictionAgainst; /* 0x39C */ f32 mWindJumpingFriction; /* 0x3A0 */ u16 mTornadoTime; /* 0x3A2 */ u16 mTornadoTimeAir; /* 0x3A4 */ u16 mAirWalkTimeTornado; /* 0x3A6 */ u16 mTornadoRestartTime; /* 0x3A8 */ f32 mSpinDifferMargin; /* 0x3AC */ f32 mSpinGoalAngle; /* 0x3B0 */ s16 mSpinInputLimitTime; /* 0x3B2 */ s16 mSpinTime; /* 0x3B4 */ f32 mSpinSpeed; /* 0x3B8 */ f32 mSpinWalkRatio; /* 0x3BC */ f32 mSpinJumpRatio; /* 0x3C0 */ f32 mSpinWallReboundSpeed; /* 0x3C4 */ u16 mSpinFinishTime; /* 0x3C8 */ f32 mSpinFinishRate; /* 0x3CC */ f32 mTornadoMultiply; /* 0x3D0 */ f32 mTurnAngleSpeedTornado; /* 0x3D4 */ f32 mInertiaTornadoAccel; /* 0x3D8 */ f32 mInertiaTornadoBrake; /* 0x3DC */ u16 mTornadoChargeTime; /* 0x3DE */ u16 mTornadoChargeUpTime; /* 0x3E0 */ u16 mTornadoZeroGravityTimer; /* 0x3E4 */ f32 mTornadoBoostPower; /* 0x3E8 */ f32 mTornadoBoostAttn; /* 0x3EC */ u16 mTornadoBoostTimer; /* 0x3F0 */ f32 mTornadoBoostAttnMini; /* 0x3F4 */ u16 mTornadoBoostTimerMini; /* 0x3F8 */ f32 mTornadoTiltCancel; /* 0x3FC */ f32 mTornadoTiltAngle; /* 0x400 */ f32 mTornadoTiltSpeed; /* 0x404 */ f32 mTornadoTiltOffSpeed; /* 0x408 */ f32 mTornadoTiltNear; /* 0x40C */ u16 mTornadoReflectTimer; /* 0x410 */ f32 mTornadoReflectSpeed; /* 0x414 */ u16 mAirWalkTimeSpin; /* 0x418 */ f32 mSpinCoinPullRadius; /* 0x41C */ f32 mCoinPullAngleSpeedRatio; /* 0x420 */ f32 mCoinPullDistSpeedRatio; /* 0x424 */ u16 mSpinJumpCount; /* 0x426 */ u16 mSpinIntervalTime; /* 0x428 */ f32 mSpinJumpHeight; /* 0x42C */ f32 mSpinJumpGravity; /* 0x430 */ f32 mWallStickGrHeight; /* 0x434 */ f32 mWallStickFrHeight; /* 0x438 */ f32 mWallStickStepHeight; /* 0x43C */ f32 mWallDropSpeedStop; /* 0x440 */ f32 mWallDropSpeedNormal; /* 0x444 */ f32 mWallJumpPowerXZ; /* 0x448 */ f32 mWallJumpPowerY; /* 0x44C */ f32 mWallBackJumpPowerXZ; /* 0x450 */ f32 mWallBackJumpPowerY; /* 0x454 */ s16 mWallStickTime; /* 0x456 */ s16 mWallStickTimeIce; /* 0x458 */ s16 mWallReleaseTime; /* 0x45C */ f32 mWallSideMoveRatio; /* 0x460 */ f32 mJumpHeightBlown; /* 0x464 */ f32 mGravityBlown; /* 0x468 */ f32 mWallHangGrHeight; /* 0x46C */ f32 mWallHangMyHeight; /* 0x470 */ s16 mHangBlendTime; /* 0x474 */ f32 mWallPushAngleRange; /* 0x478 */ f32 mWallFrontAngleRange; /* 0x47C */ f32 mWallBackAngleRange; /* 0x480 */ f32 mWallStickCancelAngle; /* 0x484 */ f32 mWallBackHangStickPower; /* 0x488 */ f32 mWallBackHangWalkSpeed; /* 0x48C */ f32 mWallTriJumpMargin; /* 0x490 */ f32 mWallSpinFlipGround; /* 0x494 */ f32 mWallSpinHopGround; /* 0x498 */ f32 mWallSpinFlipAirRatio; /* 0x49C */ u16 mClapCoinTime; /* 0x4A0 */ f32 mClapCoinPullRate; /* 0x4A4 */ f32 mClapJumpBonusRising; /* 0x4A8 */ f32 mClapJumpBonusFalling; /* 0x4AC */ f32 mHopLimit; /* 0x4B0 */ f32 mSwimFrontAcc; /* 0x4B4 */ f32 mSwimFrontMaxSpeed; /* 0x4B8 */ f32 mSwimFrontSpinSpeed; /* 0x4BC */ f32 mSwimFrontNormalSpeed; /* 0x4C0 */ f32 mSwimFrontOnWaterSpeed; /* 0x4C4 */ f32 mSwimFrontJetSpeed; /* 0x4C8 */ f32 mSwimFrontJetSpeedSlow; /* 0x4CC */ f32 mSwimAccRatio; /* 0x4D0 */ f32 mSwimAccMinRatio; /* 0x4D4 */ f32 mSwimFrontIne; /* 0x4D8 */ f32 mSwimStopIne; /* 0x4DC */ f32 mSwimStopIneSurface; /* 0x4E0 */ f32 mSwimRotSpeedX; /* 0x4E4 */ f32 mSwimRotSpeedZ; /* 0x4E8 */ f32 mSwimRotSpeedZStop; /* 0x4EC */ f32 mSwimRotXIne; /* 0x4F0 */ f32 mSwimRotZIne; /* 0x4F4 */ f32 mSwimRotXIneT; /* 0x4F8 */ f32 mSwimRotZIneT; /* 0x4FC */ f32 mSwimUpAcc; /* 0x500 */ f32 mSwimUpMaxSpeed; /* 0x504 */ f32 mWeightBlendRatioSwim; /* 0x508 */ f32 mWeightBlendRatioSwimB; /* 0x50C */ f32 mSwimFreeXback; /* 0x510 */ f32 mSwimFreeXback2; /* 0x514 */ f32 mSwimSpdYratio; /* 0x518 */ f32 mSwimRotSpeedRatioSurface; /* 0x51C */ u16 mJumpSinkTimer; /* 0x51E */ u16 mJumpDamageSinkTimer; /* 0x520 */ f32 mSwimToWalkSpd; /* 0x524 */ u16 mWaterDecInterval; /* 0x526 */ u16 mWaterDecSpinAcc; /* 0x528 */ u16 mOxygenMax; /* 0x52C */ f32 mSwimXJetRotRatio; /* 0x530 */ f32 mSwimXJetRotRatioRed; /* 0x534 */ f32 mTurboReductionStream; /* 0x538 */ f32 mTurboReductionHitWall; /* 0x53C */ f32 mTurboReductionHitFloor; /* 0x540 */ u16 mSwimJetPeriod1; /* 0x542 */ u16 mSwimJetPeriod2; /* 0x544 */ f32 mSwimJetPeriod1Ratio; /* 0x548 */ f32 mSwimJetPeriod3Ratio; /* 0x54C */ f32 mZsinkAngleX; /* 0x550 */ u16 mZsinkMoveTimer; /* 0x552 */ u16 mZsinkSinkTimer; /* 0x554 */ u16 mZsinkStartTimer; /* 0x558 */ f32 mZsinkFrontSpeed; /* 0x55C */ u16 mSwimSpecStartTimerA[3]; /* 0x562 */ u16 mSwimSpecStartTimerB[3]; /* 0x568 */ u16 mSwimSpinReadyTime; /* 0x56A */ u16 mSwimSpinTime; /* 0x56C */ u16 mSwimDashTime; /* 0x56E */ u16 mSwimSpinFrontTime; /* 0x570 */ u16 mSwimSpinYspeedTime; /* 0x572 */ u16 mSwimSpinDownStep; /* 0x574 */ f32 mSwimSpinSpeed; /* 0x578 */ f32 mSwimSpinAcc1; /* 0x57C */ f32 mSwimSpinAcc2; /* 0x580 */ u16 mSwimSpinMissOfsTime; /* 0x584 */ f32 mSwimSpinAccRatio; /* 0x588 */ f32 mSwimSpinSurfaceAccRatio; /* 0x58C */ f32 mSwimSpinAccRatioR; /* 0x590 */ f32 mSwimSpinSurfaceAccRatioR; /* 0x594 */ u16 mSwimRingDashChargeTime; /* 0x596 */ u16 mSwimRingDashTime; /* 0x598 */ u16 mSwimRingDashFinishTime; /* 0x59C */ f32 mSwimRingDashSpeedRatio; /* 0x5A0 */ f32 mSwimSurfaceSpeed; /* 0x5A4 */ f32 mSwimWaterSpeed; /* 0x5A8 */ f32 mSwimDriftSpeed; /* 0x5AC */ u16 mSwimConnectIn; /* 0x5AE */ u16 mSwimConnectOut; /* 0x5B0 */ f32 mSwimTiltZup; /* 0x5B4 */ f32 mSwimTiltZdown; /* 0x5B8 */ f32 mSwimTiltReal; /* 0x5BC */ f32 mSwimTiltSpd; /* 0x5C0 */ f32 mSwimUpSurfaceDist; /* 0x5C4 */ f32 mSwimUpStrongDist; /* 0x5C8 */ f32 mSwimUpStrongRatio; /* 0x5CC */ f32 mSwimUpWeakDist; /* 0x5D0 */ f32 mSwimUpBottomDist; /* 0x5D4 */ f32 mSwimUpWeakRatio; /* 0x5D8 */ f32 mSwimReverseSinkRatio; /* 0x5DC */ f32 mSliderBrakeIne; /* 0x5E0 */ f32 mSliderWeightIne; /* 0x5E4 */ f32 mSliderSlopePow; /* 0x5E8 */ f32 mSliderWeightPow; /* 0x5EC */ f32 mSliderMaxSpeed; /* 0x5F0 */ f32 mSliderBrakePow; /* 0x5F4 */ f32 mSliderFrontTurnRatio; /* 0x5F8 */ f32 mSliderHeadRotateRatio; /* 0x5FC */ f32 mSliderTiltRatio; /* 0x600 */ f32 mBeeFlyRandomFactor; /* 0x604 */ f32 mBeeFlyConstantFactor; /* 0x608 */ f32 mBeeAirWalkAcc; /* 0x60C */ f32 mBeeAirWalkLimit; /* 0x610 */ f32 mBeeAirWalkTurnSpd; /* 0x614 */ f32 mBeeSpeedRotateRatio; /* 0x618 */ f32 mBeeFreeDropAcc; /* 0x61C */ f32 mBeeFreeDropMaxSpd; /* 0x620 */ f32 mBeePushRiseGravityEraser; /* 0x624 */ f32 mBeeStickJumpPower; /* 0x628 */ f32 mBeeStickJumpBonus; /* 0x62C */ f32 mBeeStickAngleLimit; /* 0x630 */ f32 mBeeUpSpeedMax; /* 0x634 */ f32 mBeeUpAccelRatio; /* 0x638 */ f32 mBeeAccelRatio; /* 0x63C */ f32 mBeeUpDownKiller; /* 0x640 */ u16 mBeeGravityReviveTime; /* 0x642 */ u16 mBeeGravityPowerTime; /* 0x644 */ u16 mBeeAirWalkInhibitTime; /* 0x646 */ u16 mBeeGravityPowerTimeV; /* 0x648 */ u16 mBeeAirWalkInhibitTimeV; /* 0x64A */ u16 mBeeGravityPowerTimeD; /* 0x64C */ u16 mBeeAirWalkInhibitTimeD; /* 0x650 */ f32 mBeeWallWalkCancelRadius; /* 0x654 */ f32 mBeeWallWalkCancelRadiusShort; /* 0x658 */ f32 mBeePoseDelayAngleAir; /* 0x65C */ f32 mBeePoseDelayAngleGround; /* 0x660 */ f32 mBeePoseDelayAccel; /* 0x664 */ f32 mBeePoseLimitAngleAir; /* 0x668 */ f32 mBeePoseLimitAngleGround; /* 0x66C */ f32 mBeePoseHeadToFootLength; /* 0x670 */ f32 mBeePoseDelaySpeedLimit; /* 0x674 */ f32 mBeePoseFrictionStop; /* 0x678 */ f32 mBeePoseTransBlendingRatioStop; /* 0x67C */ f32 mBeePoseFrictionMove; /* 0x680 */ f32 mBeePoseTransBlendingRatioMove; /* 0x684 */ f32 mRabbitTurnRatio; /* 0x688 */ f32 mRabbitTurnRatio2; /* 0x68C */ f32 mRabbitGravityRise; /* 0x690 */ f32 mRabbitGravityDrop; /* 0x694 */ f32 mRabbitFirstJump; /* 0x698 */ f32 mRabbitMoveSpeed; /* 0x69C */ f32 mRabbitMoveAcc; /* 0x6A0 */ f32 mRabbitMoveAcc2; /* 0x6A4 */ f32 mRabbitMoveAcc3; /* 0x6A8 */ f32 mRabbitFirstJump2; /* 0x6AC */ f32 mRabbitGravityRise2; /* 0x6B0 */ f32 mRabbitGravityDrop2; /* 0x6B4 */ u16 mRabbitChargeTime2; /* 0x6B6 */ u16 mHopperLandingTime; /* 0x6B8 */ f32 mTeresaHorizontalSpeedMax; /* 0x6BC */ f32 mTeresaAlphaLevelMax; /* 0x6C0 */ f32 mTeresaAlphaLevelInc; /* 0x6C4 */ f32 mTeresaAlphaLevelDec; /* 0x6C8 */ u16 mTeresaWallThroughTime; /* 0x6CC */ f32 mTeresaAngleUp; /* 0x6D0 */ f32 mTeresaAngleDown; /* 0x6D4 */ f32 mTeresaWallReflectPower; /* 0x6D8 */ f32 mTeresaWallReflectReduction; /* 0x6DC */ u16 mTeresaWallReflectTime; /* 0x6E0 */ f32 mTeresaWaitHeight; /* 0x6E4 */ f32 mTeresaDropDownHeight; /* 0x6E8 */ f32 mTeresaBodyRadius; /* 0x6EC */ f32 mTeresaAirWalkTurnSpd; /* 0x6F0 */ f32 mTeresaDropSpeedMax; /* 0x6F4 */ f32 mTeresaRiseSpeedMax; /* 0x6F8 */ f32 mTeresaDropBase; /* 0x6FC */ f32 mTeresaUpInertia; /* 0x700 */ u16 mTeresaAccelTime; /* 0x702 */ u16 mTeresaTrgOnPushTime1; /* 0x704 */ u16 mTeresaTrgOnPushTime2; /* 0x708 */ f32 mTeresaOnePushAccel1; /* 0x70C */ f32 mTeresaOnePushAccel2; /* 0x710 */ f32 mTeresaNoPushDownRatio; /* 0x714 */ f32 mTeresaRisingBrake; /* 0x718 */ f32 mTeresaWindMovingBrake1; /* 0x71C */ f32 mTeresaWindMovingBrake2; /* 0x720 */ f32 mTeresaWindMovingBrake3; /* 0x724 */ f32 mSilhouetteZoffset; /* 0x728 */ u8 mRibbonColor[4]; /* 0x72C */ u8 mDamageFogLow; /* 0x72D */ u8 mDamageFogHigh; /* 0x730 */ f32 mStarPieceFogLevel; /* 0x734 */ u8 mStarPieceFogTime; /* 0x735 */ u8 mSearchLightAlphaLevel; /* 0x736 */ u8 mSearchLightBlurAlpha[3]; /* 0x73C */ f32 mSearchLightBlurScale[3]; /* 0x748 */ u8 mSearchLightColor[4]; /* 0x74C */ f32 mRasterV; /* 0x750 */ s32 mRasterSpeed; /* 0x754 */ f32 mRasterRange; /* 0x758 */ u16 mRacketHoldTime; /* 0x75A */ u16 mTornadoHoldTime; /* 0x75C */ u16 mMetalHoldTime; /* 0x75E */ u16 mFireModeTime; /* 0x760 */ u16 mIceModeTime; /* 0x764 */ f32 mHeadAngleFixMargin; /* 0x768 */ f32 mFrontAngleFixMargin; /* 0x76C */ u16 mCameraHeadRotationTimer; /* 0x770 */ f32 mHeadRotateRatio; /* 0x774 */ f32 mVibrationAbsorbAngleF; /* 0x778 */ f32 mVibrationAbsorbAngleH; /* 0x77C */ f32 mVibrationAbsorbAngleS; /* 0x780 */ f32 mSlopeAnimBlendRatio; /* 0x784 */ f32 mRotateHeadVecSpeedByGravityL; /* 0x788 */ f32 mRotateHeadVecSpeedByGravityM; /* 0x78C */ f32 mRotateHeadVecSpeedByGravityS; /* 0x790 */ f32 mLookMaxAngleH; /* 0x794 */ f32 mLookMaxAngleVP; /* 0x798 */ f32 mLookMaxAngleVM; /* 0x79C */ f32 mLookShoulderMoveMax; /* 0x7A0 */ u16 mRushInBlendTimer; }; /// @brief The accessor for player character constants. class MarioConst { friend class Mario; friend class MarioActor; public: /// @brief Creates a new `MarioConst`. MarioConst(); /// @brief Returns the working table of player character constants. MarioConstTable* getTable() const { return mTable[mCurrentTable]; } /// @brief Switches the working table of player character constants. /// @param tbl The new table index. void changeTable(u32 tbl) { mCurrentTable = tbl; } private: /// @brief The array of player character constant tables. /* 0x00 */ MarioConstTable* mTable[2]; /// @brief The index of the working player character constant table. /* 0x08 */ u32 mCurrentTable; };