Files
bigmak94andClaude Opus 5.5 4b395efe5c Add the Petari decompilation (SMGCommunity/Petari@0a5c660)
The sources of Petari (https://github.com/SMGCommunity/Petari), the
Super Mario Galaxy decompilation by the SMGCommunity, at commit
0a5c6608dc3b4c44a9aa68c2535d1793dc565f02, unchanged but for LF line
endings: LICENSE (as LICENSE-Petari.txt; CC0 1.0), include/, libs/ and
src/.  Left out: the game data Petari keeps from the original
executable, the error message archive (include/Game/System/
ErrorArchive.hpp) and two tables (src/Game/System/GalaxyID.bcsv and
StoryEvent.bcsv); GalaxyQuest's converter takes them from the player's
own disc.  The port's changes follow in the next commit, so
`git diff petari-base -- decomp` shows them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 01:59:38 +02:00

532 lines
20 KiB
C++

#pragma once
#include <revolution.h>
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;
};