#ifndef __DNAMP1_CTWEAKBALL_HPP__ #define __DNAMP1_CTWEAKBALL_HPP__ #include "../../DNACommon/Tweaks/ITweakBall.hpp" #include "zeus/CVector3f.hpp" namespace DataSpec { namespace DNAMP1 { struct CTweakBall final : public ITweakBall { DECL_YAML Delete __d; Value x4_maxTranslationAcceleration[8]; Value x24_translationFriction[8]; Value x44_translationMaxSpeed[8]; Value x64_; Value x68_; Value x6c_; Value x70_; Value x74_; Value x78_; Value x84_; Value x88_; Value x8c_; Value x90_; Value x94_; Value x98_; Value x9c_; Value xa0_; Value xa4_; Value xa8_; Value xac_; Value xb0_; Value xb4_; Value xb8_; Value xbc_; Value xc0_; Value xc4_ballForwardBrakingAcceleration[8]; Value xe4_ballGravity; Value xe8_ballWaterGravity; float xec_ = 10000.f; float xf0_ = 1000.f; float xf4_ = 40000.f; float xf8_ = 40000.f; float xfc_ = 40000.f; float x100_ = 40000.f; float x104_ = 40000.f; float x108_ = 40000.f; float x10c_ = 10000.f; float x110_ = 1000.f; float x114_ = 40000.f; float x118_ = 40000.f; float x11c_ = 40000.f; float x120_ = 40000.f; float x124_ = 40000.f; float x128_ = 40000.f; float x12c_ballSlipFactor[8] = { 10000.f, 10000.f, 1000.f, 10000.f, 2000.f, 2000.f, 2000.f, 2000.f }; Value x14c_; Value x150_; Value x158_; Value x154_; Value x15c_; Value x160_; Value x164_; Value x168_; Value x16c_; Value x170_; Value x174_; Value x178_; Value x17c_; Value x180_; Value x184_; Value x188_; Value x18c_; Value x198_; Value x19c_; Value x1a0_; Value x1a4_; Value x1a8_; Value x1ac_; Value x1b0_; Value x1b4_; Value x1b8_; Value x1c4_; Value x1c8_; Value x1cc_; Value x1d0_ballCameraControlDistance; Value x1d4_; Value x1d8_; Value x1dc_minimumAlignmentSpeed; Value x1e0_tireness; Value x1ec_maxLeanAngle; Value x1f0_tireToMarbleThresholdSpeed; Value x1f4_marbleToTireThresholdSpeed; Value x1f8_forceToLeanGain; Value x1fc_leanTrackingGain; Value x1e4_leftStickDivisor; Value x1e8_rightStickDivisor; Value x200_; Value x204_ballTouchRadius; float x208_; Value x20c_boostBallDrainTime; Value x218_boostBallMinChargeTime; Value x21c_boostBallMinRelativeSpeedForDamage; Value x220_boostBallChargeTime0; Value x224_boostBallChargeTime1; float x228_boostBallChargeTime2; Value x210_boostBallMaxChargeTime; Value x22c_boostBallIncrementalSpeed0; Value x230_boostBallIncrementalSpeed1; Value x234_boostBallIncrementalSpeed2; CTweakBall()=default; CTweakBall(athena::io::IStreamReader& r) { this->read(r); x74_ = zeus::degToRad(x74_); x90_ = zeus::degToRad(x90_); x15c_ = zeus::degToRad(x15c_); x16c_ = zeus::degToRad(x16c_); x174_ = zeus::degToRad(x174_); x17c_ = zeus::degToRad(x17c_); x184_ = zeus::degToRad(x184_); x188_ = zeus::degToRad(x188_); x1a8_ = zeus::degToRad(x1a8_); x1b0_ = zeus::degToRad(x1b0_); x1b4_ = zeus::degToRad(x1b4_); x1ec_maxLeanAngle = zeus::degToRad(x1ec_maxLeanAngle); } float GetMaxBallTranslationAcceleration(int s) const { return x4_maxTranslationAcceleration[s]; } float GetBallTranslationFriction(int s) const { return x24_translationFriction[s]; } float GetBallTranslationMaxSpeed(int s) const { return x44_translationMaxSpeed[s]; } float GetBallForwardBrakingAcceleration(int s) const { return xc4_ballForwardBrakingAcceleration[s]; } float GetBallGravity() const { return xe4_ballGravity; } float GetBallWaterGravity() const { return xe8_ballWaterGravity; } float GetBallSlipFactor(int s) const { return x12c_ballSlipFactor[s]; } float GetMinimumAlignmentSpeed() const { return x1dc_minimumAlignmentSpeed; } float GetTireness() const { return x1e0_tireness; } float GetMaxLeanAngle() const { return x1ec_maxLeanAngle; } float GetTireToMarbleThresholdSpeed() const { return x1f0_tireToMarbleThresholdSpeed; } float GetMarbleToTireThresholdSpeed() const { return x1f4_marbleToTireThresholdSpeed; } float GetForceToLeanGain() const { return x1f8_forceToLeanGain; } float GetLeanTrackingGain() const { return x1fc_leanTrackingGain; } float GetBallCameraControlDistance() const { return x1d0_ballCameraControlDistance; } float GetLeftStickDivisor() const { return x1e4_leftStickDivisor; } float GetRightStickDivisor() const { return x1e8_rightStickDivisor; } float GetBallTouchRadius() const { return x204_ballTouchRadius; } float GetBoostBallDrainTime() const { return x20c_boostBallDrainTime; } float GetBoostBallMaxChargeTime() const { return x210_boostBallMaxChargeTime; } float GetBoostBallMinChargeTime() const { return x218_boostBallMinChargeTime; } float GetBoostBallMinRelativeSpeedForDamage() const { return x21c_boostBallMinRelativeSpeedForDamage; } float GetBoostBallChargeTimeTable(int i) const { switch (i) { default: case 0: return x220_boostBallChargeTime0; case 1: return x224_boostBallChargeTime1; case 2: return x228_boostBallChargeTime2; } } float GetBoostBallIncrementalSpeedTable(int i) const { switch (i) { default: case 0: return x22c_boostBallIncrementalSpeed0; case 1: return x230_boostBallIncrementalSpeed1; case 2: return x234_boostBallIncrementalSpeed2; } } }; } } #endif // __DNAMP1_CTWEAKBALL_HPP__