More CPlayer implementations

This commit is contained in:
Jack Andersen 2017-08-18 20:52:13 -10:00
parent f8f7da070f
commit 3fa80babf6
23 changed files with 1625 additions and 824 deletions

View File

@ -22,8 +22,11 @@ struct ITweakPlayer : ITweak
virtual float GetVerticalDoubleJumpAccel() const=0; virtual float GetVerticalDoubleJumpAccel() const=0;
virtual float GetHorizontalDoubleJumpAccel() const=0; virtual float GetHorizontalDoubleJumpAccel() const=0;
virtual float GetWaterJumpFactor() const=0; virtual float GetWaterJumpFactor() const=0;
virtual float GetWaterBallJumpFactor() const=0;
virtual float GetLavaJumpFactor() const=0; virtual float GetLavaJumpFactor() const=0;
virtual float GetLavaBallJumpFactor() const=0;
virtual float GetPhazonJumpFactor() const=0; virtual float GetPhazonJumpFactor() const=0;
virtual float GetPhazonBallJumpFactor() const=0;
virtual float GetAllowedJumpTime() const=0; virtual float GetAllowedJumpTime() const=0;
virtual float GetAllowedDoubleJumpTime() const=0; virtual float GetAllowedDoubleJumpTime() const=0;
virtual float GetMinDoubleJumpWindow() const=0; virtual float GetMinDoubleJumpWindow() const=0;
@ -33,6 +36,8 @@ struct ITweakPlayer : ITweak
virtual float GetAllowedLedgeTime() const=0; virtual float GetAllowedLedgeTime() const=0;
virtual float GetDoubleJumpImpulse() const=0; virtual float GetDoubleJumpImpulse() const=0;
virtual float GetBackwardsForceMultiplier() const=0; virtual float GetBackwardsForceMultiplier() const=0;
virtual float GetBombJumpRadius() const=0;
virtual float GetBombJumpHeight() const=0;
virtual float GetEyeOffset() const=0; virtual float GetEyeOffset() const=0;
virtual float GetTurnSpeedMultiplier() const=0; virtual float GetTurnSpeedMultiplier() const=0;
virtual float GetFreeLookTurnSpeedMultiplier() const=0; virtual float GetFreeLookTurnSpeedMultiplier() const=0;
@ -40,10 +45,12 @@ struct ITweakPlayer : ITweak
virtual float GetFreeLookSnapSpeed() const=0; virtual float GetFreeLookSnapSpeed() const=0;
virtual float GetFreeLookCenteredThresholdAngle() const=0; virtual float GetFreeLookCenteredThresholdAngle() const=0;
virtual float GetFreeLookCenteredTime() const=0; virtual float GetFreeLookCenteredTime() const=0;
virtual float GetOrbitNormalDistance() const=0; virtual float GetOrbitModeTimer() const=0;
virtual float GetMaxUpwardOrbitLookAngle() const=0; virtual float GetOrbitUpperAngle() const=0;
virtual float GetMaxDownwardOrbitLookAngle() const=0; virtual float GetOrbitLowerAngle() const=0;
virtual float GetOrbitHorizAngle() const=0; virtual float GetOrbitHorizAngle() const=0;
virtual float GetOrbitMaxTargetDistance() const=0;
virtual float GetOrbitMaxLockDistance() const=0;
virtual float GetOrbitDistanceThreshold() const=0; virtual float GetOrbitDistanceThreshold() const=0;
virtual uint32_t GetOrbitScreenBoxHalfExtentX(int zone) const=0; virtual uint32_t GetOrbitScreenBoxHalfExtentX(int zone) const=0;
virtual uint32_t GetOrbitScreenBoxHalfExtentY(int zone) const=0; virtual uint32_t GetOrbitScreenBoxHalfExtentY(int zone) const=0;
@ -53,6 +60,7 @@ struct ITweakPlayer : ITweak
virtual uint32_t GetOrbitZoneIdealY(int zone) const=0; virtual uint32_t GetOrbitZoneIdealY(int zone) const=0;
virtual float GetOrbitNearX() const=0; virtual float GetOrbitNearX() const=0;
virtual float GetOrbitNearZ() const=0; virtual float GetOrbitNearZ() const=0;
virtual float GetOrbitFixedOffsetZDiff() const=0;
virtual float GetOrbitZRange() const=0; virtual float GetOrbitZRange() const=0;
virtual bool GetDashEnabled() const=0; virtual bool GetDashEnabled() const=0;
virtual bool GetDashOnButtonRelease() const=0; virtual bool GetDashOnButtonRelease() const=0;
@ -77,12 +85,14 @@ struct ITweakPlayer : ITweak
virtual float GetAimTargetTimer() const=0; virtual float GetAimTargetTimer() const=0;
virtual float GetAimAssistHorizontalAngle() const=0; virtual float GetAimAssistHorizontalAngle() const=0;
virtual float GetAimAssistVerticalAngle() const=0; virtual float GetAimAssistVerticalAngle() const=0;
virtual float GetScanningFrameSenseRange() const=0; virtual float GetScanMaxTargetDistance() const=0;
virtual float GetScanMaxLockDistance() const=0;
virtual bool GetMoveDuringFreeLook() const=0; virtual bool GetMoveDuringFreeLook() const=0;
virtual bool GetHoldButtonsForFreeLook() const=0; virtual bool GetHoldButtonsForFreeLook() const=0;
virtual bool GetTwoButtonsForFreeLook() const=0; virtual bool GetTwoButtonsForFreeLook() const=0;
virtual bool GetAimWhenOrbitingPoint() const=0; virtual bool GetAimWhenOrbitingPoint() const=0;
virtual bool GetStayInFreeLookWhileFiring() const=0; virtual bool GetStayInFreeLookWhileFiring() const=0;
virtual bool GetOrbitFixedOffset() const=0;
virtual bool GetGunButtonTogglesHolster() const=0; virtual bool GetGunButtonTogglesHolster() const=0;
virtual bool GetGunNotFiringHolstersGun() const=0; virtual bool GetGunNotFiringHolstersGun() const=0;
virtual float GetPlayerHeight() const=0; // x26c virtual float GetPlayerHeight() const=0; // x26c
@ -103,23 +113,26 @@ struct ITweakPlayer : ITweak
virtual float GetGrappleJumpForce() const=0; virtual float GetGrappleJumpForce() const=0;
virtual float GetGrappleReleaseTime() const=0; virtual float GetGrappleReleaseTime() const=0;
virtual uint32_t GetGrappleJumpMode() const=0; virtual uint32_t GetGrappleJumpMode() const=0;
virtual bool InvertGrappleTurn() const=0; virtual bool GetOrbitReleaseBreaksGrapple() const=0;
virtual bool GetInvertGrappleTurn() const=0;
virtual float GetHorizontalFreeLookAngleVel() const=0; virtual float GetHorizontalFreeLookAngleVel() const=0;
virtual float GetVerticalFreeLookAngleVel() const=0; // x134 virtual float GetVerticalFreeLookAngleVel() const=0; // x134
virtual float GetX184() const=0; // x184 virtual float GetOrbitCameraSpeed() const=0; // x184
virtual float GetX1fc() const=0; virtual float GetOrbitPreventionTime() const=0;
virtual float GetX288() const=0; // x288 virtual float GetJumpCameraPitchDownStart() const=0; // x288
virtual float GetX28c() const=0; // x28c virtual float GetJumpCameraPitchDownFull() const=0; // x28c
virtual float GetX290() const=0; // x290 virtual float GetJumpCameraPitchDownAngle() const=0; // x290
virtual float GetX294() const=0; // x294 virtual float GetFallCameraPitchDownStart() const=0; // x294
virtual float GetX298() const=0; // x298 virtual float GetFallCameraPitchDownFull() const=0; // x298
virtual float GetX29C() const=0; // x29c virtual float GetFallCameraPitchDownAngle() const=0; // x29c
virtual float GetX280() const=0; // x280 virtual float GetFirstPersonCameraSpeed() const=0; // x280
virtual float GetX2B0() const=0; // x2b0 virtual float GetGrappleCameraSpeed() const=0; // x2b0
virtual float GetX14C() const=0; // x14c virtual float GetFreeLookDampenFactor() const=0; // x14c
virtual float GetLeftLogicalThreshold() const=0; virtual float GetLeftLogicalThreshold() const=0;
virtual float GetRightLogicalThreshold() const=0; virtual float GetRightLogicalThreshold() const=0;
virtual float GetX164(int type) const=0; virtual float GetOrbitZBasedDistance(int type) const=0;
virtual float GetOrbitNormalDistance(int type) const=0;
virtual float GetOrbitMaxDistance(int type) const=0;
virtual float GetFrozenTimeout() const=0; virtual float GetFrozenTimeout() const=0;
virtual uint32_t GetIceBreakJumpCount() const=0; virtual uint32_t GetIceBreakJumpCount() const=0;
virtual float GetVariaDamageReduction() const=0; virtual float GetVariaDamageReduction() const=0;

View File

@ -117,16 +117,16 @@ void CTweakPlayer::read(athena::io::IStreamReader& __dna_reader)
xd8_horizontalDoubleJumpAccel = __dna_reader.readFloatBig(); xd8_horizontalDoubleJumpAccel = __dna_reader.readFloatBig();
/* xdc_waterJumpFactor */ /* xdc_waterJumpFactor */
xdc_waterJumpFactor = __dna_reader.readFloatBig(); xdc_waterJumpFactor = __dna_reader.readFloatBig();
/* xe0_ */ /* xe0_waterBallJumpFactor */
xe0_ = __dna_reader.readFloatBig(); xe0_waterBallJumpFactor = __dna_reader.readFloatBig();
/* xe4_lavaJumpFactor */ /* xe4_lavaJumpFactor */
xe4_lavaJumpFactor = __dna_reader.readFloatBig(); xe4_lavaJumpFactor = __dna_reader.readFloatBig();
/* xe8_ */ /* xe8_lavaBallJumpFactor */
xe8_ = __dna_reader.readFloatBig(); xe8_lavaBallJumpFactor = __dna_reader.readFloatBig();
/* xec_phazonJumpFactor */ /* xec_phazonJumpFactor */
xec_phazonJumpFactor = __dna_reader.readFloatBig(); xec_phazonJumpFactor = __dna_reader.readFloatBig();
/* xf0_ */ /* xf0_phazonBallJumpFactor */
xf0_ = __dna_reader.readFloatBig(); xf0_phazonBallJumpFactor = __dna_reader.readFloatBig();
/* xf4_allowedJumpTime */ /* xf4_allowedJumpTime */
xf4_allowedJumpTime = __dna_reader.readFloatBig(); xf4_allowedJumpTime = __dna_reader.readFloatBig();
/* xf8_allowedDoubleJumpTime */ /* xf8_allowedDoubleJumpTime */
@ -147,10 +147,10 @@ void CTweakPlayer::read(athena::io::IStreamReader& __dna_reader)
x114_doubleJumpImpulse = __dna_reader.readFloatBig(); x114_doubleJumpImpulse = __dna_reader.readFloatBig();
/* x118_backwardsForceMultiplier */ /* x118_backwardsForceMultiplier */
x118_backwardsForceMultiplier = __dna_reader.readFloatBig(); x118_backwardsForceMultiplier = __dna_reader.readFloatBig();
/* x11c_ */ /* x11c_bombJumpRadius */
x11c_ = __dna_reader.readFloatBig(); x11c_bombJumpRadius = __dna_reader.readFloatBig();
/* x120_ */ /* x120_bombJumpHeight */
x120_ = __dna_reader.readFloatBig(); x120_bombJumpHeight = __dna_reader.readFloatBig();
/* x124_eyeOffset */ /* x124_eyeOffset */
x124_eyeOffset = __dna_reader.readFloatBig(); x124_eyeOffset = __dna_reader.readFloatBig();
/* x128_turnSpeedMultiplier */ /* x128_turnSpeedMultiplier */
@ -171,8 +171,8 @@ void CTweakPlayer::read(athena::io::IStreamReader& __dna_reader)
x144_freeLookCenteredThresholdAngle = __dna_reader.readFloatBig(); x144_freeLookCenteredThresholdAngle = __dna_reader.readFloatBig();
/* x148_freeLookCenteredTime */ /* x148_freeLookCenteredTime */
x148_freeLookCenteredTime = __dna_reader.readFloatBig(); x148_freeLookCenteredTime = __dna_reader.readFloatBig();
/* x14c_ */ /* x14c_freeLookDampenFactor */
x14c_ = __dna_reader.readFloatBig(); x14c_freeLookDampenFactor = __dna_reader.readFloatBig();
/* x150_leftDiv */ /* x150_leftDiv */
x150_leftDiv = __dna_reader.readFloatBig(); x150_leftDiv = __dna_reader.readFloatBig();
/* x154_rightDiv */ /* x154_rightDiv */
@ -203,8 +203,8 @@ void CTweakPlayer::read(athena::io::IStreamReader& __dna_reader)
x229_27_ = __dna_reader.readBool(); x229_27_ = __dna_reader.readBool();
/* x229_28_ */ /* x229_28_ */
x229_28_ = __dna_reader.readBool(); x229_28_ = __dna_reader.readBool();
/* x229_29_ */ /* x229_29_orbitFixedOffset */
x229_29_ = __dna_reader.readBool(); x229_29_orbitFixedOffset = __dna_reader.readBool();
/* x229_30_gunButtonTogglesHolster */ /* x229_30_gunButtonTogglesHolster */
x229_30_gunButtonTogglesHolster = __dna_reader.readBool(); x229_30_gunButtonTogglesHolster = __dna_reader.readBool();
/* x229_31_gunNotFiringHolstersGun */ /* x229_31_gunNotFiringHolstersGun */
@ -251,44 +251,44 @@ void CTweakPlayer::read(athena::io::IStreamReader& __dna_reader)
x264_aimAssistHorizontalAngle = __dna_reader.readFloatBig(); x264_aimAssistHorizontalAngle = __dna_reader.readFloatBig();
/* x268_aimAssistVerticalAngle */ /* x268_aimAssistVerticalAngle */
x268_aimAssistVerticalAngle = __dna_reader.readFloatBig(); x268_aimAssistVerticalAngle = __dna_reader.readFloatBig();
/* x158_[0] */ /* x158_orbitZBasedDistance[0] */
x158_[0] = __dna_reader.readFloatBig(); x158_orbitZBasedDistance[0] = __dna_reader.readFloatBig();
/* x164_[0] */ /* x164_orbitNormalDistance[0] */
x164_[0] = __dna_reader.readFloatBig(); x164_orbitNormalDistance[0] = __dna_reader.readFloatBig();
/* x170_[0] */ /* x170_orbitMaxDistance[0] */
x170_[0] = __dna_reader.readFloatBig(); x170_orbitMaxDistance[0] = __dna_reader.readFloatBig();
/* x158_[1] */ /* x158_orbitZBasedDistance[1] */
x158_[1] = __dna_reader.readFloatBig(); x158_orbitZBasedDistance[1] = __dna_reader.readFloatBig();
/* x164_[1] */ /* x164_orbitNormalDistance[1] */
x164_[1] = __dna_reader.readFloatBig(); x164_orbitNormalDistance[1] = __dna_reader.readFloatBig();
/* x170_[1] */ /* x170_orbitMaxDistance[1] */
x170_[1] = __dna_reader.readFloatBig(); x170_orbitMaxDistance[1] = __dna_reader.readFloatBig();
/* x158_[2] */ /* x158_orbitZBasedDistance[2] */
x158_[2] = __dna_reader.readFloatBig(); x158_orbitZBasedDistance[2] = __dna_reader.readFloatBig();
/* x164_[2] */ /* x164_orbitNormalDistance[2] */
x164_[2] = __dna_reader.readFloatBig(); x164_orbitNormalDistance[2] = __dna_reader.readFloatBig();
/* x170_[2] */ /* x170_orbitMaxDistance[2] */
x170_[2] = __dna_reader.readFloatBig(); x170_orbitMaxDistance[2] = __dna_reader.readFloatBig();
/* x17c_ */ /* x17c_ */
x17c_ = __dna_reader.readFloatBig(); x17c_ = __dna_reader.readFloatBig();
/* x180_ */ /* x180_orbitModeTimer */
x180_orbitNormalDistance = __dna_reader.readFloatBig(); x180_orbitModeTimer = __dna_reader.readFloatBig();
/* x184_ */ /* x184_orbitCameraSpeed */
x184_ = __dna_reader.readFloatBig(); x184_orbitCameraSpeed = __dna_reader.readFloatBig();
/* x188_maxUpwardOrbitLookAngle */ /* x188_orbitUpperAngle */
x188_maxUpwardOrbitLookAngle = __dna_reader.readFloatBig(); x188_orbitUpperAngle = __dna_reader.readFloatBig();
/* x18c_maxDownwardOrbitLookAngle */ /* x18c_orbitLowerAngle */
x18c_maxDownwardOrbitLookAngle = __dna_reader.readFloatBig(); x18c_orbitLowerAngle = __dna_reader.readFloatBig();
/* x190_orbitHorizAngle */ /* x190_orbitHorizAngle */
x190_orbitHorizAngle = __dna_reader.readFloatBig(); x190_orbitHorizAngle = __dna_reader.readFloatBig();
/* x194_ */ /* x194_ */
x194_ = __dna_reader.readFloatBig(); x194_ = __dna_reader.readFloatBig();
/* x198_ */ /* x198_ */
x198_ = __dna_reader.readFloatBig(); x198_ = __dna_reader.readFloatBig();
/* x19c_ */ /* x19c_orbitMaxTargetDistance */
x19c_ = __dna_reader.readFloatBig(); x19c_orbitMaxTargetDistance = __dna_reader.readFloatBig();
/* x1a0_ */ /* x1a0_orbitMaxLockDistance */
x1a0_ = __dna_reader.readFloatBig(); x1a0_orbitMaxLockDistance = __dna_reader.readFloatBig();
/* x1a4_orbitDistanceThreshold */ /* x1a4_orbitDistanceThreshold */
x1a4_orbitDistanceThreshold = __dna_reader.readFloatBig(); x1a4_orbitDistanceThreshold = __dna_reader.readFloatBig();
/* x1a8_orbitScreenBoxHalfExtentX[0] */ /* x1a8_orbitScreenBoxHalfExtentX[0] */
@ -323,8 +323,8 @@ void CTweakPlayer::read(athena::io::IStreamReader& __dna_reader)
x1e0_ = __dna_reader.readFloatBig(); x1e0_ = __dna_reader.readFloatBig();
/* x1e4_ */ /* x1e4_ */
x1e4_ = __dna_reader.readFloatBig(); x1e4_ = __dna_reader.readFloatBig();
/* x1e8_ */ /* x1e8_orbitFixedOffsetZDiff */
x1e8_ = __dna_reader.readFloatBig(); x1e8_orbitFixedOffsetZDiff = __dna_reader.readFloatBig();
/* x1ec_orbitZRange */ /* x1ec_orbitZRange */
x1ec_orbitZRange = __dna_reader.readFloatBig(); x1ec_orbitZRange = __dna_reader.readFloatBig();
/* x1f0_ */ /* x1f0_ */
@ -333,8 +333,8 @@ void CTweakPlayer::read(athena::io::IStreamReader& __dna_reader)
x1f4_ = __dna_reader.readFloatBig(); x1f4_ = __dna_reader.readFloatBig();
/* x1f8_ */ /* x1f8_ */
x1f8_ = __dna_reader.readFloatBig(); x1f8_ = __dna_reader.readFloatBig();
/* x1fc_ */ /* x1fc_orbitPreventionTime */
x1fc_ = __dna_reader.readFloatBig(); x1fc_orbitPreventionTime = __dna_reader.readFloatBig();
/* x200_24_dashEnabled */ /* x200_24_dashEnabled */
x200_24_dashEnabled = __dna_reader.readBool(); x200_24_dashEnabled = __dna_reader.readBool();
/* x200_25_dashOnButtonRelease */ /* x200_25_dashOnButtonRelease */
@ -357,10 +357,10 @@ void CTweakPlayer::read(athena::io::IStreamReader& __dna_reader)
x21c_25_scanFreezesGame = __dna_reader.readBool(); x21c_25_scanFreezesGame = __dna_reader.readBool();
/* x21c_26_orbitWhileScanning */ /* x21c_26_orbitWhileScanning */
x21c_26_orbitWhileScanning = __dna_reader.readBool(); x21c_26_orbitWhileScanning = __dna_reader.readBool();
/* x220_ */ /* x220_scanMaxTargetDistance */
x220_ = __dna_reader.readFloatBig(); x220_scanMaxTargetDistance = __dna_reader.readFloatBig();
/* x224_scanningFrameSenseRange */ /* x224_scanMaxLockDistance */
x224_scanningFrameSenseRange = __dna_reader.readFloatBig(); x224_scanMaxLockDistance = __dna_reader.readFloatBig();
/* x2a0_orbitDistanceMax */ /* x2a0_orbitDistanceMax */
x2a0_orbitDistanceMax = __dna_reader.readFloatBig(); x2a0_orbitDistanceMax = __dna_reader.readFloatBig();
/* x2a4_grappleSwingLength */ /* x2a4_grappleSwingLength */
@ -370,7 +370,7 @@ void CTweakPlayer::read(athena::io::IStreamReader& __dna_reader)
/* x2ac_grapplePullSpeedMin */ /* x2ac_grapplePullSpeedMin */
x2ac_grapplePullSpeedMin = __dna_reader.readFloatBig(); x2ac_grapplePullSpeedMin = __dna_reader.readFloatBig();
/* x2b0_ */ /* x2b0_ */
x2b0_ = __dna_reader.readFloatBig(); x2b0_grappleCameraSpeed = __dna_reader.readFloatBig();
/* x2b4_maxGrappleLockedTurnAlignDistance */ /* x2b4_maxGrappleLockedTurnAlignDistance */
x2b4_maxGrappleLockedTurnAlignDistance = __dna_reader.readFloatBig(); x2b4_maxGrappleLockedTurnAlignDistance = __dna_reader.readFloatBig();
/* x2b8_grapplePullSpeedProportion */ /* x2b8_grapplePullSpeedProportion */
@ -387,9 +387,9 @@ void CTweakPlayer::read(athena::io::IStreamReader& __dna_reader)
x2cc_grappleReleaseTime = __dna_reader.readFloatBig(); x2cc_grappleReleaseTime = __dna_reader.readFloatBig();
/* x2d0_grappleJumpMode */ /* x2d0_grappleJumpMode */
x2d0_grappleJumpMode = __dna_reader.readUint32Big(); x2d0_grappleJumpMode = __dna_reader.readUint32Big();
/* x2d4_ */ /* x2d4_orbitReleaseBreaksGrapple */
x2d4_ = __dna_reader.readBool(); x2d4_orbitReleaseBreaksGrapple = __dna_reader.readBool();
/* x2d5_ */ /* x2d5_invertGrappleTurn */
x2d5_invertGrappleTurn = __dna_reader.readBool(); x2d5_invertGrappleTurn = __dna_reader.readBool();
/* x2d8_ */ /* x2d8_ */
x2d8_ = __dna_reader.readFloatBig(); x2d8_ = __dna_reader.readFloatBig();
@ -410,21 +410,21 @@ void CTweakPlayer::read(athena::io::IStreamReader& __dna_reader)
/* x27c_playerBallHalfExtent */ /* x27c_playerBallHalfExtent */
x27c_playerBallHalfExtent = __dna_reader.readFloatBig(); x27c_playerBallHalfExtent = __dna_reader.readFloatBig();
/* x280_ */ /* x280_ */
x280_ = __dna_reader.readFloatBig(); x280_firstPersonCameraSpeed = __dna_reader.readFloatBig();
/* x284_ */ /* x284_ */
x284_ = __dna_reader.readFloatBig(); x284_ = __dna_reader.readFloatBig();
/* x288_ */ /* x288_jumpCameraPitchDownStart */
x288_ = __dna_reader.readFloatBig(); x288_jumpCameraPitchDownStart = __dna_reader.readFloatBig();
/* x28c_ */ /* x28c_jumpCameraPitchDownFull */
x28c_ = __dna_reader.readFloatBig(); x28c_jumpCameraPitchDownFull = __dna_reader.readFloatBig();
/* x290_ */ /* x290_jumpCameraPitchDownAngle */
x290_ = __dna_reader.readFloatBig(); x290_jumpCameraPitchDownAngle = __dna_reader.readFloatBig();
/* x294_ */ /* x294_fallCameraPitchDownStart */
x294_ = __dna_reader.readFloatBig(); x294_fallCameraPitchDownStart = __dna_reader.readFloatBig();
/* x298_ */ /* x298_fallCameraPitchDownFull */
x298_ = __dna_reader.readFloatBig(); x298_fallCameraPitchDownFull = __dna_reader.readFloatBig();
/* x29c_ */ /* x29c_fallCameraPitchDownAngle */
x29c_ = __dna_reader.readFloatBig(); x29c_fallCameraPitchDownAngle = __dna_reader.readFloatBig();
/* x2e8_ */ /* x2e8_ */
x2e8_ = __dna_reader.readFloatBig(); x2e8_ = __dna_reader.readFloatBig();
/* x2ec_ */ /* x2ec_ */
@ -557,16 +557,16 @@ void CTweakPlayer::write(athena::io::IStreamWriter& __dna_writer) const
__dna_writer.writeFloatBig(xd8_horizontalDoubleJumpAccel); __dna_writer.writeFloatBig(xd8_horizontalDoubleJumpAccel);
/* xdc_waterJumpFactor */ /* xdc_waterJumpFactor */
__dna_writer.writeFloatBig(xdc_waterJumpFactor); __dna_writer.writeFloatBig(xdc_waterJumpFactor);
/* xe0_ */ /* xe0_waterBallJumpFactor */
__dna_writer.writeFloatBig(xe0_); __dna_writer.writeFloatBig(xe0_waterBallJumpFactor);
/* xe4_lavaJumpFactor */ /* xe4_lavaJumpFactor */
__dna_writer.writeFloatBig(xe4_lavaJumpFactor); __dna_writer.writeFloatBig(xe4_lavaJumpFactor);
/* xe8_ */ /* xe8_lavaBallJumpFactor */
__dna_writer.writeFloatBig(xe8_); __dna_writer.writeFloatBig(xe8_lavaBallJumpFactor);
/* xec_phazonJumpFactor */ /* xec_phazonJumpFactor */
__dna_writer.writeFloatBig(xec_phazonJumpFactor); __dna_writer.writeFloatBig(xec_phazonJumpFactor);
/* xf0_ */ /* xf0_phazonBallJumpFactor */
__dna_writer.writeFloatBig(xf0_); __dna_writer.writeFloatBig(xf0_phazonBallJumpFactor);
/* xf4_allowedJumpTime */ /* xf4_allowedJumpTime */
__dna_writer.writeFloatBig(xf4_allowedJumpTime); __dna_writer.writeFloatBig(xf4_allowedJumpTime);
/* xf8_allowedDoubleJumpTime */ /* xf8_allowedDoubleJumpTime */
@ -587,10 +587,10 @@ void CTweakPlayer::write(athena::io::IStreamWriter& __dna_writer) const
__dna_writer.writeFloatBig(x114_doubleJumpImpulse); __dna_writer.writeFloatBig(x114_doubleJumpImpulse);
/* x118_backwardsForceMultiplier */ /* x118_backwardsForceMultiplier */
__dna_writer.writeFloatBig(x118_backwardsForceMultiplier); __dna_writer.writeFloatBig(x118_backwardsForceMultiplier);
/* x11c_ */ /* x11c_bombJumpRadius */
__dna_writer.writeFloatBig(x11c_); __dna_writer.writeFloatBig(x11c_bombJumpRadius);
/* x120_ */ /* x120_bombJumpHeight */
__dna_writer.writeFloatBig(x120_); __dna_writer.writeFloatBig(x120_bombJumpHeight);
/* x124_eyeOffset */ /* x124_eyeOffset */
__dna_writer.writeFloatBig(x124_eyeOffset); __dna_writer.writeFloatBig(x124_eyeOffset);
/* x128_turnSpeedMultiplier */ /* x128_turnSpeedMultiplier */
@ -611,8 +611,8 @@ void CTweakPlayer::write(athena::io::IStreamWriter& __dna_writer) const
__dna_writer.writeFloatBig(x144_freeLookCenteredThresholdAngle); __dna_writer.writeFloatBig(x144_freeLookCenteredThresholdAngle);
/* x148_freeLookCenteredTime */ /* x148_freeLookCenteredTime */
__dna_writer.writeFloatBig(x148_freeLookCenteredTime); __dna_writer.writeFloatBig(x148_freeLookCenteredTime);
/* x14c_ */ /* x14c_freeLookDampenFactor */
__dna_writer.writeFloatBig(x14c_); __dna_writer.writeFloatBig(x14c_freeLookDampenFactor);
/* x150_leftDiv */ /* x150_leftDiv */
__dna_writer.writeFloatBig(x150_leftDiv); __dna_writer.writeFloatBig(x150_leftDiv);
/* x154_rightDiv */ /* x154_rightDiv */
@ -643,8 +643,8 @@ void CTweakPlayer::write(athena::io::IStreamWriter& __dna_writer) const
__dna_writer.writeBool(x229_27_); __dna_writer.writeBool(x229_27_);
/* x229_28_ */ /* x229_28_ */
__dna_writer.writeBool(x229_28_); __dna_writer.writeBool(x229_28_);
/* x229_29_ */ /* x229_29_orbitFixedOffset */
__dna_writer.writeBool(x229_29_); __dna_writer.writeBool(x229_29_orbitFixedOffset);
/* x229_30_gunButtonTogglesHolster */ /* x229_30_gunButtonTogglesHolster */
__dna_writer.writeBool(x229_30_gunButtonTogglesHolster); __dna_writer.writeBool(x229_30_gunButtonTogglesHolster);
/* x229_31_gunNotFiringHolstersGun */ /* x229_31_gunNotFiringHolstersGun */
@ -691,44 +691,44 @@ void CTweakPlayer::write(athena::io::IStreamWriter& __dna_writer) const
__dna_writer.writeFloatBig(x264_aimAssistHorizontalAngle); __dna_writer.writeFloatBig(x264_aimAssistHorizontalAngle);
/* x268_aimAssistVerticalAngle */ /* x268_aimAssistVerticalAngle */
__dna_writer.writeFloatBig(x268_aimAssistVerticalAngle); __dna_writer.writeFloatBig(x268_aimAssistVerticalAngle);
/* x158_[0] */ /* x158_orbitZBasedDistance[0] */
__dna_writer.writeFloatBig(x158_[0]); __dna_writer.writeFloatBig(x158_orbitZBasedDistance[0]);
/* x164_[0] */ /* x164_orbitNormalDistance[0] */
__dna_writer.writeFloatBig(x164_[0]); __dna_writer.writeFloatBig(x164_orbitNormalDistance[0]);
/* x170_[0] */ /* x170_orbitMaxDistance[0] */
__dna_writer.writeFloatBig(x170_[0]); __dna_writer.writeFloatBig(x170_orbitMaxDistance[0]);
/* x158_[1] */ /* x158_orbitZBasedDistance[1] */
__dna_writer.writeFloatBig(x158_[1]); __dna_writer.writeFloatBig(x158_orbitZBasedDistance[1]);
/* x164_[1] */ /* x164_orbitNormalDistance[1] */
__dna_writer.writeFloatBig(x164_[1]); __dna_writer.writeFloatBig(x164_orbitNormalDistance[1]);
/* x170_[1] */ /* x170_orbitMaxDistance[1] */
__dna_writer.writeFloatBig(x170_[1]); __dna_writer.writeFloatBig(x170_orbitMaxDistance[1]);
/* x158_[2] */ /* x158_orbitZBasedDistance[2] */
__dna_writer.writeFloatBig(x158_[2]); __dna_writer.writeFloatBig(x158_orbitZBasedDistance[2]);
/* x164_[2] */ /* x164_orbitNormalDistance[2] */
__dna_writer.writeFloatBig(x164_[2]); __dna_writer.writeFloatBig(x164_orbitNormalDistance[2]);
/* x170_[2] */ /* x170_orbitMaxDistance[2] */
__dna_writer.writeFloatBig(x170_[2]); __dna_writer.writeFloatBig(x170_orbitMaxDistance[2]);
/* x17c_ */ /* x17c_ */
__dna_writer.writeFloatBig(x17c_); __dna_writer.writeFloatBig(x17c_);
/* x180_ */ /* x180_orbitModeTimer */
__dna_writer.writeFloatBig(x180_orbitNormalDistance); __dna_writer.writeFloatBig(x180_orbitModeTimer);
/* x184_ */ /* x184_orbitCameraSpeed */
__dna_writer.writeFloatBig(x184_); __dna_writer.writeFloatBig(x184_orbitCameraSpeed);
/* x188_maxUpwardOrbitLookAngle */ /* x188_orbitUpperAngle */
__dna_writer.writeFloatBig(x188_maxUpwardOrbitLookAngle); __dna_writer.writeFloatBig(x188_orbitUpperAngle);
/* x18c_maxDownwardOrbitLookAngle */ /* x18c_orbitLowerAngle */
__dna_writer.writeFloatBig(x18c_maxDownwardOrbitLookAngle); __dna_writer.writeFloatBig(x18c_orbitLowerAngle);
/* x190_orbitHorizAngle */ /* x190_orbitHorizAngle */
__dna_writer.writeFloatBig(x190_orbitHorizAngle); __dna_writer.writeFloatBig(x190_orbitHorizAngle);
/* x194_ */ /* x194_ */
__dna_writer.writeFloatBig(x194_); __dna_writer.writeFloatBig(x194_);
/* x198_ */ /* x198_ */
__dna_writer.writeFloatBig(x198_); __dna_writer.writeFloatBig(x198_);
/* x19c_ */ /* x19c_orbitMaxTargetDistance */
__dna_writer.writeFloatBig(x19c_); __dna_writer.writeFloatBig(x19c_orbitMaxTargetDistance);
/* x1a0_ */ /* x1a0_orbitMaxLockDistance */
__dna_writer.writeFloatBig(x1a0_); __dna_writer.writeFloatBig(x1a0_orbitMaxLockDistance);
/* x1a4_orbitDistanceThreshold */ /* x1a4_orbitDistanceThreshold */
__dna_writer.writeFloatBig(x1a4_orbitDistanceThreshold); __dna_writer.writeFloatBig(x1a4_orbitDistanceThreshold);
/* x1a8_orbitScreenBoxHalfExtentX[0] */ /* x1a8_orbitScreenBoxHalfExtentX[0] */
@ -763,8 +763,8 @@ void CTweakPlayer::write(athena::io::IStreamWriter& __dna_writer) const
__dna_writer.writeFloatBig(x1e0_); __dna_writer.writeFloatBig(x1e0_);
/* x1e4_ */ /* x1e4_ */
__dna_writer.writeFloatBig(x1e4_); __dna_writer.writeFloatBig(x1e4_);
/* x1e8_ */ /* x1e8_orbitFixedOffsetZDiff */
__dna_writer.writeFloatBig(x1e8_); __dna_writer.writeFloatBig(x1e8_orbitFixedOffsetZDiff);
/* x1ec_orbitZRange */ /* x1ec_orbitZRange */
__dna_writer.writeFloatBig(x1ec_orbitZRange); __dna_writer.writeFloatBig(x1ec_orbitZRange);
/* x1f0_ */ /* x1f0_ */
@ -773,8 +773,8 @@ void CTweakPlayer::write(athena::io::IStreamWriter& __dna_writer) const
__dna_writer.writeFloatBig(x1f4_); __dna_writer.writeFloatBig(x1f4_);
/* x1f8_ */ /* x1f8_ */
__dna_writer.writeFloatBig(x1f8_); __dna_writer.writeFloatBig(x1f8_);
/* x1fc_ */ /* x1fc_orbitPreventionTime */
__dna_writer.writeFloatBig(x1fc_); __dna_writer.writeFloatBig(x1fc_orbitPreventionTime);
/* x200_24_dashEnabled */ /* x200_24_dashEnabled */
__dna_writer.writeBool(x200_24_dashEnabled); __dna_writer.writeBool(x200_24_dashEnabled);
/* x200_25_dashOnButtonRelease */ /* x200_25_dashOnButtonRelease */
@ -797,10 +797,10 @@ void CTweakPlayer::write(athena::io::IStreamWriter& __dna_writer) const
__dna_writer.writeBool(x21c_25_scanFreezesGame); __dna_writer.writeBool(x21c_25_scanFreezesGame);
/* x21c_26_orbitWhileScanning */ /* x21c_26_orbitWhileScanning */
__dna_writer.writeBool(x21c_26_orbitWhileScanning); __dna_writer.writeBool(x21c_26_orbitWhileScanning);
/* x220_ */ /* x220_scanMaxTargetDistance */
__dna_writer.writeFloatBig(x220_); __dna_writer.writeFloatBig(x220_scanMaxTargetDistance);
/* x224_scanningFrameSenseRange */ /* x224_scanMaxLockDistance */
__dna_writer.writeFloatBig(x224_scanningFrameSenseRange); __dna_writer.writeFloatBig(x224_scanMaxLockDistance);
/* x2a0_orbitDistanceMax */ /* x2a0_orbitDistanceMax */
__dna_writer.writeFloatBig(x2a0_orbitDistanceMax); __dna_writer.writeFloatBig(x2a0_orbitDistanceMax);
/* x2a4_grappleSwingLength */ /* x2a4_grappleSwingLength */
@ -810,7 +810,7 @@ void CTweakPlayer::write(athena::io::IStreamWriter& __dna_writer) const
/* x2ac_grapplePullSpeedMin */ /* x2ac_grapplePullSpeedMin */
__dna_writer.writeFloatBig(x2ac_grapplePullSpeedMin); __dna_writer.writeFloatBig(x2ac_grapplePullSpeedMin);
/* x2b0_ */ /* x2b0_ */
__dna_writer.writeFloatBig(x2b0_); __dna_writer.writeFloatBig(x2b0_grappleCameraSpeed);
/* x2b4_maxGrappleLockedTurnAlignDistance */ /* x2b4_maxGrappleLockedTurnAlignDistance */
__dna_writer.writeFloatBig(x2b4_maxGrappleLockedTurnAlignDistance); __dna_writer.writeFloatBig(x2b4_maxGrappleLockedTurnAlignDistance);
/* x2b8_grapplePullSpeedProportion */ /* x2b8_grapplePullSpeedProportion */
@ -827,9 +827,9 @@ void CTweakPlayer::write(athena::io::IStreamWriter& __dna_writer) const
__dna_writer.writeFloatBig(x2cc_grappleReleaseTime); __dna_writer.writeFloatBig(x2cc_grappleReleaseTime);
/* x2d0_grappleJumpMode */ /* x2d0_grappleJumpMode */
__dna_writer.writeUint32Big(x2d0_grappleJumpMode); __dna_writer.writeUint32Big(x2d0_grappleJumpMode);
/* x2d4_ */ /* x2d4_orbitReleaseBreaksGrapple */
__dna_writer.writeBool(x2d4_); __dna_writer.writeBool(x2d4_orbitReleaseBreaksGrapple);
/* x2d5_ */ /* x2d5_invertGrappleTurn */
__dna_writer.writeBool(x2d5_invertGrappleTurn); __dna_writer.writeBool(x2d5_invertGrappleTurn);
/* x2d8_ */ /* x2d8_ */
__dna_writer.writeFloatBig(x2d8_); __dna_writer.writeFloatBig(x2d8_);
@ -850,21 +850,21 @@ void CTweakPlayer::write(athena::io::IStreamWriter& __dna_writer) const
/* x27c_playerBallHalfExtent */ /* x27c_playerBallHalfExtent */
__dna_writer.writeFloatBig(x27c_playerBallHalfExtent); __dna_writer.writeFloatBig(x27c_playerBallHalfExtent);
/* x280_ */ /* x280_ */
__dna_writer.writeFloatBig(x280_); __dna_writer.writeFloatBig(x280_firstPersonCameraSpeed);
/* x284_ */ /* x284_ */
__dna_writer.writeFloatBig(x284_); __dna_writer.writeFloatBig(x284_);
/* x288_ */ /* x288_jumpCameraPitchDownStart */
__dna_writer.writeFloatBig(x288_); __dna_writer.writeFloatBig(x288_jumpCameraPitchDownStart);
/* x28c_ */ /* x28c_jumpCameraPitchDownFull */
__dna_writer.writeFloatBig(x28c_); __dna_writer.writeFloatBig(x28c_jumpCameraPitchDownFull);
/* x290_ */ /* x290_jumpCameraPitchDownAngle */
__dna_writer.writeFloatBig(x290_); __dna_writer.writeFloatBig(x290_jumpCameraPitchDownAngle);
/* x294_ */ /* x294_fallCameraPitchDownStart */
__dna_writer.writeFloatBig(x294_); __dna_writer.writeFloatBig(x294_fallCameraPitchDownStart);
/* x298_ */ /* x298_fallCameraPitchDownFull */
__dna_writer.writeFloatBig(x298_); __dna_writer.writeFloatBig(x298_fallCameraPitchDownFull);
/* x29c_ */ /* x29c_fallCameraPitchDownAngle */
__dna_writer.writeFloatBig(x29c_); __dna_writer.writeFloatBig(x29c_fallCameraPitchDownAngle);
/* x2e8_ */ /* x2e8_ */
__dna_writer.writeFloatBig(x2e8_); __dna_writer.writeFloatBig(x2e8_);
/* x2ec_ */ /* x2ec_ */
@ -1027,16 +1027,16 @@ void CTweakPlayer::read(athena::io::YAMLDocReader& __dna_docin)
xd8_horizontalDoubleJumpAccel = __dna_docin.readFloat("xd8_horizontalDoubleJumpAccel"); xd8_horizontalDoubleJumpAccel = __dna_docin.readFloat("xd8_horizontalDoubleJumpAccel");
/* xdc_waterJumpFactor */ /* xdc_waterJumpFactor */
xdc_waterJumpFactor = __dna_docin.readFloat("xdc_waterJumpFactor"); xdc_waterJumpFactor = __dna_docin.readFloat("xdc_waterJumpFactor");
/* xe0_ */ /* xe0_waterBallJumpFactor */
xe0_ = __dna_docin.readFloat("xe0_"); xe0_waterBallJumpFactor = __dna_docin.readFloat("xe0_waterBallJumpFactor");
/* xe4_lavaJumpFactor */ /* xe4_lavaJumpFactor */
xe4_lavaJumpFactor = __dna_docin.readFloat("xe4_lavaJumpFactor"); xe4_lavaJumpFactor = __dna_docin.readFloat("xe4_lavaJumpFactor");
/* xe8_ */ /* xe8_lavaBallJumpFactor */
xe8_ = __dna_docin.readFloat("xe8_"); xe8_lavaBallJumpFactor = __dna_docin.readFloat("xe8_lavaBallJumpFactor");
/* xec_phazonJumpFactor */ /* xec_phazonJumpFactor */
xec_phazonJumpFactor = __dna_docin.readFloat("xec_phazonJumpFactor"); xec_phazonJumpFactor = __dna_docin.readFloat("xec_phazonJumpFactor");
/* xf0_ */ /* xf0_phazonBallJumpFactor */
xf0_ = __dna_docin.readFloat("xf0_"); xf0_phazonBallJumpFactor = __dna_docin.readFloat("xf0_phazonBallJumpFactor");
/* xf4_allowedJumpTime */ /* xf4_allowedJumpTime */
xf4_allowedJumpTime = __dna_docin.readFloat("xf4_allowedJumpTime"); xf4_allowedJumpTime = __dna_docin.readFloat("xf4_allowedJumpTime");
/* xf8_allowedDoubleJumpTime */ /* xf8_allowedDoubleJumpTime */
@ -1057,10 +1057,10 @@ void CTweakPlayer::read(athena::io::YAMLDocReader& __dna_docin)
x114_doubleJumpImpulse = __dna_docin.readFloat("x114_doubleJumpImpulse"); x114_doubleJumpImpulse = __dna_docin.readFloat("x114_doubleJumpImpulse");
/* x118_backwardsForceMultiplier */ /* x118_backwardsForceMultiplier */
x118_backwardsForceMultiplier = __dna_docin.readFloat("x118_backwardsForceMultiplier"); x118_backwardsForceMultiplier = __dna_docin.readFloat("x118_backwardsForceMultiplier");
/* x11c_ */ /* x11c_bombJumpRadius */
x11c_ = __dna_docin.readFloat("x11c_"); x11c_bombJumpRadius = __dna_docin.readFloat("x11c_bombJumpRadius");
/* x120_ */ /* x120_bombJumpHeight */
x120_ = __dna_docin.readFloat("x120_"); x120_bombJumpHeight = __dna_docin.readFloat("x120_bombJumpHeight");
/* x124_eyeOffset */ /* x124_eyeOffset */
x124_eyeOffset = __dna_docin.readFloat("x124_eyeOffset"); x124_eyeOffset = __dna_docin.readFloat("x124_eyeOffset");
/* x128_turnSpeedMultiplier */ /* x128_turnSpeedMultiplier */
@ -1081,8 +1081,8 @@ void CTweakPlayer::read(athena::io::YAMLDocReader& __dna_docin)
x144_freeLookCenteredThresholdAngle = __dna_docin.readFloat("x144_freeLookCenteredThresholdAngle"); x144_freeLookCenteredThresholdAngle = __dna_docin.readFloat("x144_freeLookCenteredThresholdAngle");
/* x148_freeLookCenteredTime */ /* x148_freeLookCenteredTime */
x148_freeLookCenteredTime = __dna_docin.readFloat("x148_freeLookCenteredTime"); x148_freeLookCenteredTime = __dna_docin.readFloat("x148_freeLookCenteredTime");
/* x14c_ */ /* x14c_freeLookDampenFactor */
x14c_ = __dna_docin.readFloat("x14c_"); x14c_freeLookDampenFactor = __dna_docin.readFloat("x14c_freeLookDampenFactor");
/* x150_leftDiv */ /* x150_leftDiv */
x150_leftDiv = __dna_docin.readFloat("x150_leftDiv"); x150_leftDiv = __dna_docin.readFloat("x150_leftDiv");
/* x154_rightDiv */ /* x154_rightDiv */
@ -1113,8 +1113,8 @@ void CTweakPlayer::read(athena::io::YAMLDocReader& __dna_docin)
x229_27_ = __dna_docin.readBool("x229_27_"); x229_27_ = __dna_docin.readBool("x229_27_");
/* x229_28_ */ /* x229_28_ */
x229_28_ = __dna_docin.readBool("x229_28_"); x229_28_ = __dna_docin.readBool("x229_28_");
/* x229_29_ */ /* x229_29_orbitFixedOffset */
x229_29_ = __dna_docin.readBool("x229_29_"); x229_29_orbitFixedOffset = __dna_docin.readBool("x229_29_orbitFixedOffset");
/* x229_30_gunButtonTogglesHolster */ /* x229_30_gunButtonTogglesHolster */
x229_30_gunButtonTogglesHolster = __dna_docin.readBool("x229_30_gunButtonTogglesHolster"); x229_30_gunButtonTogglesHolster = __dna_docin.readBool("x229_30_gunButtonTogglesHolster");
/* x229_31_gunNotFiringHolstersGun */ /* x229_31_gunNotFiringHolstersGun */
@ -1161,59 +1161,59 @@ void CTweakPlayer::read(athena::io::YAMLDocReader& __dna_docin)
x264_aimAssistHorizontalAngle = __dna_docin.readFloat("x264_aimAssistHorizontalAngle"); x264_aimAssistHorizontalAngle = __dna_docin.readFloat("x264_aimAssistHorizontalAngle");
/* x268_aimAssistVerticalAngle */ /* x268_aimAssistVerticalAngle */
x268_aimAssistVerticalAngle = __dna_docin.readFloat("x268_aimAssistVerticalAngle"); x268_aimAssistVerticalAngle = __dna_docin.readFloat("x268_aimAssistVerticalAngle");
/* x158_ */ /* x158_orbitZBasedDistance */
size_t __x158_Count; size_t __x158_Count;
if (auto v = __dna_docin.enterSubVector("x158_", __x158_Count)) if (auto v = __dna_docin.enterSubVector("x158_orbitZBasedDistance", __x158_Count))
{ {
/* x158_[0] */ /* x158_orbitZBasedDistance[0] */
x158_[0] = __dna_docin.readFloat("x158_"); x158_orbitZBasedDistance[0] = __dna_docin.readFloat("x158_orbitZBasedDistance");
/* x158_[1] */ /* x158_orbitZBasedDistance[1] */
x158_[1] = __dna_docin.readFloat("x158_"); x158_orbitZBasedDistance[1] = __dna_docin.readFloat("x158_orbitZBasedDistance");
/* x158_[2] */ /* x158_orbitZBasedDistance[2] */
x158_[2] = __dna_docin.readFloat("x158_"); x158_orbitZBasedDistance[2] = __dna_docin.readFloat("x158_orbitZBasedDistance");
} }
/* x164_ */ /* x164_orbitNormalDistance */
size_t __x164_Count; size_t __x164_Count;
if (auto v = __dna_docin.enterSubVector("x164_", __x164_Count)) if (auto v = __dna_docin.enterSubVector("x164_orbitNormalDistance", __x164_Count))
{ {
/* x164_[0] */ /* x164_orbitNormalDistance[0] */
x164_[0] = __dna_docin.readFloat("x164_"); x164_orbitNormalDistance[0] = __dna_docin.readFloat("x164_orbitNormalDistance");
/* x164_[1] */ /* x164_orbitNormalDistance[1] */
x164_[1] = __dna_docin.readFloat("x164_"); x164_orbitNormalDistance[1] = __dna_docin.readFloat("x164_orbitNormalDistance");
/* x164_[2] */ /* x164_orbitNormalDistance[2] */
x164_[2] = __dna_docin.readFloat("x164_"); x164_orbitNormalDistance[2] = __dna_docin.readFloat("x164_orbitNormalDistance");
} }
/* x170_ */ /* x170_orbitMaxDistance */
size_t __x170_Count; size_t __x170_Count;
if (auto v = __dna_docin.enterSubVector("x170_", __x170_Count)) if (auto v = __dna_docin.enterSubVector("x170_orbitMaxDistance", __x170_Count))
{ {
/* x170_[0] */ /* x170_orbitMaxDistance[0] */
x170_[0] = __dna_docin.readFloat("x170_"); x170_orbitMaxDistance[0] = __dna_docin.readFloat("x170_orbitMaxDistance");
/* x170_[1] */ /* x170_orbitMaxDistance[1] */
x170_[1] = __dna_docin.readFloat("x170_"); x170_orbitMaxDistance[1] = __dna_docin.readFloat("x170_orbitMaxDistance");
/* x170_[2] */ /* x170_orbitMaxDistance[2] */
x170_[2] = __dna_docin.readFloat("x170_"); x170_orbitMaxDistance[2] = __dna_docin.readFloat("x170_orbitMaxDistance");
} }
/* x17c_ */ /* x17c_ */
x17c_ = __dna_docin.readFloat("x17c_"); x17c_ = __dna_docin.readFloat("x17c_");
/* x180_orbitNormalDistance */ /* x180_orbitModeTimer */
x180_orbitNormalDistance = __dna_docin.readFloat("x180_orbitNormalDistance"); x180_orbitModeTimer = __dna_docin.readFloat("x180_orbitModeTimer");
/* x184_ */ /* x184_orbitCameraSpeed */
x184_ = __dna_docin.readFloat("x184_"); x184_orbitCameraSpeed = __dna_docin.readFloat("x184_orbitCameraSpeed");
/* x188_maxUpwardOrbitLookAngle */ /* x188_orbitUpperAngle */
x188_maxUpwardOrbitLookAngle = __dna_docin.readFloat("x188_maxUpwardOrbitLookAngle"); x188_orbitUpperAngle = __dna_docin.readFloat("x188_orbitUpperAngle");
/* x18c_maxDownwardOrbitLookAngle */ /* x18c_orbitLowerAngle */
x18c_maxDownwardOrbitLookAngle = __dna_docin.readFloat("x18c_maxDownwardOrbitLookAngle"); x18c_orbitLowerAngle = __dna_docin.readFloat("x18c_orbitLowerAngle");
/* x190_orbitHorizAngle */ /* x190_orbitHorizAngle */
x190_orbitHorizAngle = __dna_docin.readFloat("x190_orbitHorizAngle"); x190_orbitHorizAngle = __dna_docin.readFloat("x190_orbitHorizAngle");
/* x194_ */ /* x194_ */
x194_ = __dna_docin.readFloat("x194_"); x194_ = __dna_docin.readFloat("x194_");
/* x198_ */ /* x198_ */
x198_ = __dna_docin.readFloat("x198_"); x198_ = __dna_docin.readFloat("x198_");
/* x19c_ */ /* x19c_orbitMaxTargetDistance */
x19c_ = __dna_docin.readFloat("x19c_"); x19c_orbitMaxTargetDistance = __dna_docin.readFloat("x19c_orbitMaxTargetDistance");
/* x1a0_ */ /* x1a0_orbitMaxLockDistance */
x1a0_ = __dna_docin.readFloat("x1a0_"); x1a0_orbitMaxLockDistance = __dna_docin.readFloat("x1a0_orbitMaxLockDistance");
/* x1a4_orbitDistanceThreshold */ /* x1a4_orbitDistanceThreshold */
x1a4_orbitDistanceThreshold = __dna_docin.readFloat("x1a4_orbitDistanceThreshold"); x1a4_orbitDistanceThreshold = __dna_docin.readFloat("x1a4_orbitDistanceThreshold");
/* x1a8_orbitScreenBoxHalfExtentX */ /* x1a8_orbitScreenBoxHalfExtentX */
@ -1278,8 +1278,8 @@ void CTweakPlayer::read(athena::io::YAMLDocReader& __dna_docin)
x1e0_ = __dna_docin.readFloat("x1e0_"); x1e0_ = __dna_docin.readFloat("x1e0_");
/* x1e4_ */ /* x1e4_ */
x1e4_ = __dna_docin.readFloat("x1e4_"); x1e4_ = __dna_docin.readFloat("x1e4_");
/* x1e8_ */ /* x1e8_orbitFixedOffsetZDiff */
x1e8_ = __dna_docin.readFloat("x1e8_"); x1e8_orbitFixedOffsetZDiff = __dna_docin.readFloat("x1e8_orbitFixedOffsetZDiff");
/* x1ec_orbitZRange */ /* x1ec_orbitZRange */
x1ec_orbitZRange = __dna_docin.readFloat("x1ec_orbitZRange"); x1ec_orbitZRange = __dna_docin.readFloat("x1ec_orbitZRange");
/* x1f0_ */ /* x1f0_ */
@ -1288,8 +1288,8 @@ void CTweakPlayer::read(athena::io::YAMLDocReader& __dna_docin)
x1f4_ = __dna_docin.readFloat("x1f4_"); x1f4_ = __dna_docin.readFloat("x1f4_");
/* x1f8_ */ /* x1f8_ */
x1f8_ = __dna_docin.readFloat("x1f8_"); x1f8_ = __dna_docin.readFloat("x1f8_");
/* x1fc_ */ /* x1fc_orbitPreventionTime */
x1fc_ = __dna_docin.readFloat("x1fc_"); x1fc_orbitPreventionTime = __dna_docin.readFloat("x1fc_orbitPreventionTime");
/* x200_24_dashEnabled */ /* x200_24_dashEnabled */
x200_24_dashEnabled = __dna_docin.readBool("x200_24_dashEnabled"); x200_24_dashEnabled = __dna_docin.readBool("x200_24_dashEnabled");
/* x200_25_dashOnButtonRelease */ /* x200_25_dashOnButtonRelease */
@ -1312,10 +1312,10 @@ void CTweakPlayer::read(athena::io::YAMLDocReader& __dna_docin)
x21c_25_scanFreezesGame = __dna_docin.readBool("x21c_25_scanFreezesGame"); x21c_25_scanFreezesGame = __dna_docin.readBool("x21c_25_scanFreezesGame");
/* x21c_26_orbitWhileScanning */ /* x21c_26_orbitWhileScanning */
x21c_26_orbitWhileScanning = __dna_docin.readBool("x21c_26_orbitWhileScanning"); x21c_26_orbitWhileScanning = __dna_docin.readBool("x21c_26_orbitWhileScanning");
/* x220_ */ /* x220_scanMaxTargetDistance */
x220_ = __dna_docin.readFloat("x220_"); x220_scanMaxTargetDistance = __dna_docin.readFloat("x220_scanMaxTargetDistance");
/* x224_scanningFrameSenseRange */ /* x224_scanMaxLockDistance */
x224_scanningFrameSenseRange = __dna_docin.readFloat("x224_scanningFrameSenseRange"); x224_scanMaxLockDistance = __dna_docin.readFloat("x224_scanMaxLockDistance");
/* x2a0_orbitDistanceMax */ /* x2a0_orbitDistanceMax */
x2a0_orbitDistanceMax = __dna_docin.readFloat("x2a0_orbitDistanceMax"); x2a0_orbitDistanceMax = __dna_docin.readFloat("x2a0_orbitDistanceMax");
/* x2a4_grappleSwingLength */ /* x2a4_grappleSwingLength */
@ -1325,7 +1325,7 @@ void CTweakPlayer::read(athena::io::YAMLDocReader& __dna_docin)
/* x2ac_grapplePullSpeedMin */ /* x2ac_grapplePullSpeedMin */
x2ac_grapplePullSpeedMin = __dna_docin.readFloat("x2ac_grapplePullSpeedMin"); x2ac_grapplePullSpeedMin = __dna_docin.readFloat("x2ac_grapplePullSpeedMin");
/* x2b0_ */ /* x2b0_ */
x2b0_ = __dna_docin.readFloat("x2b0_"); x2b0_grappleCameraSpeed = __dna_docin.readFloat("x2b0_");
/* x2b4_maxGrappleLockedTurnAlignDistance */ /* x2b4_maxGrappleLockedTurnAlignDistance */
x2b4_maxGrappleLockedTurnAlignDistance = __dna_docin.readFloat("x2b4_maxGrappleLockedTurnAlignDistance"); x2b4_maxGrappleLockedTurnAlignDistance = __dna_docin.readFloat("x2b4_maxGrappleLockedTurnAlignDistance");
/* x2b8_grapplePullSpeedProportion */ /* x2b8_grapplePullSpeedProportion */
@ -1342,10 +1342,10 @@ void CTweakPlayer::read(athena::io::YAMLDocReader& __dna_docin)
x2cc_grappleReleaseTime = __dna_docin.readFloat("x2cc_grappleReleaseTime"); x2cc_grappleReleaseTime = __dna_docin.readFloat("x2cc_grappleReleaseTime");
/* x2d0_grappleJumpMode */ /* x2d0_grappleJumpMode */
x2d0_grappleJumpMode = __dna_docin.readUint32("x2d0_grappleJumpMode"); x2d0_grappleJumpMode = __dna_docin.readUint32("x2d0_grappleJumpMode");
/* x2d4_ */ /* x2d4_orbitReleaseBreaksGrapple */
x2d4_ = __dna_docin.readBool("x2d4_"); x2d4_orbitReleaseBreaksGrapple = __dna_docin.readBool("x2d4_orbitReleaseBreaksGrapple");
/* x2d5_ */ /* x2d5_invertGrappleTurn */
x2d5_invertGrappleTurn = __dna_docin.readBool("x2d5_"); x2d5_invertGrappleTurn = __dna_docin.readBool("x2d5_invertGrappleTurn");
/* x2d8_ */ /* x2d8_ */
x2d8_ = __dna_docin.readFloat("x2d8_"); x2d8_ = __dna_docin.readFloat("x2d8_");
/* x2dc_ */ /* x2dc_ */
@ -1365,21 +1365,21 @@ void CTweakPlayer::read(athena::io::YAMLDocReader& __dna_docin)
/* x27c_playerBallHalfExtent */ /* x27c_playerBallHalfExtent */
x27c_playerBallHalfExtent = __dna_docin.readFloat("x27c_playerBallHalfExtent"); x27c_playerBallHalfExtent = __dna_docin.readFloat("x27c_playerBallHalfExtent");
/* x280_ */ /* x280_ */
x280_ = __dna_docin.readFloat("x280_"); x280_firstPersonCameraSpeed = __dna_docin.readFloat("x280_");
/* x284_ */ /* x284_ */
x284_ = __dna_docin.readFloat("x284_"); x284_ = __dna_docin.readFloat("x284_");
/* x288_ */ /* x288_jumpCameraPitchDownStart */
x288_ = __dna_docin.readFloat("x288_"); x288_jumpCameraPitchDownStart = __dna_docin.readFloat("x288_jumpCameraPitchDownStart");
/* x28c_ */ /* x28c_jumpCameraPitchDownFull */
x28c_ = __dna_docin.readFloat("x28c_"); x28c_jumpCameraPitchDownFull = __dna_docin.readFloat("x28c_jumpCameraPitchDownFull");
/* x290_ */ /* x290_jumpCameraPitchDownAngle */
x290_ = __dna_docin.readFloat("x290_"); x290_jumpCameraPitchDownAngle = __dna_docin.readFloat("x290_jumpCameraPitchDownAngle");
/* x294_ */ /* x294_fallCameraPitchDownStart */
x294_ = __dna_docin.readFloat("x294_"); x294_fallCameraPitchDownStart = __dna_docin.readFloat("x294_fallCameraPitchDownStart");
/* x298_ */ /* x298_fallCameraPitchDownFull */
x298_ = __dna_docin.readFloat("x298_"); x298_fallCameraPitchDownFull = __dna_docin.readFloat("x298_fallCameraPitchDownFull");
/* x29c_ */ /* x29c_fallCameraPitchDownAngle */
x29c_ = __dna_docin.readFloat("x29c_"); x29c_fallCameraPitchDownAngle = __dna_docin.readFloat("x29c_fallCameraPitchDownAngle");
/* x2e8_ */ /* x2e8_ */
x2e8_ = __dna_docin.readFloat("x2e8_"); x2e8_ = __dna_docin.readFloat("x2e8_");
/* x2ec_ */ /* x2ec_ */
@ -1536,16 +1536,16 @@ void CTweakPlayer::write(athena::io::YAMLDocWriter& __dna_docout) const
__dna_docout.writeFloat("xd8_horizontalDoubleJumpAccel", xd8_horizontalDoubleJumpAccel); __dna_docout.writeFloat("xd8_horizontalDoubleJumpAccel", xd8_horizontalDoubleJumpAccel);
/* xdc_waterJumpFactor */ /* xdc_waterJumpFactor */
__dna_docout.writeFloat("xdc_waterJumpFactor", xdc_waterJumpFactor); __dna_docout.writeFloat("xdc_waterJumpFactor", xdc_waterJumpFactor);
/* xe0_ */ /* xe0_waterBallJumpFactor */
__dna_docout.writeFloat("xe0_", xe0_); __dna_docout.writeFloat("xe0_waterBallJumpFactor", xe0_waterBallJumpFactor);
/* xe4_lavaJumpFactor */ /* xe4_lavaJumpFactor */
__dna_docout.writeFloat("xe4_lavaJumpFactor", xe4_lavaJumpFactor); __dna_docout.writeFloat("xe4_lavaJumpFactor", xe4_lavaJumpFactor);
/* xe8_ */ /* xe8_lavaBallJumpFactor */
__dna_docout.writeFloat("xe8_", xe8_); __dna_docout.writeFloat("xe8_lavaBallJumpFactor", xe8_lavaBallJumpFactor);
/* xec_phazonJumpFactor */ /* xec_phazonJumpFactor */
__dna_docout.writeFloat("xec_phazonJumpFactor", xec_phazonJumpFactor); __dna_docout.writeFloat("xec_phazonJumpFactor", xec_phazonJumpFactor);
/* xf0_ */ /* xf0_phazonBallJumpFactor */
__dna_docout.writeFloat("xf0_", xf0_); __dna_docout.writeFloat("xf0_phazonBallJumpFactor", xf0_phazonBallJumpFactor);
/* xf4_allowedJumpTime */ /* xf4_allowedJumpTime */
__dna_docout.writeFloat("xf4_allowedJumpTime", xf4_allowedJumpTime); __dna_docout.writeFloat("xf4_allowedJumpTime", xf4_allowedJumpTime);
/* xf8_allowedDoubleJumpTime */ /* xf8_allowedDoubleJumpTime */
@ -1566,10 +1566,10 @@ void CTweakPlayer::write(athena::io::YAMLDocWriter& __dna_docout) const
__dna_docout.writeFloat("x114_doubleJumpImpulse", x114_doubleJumpImpulse); __dna_docout.writeFloat("x114_doubleJumpImpulse", x114_doubleJumpImpulse);
/* x118_backwardsForceMultiplier */ /* x118_backwardsForceMultiplier */
__dna_docout.writeFloat("x118_backwardsForceMultiplier", x118_backwardsForceMultiplier); __dna_docout.writeFloat("x118_backwardsForceMultiplier", x118_backwardsForceMultiplier);
/* x11c_ */ /* x11c_bombJumpRadius */
__dna_docout.writeFloat("x11c_", x11c_); __dna_docout.writeFloat("x11c_bombJumpRadius", x11c_bombJumpRadius);
/* x120_ */ /* x120_bombJumpHeight */
__dna_docout.writeFloat("x120_", x120_); __dna_docout.writeFloat("x120_bombJumpHeight", x120_bombJumpHeight);
/* x124_eyeOffset */ /* x124_eyeOffset */
__dna_docout.writeFloat("x124_eyeOffset", x124_eyeOffset); __dna_docout.writeFloat("x124_eyeOffset", x124_eyeOffset);
/* x128_turnSpeedMultiplier */ /* x128_turnSpeedMultiplier */
@ -1590,8 +1590,8 @@ void CTweakPlayer::write(athena::io::YAMLDocWriter& __dna_docout) const
__dna_docout.writeFloat("x144_freeLookCenteredThresholdAngle", x144_freeLookCenteredThresholdAngle); __dna_docout.writeFloat("x144_freeLookCenteredThresholdAngle", x144_freeLookCenteredThresholdAngle);
/* x148_freeLookCenteredTime */ /* x148_freeLookCenteredTime */
__dna_docout.writeFloat("x148_freeLookCenteredTime", x148_freeLookCenteredTime); __dna_docout.writeFloat("x148_freeLookCenteredTime", x148_freeLookCenteredTime);
/* x14c_ */ /* x14c_freeLookDampenFactor */
__dna_docout.writeFloat("x14c_", x14c_); __dna_docout.writeFloat("x14c_freeLookDampenFactor", x14c_freeLookDampenFactor);
/* x150_leftDiv */ /* x150_leftDiv */
__dna_docout.writeFloat("x150_leftDiv", x150_leftDiv); __dna_docout.writeFloat("x150_leftDiv", x150_leftDiv);
/* x154_rightDiv */ /* x154_rightDiv */
@ -1622,8 +1622,8 @@ void CTweakPlayer::write(athena::io::YAMLDocWriter& __dna_docout) const
__dna_docout.writeBool("x229_27_", x229_27_); __dna_docout.writeBool("x229_27_", x229_27_);
/* x229_28_ */ /* x229_28_ */
__dna_docout.writeBool("x229_28_", x229_28_); __dna_docout.writeBool("x229_28_", x229_28_);
/* x229_29_ */ /* x229_29_orbitFixedOffset */
__dna_docout.writeBool("x229_29_", x229_29_); __dna_docout.writeBool("x229_29_orbitFixedOffset", x229_29_orbitFixedOffset);
/* x229_30_gunButtonTogglesHolster */ /* x229_30_gunButtonTogglesHolster */
__dna_docout.writeBool("x229_30_gunButtonTogglesHolster", x229_30_gunButtonTogglesHolster); __dna_docout.writeBool("x229_30_gunButtonTogglesHolster", x229_30_gunButtonTogglesHolster);
/* x229_31_gunNotFiringHolstersGun */ /* x229_31_gunNotFiringHolstersGun */
@ -1670,56 +1670,56 @@ void CTweakPlayer::write(athena::io::YAMLDocWriter& __dna_docout) const
__dna_docout.writeFloat("x264_aimAssistHorizontalAngle", x264_aimAssistHorizontalAngle); __dna_docout.writeFloat("x264_aimAssistHorizontalAngle", x264_aimAssistHorizontalAngle);
/* x268_aimAssistVerticalAngle */ /* x268_aimAssistVerticalAngle */
__dna_docout.writeFloat("x268_aimAssistVerticalAngle", x268_aimAssistVerticalAngle); __dna_docout.writeFloat("x268_aimAssistVerticalAngle", x268_aimAssistVerticalAngle);
/* x158_ */ /* x158_orbitZBasedDistance */
if (auto v = __dna_docout.enterSubVector("x158_")) if (auto v = __dna_docout.enterSubVector("x158_orbitZBasedDistance"))
{ {
/* x158_[0] */ /* x158_orbitZBasedDistance[0] */
__dna_docout.writeFloat("x158_", x158_[0]); __dna_docout.writeFloat("x158_orbitZBasedDistance", x158_orbitZBasedDistance[0]);
/* x158_[1] */ /* x158_orbitZBasedDistance[1] */
__dna_docout.writeFloat("x158_", x158_[1]); __dna_docout.writeFloat("x158_orbitZBasedDistance", x158_orbitZBasedDistance[1]);
/* x158_[2] */ /* x158_orbitZBasedDistance[2] */
__dna_docout.writeFloat("x158_", x158_[2]); __dna_docout.writeFloat("x158_orbitZBasedDistance", x158_orbitZBasedDistance[2]);
} }
/* x164_ */ /* x164_orbitNormalDistance */
if (auto v = __dna_docout.enterSubVector("x164_")) if (auto v = __dna_docout.enterSubVector("x164_orbitNormalDistance"))
{ {
/* x164_[0] */ /* x164_orbitNormalDistance[0] */
__dna_docout.writeFloat("x164_", x164_[0]); __dna_docout.writeFloat("x164_orbitNormalDistance", x164_orbitNormalDistance[0]);
/* x164_[1] */ /* x164_orbitNormalDistance[1] */
__dna_docout.writeFloat("x164_", x164_[1]); __dna_docout.writeFloat("x164_orbitNormalDistance", x164_orbitNormalDistance[1]);
/* x164_[2] */ /* x164_orbitNormalDistance[2] */
__dna_docout.writeFloat("x164_", x164_[2]); __dna_docout.writeFloat("x164_orbitNormalDistance", x164_orbitNormalDistance[2]);
} }
/* x170_ */ /* x170_orbitMaxDistance */
if (auto v = __dna_docout.enterSubVector("x170_")) if (auto v = __dna_docout.enterSubVector("x170_orbitMaxDistance"))
{ {
/* x170_[0] */ /* x170_orbitMaxDistance[0] */
__dna_docout.writeFloat("x170_", x170_[0]); __dna_docout.writeFloat("x170_orbitMaxDistance", x170_orbitMaxDistance[0]);
/* x170_[1] */ /* x170_orbitMaxDistance[1] */
__dna_docout.writeFloat("x170_", x170_[1]); __dna_docout.writeFloat("x170_orbitMaxDistance", x170_orbitMaxDistance[1]);
/* x170_[2] */ /* x170_orbitMaxDistance[2] */
__dna_docout.writeFloat("x170_", x170_[2]); __dna_docout.writeFloat("x170_orbitMaxDistance", x170_orbitMaxDistance[2]);
} }
/* x17c_ */ /* x17c_ */
__dna_docout.writeFloat("x17c_", x17c_); __dna_docout.writeFloat("x17c_", x17c_);
/* x180_orbitNormalDistance */ /* x180_orbitModeTimer */
__dna_docout.writeFloat("x180_orbitNormalDistance", x180_orbitNormalDistance); __dna_docout.writeFloat("x180_orbitModeTimer", x180_orbitModeTimer);
/* x184_ */ /* x184_orbitCameraSpeed */
__dna_docout.writeFloat("x184_", x184_); __dna_docout.writeFloat("x184_orbitCameraSpeed", x184_orbitCameraSpeed);
/* x188_maxUpwardOrbitLookAngle */ /* x188_orbitUpperAngle */
__dna_docout.writeFloat("x188_maxUpwardOrbitLookAngle", x188_maxUpwardOrbitLookAngle); __dna_docout.writeFloat("x188_orbitUpperAngle", x188_orbitUpperAngle);
/* x18c_maxDownwardOrbitLookAngle */ /* x18c_orbitLowerAngle */
__dna_docout.writeFloat("x18c_maxDownwardOrbitLookAngle", x18c_maxDownwardOrbitLookAngle); __dna_docout.writeFloat("x18c_orbitLowerAngle", x18c_orbitLowerAngle);
/* x190_orbitHorizAngle */ /* x190_orbitHorizAngle */
__dna_docout.writeFloat("x190_orbitHorizAngle", x190_orbitHorizAngle); __dna_docout.writeFloat("x190_orbitHorizAngle", x190_orbitHorizAngle);
/* x194_ */ /* x194_ */
__dna_docout.writeFloat("x194_", x194_); __dna_docout.writeFloat("x194_", x194_);
/* x198_ */ /* x198_ */
__dna_docout.writeFloat("x198_", x198_); __dna_docout.writeFloat("x198_", x198_);
/* x19c_ */ /* x19c_orbitMaxTargetDistance */
__dna_docout.writeFloat("x19c_", x19c_); __dna_docout.writeFloat("x19c_orbitMaxTargetDistance", x19c_orbitMaxTargetDistance);
/* x1a0_ */ /* x1a0_orbitMaxLockDistance */
__dna_docout.writeFloat("x1a0_", x1a0_); __dna_docout.writeFloat("x1a0_orbitMaxLockDistance", x1a0_orbitMaxLockDistance);
/* x1a4_orbitDistanceThreshold */ /* x1a4_orbitDistanceThreshold */
__dna_docout.writeFloat("x1a4_orbitDistanceThreshold", x1a4_orbitDistanceThreshold); __dna_docout.writeFloat("x1a4_orbitDistanceThreshold", x1a4_orbitDistanceThreshold);
/* x1a8_orbitScreenBoxHalfExtentX */ /* x1a8_orbitScreenBoxHalfExtentX */
@ -1778,8 +1778,8 @@ void CTweakPlayer::write(athena::io::YAMLDocWriter& __dna_docout) const
__dna_docout.writeFloat("x1e0_", x1e0_); __dna_docout.writeFloat("x1e0_", x1e0_);
/* x1e4_ */ /* x1e4_ */
__dna_docout.writeFloat("x1e4_", x1e4_); __dna_docout.writeFloat("x1e4_", x1e4_);
/* x1e8_ */ /* x1e8_orbitFixedOffsetZDiff */
__dna_docout.writeFloat("x1e8_", x1e8_); __dna_docout.writeFloat("x1e8_orbitFixedOffsetZDiff", x1e8_orbitFixedOffsetZDiff);
/* x1ec_orbitZRange */ /* x1ec_orbitZRange */
__dna_docout.writeFloat("x1ec_orbitZRange", x1ec_orbitZRange); __dna_docout.writeFloat("x1ec_orbitZRange", x1ec_orbitZRange);
/* x1f0_ */ /* x1f0_ */
@ -1788,8 +1788,8 @@ void CTweakPlayer::write(athena::io::YAMLDocWriter& __dna_docout) const
__dna_docout.writeFloat("x1f4_", x1f4_); __dna_docout.writeFloat("x1f4_", x1f4_);
/* x1f8_ */ /* x1f8_ */
__dna_docout.writeFloat("x1f8_", x1f8_); __dna_docout.writeFloat("x1f8_", x1f8_);
/* x1fc_ */ /* x1fc_orbitPreventionTime */
__dna_docout.writeFloat("x1fc_", x1fc_); __dna_docout.writeFloat("x1fc_orbitPreventionTime", x1fc_orbitPreventionTime);
/* x200_24_dashEnabled */ /* x200_24_dashEnabled */
__dna_docout.writeBool("x200_24_dashEnabled", x200_24_dashEnabled); __dna_docout.writeBool("x200_24_dashEnabled", x200_24_dashEnabled);
/* x200_25_dashOnButtonRelease */ /* x200_25_dashOnButtonRelease */
@ -1812,10 +1812,10 @@ void CTweakPlayer::write(athena::io::YAMLDocWriter& __dna_docout) const
__dna_docout.writeBool("x21c_25_scanFreezesGame", x21c_25_scanFreezesGame); __dna_docout.writeBool("x21c_25_scanFreezesGame", x21c_25_scanFreezesGame);
/* x21c_26_orbitWhileScanning */ /* x21c_26_orbitWhileScanning */
__dna_docout.writeBool("x21c_26_orbitWhileScanning", x21c_26_orbitWhileScanning); __dna_docout.writeBool("x21c_26_orbitWhileScanning", x21c_26_orbitWhileScanning);
/* x220_ */ /* x220_scanMaxTargetDistance */
__dna_docout.writeFloat("x220_", x220_); __dna_docout.writeFloat("x220_scanMaxTargetDistance", x220_scanMaxTargetDistance);
/* x224_scanningFrameSenseRange */ /* x224_scanMaxLockDistance */
__dna_docout.writeFloat("x224_scanningFrameSenseRange", x224_scanningFrameSenseRange); __dna_docout.writeFloat("x224_scanMaxLockDistance", x224_scanMaxLockDistance);
/* x2a0_orbitDistanceMax */ /* x2a0_orbitDistanceMax */
__dna_docout.writeFloat("x2a0_orbitDistanceMax", x2a0_orbitDistanceMax); __dna_docout.writeFloat("x2a0_orbitDistanceMax", x2a0_orbitDistanceMax);
/* x2a4_grappleSwingLength */ /* x2a4_grappleSwingLength */
@ -1825,7 +1825,7 @@ void CTweakPlayer::write(athena::io::YAMLDocWriter& __dna_docout) const
/* x2ac_grapplePullSpeedMin */ /* x2ac_grapplePullSpeedMin */
__dna_docout.writeFloat("x2ac_grapplePullSpeedMin", x2ac_grapplePullSpeedMin); __dna_docout.writeFloat("x2ac_grapplePullSpeedMin", x2ac_grapplePullSpeedMin);
/* x2b0_ */ /* x2b0_ */
__dna_docout.writeFloat("x2b0_", x2b0_); __dna_docout.writeFloat("x2b0_", x2b0_grappleCameraSpeed);
/* x2b4_maxGrappleLockedTurnAlignDistance */ /* x2b4_maxGrappleLockedTurnAlignDistance */
__dna_docout.writeFloat("x2b4_maxGrappleLockedTurnAlignDistance", x2b4_maxGrappleLockedTurnAlignDistance); __dna_docout.writeFloat("x2b4_maxGrappleLockedTurnAlignDistance", x2b4_maxGrappleLockedTurnAlignDistance);
/* x2b8_grapplePullSpeedProportion */ /* x2b8_grapplePullSpeedProportion */
@ -1842,10 +1842,10 @@ void CTweakPlayer::write(athena::io::YAMLDocWriter& __dna_docout) const
__dna_docout.writeFloat("x2cc_grappleReleaseTime", x2cc_grappleReleaseTime); __dna_docout.writeFloat("x2cc_grappleReleaseTime", x2cc_grappleReleaseTime);
/* x2d0_grappleJumpMode */ /* x2d0_grappleJumpMode */
__dna_docout.writeUint32("x2d0_grappleJumpMode", x2d0_grappleJumpMode); __dna_docout.writeUint32("x2d0_grappleJumpMode", x2d0_grappleJumpMode);
/* x2d4_ */ /* x2d4_orbitReleaseBreaksGrapple */
__dna_docout.writeBool("x2d4_", x2d4_); __dna_docout.writeBool("x2d4_orbitReleaseBreaksGrapple", x2d4_orbitReleaseBreaksGrapple);
/* x2d4_ */ /* x2d5_invertGrappleTurn */
__dna_docout.writeBool("x2d5_", x2d5_invertGrappleTurn); __dna_docout.writeBool("x2d5_invertGrappleTurn", x2d5_invertGrappleTurn);
/* x2d8_ */ /* x2d8_ */
__dna_docout.writeFloat("x2d8_", x2d8_); __dna_docout.writeFloat("x2d8_", x2d8_);
/* x2dc_ */ /* x2dc_ */
@ -1865,21 +1865,21 @@ void CTweakPlayer::write(athena::io::YAMLDocWriter& __dna_docout) const
/* x27c_playerBallHalfExtent */ /* x27c_playerBallHalfExtent */
__dna_docout.writeFloat("x27c_playerBallHalfExtent", x27c_playerBallHalfExtent); __dna_docout.writeFloat("x27c_playerBallHalfExtent", x27c_playerBallHalfExtent);
/* x280_ */ /* x280_ */
__dna_docout.writeFloat("x280_", x280_); __dna_docout.writeFloat("x280_", x280_firstPersonCameraSpeed);
/* x284_ */ /* x284_ */
__dna_docout.writeFloat("x284_", x284_); __dna_docout.writeFloat("x284_", x284_);
/* x288_ */ /* x288_jumpCameraPitchDownStart */
__dna_docout.writeFloat("x288_", x288_); __dna_docout.writeFloat("x288_jumpCameraPitchDownStart", x288_jumpCameraPitchDownStart);
/* x28c_ */ /* x28c_jumpCameraPitchDownFull */
__dna_docout.writeFloat("x28c_", x28c_); __dna_docout.writeFloat("x28c_jumpCameraPitchDownFull", x28c_jumpCameraPitchDownFull);
/* x290_ */ /* x290_jumpCameraPitchDownAngle */
__dna_docout.writeFloat("x290_", x290_); __dna_docout.writeFloat("x290_jumpCameraPitchDownAngle", x290_jumpCameraPitchDownAngle);
/* x294_ */ /* x294_fallCameraPitchDownStart */
__dna_docout.writeFloat("x294_", x294_); __dna_docout.writeFloat("x294_fallCameraPitchDownStart", x294_fallCameraPitchDownStart);
/* x298_ */ /* x298_fallCameraPitchDownFull */
__dna_docout.writeFloat("x298_", x298_); __dna_docout.writeFloat("x298_fallCameraPitchDownFull", x298_fallCameraPitchDownFull);
/* x29c_ */ /* x29c_fallCameraPitchDownAngle */
__dna_docout.writeFloat("x29c_", x29c_); __dna_docout.writeFloat("x29c_fallCameraPitchDownAngle", x29c_fallCameraPitchDownAngle);
/* x2e8_ */ /* x2e8_ */
__dna_docout.writeFloat("x2e8_", x2e8_); __dna_docout.writeFloat("x2e8_", x2e8_);
/* x2ec_ */ /* x2ec_ */
@ -1916,20 +1916,20 @@ void CTweakPlayer::FixupValues()
x264_aimAssistHorizontalAngle = zeus::degToRad(x264_aimAssistHorizontalAngle); x264_aimAssistHorizontalAngle = zeus::degToRad(x264_aimAssistHorizontalAngle);
x268_aimAssistVerticalAngle = zeus::degToRad(x268_aimAssistVerticalAngle); x268_aimAssistVerticalAngle = zeus::degToRad(x268_aimAssistVerticalAngle);
x17c_ = zeus::degToRad(x17c_); x17c_ = zeus::degToRad(x17c_);
x184_ = zeus::degToRad(x184_); x184_orbitCameraSpeed = zeus::degToRad(x184_orbitCameraSpeed);
x188_maxUpwardOrbitLookAngle = zeus::degToRad(x188_maxUpwardOrbitLookAngle); x188_orbitUpperAngle = zeus::degToRad(x188_orbitUpperAngle);
x18c_maxDownwardOrbitLookAngle = zeus::degToRad(x18c_maxDownwardOrbitLookAngle); x18c_orbitLowerAngle = zeus::degToRad(x18c_orbitLowerAngle);
x190_orbitHorizAngle = zeus::degToRad(x190_orbitHorizAngle); x190_orbitHorizAngle = zeus::degToRad(x190_orbitHorizAngle);
x194_ = zeus::degToRad(x194_); x194_ = zeus::degToRad(x194_);
x198_ = zeus::degToRad(x198_); x198_ = zeus::degToRad(x198_);
x1f0_ = zeus::degToRad(x1f0_); x1f0_ = zeus::degToRad(x1f0_);
x1f4_ = zeus::degToRad(x1f4_); x1f4_ = zeus::degToRad(x1f4_);
x2b0_ = zeus::degToRad(x2b0_); x2b0_grappleCameraSpeed = zeus::degToRad(x2b0_grappleCameraSpeed);
x2c0_grappleLookCenterSpeed = zeus::degToRad(x2c0_grappleLookCenterSpeed); x2c0_grappleLookCenterSpeed = zeus::degToRad(x2c0_grappleLookCenterSpeed);
x280_ = zeus::degToRad(x280_); x280_firstPersonCameraSpeed = zeus::degToRad(x280_firstPersonCameraSpeed);
x284_ = zeus::degToRad(x284_); x284_ = zeus::degToRad(x284_);
x290_ = zeus::degToRad(x290_); x290_jumpCameraPitchDownAngle = zeus::degToRad(x290_jumpCameraPitchDownAngle);
x29c_ = zeus::degToRad(x29c_); x29c_fallCameraPitchDownAngle = zeus::degToRad(x29c_fallCameraPitchDownAngle);
} }
const char* CTweakPlayer::DNAType() const char* CTweakPlayer::DNAType()

View File

@ -24,11 +24,11 @@ struct CTweakPlayer : ITweakPlayer
Value<float> xd4_verticalDoubleJumpAccel; Value<float> xd4_verticalDoubleJumpAccel;
Value<float> xd8_horizontalDoubleJumpAccel; Value<float> xd8_horizontalDoubleJumpAccel;
Value<float> xdc_waterJumpFactor; Value<float> xdc_waterJumpFactor;
Value<float> xe0_; Value<float> xe0_waterBallJumpFactor;
Value<float> xe4_lavaJumpFactor; Value<float> xe4_lavaJumpFactor;
Value<float> xe8_; Value<float> xe8_lavaBallJumpFactor;
Value<float> xec_phazonJumpFactor; Value<float> xec_phazonJumpFactor;
Value<float> xf0_; Value<float> xf0_phazonBallJumpFactor;
Value<float> xf4_allowedJumpTime; Value<float> xf4_allowedJumpTime;
Value<float> xf8_allowedDoubleJumpTime; Value<float> xf8_allowedDoubleJumpTime;
Value<float> xfc_minDoubleJumpWindow; Value<float> xfc_minDoubleJumpWindow;
@ -39,8 +39,8 @@ struct CTweakPlayer : ITweakPlayer
Value<float> x110_allowedLedgeTime; Value<float> x110_allowedLedgeTime;
Value<float> x114_doubleJumpImpulse; Value<float> x114_doubleJumpImpulse;
Value<float> x118_backwardsForceMultiplier; Value<float> x118_backwardsForceMultiplier;
Value<float> x11c_; Value<float> x11c_bombJumpRadius;
Value<float> x120_; Value<float> x120_bombJumpHeight;
Value<float> x124_eyeOffset; Value<float> x124_eyeOffset;
Value<float> x128_turnSpeedMultiplier; Value<float> x128_turnSpeedMultiplier;
Value<float> x12c_freeLookTurnSpeedMultiplier; Value<float> x12c_freeLookTurnSpeedMultiplier;
@ -51,22 +51,22 @@ struct CTweakPlayer : ITweakPlayer
Value<float> x140_; Value<float> x140_;
Value<float> x144_freeLookCenteredThresholdAngle; Value<float> x144_freeLookCenteredThresholdAngle;
Value<float> x148_freeLookCenteredTime; Value<float> x148_freeLookCenteredTime;
Value<float> x14c_; Value<float> x14c_freeLookDampenFactor;
Value<float> x150_leftDiv; Value<float> x150_leftDiv;
Value<float> x154_rightDiv; Value<float> x154_rightDiv;
Value<float> x158_[3]; Value<float> x158_orbitZBasedDistance[3];
Value<float> x164_[3]; Value<float> x164_orbitNormalDistance[3];
Value<float> x170_[3]; Value<float> x170_orbitMaxDistance[3];
Value<float> x17c_; Value<float> x17c_;
Value<float> x180_orbitNormalDistance; Value<float> x180_orbitModeTimer;
Value<float> x184_; Value<float> x184_orbitCameraSpeed;
Value<float> x188_maxUpwardOrbitLookAngle; Value<float> x188_orbitUpperAngle;
Value<float> x18c_maxDownwardOrbitLookAngle; Value<float> x18c_orbitLowerAngle;
Value<float> x190_orbitHorizAngle; Value<float> x190_orbitHorizAngle;
Value<float> x194_; Value<float> x194_;
Value<float> x198_; Value<float> x198_;
Value<float> x19c_; Value<float> x19c_orbitMaxTargetDistance;
Value<float> x1a0_; Value<float> x1a0_orbitMaxLockDistance;
Value<float> x1a4_orbitDistanceThreshold; Value<float> x1a4_orbitDistanceThreshold;
Value<atUint32> x1a8_orbitScreenBoxHalfExtentX[2]; Value<atUint32> x1a8_orbitScreenBoxHalfExtentX[2];
Value<atUint32> x1b0_orbitScreenBoxHalfExtentY[2]; Value<atUint32> x1b0_orbitScreenBoxHalfExtentY[2];
@ -78,12 +78,12 @@ struct CTweakPlayer : ITweakPlayer
Value<float> x1dc_orbitNearZ; Value<float> x1dc_orbitNearZ;
Value<float> x1e0_; Value<float> x1e0_;
Value<float> x1e4_; Value<float> x1e4_;
Value<float> x1e8_; Value<float> x1e8_orbitFixedOffsetZDiff;
Value<float> x1ec_orbitZRange; Value<float> x1ec_orbitZRange;
Value<float> x1f0_; Value<float> x1f0_;
Value<float> x1f4_; Value<float> x1f4_;
Value<float> x1f8_; Value<float> x1f8_;
Value<float> x1fc_; Value<float> x1fc_orbitPreventionTime;
Value<bool> x200_24_dashEnabled : 1; Value<bool> x200_24_dashEnabled : 1;
Value<bool> x200_25_dashOnButtonRelease : 1; Value<bool> x200_25_dashOnButtonRelease : 1;
Value<float> x204_dashButtonHoldCancelTime; Value<float> x204_dashButtonHoldCancelTime;
@ -95,8 +95,8 @@ struct CTweakPlayer : ITweakPlayer
Value<bool> x21c_24_scanRetention : 1; Value<bool> x21c_24_scanRetention : 1;
Value<bool> x21c_25_scanFreezesGame : 1; Value<bool> x21c_25_scanFreezesGame : 1;
Value<bool> x21c_26_orbitWhileScanning : 1; Value<bool> x21c_26_orbitWhileScanning : 1;
Value<float> x220_; Value<float> x220_scanMaxTargetDistance;
Value<float> x224_scanningFrameSenseRange; Value<float> x224_scanMaxLockDistance;
Value<bool> x228_24_freelookTurnsPlayer : 1; Value<bool> x228_24_freelookTurnsPlayer : 1;
Value<bool> x228_25_ : 1; Value<bool> x228_25_ : 1;
Value<bool> x228_26_ : 1; Value<bool> x228_26_ : 1;
@ -110,7 +110,7 @@ struct CTweakPlayer : ITweakPlayer
Value<bool> x229_26_stayInFreeLookWhileFiring : 1; Value<bool> x229_26_stayInFreeLookWhileFiring : 1;
Value<bool> x229_27_ : 1; Value<bool> x229_27_ : 1;
Value<bool> x229_28_ : 1; Value<bool> x229_28_ : 1;
Value<bool> x229_29_ : 1; Value<bool> x229_29_orbitFixedOffset : 1;
Value<bool> x229_30_gunButtonTogglesHolster : 1; Value<bool> x229_30_gunButtonTogglesHolster : 1;
Value<bool> x229_31_gunNotFiringHolstersGun : 1; Value<bool> x229_31_gunNotFiringHolstersGun : 1;
Value<bool> x22a_24_fallingDoubleJump : 1; Value<bool> x22a_24_fallingDoubleJump : 1;
@ -139,19 +139,19 @@ struct CTweakPlayer : ITweakPlayer
Value<float> x274_stepUpHeight; Value<float> x274_stepUpHeight;
Value<float> x278_stepDownHeight; Value<float> x278_stepDownHeight;
Value<float> x27c_playerBallHalfExtent; Value<float> x27c_playerBallHalfExtent;
Value<float> x280_; Value<float> x280_firstPersonCameraSpeed;
Value<float> x284_; Value<float> x284_;
Value<float> x288_; Value<float> x288_jumpCameraPitchDownStart;
Value<float> x28c_; Value<float> x28c_jumpCameraPitchDownFull;
Value<float> x290_; Value<float> x290_jumpCameraPitchDownAngle;
Value<float> x294_; Value<float> x294_fallCameraPitchDownStart;
Value<float> x298_; Value<float> x298_fallCameraPitchDownFull;
Value<float> x29c_; Value<float> x29c_fallCameraPitchDownAngle;
Value<float> x2a0_orbitDistanceMax; Value<float> x2a0_orbitDistanceMax;
Value<float> x2a4_grappleSwingLength; Value<float> x2a4_grappleSwingLength;
Value<float> x2a8_grappleSwingPeriod; Value<float> x2a8_grappleSwingPeriod;
Value<float> x2ac_grapplePullSpeedMin; Value<float> x2ac_grapplePullSpeedMin;
Value<float> x2b0_; Value<float> x2b0_grappleCameraSpeed;
Value<float> x2b4_maxGrappleLockedTurnAlignDistance; Value<float> x2b4_maxGrappleLockedTurnAlignDistance;
Value<float> x2b8_grapplePullSpeedProportion; Value<float> x2b8_grapplePullSpeedProportion;
Value<float> x2bc_grapplePullSpeedMax; Value<float> x2bc_grapplePullSpeedMax;
@ -160,7 +160,7 @@ struct CTweakPlayer : ITweakPlayer
Value<float> x2c8_grappleJumpForce; Value<float> x2c8_grappleJumpForce;
Value<float> x2cc_grappleReleaseTime; Value<float> x2cc_grappleReleaseTime;
Value<atUint32> x2d0_grappleJumpMode; Value<atUint32> x2d0_grappleJumpMode;
Value<bool> x2d4_; Value<bool> x2d4_orbitReleaseBreaksGrapple;
Value<bool> x2d5_invertGrappleTurn; Value<bool> x2d5_invertGrappleTurn;
Value<float> x2d8_; Value<float> x2d8_;
Value<float> x2dc_; Value<float> x2dc_;
@ -188,8 +188,11 @@ struct CTweakPlayer : ITweakPlayer
float GetVerticalDoubleJumpAccel() const { return xd4_verticalDoubleJumpAccel; } float GetVerticalDoubleJumpAccel() const { return xd4_verticalDoubleJumpAccel; }
float GetHorizontalDoubleJumpAccel() const { return xd8_horizontalDoubleJumpAccel; } float GetHorizontalDoubleJumpAccel() const { return xd8_horizontalDoubleJumpAccel; }
float GetWaterJumpFactor() const { return xdc_waterJumpFactor; } float GetWaterJumpFactor() const { return xdc_waterJumpFactor; }
float GetWaterBallJumpFactor() const { return xe0_waterBallJumpFactor; }
float GetLavaJumpFactor() const { return xe4_lavaJumpFactor; } float GetLavaJumpFactor() const { return xe4_lavaJumpFactor; }
float GetLavaBallJumpFactor() const { return xe8_lavaBallJumpFactor; }
float GetPhazonJumpFactor() const { return xec_phazonJumpFactor; } float GetPhazonJumpFactor() const { return xec_phazonJumpFactor; }
float GetPhazonBallJumpFactor() const { return xf0_phazonBallJumpFactor; }
float GetAllowedJumpTime() const { return xf4_allowedJumpTime; } float GetAllowedJumpTime() const { return xf4_allowedJumpTime; }
float GetAllowedDoubleJumpTime() const { return xf8_allowedDoubleJumpTime; } float GetAllowedDoubleJumpTime() const { return xf8_allowedDoubleJumpTime; }
float GetMinDoubleJumpWindow() const { return xfc_minDoubleJumpWindow; } float GetMinDoubleJumpWindow() const { return xfc_minDoubleJumpWindow; }
@ -199,6 +202,8 @@ struct CTweakPlayer : ITweakPlayer
float GetAllowedLedgeTime() const { return x110_allowedLedgeTime; } float GetAllowedLedgeTime() const { return x110_allowedLedgeTime; }
float GetDoubleJumpImpulse() const { return x114_doubleJumpImpulse; } float GetDoubleJumpImpulse() const { return x114_doubleJumpImpulse; }
float GetBackwardsForceMultiplier() const { return x118_backwardsForceMultiplier; } float GetBackwardsForceMultiplier() const { return x118_backwardsForceMultiplier; }
float GetBombJumpRadius() const { return x11c_bombJumpRadius; }
float GetBombJumpHeight() const { return x120_bombJumpHeight; }
float GetEyeOffset() const { return x124_eyeOffset; } float GetEyeOffset() const { return x124_eyeOffset; }
float GetTurnSpeedMultiplier() const { return x128_turnSpeedMultiplier; } float GetTurnSpeedMultiplier() const { return x128_turnSpeedMultiplier; }
float GetFreeLookTurnSpeedMultiplier() const { return x12c_freeLookTurnSpeedMultiplier; } float GetFreeLookTurnSpeedMultiplier() const { return x12c_freeLookTurnSpeedMultiplier; }
@ -206,10 +211,12 @@ struct CTweakPlayer : ITweakPlayer
float GetFreeLookSnapSpeed() const { return x13c_freeLookSnapSpeed; } float GetFreeLookSnapSpeed() const { return x13c_freeLookSnapSpeed; }
float GetFreeLookCenteredThresholdAngle() const { return x144_freeLookCenteredThresholdAngle; } float GetFreeLookCenteredThresholdAngle() const { return x144_freeLookCenteredThresholdAngle; }
float GetFreeLookCenteredTime() const { return x148_freeLookCenteredTime; } float GetFreeLookCenteredTime() const { return x148_freeLookCenteredTime; }
float GetOrbitNormalDistance() const { return x180_orbitNormalDistance; } float GetOrbitModeTimer() const { return x180_orbitModeTimer; }
float GetMaxUpwardOrbitLookAngle() const { return x188_maxUpwardOrbitLookAngle; } float GetOrbitUpperAngle() const { return x188_orbitUpperAngle; }
float GetMaxDownwardOrbitLookAngle() const { return x18c_maxDownwardOrbitLookAngle; } float GetOrbitLowerAngle() const { return x18c_orbitLowerAngle; }
float GetOrbitHorizAngle() const { return x190_orbitHorizAngle; } float GetOrbitHorizAngle() const { return x190_orbitHorizAngle; }
float GetOrbitMaxTargetDistance() const { return x19c_orbitMaxTargetDistance; }
float GetOrbitMaxLockDistance() const { return x1a0_orbitMaxLockDistance; }
float GetOrbitDistanceThreshold() const { return x1a4_orbitDistanceThreshold; } float GetOrbitDistanceThreshold() const { return x1a4_orbitDistanceThreshold; }
uint32_t GetOrbitScreenBoxHalfExtentX(int zone) const { return x1a8_orbitScreenBoxHalfExtentX[zone]; } uint32_t GetOrbitScreenBoxHalfExtentX(int zone) const { return x1a8_orbitScreenBoxHalfExtentX[zone]; }
uint32_t GetOrbitScreenBoxHalfExtentY(int zone) const { return x1b0_orbitScreenBoxHalfExtentY[zone]; } uint32_t GetOrbitScreenBoxHalfExtentY(int zone) const { return x1b0_orbitScreenBoxHalfExtentY[zone]; }
@ -219,6 +226,7 @@ struct CTweakPlayer : ITweakPlayer
uint32_t GetOrbitZoneIdealY(int zone) const { return x1d0_orbitZoneIdealY[zone]; } uint32_t GetOrbitZoneIdealY(int zone) const { return x1d0_orbitZoneIdealY[zone]; }
float GetOrbitNearX() const { return x1d8_orbitNearX; } float GetOrbitNearX() const { return x1d8_orbitNearX; }
float GetOrbitNearZ() const { return x1dc_orbitNearZ; } float GetOrbitNearZ() const { return x1dc_orbitNearZ; }
float GetOrbitFixedOffsetZDiff() const { return x1e8_orbitFixedOffsetZDiff; }
float GetOrbitZRange() const { return x1ec_orbitZRange; } float GetOrbitZRange() const { return x1ec_orbitZRange; }
bool GetDashEnabled() const { return x200_24_dashEnabled; } bool GetDashEnabled() const { return x200_24_dashEnabled; }
bool GetDashOnButtonRelease() const { return x200_25_dashOnButtonRelease; } bool GetDashOnButtonRelease() const { return x200_25_dashOnButtonRelease; }
@ -231,12 +239,14 @@ struct CTweakPlayer : ITweakPlayer
bool GetScanRetention() const { return x21c_24_scanRetention; } bool GetScanRetention() const { return x21c_24_scanRetention; }
bool GetScanFreezesGame() const { return x21c_25_scanFreezesGame; } bool GetScanFreezesGame() const { return x21c_25_scanFreezesGame; }
bool GetOrbitWhileScanning() const { return x21c_26_orbitWhileScanning; } bool GetOrbitWhileScanning() const { return x21c_26_orbitWhileScanning; }
float GetScanningFrameSenseRange() const { return x224_scanningFrameSenseRange; } float GetScanMaxTargetDistance() const { return x220_scanMaxTargetDistance; }
float GetScanMaxLockDistance() const { return x224_scanMaxLockDistance; }
bool GetMoveDuringFreeLook() const { return x228_27_moveDuringFreeLook; } bool GetMoveDuringFreeLook() const { return x228_27_moveDuringFreeLook; }
bool GetHoldButtonsForFreeLook() const { return x228_28_holdButtonsForFreeLook; } bool GetHoldButtonsForFreeLook() const { return x228_28_holdButtonsForFreeLook; }
bool GetTwoButtonsForFreeLook() const { return x228_29_twoButtonsForFreeLook; } bool GetTwoButtonsForFreeLook() const { return x228_29_twoButtonsForFreeLook; }
bool GetAimWhenOrbitingPoint() const { return x229_25_aimWhenOrbitingPoint; } bool GetAimWhenOrbitingPoint() const { return x229_25_aimWhenOrbitingPoint; }
bool GetStayInFreeLookWhileFiring() const { return x229_26_stayInFreeLookWhileFiring; } bool GetStayInFreeLookWhileFiring() const { return x229_26_stayInFreeLookWhileFiring; }
bool GetOrbitFixedOffset() const { return x229_29_orbitFixedOffset; }
bool GetGunButtonTogglesHolster() const { return x229_30_gunButtonTogglesHolster; } bool GetGunButtonTogglesHolster() const { return x229_30_gunButtonTogglesHolster; }
bool GetGunNotFiringHolstersGun() const { return x229_31_gunNotFiringHolstersGun; } bool GetGunNotFiringHolstersGun() const { return x229_31_gunNotFiringHolstersGun; }
bool GetFallingDoubleJump() const { return x22a_24_fallingDoubleJump; } bool GetFallingDoubleJump() const { return x22a_24_fallingDoubleJump; }
@ -268,24 +278,27 @@ struct CTweakPlayer : ITweakPlayer
float GetGrappleJumpForce() const { return x2c8_grappleJumpForce; } float GetGrappleJumpForce() const { return x2c8_grappleJumpForce; }
float GetGrappleReleaseTime() const { return x2cc_grappleReleaseTime; } float GetGrappleReleaseTime() const { return x2cc_grappleReleaseTime; }
uint32_t GetGrappleJumpMode() const { return x2d0_grappleJumpMode; } uint32_t GetGrappleJumpMode() const { return x2d0_grappleJumpMode; }
bool InvertGrappleTurn() const { return x2d5_invertGrappleTurn; } bool GetOrbitReleaseBreaksGrapple() const { return x2d4_orbitReleaseBreaksGrapple; }
bool GetInvertGrappleTurn() const { return x2d5_invertGrappleTurn; }
float GetHorizontalFreeLookAngleVel() const { return x130_horizontalFreeLookAngleVel; } float GetHorizontalFreeLookAngleVel() const { return x130_horizontalFreeLookAngleVel; }
float GetVerticalFreeLookAngleVel() const { return x134_verticalFreeLookAngleVel; } float GetVerticalFreeLookAngleVel() const { return x134_verticalFreeLookAngleVel; }
float GetX184() const { return x184_; } float GetOrbitCameraSpeed() const { return x184_orbitCameraSpeed; }
float GetX1fc() const { return x1fc_; } float GetOrbitPreventionTime() const { return x1fc_orbitPreventionTime; }
bool GetFreeLookTurnsPlayer() const { return x228_24_freelookTurnsPlayer; } bool GetFreeLookTurnsPlayer() const { return x228_24_freelookTurnsPlayer; }
float GetX288() const { return x288_; } float GetJumpCameraPitchDownStart() const { return x288_jumpCameraPitchDownStart; }
float GetX28c() const { return x28c_; } float GetJumpCameraPitchDownFull() const { return x28c_jumpCameraPitchDownFull; }
float GetX290() const { return x290_; } float GetJumpCameraPitchDownAngle() const { return x290_jumpCameraPitchDownAngle; }
float GetX294() const { return x294_; } float GetFallCameraPitchDownStart() const { return x294_fallCameraPitchDownStart; }
float GetX298() const { return x298_; } float GetFallCameraPitchDownFull() const { return x298_fallCameraPitchDownFull; }
float GetX29C() const { return x29c_; } float GetFallCameraPitchDownAngle() const { return x29c_fallCameraPitchDownAngle; }
float GetX280() const { return x280_; } float GetFirstPersonCameraSpeed() const { return x280_firstPersonCameraSpeed; }
float GetX2B0() const { return x2b0_; } float GetGrappleCameraSpeed() const { return x2b0_grappleCameraSpeed; }
float GetX14C() const { return x14c_; } float GetFreeLookDampenFactor() const { return x14c_freeLookDampenFactor; }
float GetLeftLogicalThreshold() const { return x150_leftDiv; } float GetLeftLogicalThreshold() const { return x150_leftDiv; }
float GetRightLogicalThreshold() const { return x154_rightDiv; } float GetRightLogicalThreshold() const { return x154_rightDiv; }
float GetX164(int type) const { return x164_[type]; } float GetOrbitZBasedDistance(int type) const { return x158_orbitZBasedDistance[type]; }
float GetOrbitNormalDistance(int type) const { return x164_orbitNormalDistance[type]; }
float GetOrbitMaxDistance(int type) const { return x170_orbitMaxDistance[type]; }
float GetFrozenTimeout() const { return x2f8_frozenTimeout; } float GetFrozenTimeout() const { return x2f8_frozenTimeout; }
uint32_t GetIceBreakJumpCount() const { return x2fc_iceBreakJumpCount; } uint32_t GetIceBreakJumpCount() const { return x2fc_iceBreakJumpCount; }
float GetVariaDamageReduction() const { return x300_variaDamageReduction; } float GetVariaDamageReduction() const { return x300_variaDamageReduction; }

View File

@ -412,6 +412,23 @@ void CSfxManager::UpdateEmitter(const CSfxHandle& handle, const zeus::CVector3f&
h.setMaxVol(maxVol); h.setMaxVol(maxVol);
} }
CSfxHandle CSfxManager::AddEmitter(u16 id, const zeus::CVector3f& pos, const zeus::CVector3f& dir,
bool useAcoustics, bool looped, s16 prio, s32 areaId)
{
CAudioSys::C3DEmitterParmData parmData;
parmData.x0_pos = pos;
parmData.xc_dir = dir;
parmData.x18_maxDist = 150.f;
parmData.x1c_distComp = 0.1f;
parmData.x20_flags = 1; // Continuous parameter update
parmData.x24_sfxId = id;
parmData.x26_maxVol = 1.f;
parmData.x27_minVol = 0.165f;
parmData.x28_important = false;
parmData.x29_prio = 0x7f;
return AddEmitter(parmData, useAcoustics, prio, looped, areaId);
}
CSfxHandle CSfxManager::AddEmitter(u16 id, const zeus::CVector3f& pos, const zeus::CVector3f& dir, float vol, CSfxHandle CSfxManager::AddEmitter(u16 id, const zeus::CVector3f& pos, const zeus::CVector3f& dir, float vol,
bool useAcoustics, bool looped, s16 prio, s32 areaId) bool useAcoustics, bool looped, s16 prio, s32 areaId)
{ {
@ -423,6 +440,7 @@ CSfxHandle CSfxManager::AddEmitter(u16 id, const zeus::CVector3f& pos, const zeu
parmData.x20_flags = 1; // Continuous parameter update parmData.x20_flags = 1; // Continuous parameter update
parmData.x24_sfxId = id; parmData.x24_sfxId = id;
parmData.x26_maxVol = std::max(vol, 0.165f); parmData.x26_maxVol = std::max(vol, 0.165f);
parmData.x27_minVol = 0.165f;
parmData.x28_important = false; parmData.x28_important = false;
parmData.x29_prio = 0x7f; parmData.x29_prio = 0x7f;
return AddEmitter(parmData, useAcoustics, prio, looped, areaId); return AddEmitter(parmData, useAcoustics, prio, looped, areaId);

View File

@ -224,6 +224,8 @@ public:
static void RemoveEmitter(const CSfxHandle& handle); static void RemoveEmitter(const CSfxHandle& handle);
static void UpdateEmitter(const CSfxHandle& handle, const zeus::CVector3f& pos, const zeus::CVector3f& dir, static void UpdateEmitter(const CSfxHandle& handle, const zeus::CVector3f& pos, const zeus::CVector3f& dir,
float maxVol); float maxVol);
static CSfxHandle AddEmitter(u16 id, const zeus::CVector3f& pos, const zeus::CVector3f& dir,
bool useAcoustics, bool looped, s16 prio, s32 areaId);
static CSfxHandle AddEmitter(u16 id, const zeus::CVector3f& pos, const zeus::CVector3f& dir, float vol, static CSfxHandle AddEmitter(u16 id, const zeus::CVector3f& pos, const zeus::CVector3f& dir, float vol,
bool useAcoustics, bool looped, s16 prio, s32 areaId); bool useAcoustics, bool looped, s16 prio, s32 areaId);
static CSfxHandle AddEmitter(const CAudioSys::C3DEmitterParmData& parmData, static CSfxHandle AddEmitter(const CAudioSys::C3DEmitterParmData& parmData,

View File

@ -545,7 +545,7 @@ void CStateManager::DrawE3DeathEffect() const
CPlayer& player = *x84c_player; CPlayer& player = *x84c_player;
if (player.x9f4_deathTime > 0.f) if (player.x9f4_deathTime > 0.f)
{ {
if (player.x2f8_morphTransState != CPlayer::EPlayerMorphBallState::Unmorphed) if (player.x2f8_morphBallState != CPlayer::EPlayerMorphBallState::Unmorphed)
{ {
float blurAmt = zeus::clamp(0.f, (player.x9f4_deathTime - 1.f) / (6.f - 1.f), 1.f); float blurAmt = zeus::clamp(0.f, (player.x9f4_deathTime - 1.f) / (6.f - 1.f), 1.f);
if (blurAmt > 0.f) if (blurAmt > 0.f)
@ -1316,7 +1316,7 @@ void CStateManager::KnockBackPlayer(CPlayer& player, const zeus::CVector3f& pos,
CPlayer::ESurfaceRestraints surface = CPlayer::ESurfaceRestraints surface =
player.x2b0_outOfWaterTicks == 2 ? player.x2ac_surfaceRestraint : CPlayer::ESurfaceRestraints::Water; player.x2b0_outOfWaterTicks == 2 ? player.x2ac_surfaceRestraint : CPlayer::ESurfaceRestraints::Water;
if (surface != CPlayer::ESurfaceRestraints::Normal && if (surface != CPlayer::ESurfaceRestraints::Normal &&
player.GetOrbitState() == CPlayer::EPlayerOrbitState::Zero) player.GetOrbitState() == CPlayer::EPlayerOrbitState::NoOrbit)
usePower /= 7.f; usePower /= 7.f;
} }
else else

View File

@ -177,37 +177,13 @@ private:
std::set<std::string> xb40_uniqueInstanceNames; std::set<std::string> xb40_uniqueInstanceNames;
CFinalInput xb54_finalInput; CFinalInput xb54_finalInput;
CCameraFilterPassPoly xb84_camFilterPasses[9]; CCameraFilterPassPoly xb84_camFilterPasses[9]; // size: 0x2c
CCameraBlurPass xd14_camBlurPasses[9]; CCameraBlurPass xd14_camBlurPasses[9]; // size: 0x34
s32 xe60_ = -1; s32 xeec_hintIdx = -1;
zeus::CVector3f xe64_;
TUniqueId xe70_ = kInvalidUniqueId;
zeus::CVector3f xe74_ = {0.f, 1.f, 1.f};
s32 xe80_ = 2;
TUniqueId xe84_ = kInvalidUniqueId;
union
{
struct
{
bool xe86_24_ : 1;
bool xe86_25_ : 1;
bool xe86_26_ : 1;
bool xe86_27_ : 1;
bool xe86_28_ : 1;
bool xe86_29_ : 1;
};
u16 _dummy = 0;
};
u32 xeec_hintIdx = -1;
u32 xef0_hintPeriods = 0; u32 xef0_hintPeriods = 0;
SOnScreenTex xef4_pendingScreenTex; SOnScreenTex xef4_pendingScreenTex;
CAssetId xf08_pauseHudMessage = -1; CAssetId xf08_pauseHudMessage;
float xf0c_escapeTimer = 0.f; float xf0c_escapeTimer = 0.f;
float xf10_escapeTotalTime = 0.f; float xf10_escapeTotalTime = 0.f;
float xf14_curTimeMod900 = 0.f; float xf14_curTimeMod900 = 0.f;
@ -220,9 +196,7 @@ private:
u32 xf34_particleFlags = 2; u32 xf34_particleFlags = 2;
TUniqueId xf38_skipCineSpecialFunc = kInvalidUniqueId; TUniqueId xf38_skipCineSpecialFunc = kInvalidUniqueId;
std::list<u32> xf3c_; std::list<u32> xf3c_;
u32 xf50_ = 0;
std::list<u32> xf54_; std::list<u32> xf54_;
u32 xf68_ = 0;
TUniqueId xf6c_playerActor = kInvalidUniqueId; TUniqueId xf6c_playerActor = kInvalidUniqueId;
u32 xf70_ = 0; u32 xf70_ = 0;
@ -233,7 +207,7 @@ private:
CProjectedShadow* xf7c_projectedShadow = nullptr; CProjectedShadow* xf7c_projectedShadow = nullptr;
u32 xf80_hudMessageFrameCount = 0; u32 xf80_hudMessageFrameCount = 0;
s32 xf84_ = -1; s32 xf84_ = -1;
CAssetId xf88_ = -1; CAssetId xf88_;
float xf8c_ = 0.f; float xf8c_ = 0.f;
EStateManagerTransition xf90_deferredTransition = EStateManagerTransition::InGame; EStateManagerTransition xf90_deferredTransition = EStateManagerTransition::InGame;

View File

@ -19,7 +19,7 @@ public:
Five Five
}; };
private: private:
TUniqueId x3dc_ = kInvalidUniqueId; TUniqueId x3dc_tooCloseActorId = kInvalidUniqueId;
float x3e0_ = 10000.f; float x3e0_ = 10000.f;
public: public:
CBallCamera(TUniqueId, TUniqueId, const zeus::CTransform& xf, float, float, float, float); CBallCamera(TUniqueId, TUniqueId, const zeus::CTransform& xf, float, float, float, float);
@ -29,7 +29,7 @@ public:
void Reset(const zeus::CTransform&, CStateManager& mgr); void Reset(const zeus::CTransform&, CStateManager& mgr);
void SetState(EBallCameraState state, CStateManager& mgr); void SetState(EBallCameraState state, CStateManager& mgr);
bool TransitionFromMorphBallState(CStateManager& mgr); bool TransitionFromMorphBallState(CStateManager& mgr);
TUniqueId GetX3DC() const { return x3dc_; } TUniqueId GetTooCloseActorId() const { return x3dc_tooCloseActorId; }
float GetX3E0() const { return x3e0_; } float GetX3E0() const { return x3e0_; }
void TeleportCamera(const zeus::CVector3f& pos, CStateManager& mgr); void TeleportCamera(const zeus::CVector3f& pos, CStateManager& mgr);
}; };

View File

@ -181,10 +181,10 @@ void CCameraManager::CreateStandardCameras(CStateManager& stateMgr)
{ {
TUniqueId fpId = stateMgr.AllocateUniqueId(); TUniqueId fpId = stateMgr.AllocateUniqueId();
x7c_fpCamera = new CFirstPersonCamera(fpId, zeus::CTransform::Identity(), x7c_fpCamera = new CFirstPersonCamera(fpId, zeus::CTransform::Identity(),
stateMgr.Player()->GetUniqueId(), g_tweakPlayer->GetX184(), stateMgr.Player()->GetUniqueId(), g_tweakPlayer->GetOrbitCameraSpeed(),
sFirstPersonFOV, sNearPlane, sFarPlane, sAspect); sFirstPersonFOV, sNearPlane, sFarPlane, sAspect);
stateMgr.AddObject(x7c_fpCamera); stateMgr.AddObject(x7c_fpCamera);
stateMgr.Player()->SetCameraState(CPlayer::EPlayerCameraState::Zero, stateMgr); stateMgr.Player()->SetCameraState(CPlayer::EPlayerCameraState::FirstPerson, stateMgr);
SetCurrentCameraId(fpId, stateMgr); SetCurrentCameraId(fpId, stateMgr);
x80_ballCamera = new CBallCamera(stateMgr.AllocateUniqueId(), stateMgr.Player()->GetUniqueId(), x80_ballCamera = new CBallCamera(stateMgr.AllocateUniqueId(), stateMgr.Player()->GetUniqueId(),

View File

@ -12,10 +12,10 @@
namespace urde namespace urde
{ {
CFirstPersonCamera::CFirstPersonCamera(TUniqueId uid, const zeus::CTransform& xf, TUniqueId watchedObj, float f1, CFirstPersonCamera::CFirstPersonCamera(TUniqueId uid, const zeus::CTransform& xf, TUniqueId watchedObj,
float fov, float nearz, float farz, float aspect) float orbitCameraSpeed, float fov, float nearz, float farz, float aspect)
: CGameCamera(uid, true, "First Person Camera", CEntityInfo(kInvalidAreaId, CEntity::NullConnectionList), xf, fov, : CGameCamera(uid, true, "First Person Camera", CEntityInfo(kInvalidAreaId, CEntity::NullConnectionList), xf, fov,
nearz, farz, aspect, watchedObj, false, 0) nearz, farz, aspect, watchedObj, false, 0), x188_orbitCameraSpeed(orbitCameraSpeed)
{ {
} }
@ -84,8 +84,8 @@ void CFirstPersonCamera::UpdateTransform(CStateManager& mgr, float dt)
if (player->x3dc_inFreeLook) if (player->x3dc_inFreeLook)
{ {
float angle = player->x3ec_freeLookPitchAngle; float angle = player->x3ec_freeLookPitchAngle;
if (std::fabs(player->x3ec_freeLookPitchAngle) > (g_tweakPlayer->GetVerticalFreeLookAngleVel() - std::fabs(x1c0_))) float angleClamp = g_tweakPlayer->GetVerticalFreeLookAngleVel() - std::fabs(x1c0_);
angle = (player->x3ec_freeLookPitchAngle > -0.f ? -1.f : 1.f); angle = zeus::clamp(-angleClamp, angle, angleClamp);
zeus::CVector3f vec; zeus::CVector3f vec;
vec.z = std::sin(angle); vec.z = std::sin(angle);
vec.y = std::cos(-player->x3e4_freeLookYawAngle) * std::cos(angle); vec.y = std::cos(-player->x3e4_freeLookYawAngle) * std::cos(angle);
@ -117,14 +117,15 @@ void CFirstPersonCamera::UpdateTransform(CStateManager& mgr, float dt)
rVec = v; rVec = v;
} }
} }
else if (player->GetOrbitState() == CPlayer::EPlayerOrbitState::Zero && else if (player->GetOrbitState() == CPlayer::EPlayerOrbitState::NoOrbit &&
player->GetMorphballTransitionState() == CPlayer::EPlayerMorphBallState::Unmorphed && player->GetMorphballTransitionState() == CPlayer::EPlayerMorphBallState::Unmorphed &&
player->x3dc_inFreeLook && x1c4_pitchId == kInvalidUniqueId) !player->x3dc_inFreeLook && x1c4_pitchId == kInvalidUniqueId)
{ {
if (player->x294_jumpCameraPitchTimer > 0.f) if (player->x294_jumpCameraTimer > 0.f)
{ {
float angle = zeus::clamp(0.f, (player->x294_jumpCameraPitchTimer - g_tweakPlayer->GetX288()) / g_tweakPlayer->GetX28c(), 1.f) * float angle = zeus::clamp(0.f, (player->x294_jumpCameraTimer - g_tweakPlayer->GetJumpCameraPitchDownStart()) /
g_tweakPlayer->GetX290(); g_tweakPlayer->GetJumpCameraPitchDownFull(), 1.f) *
g_tweakPlayer->GetJumpCameraPitchDownAngle();
angle += x1c0_; angle += x1c0_;
rVec.x = 0.f; rVec.x = 0.f;
rVec.y = std::cos(angle); rVec.y = std::cos(angle);
@ -132,10 +133,11 @@ void CFirstPersonCamera::UpdateTransform(CStateManager& mgr, float dt)
rVec = playerXf.rotate(rVec); rVec = playerXf.rotate(rVec);
} }
else if (player->x29c_spaceJumpCameraPitchTimer > 0.f) else if (player->x29c_fallCameraTimer > 0.f)
{ {
float angle = zeus::clamp(0.f, (player->x29c_spaceJumpCameraPitchTimer - g_tweakPlayer->GetX294()) / g_tweakPlayer->GetX298(), 1.f) * float angle = zeus::clamp(0.f, (player->x29c_fallCameraTimer - g_tweakPlayer->GetFallCameraPitchDownStart()) /
g_tweakPlayer->GetX29C(); g_tweakPlayer->GetFallCameraPitchDownFull(), 1.f) *
g_tweakPlayer->GetFallCameraPitchDownAngle();
rVec.x = 0.f; rVec.x = 0.f;
rVec.y = std::cos(angle); rVec.y = std::cos(angle);
rVec.z = -std::sin(angle); rVec.z = -std::sin(angle);
@ -160,19 +162,18 @@ void CFirstPersonCamera::UpdateTransform(CStateManager& mgr, float dt)
if (gunFrontVec.canBeNormalized()) if (gunFrontVec.canBeNormalized())
gunFrontVec.normalize(); gunFrontVec.normalize();
float scaledDt = (dt * g_tweakPlayer->GetX184()); float scaledDt = (dt * g_tweakPlayer->GetOrbitCameraSpeed());
float angle = gunFrontVec.dot(rVec); float angle = gunFrontVec.dot(rVec);
if (std::fabs(angle) > 1.f) angle = zeus::clamp(-1.f, angle, 1.f);
angle = (angle > -0.f ? -1.f : 1.f);
float clampedAngle = zeus::clamp(0.f, std::acos(angle) / scaledDt, 1.f); float clampedAngle = zeus::clamp(0.f, std::acos(angle) / scaledDt, 1.f);
if (angle > 0.999f && x18c_ && !player->x374_orbitLockEstablished) if (angle > 0.999f && x18c_lockCamera && !player->x374_orbitLockEstablished)
qGun = zeus::CQuaternion::lookAt(rVec, gunFrontVec, zeus::CRelAngle::FromDegrees(360.f)); qGun = zeus::CQuaternion::lookAt(rVec, gunFrontVec, zeus::CRelAngle::FromDegrees(360.f));
else else
qGun = zeus::CQuaternion::lookAt(rVec, gunFrontVec, scaledDt * clampedAngle); qGun = zeus::CQuaternion::lookAt(rVec, gunFrontVec, scaledDt * clampedAngle);
const CScriptGrapplePoint* gPoint = const CScriptGrapplePoint* gPoint =
TCastToConstPtr<CScriptGrapplePoint>(mgr.GetObjectById(player->x310_orbitTargetId)); TCastToConstPtr<CScriptGrapplePoint>(mgr.GetObjectById(player->x310_orbitTargetId));
if (gPoint && player->x29c_spaceJumpCameraPitchTimer > 0.f) if (gPoint && player->x29c_fallCameraTimer > 0.f)
{ {
gunFrontVec = x190_gunFollowXf.frontVector(); gunFrontVec = x190_gunFollowXf.frontVector();
if (gunFrontVec.canBeNormalized()) if (gunFrontVec.canBeNormalized())
@ -192,11 +193,9 @@ void CFirstPersonCamera::UpdateTransform(CStateManager& mgr, float dt)
/* BUG: This is exactly what the runtime is doing, should we restore the intended behavior? */ /* BUG: This is exactly what the runtime is doing, should we restore the intended behavior? */
float angle = gunFrontVec.dot(rVec); float angle = gunFrontVec.dot(rVec);
float sdt = dt * g_tweakPlayer->GetX2B0(); float sdt = dt * g_tweakPlayer->GetGrappleCameraSpeed();
if (std::fabs(angle) > 1.0f)
angle = (angle > -0.f ? -1.f : 1.f);
angle = zeus::clamp(-1.f, angle, 1.f);
angle = zeus::clamp(0.f, std::acos(angle) / sdt, 1.f); angle = zeus::clamp(0.f, std::acos(angle) / sdt, 1.f);
qGun = zeus::CQuaternion::lookAt(rVec, gunFrontVec, zeus::CRelAngle::FromDegrees(360.f)); qGun = zeus::CQuaternion::lookAt(rVec, gunFrontVec, zeus::CRelAngle::FromDegrees(360.f));
} }
@ -204,17 +203,17 @@ void CFirstPersonCamera::UpdateTransform(CStateManager& mgr, float dt)
else if (player->GetOrbitState() == CPlayer::EPlayerOrbitState::Two || else if (player->GetOrbitState() == CPlayer::EPlayerOrbitState::Two ||
player->GetOrbitState() == CPlayer::EPlayerOrbitState::Three) player->GetOrbitState() == CPlayer::EPlayerOrbitState::Three)
{ {
dt *= g_tweakPlayer->GetX184(); dt *= g_tweakPlayer->GetOrbitCameraSpeed();
CalculateGunFollowOrientationAndTransform(gunXf, qGun, dt, rVec); CalculateGunFollowOrientationAndTransform(gunXf, qGun, dt, rVec);
} }
else if (player->GetOrbitState() == CPlayer::EPlayerOrbitState::Five) else if (player->GetOrbitState() == CPlayer::EPlayerOrbitState::Grapple)
{ {
dt *= g_tweakPlayer->GetX2B0(); dt *= g_tweakPlayer->GetGrappleCameraSpeed();
CalculateGunFollowOrientationAndTransform(gunXf, qGun, dt, rVec); CalculateGunFollowOrientationAndTransform(gunXf, qGun, dt, rVec);
} }
else else
{ {
dt *= g_tweakPlayer->GetX280(); dt *= g_tweakPlayer->GetFirstPersonCameraSpeed();
CalculateGunFollowOrientationAndTransform(gunXf, qGun, dt, rVec); CalculateGunFollowOrientationAndTransform(gunXf, qGun, dt, rVec);
} }
} }
@ -235,16 +234,16 @@ void CFirstPersonCamera::UpdateTransform(CStateManager& mgr, float dt)
gunFront.normalize(); gunFront.normalize();
float angle = gunFront.dot(rVec); float angle = gunFront.dot(rVec);
if (std::fabs(angle) > 1.f) angle = zeus::clamp(-1.f, angle, 1.f);
angle = (angle > -0.f ? -1.f : 1.f);
float sdt = dt * g_tweakPlayer->GetFreeLookSpeed(); float sdt = dt * g_tweakPlayer->GetFreeLookSpeed();
qGun = zeus::CQuaternion::lookAt( qGun = zeus::CQuaternion::lookAt(
rVec, gunFront, sdt * zeus::clamp(0.f, g_tweakPlayer->GetX14C() * (std::acos(angle) / sdt), 1.f)); rVec, gunFront, sdt * zeus::clamp(0.f, g_tweakPlayer->GetFreeLookDampenFactor() *
(std::acos(angle) / sdt), 1.f));
} }
zeus::CTransform bobXf = player->GetCameraBob()->GetCameraBobTransformation(); zeus::CTransform bobXf = player->GetCameraBob()->GetCameraBobTransformation();
if (player->GetMorphballTransitionState() == CPlayer::EPlayerMorphBallState::Morphed || if (player->GetMorphballTransitionState() == CPlayer::EPlayerMorphBallState::Morphed ||
player->GetOrbitState() == CPlayer::EPlayerOrbitState::Five || player->GetOrbitState() == CPlayer::EPlayerOrbitState::Grapple ||
player->GetGrappleState() == CPlayer::EGrappleState::None || player->GetGrappleState() == CPlayer::EGrappleState::None ||
mgr.GetGameState() == CStateManager::EGameState::SoftPaused || mgr.GetGameState() == CStateManager::EGameState::SoftPaused ||
mgr.GetCameraManager()->IsInCinematicCamera()) mgr.GetCameraManager()->IsInCinematicCamera())

View File

@ -8,8 +8,8 @@ namespace urde
class CFirstPersonCamera : public CGameCamera class CFirstPersonCamera : public CGameCamera
{ {
float x188_; float x188_orbitCameraSpeed;
bool x18c_ = false; bool x18c_lockCamera = false;
zeus::CTransform x190_gunFollowXf; zeus::CTransform x190_gunFollowXf;
float x1c0_ = 0.f; float x1c0_ = 0.f;
TUniqueId x1c4_pitchId = kInvalidUniqueId; TUniqueId x1c4_pitchId = kInvalidUniqueId;
@ -25,7 +25,7 @@ class CFirstPersonCamera : public CGameCamera
float x1d4_ = 0.f; float x1d4_ = 0.f;
public: public:
CFirstPersonCamera(TUniqueId, const zeus::CTransform& xf, TUniqueId, float, CFirstPersonCamera(TUniqueId, const zeus::CTransform& xf, TUniqueId, float orbitCameraSpeed,
float fov, float nearplane, float farplane, float aspect); float fov, float nearplane, float farplane, float aspect);
void Accept(IVisitor& visitor); void Accept(IVisitor& visitor);
@ -40,7 +40,7 @@ public:
void UpdateElevation(CStateManager&); void UpdateElevation(CStateManager&);
void CalculateGunFollowOrientationAndTransform(zeus::CTransform&, zeus::CQuaternion&, float, zeus::CVector3f&); void CalculateGunFollowOrientationAndTransform(zeus::CTransform&, zeus::CQuaternion&, float, zeus::CVector3f&);
void SetScriptPitchId(TUniqueId uid) { x1c4_pitchId = uid; } void SetScriptPitchId(TUniqueId uid) { x1c4_pitchId = uid; }
void SetX18C(bool v) { x18c_ = v; } void SetLockCamera(bool v) { x18c_lockCamera = v; }
void SetX1C6_24(bool v) { x1c6_24_ = v; } void SetX1C6_24(bool v) { x1c6_24_ = v; }
}; };
} }

View File

@ -600,7 +600,7 @@ void CInGameGuiManager::Draw(CStateManager& stateMgr)
bool scanVisor = stateMgr.GetPlayerState()->GetActiveVisor(stateMgr) == CPlayerState::EPlayerVisor::Scan; bool scanVisor = stateMgr.GetPlayerState()->GetActiveVisor(stateMgr) == CPlayerState::EPlayerVisor::Scan;
if (drawVisor && x1f0_enablePlayerVisor) if (drawVisor && x1f0_enablePlayerVisor)
{ {
if (stateMgr.GetPlayer().GetCameraState() == CPlayer::EPlayerCameraState::Zero) if (stateMgr.GetPlayer().GetCameraState() == CPlayer::EPlayerCameraState::FirstPerson)
x20_faceplateDecor.Draw(stateMgr); x20_faceplateDecor.Draw(stateMgr);
CTargetingManager* tgtMgr = nullptr; CTargetingManager* tgtMgr = nullptr;
if (scanVisor && x1e4_enableTargetingManager) if (scanVisor && x1e4_enableTargetingManager)

View File

@ -119,7 +119,7 @@ bool CPlayerVisor::DrawScanObjectIndicators(const CStateManager& mgr) const
zeus::CTransform xf(zeus::CMatrix3f(scale), scanPos); zeus::CTransform xf(zeus::CMatrix3f(scale), scanPos);
float scanRange = g_tweakPlayer->GetScanningRange(); float scanRange = g_tweakPlayer->GetScanningRange();
float farRange = g_tweakPlayer->GetScanningFrameSenseRange() - scanRange; float farRange = g_tweakPlayer->GetScanMaxLockDistance() - scanRange;
float farT; float farT;
if (farRange <= 0.f) if (farRange <= 0.f)
farT = 1.f; farT = 1.f;

View File

@ -211,7 +211,7 @@ private:
bool x835_28_bombReady : 1; bool x835_28_bombReady : 1;
bool x835_29_powerBombReady : 1; bool x835_29_powerBombReady : 1;
bool x835_30_ : 1; bool x835_30_ : 1;
bool x835_31_ : 1; bool x835_31_actorAttached : 1;
}; };
u32 _dummy = 0; u32 _dummy = 0;
}; };
@ -247,6 +247,7 @@ public:
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const; void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const;
bool GetFiring() const { return x2ec_firing != 0; } bool GetFiring() const { return x2ec_firing != 0; }
TUniqueId DropPowerBomb(CStateManager& mgr); TUniqueId DropPowerBomb(CStateManager& mgr);
void SetActorAttached(bool b) { x835_31_actorAttached = b; }
}; };
} }

View File

@ -21,7 +21,7 @@ CDamageInfo& CDamageInfo::operator=(const DataSpec::SShotParam& other)
xc_radiusDamage = x8_damage; xc_radiusDamage = x8_damage;
x10_radius = other.radius; x10_radius = other.radius;
x14_knockback = other.knockback; x14_knockback = other.knockback;
x18_ = false; x18_noImmunity = false;
return *this; return *this;
} }

View File

@ -20,7 +20,7 @@ class CDamageInfo
float xc_radiusDamage; float xc_radiusDamage;
float x10_radius; float x10_radius;
float x14_knockback; float x14_knockback;
bool x18_ = false; bool x18_noImmunity = false;
public: public:
CDamageInfo() = default; CDamageInfo() = default;
@ -50,7 +50,7 @@ public:
float GetDamage(const CDamageVulnerability& dVuln) const; float GetDamage(const CDamageVulnerability& dVuln) const;
float GetRadiusDamage() const { return xc_radiusDamage; } float GetRadiusDamage() const { return xc_radiusDamage; }
float GetRadiusDamage(const CDamageVulnerability& dVuln) const; float GetRadiusDamage(const CDamageVulnerability& dVuln) const;
bool GetX18() const { return x18_; } bool NoImmunity() const { return x18_noImmunity; }
}; };
} }

View File

@ -22,7 +22,7 @@ void CMorphBall::DrawBallShadow(const CStateManager& mgr)
return; return;
float alpha = 1.f; float alpha = 1.f;
switch (x0_player.x2f8_morphTransState) switch (x0_player.x2f8_morphBallState)
{ {
case CPlayer::EPlayerMorphBallState::Unmorphed: case CPlayer::EPlayerMorphBallState::Unmorphed:
return; return;

View File

@ -29,6 +29,12 @@ public:
{ {
Zero Zero
}; };
enum class EBombJumpState
{
Zero,
One
};
private: private:
CPlayer& x0_player; CPlayer& x0_player;
std::unique_ptr<CModelData> x58_ballModel; std::unique_ptr<CModelData> x58_ballModel;
@ -50,14 +56,23 @@ private:
u32 x1960_ = false; u32 x1960_ = false;
u32 x1964_ = false; u32 x1964_ = false;
u32 x19dc_ = false; u32 x19dc_ = false;
union
{
struct
{
bool x1de4_25 : 1;
};
u32 _dummy = 0;
};
float x1DE8_boostTime = 0.f; float x1DE8_boostTime = 0.f;
EBombJumpState x1e40_bombJumpState = EBombJumpState::Zero;
CMorphBallShadow* x1e50_shadow = nullptr; CMorphBallShadow* x1e50_shadow = nullptr;
public: public:
CMorphBall(CPlayer& player, float); CMorphBall(CPlayer& player, float);
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr); void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr);
ESpiderBallState GetSpiderBallState() const { return ESpiderBallState::Zero; } ESpiderBallState GetSpiderBallState() const { return ESpiderBallState::Zero; }
bool InSpiderBallMode() const { return false; } bool InSpiderMode() const { return false; }
zeus::CVector3f GetBallContactSurfaceNormal() const { return {}; } zeus::CVector3f GetBallContactSurfaceNormal() const { return {}; }
void GetModel() const {} void GetModel() const {}
const CCollidableSphere* GetCollidableSphere() const { return nullptr; } const CCollidableSphere* GetCollidableSphere() const { return nullptr; }
@ -149,7 +164,7 @@ public:
void SetAsProjectile(const CDamageInfo&, const CDamageInfo&) {} void SetAsProjectile(const CDamageInfo&, const CDamageInfo&) {}
EBallBoostState GetBallBoostState() const { return EBallBoostState::Zero; } EBallBoostState GetBallBoostState() const { return EBallBoostState::Zero; }
void SetBallBoostState(EBallBoostState) {} void SetBallBoostState(EBallBoostState) {}
void GetBombJumpState() const {} EBombJumpState GetBombJumpState() const { return x1e40_bombJumpState; }
void LoadAnimationTokens(const std::string&) {} void LoadAnimationTokens(const std::string&) {}
void TakeDamage(float) {} void TakeDamage(float) {}
void DrawBallShadow(const CStateManager& mgr); void DrawBallShadow(const CStateManager& mgr);
@ -161,9 +176,11 @@ public:
void SetDamageTimer(float t) { x191c_damageTimer = t; } void SetDamageTimer(float t) { x191c_damageTimer = t; }
void Stop() {} void Stop() {}
void StopSounds() {} void StopSounds() {}
void ActorAttached() {}
CModelData& GetMorphballModelData() const { return *x58_ballModel; } CModelData& GetMorphballModelData() const { return *x58_ballModel; }
u32 GetMorphballModelShader() const { return x5c_ballModelShader; } u32 GetMorphballModelShader() const { return x5c_ballModelShader; }
bool GetX1DE4_25() const { return x1de4_25; }
void SetX1DE4_25(bool b) { x1de4_25 = b; }
}; };
} }

File diff suppressed because it is too large Load Diff

View File

@ -21,6 +21,7 @@ class CFinalInput;
class CPlayerCameraBob; class CPlayerCameraBob;
class CFirstPersonCamera; class CFirstPersonCamera;
class CCollidableSphere; class CCollidableSphere;
class CScriptPlayerHint;
class CPlayer : public CPhysicsActor class CPlayer : public CPhysicsActor
{ {
@ -40,19 +41,19 @@ public:
enum class EPlayerOrbitType enum class EPlayerOrbitType
{ {
Zero, Close,
One, Far,
Two Two
}; };
enum class EPlayerOrbitState enum class EPlayerOrbitState
{ {
Zero, NoOrbit,
One, One,
Two, Two,
Three, Three,
Four, Four,
Five Grapple
}; };
enum class EPlayerOrbitRequest enum class EPlayerOrbitRequest
@ -115,11 +116,11 @@ public:
enum class EPlayerCameraState enum class EPlayerCameraState
{ {
Zero, FirstPerson,
One, Ball,
Two, Two,
Three, Transitioning,
Four Spawned
}; };
enum class ESurfaceRestraints enum class ESurfaceRestraints
@ -161,22 +162,23 @@ public:
private: private:
struct CVisorSteam struct CVisorSteam
{ {
float x0_; float x0_curTargetAlpha;
float x4_; float x4_curAlphaInDur;
float x8_; float x8_curAlphaOutDur;
CAssetId xc_tex; CAssetId xc_tex;
float x10_ = 0.f; float x10_nextTargetAlpha = 0.f;
float x14_ = 0.f; float x14_nextAlphaInDur = 0.f;
float x18_ = 0.f; float x18_nextAlphaOutDur = 0.f;
CAssetId x1c_txtr; CAssetId x1c_txtr;
float x20_alpha = 0.f; float x20_alpha = 0.f;
float x24_ = 0.f; float x24_delayTimer = 0.f;
bool x28_affectsThermal = false; bool x28_affectsThermal = false;
public: public:
CVisorSteam(float a, float b, float c, CAssetId tex) : x0_(a), x4_(b), x8_(c), xc_tex(tex) {} CVisorSteam(float targetAlpha, float alphaInDur, float alphaOutDur, CAssetId tex)
: x0_curTargetAlpha(targetAlpha), x4_curAlphaInDur(alphaInDur), x8_curAlphaOutDur(alphaOutDur), xc_tex(tex) {}
CAssetId GetTextureId() const; CAssetId GetTextureId() const;
void SetSteam(float a, float b, float c, CAssetId txtr, bool affectsThermal); void SetSteam(float targetAlpha, float alphaInDur, float alphaOutDur, CAssetId txtr, bool affectsThermal);
void Update(float dt); void Update(float dt);
float GetAlpha() const { return x20_alpha; } float GetAlpha() const { return x20_alpha; }
bool AffectsThermal() const { return x28_affectsThermal; } bool AffectsThermal() const { return x28_affectsThermal; }
@ -205,15 +207,15 @@ private:
EPlayerMovementState x258_movementState = EPlayerMovementState::OnGround; EPlayerMovementState x258_movementState = EPlayerMovementState::OnGround;
std::vector<CToken> x25c_ballTransitionsRes; std::vector<CToken> x25c_ballTransitionsRes;
TUniqueId x26c_ = kInvalidUniqueId; TUniqueId x26c_attachedActor = kInvalidUniqueId;
float x270_ = 0.f; float x270_attachedActorTime = 0.f;
CPlayerEnergyDrain x274_energyDrain = CPlayerEnergyDrain(4); CPlayerEnergyDrain x274_energyDrain = CPlayerEnergyDrain(4);
float x288_startingJumpTimeout = 0.f; float x288_startingJumpTimeout = 0.f;
float x28c_sjTimer = 0.f; float x28c_sjTimer = 0.f;
float x290_minJumpTimeout = 0.f; float x290_minJumpTimeout = 0.f;
float x294_jumpCameraPitchTimer = 0.f; float x294_jumpCameraTimer = 0.f;
u32 x298_jumpPresses = 0; u32 x298_jumpPresses = 0;
float x29c_spaceJumpCameraPitchTimer = 0.f; float x29c_fallCameraTimer = 0.f;
float x2a0_ = 0.f; float x2a0_ = 0.f;
bool x2a4_cancelCameraPitch = false; bool x2a4_cancelCameraPitch = false;
float x2a8_timeSinceJump = 1000.f; float x2a8_timeSinceJump = 1000.f;
@ -224,27 +226,27 @@ private:
float x2d4_accelerationChangeTimer = 0.f; float x2d4_accelerationChangeTimer = 0.f;
zeus::CAABox x2d8_fpBounds; zeus::CAABox x2d8_fpBounds;
float x2f0_ballTransHeight = 0.f; float x2f0_ballTransHeight = 0.f;
EPlayerCameraState x2f4_cameraState = EPlayerCameraState::Zero; EPlayerCameraState x2f4_cameraState = EPlayerCameraState::FirstPerson;
EPlayerMorphBallState x2f8_morphTransState = EPlayerMorphBallState::Unmorphed; EPlayerMorphBallState x2f8_morphBallState = EPlayerMorphBallState::Unmorphed;
EPlayerMorphBallState x2fc_cinematicMorphTransState = EPlayerMorphBallState::Unmorphed; EPlayerMorphBallState x2fc_spawnedMorphBallState = EPlayerMorphBallState::Unmorphed;
float x300_fallingTime = 0.f; float x300_fallingTime = 0.f;
EPlayerOrbitState x304_orbitState = EPlayerOrbitState::Zero; EPlayerOrbitState x304_orbitState = EPlayerOrbitState::NoOrbit;
EPlayerOrbitType x308_orbitType = EPlayerOrbitType::Zero; EPlayerOrbitType x308_orbitType = EPlayerOrbitType::Close;
EPlayerOrbitRequest x30c_orbitRequest = EPlayerOrbitRequest::Three; EPlayerOrbitRequest x30c_orbitRequest = EPlayerOrbitRequest::Three;
TUniqueId x310_orbitTargetId = kInvalidUniqueId; TUniqueId x310_orbitTargetId = kInvalidUniqueId;
zeus::CVector3f x314_orbitPoint; zeus::CVector3f x314_orbitPoint;
zeus::CVector3f x320_orbitVector; zeus::CVector3f x320_orbitVector;
float x32c_orbitDistance = 0.f; float x32c_orbitModeTimer = 0.f;
EPlayerZoneInfo x330_orbitZone = EPlayerZoneInfo::Zero; EPlayerZoneInfo x330_orbitZoneMode = EPlayerZoneInfo::Zero;
EPlayerZoneType x334_orbitType = EPlayerZoneType::Ellipse; EPlayerZoneType x334_orbitType = EPlayerZoneType::Ellipse;
u32 x338_ = 1; u32 x338_ = 1;
TUniqueId x33c_ = kInvalidUniqueId; TUniqueId x33c_orbitNextTargetId = kInvalidUniqueId;
float x340_ = 0.f; float x340_ = 0.f;
std::vector<TUniqueId> x344_nearbyOrbitObjects; std::vector<TUniqueId> x344_nearbyOrbitObjects;
std::vector<TUniqueId> x354_onScreenOrbitObjects; std::vector<TUniqueId> x354_onScreenOrbitObjects;
std::vector<TUniqueId> x364_offScreenOrbitObjects; std::vector<TUniqueId> x364_offScreenOrbitObjects;
bool x374_orbitLockEstablished = false; bool x374_orbitLockEstablished = false;
float x378_ = 0.f; float x378_orbitPreventionTimer = 0.f;
bool x37c_sidewaysDashing = false; bool x37c_sidewaysDashing = false;
float x380_strafeInputAtDash = 0.f; float x380_strafeInputAtDash = 0.f;
float x384_dashTimer = 0.f; float x384_dashTimer = 0.f;
@ -285,22 +287,22 @@ private:
EGunHolsterState x498_gunHolsterState = EGunHolsterState::Drawn; EGunHolsterState x498_gunHolsterState = EGunHolsterState::Drawn;
float x49c_gunHolsterRemTime; float x49c_gunHolsterRemTime;
std::unique_ptr<CFailsafeTest> x4a0_failsafeTest; std::unique_ptr<CFailsafeTest> x4a0_failsafeTest;
TReservedAverage<float, 20> x4a4_; TReservedAverage<float, 20> x4a4_moveSpeedAvg;
float x4f8_ = 0.f; float x4f8_moveSpeed = 0.f;
float x4fc_ = 0.f; float x4fc_flatMoveSpeed = 0.f;
zeus::CVector3f x500_lookDir = x34_transform.basis[1]; zeus::CVector3f x500_lookDir = x34_transform.basis[1];
zeus::CVector3f x50c_moveDir = x34_transform.basis[1]; zeus::CVector3f x50c_moveDir = x34_transform.basis[1];
zeus::CVector3f x518_leaveMorphDir = x34_transform.basis[1]; zeus::CVector3f x518_leaveMorphDir = x34_transform.basis[1];
zeus::CVector3f x524_ = x34_transform.basis[1]; zeus::CVector3f x524_lastPosForDirCalc = x34_transform.basis[1];
zeus::CVector3f x530_ = x34_transform.basis[1]; zeus::CVector3f x530_gunDir = x34_transform.basis[1];
float x53c_ = 0.f; float x53c_timeMoving = 0.f;
zeus::CVector3f x540_ = x34_transform.basis[1]; zeus::CVector3f x540_controlDir = x34_transform.basis[1];
zeus::CVector3f x54c_ = x34_transform.basis[1]; zeus::CVector3f x54c_controlDirFlat = x34_transform.basis[1];
bool x558_wasDamaged = false; bool x558_wasDamaged = false;
float x55c_damageAmt = 0.f; float x55c_damageAmt = 0.f;
float x560_prevDamageAmt = 0.f; float x560_prevDamageAmt = 0.f;
zeus::CVector3f x564_damageLocation; zeus::CVector3f x564_damageLocation;
float x570_ = 0.f; float x570_immuneTimer = 0.f;
float x574_morphTime = 0.f; float x574_morphTime = 0.f;
float x578_morphDuration = 0.f; float x578_morphDuration = 0.f;
u32 x57c_ = 0; u32 x57c_ = 0;
@ -313,7 +315,7 @@ private:
TReservedAverage<zeus::CTransform, 4> x658_transitionModelXfs; TReservedAverage<zeus::CTransform, 4> x658_transitionModelXfs;
TReservedAverage<float, 4> x71c_transitionModelAlphas; TReservedAverage<float, 4> x71c_transitionModelAlphas;
std::vector<std::unique_ptr<CModelData>> x730_transitionModels; std::vector<std::unique_ptr<CModelData>> x730_transitionModels;
float x740_staticOutTimer = 0.f; float x740_staticTimer = 0.f;
float x744_staticOutSpeed = 0.f; float x744_staticOutSpeed = 0.f;
float x748_staticInSpeed = 0.f; float x748_staticInSpeed = 0.f;
float x74c_visorStaticAlpha = 1.f; float x74c_visorStaticAlpha = 1.f;
@ -344,15 +346,15 @@ private:
CPlayerState::EBeamId x7ec_beam = CPlayerState::EBeamId::Power; CPlayerState::EBeamId x7ec_beam = CPlayerState::EBeamId::Power;
std::unique_ptr<CModelData> x7f0_ballTransitionBeamModel; std::unique_ptr<CModelData> x7f0_ballTransitionBeamModel;
zeus::CTransform x7f4_gunWorldXf; zeus::CTransform x7f4_gunWorldXf;
float x824_ = 0.f; float x824_transitionFilterTimer = 0.f;
float x828_waterLevelOnPlayer = 0.f; float x828_waterLevelOnPlayer = 0.f;
bool x82c_inLava = false; bool x82c_inLava = false;
TUniqueId x82e_ridingPlatform = kInvalidUniqueId; TUniqueId x82e_ridingPlatform = kInvalidUniqueId;
TUniqueId x830_playerHint = kInvalidUniqueId; TUniqueId x830_playerHint = kInvalidUniqueId;
u32 x834_ = 1000; u32 x834_ = 1000;
u32 x838_ = 0; rstl::reserved_vector<std::pair<u32, TUniqueId>, 32> x838_playerHints;
u32 x93c_ = 0; rstl::reserved_vector<TUniqueId, 32> x93c_playerHintsToRemove;
u32 x980_ = 0; rstl::reserved_vector<TUniqueId, 32> x980_playerHintsToAdd;
union union
{ {
@ -364,7 +366,7 @@ private:
bool x9c4_27_canEnterMorphBall : 1; bool x9c4_27_canEnterMorphBall : 1;
bool x9c4_28_canLeaveMorphBall : 1; bool x9c4_28_canLeaveMorphBall : 1;
bool x9c4_29_ : 1; bool x9c4_29_ : 1;
bool x9c4_30_ : 1; bool x9c4_30_controlDirOverride : 1;
bool x9c4_31_dampUnderwaterMotion : 1; bool x9c4_31_dampUnderwaterMotion : 1;
bool x9c5_24_ : 1; bool x9c5_24_ : 1;
bool x9c5_25_splashUpdated : 1; bool x9c5_25_splashUpdated : 1;
@ -375,7 +377,7 @@ private:
bool x9c5_30_ : 1; bool x9c5_30_ : 1;
bool x9c5_31_stepCameraZBiasDirty : 1; bool x9c5_31_stepCameraZBiasDirty : 1;
bool x9c6_24_extendTargetDistance : 1; bool x9c6_24_extendTargetDistance : 1;
bool x9c6_25_ : 1; bool x9c6_25_interpolatingControlDir : 1;
bool x9c6_26_outOfBallLookAtHint : 1; bool x9c6_26_outOfBallLookAtHint : 1;
bool x9c6_27_aimingAtProjectile : 1; bool x9c6_27_aimingAtProjectile : 1;
bool x9c6_28_aligningGrappleSwingTurn : 1; bool x9c6_28_aligningGrappleSwingTurn : 1;
@ -390,14 +392,14 @@ private:
float x9c8_eyeZBias = 0.f; float x9c8_eyeZBias = 0.f;
float x9cc_stepCameraZBias = 0.f; float x9cc_stepCameraZBias = 0.f;
u32 x9d0_ = 0; u32 x9d0_bombJumpCount = 0;
u32 x9d4_ = 0; u32 x9d4_bombJumpCheckDelayFrames = 0;
zeus::CVector3f x9d8_ = zeus::CVector3f::skForward; zeus::CVector3f x9d8_controlDirOverrideDir = zeus::CVector3f::skForward;
rstl::reserved_vector<TUniqueId, 5> x9e4_orbitDisableList; rstl::reserved_vector<TUniqueId, 5> x9e4_orbitDisableList;
float x9f4_deathTime = 0.f; float x9f4_deathTime = 0.f;
float x9f8_ = 0.f; float x9f8_controlDirInterpTime = 0.f;
float x9fc_ = 0.f; float x9fc_controlDirInterpDur = 0.f;
TUniqueId xa00_deathPowerBomb = kInvalidUniqueId; TUniqueId xa00_deathPowerBomb = kInvalidUniqueId;
float xa04_ = 0.f; float xa04_ = 0.f;
CAssetId xa08_steamTextureId; CAssetId xa08_steamTextureId;
@ -408,7 +410,7 @@ private:
float xa1c_threatOverride = 0.f; float xa1c_threatOverride = 0.f;
float xa20_radarXYRadiusOverride = 1.f; float xa20_radarXYRadiusOverride = 1.f;
float xa24_radarZRadiusOverride = 1.f; float xa24_radarZRadiusOverride = 1.f;
float xa28_ = 0.f; float xa28_attachedActorStruggle = 0.f;
u32 xa2c_ = 2; u32 xa2c_ = 2;
float xa30_samusExhaustedVoiceTimer = 4.f; float xa30_samusExhaustedVoiceTimer = 4.f;
@ -420,6 +422,7 @@ private:
void InitializeBallTransition(); void InitializeBallTransition();
float UpdateCameraBob(float dt, CStateManager& mgr); float UpdateCameraBob(float dt, CStateManager& mgr);
float GetAcceleration() const; float GetAcceleration() const;
float CalculateOrbitZBasedDistance(EPlayerOrbitType type) const;
public: public:
CPlayer(TUniqueId, const zeus::CTransform&, const zeus::CAABox&, CAssetId w1, const zeus::CVector3f&, float, float, CPlayer(TUniqueId, const zeus::CTransform&, const zeus::CAABox&, CAssetId w1, const zeus::CVector3f&, float, float,
@ -490,9 +493,16 @@ public:
void UpdateWaterSurfaceCameraBias(CStateManager& mgr); void UpdateWaterSurfaceCameraBias(CStateManager& mgr);
void UpdatePhazonCameraShake(float dt, CStateManager& mgr); void UpdatePhazonCameraShake(float dt, CStateManager& mgr);
void UpdatePhazonDamage(float dt, CStateManager& mgr); void UpdatePhazonDamage(float dt, CStateManager& mgr);
void ResetPlayerHintState();
bool SetAreaPlayerHint(const CScriptPlayerHint& hint, CStateManager& mgr);
void AddToPlayerHintRemoveList(TUniqueId id, CStateManager& mgr);
void AddToPlayerHintAddList(TUniqueId id, CStateManager& mgr);
void DeactivatePlayerHint(TUniqueId id, CStateManager& mgr);
void UpdatePlayerHints(CStateManager& mgr); void UpdatePlayerHints(CStateManager& mgr);
void UpdateBombJumpStuff(); void UpdateBombJumpStuff();
void UpdateTransitionFilter(float dt, CStateManager& mgr); void UpdateTransitionFilter(float dt, CStateManager& mgr);
void ResetControlDirectionInterpolation();
void SetControlDirectionInterpolation(float time);
void UpdatePlayerControlDirection(float dt, CStateManager& mgr); void UpdatePlayerControlDirection(float dt, CStateManager& mgr);
void Think(float, CStateManager&); void Think(float, CStateManager&);
void PreThink(float, CStateManager&); void PreThink(float, CStateManager&);
@ -520,7 +530,7 @@ public:
void DrawGun(CStateManager& mgr); void DrawGun(CStateManager& mgr);
void HolsterGun(CStateManager& mgr); void HolsterGun(CStateManager& mgr);
EPlayerCameraState GetCameraState() const { return x2f4_cameraState; } EPlayerCameraState GetCameraState() const { return x2f4_cameraState; }
EPlayerMorphBallState GetMorphballTransitionState() const { return x2f8_morphTransState; } EPlayerMorphBallState GetMorphballTransitionState() const { return x2f8_morphBallState; }
bool IsMorphBallTransitioning() const; bool IsMorphBallTransitioning() const;
void UpdateGrappleArmTransform(const zeus::CVector3f&, CStateManager& mgr, float); void UpdateGrappleArmTransform(const zeus::CVector3f&, CStateManager& mgr, float);
float GetGravity() const; float GetGravity() const;
@ -557,7 +567,7 @@ public:
bool WithinOrbitScreenBox(const zeus::CVector3f&, EPlayerZoneInfo, EPlayerZoneType) const; bool WithinOrbitScreenBox(const zeus::CVector3f&, EPlayerZoneInfo, EPlayerZoneType) const;
bool WithinOrbitScreenEllipse(const zeus::CVector3f&, EPlayerZoneInfo) const; bool WithinOrbitScreenEllipse(const zeus::CVector3f&, EPlayerZoneInfo) const;
bool CheckOrbitDisableSourceList(CStateManager& mgr); bool CheckOrbitDisableSourceList(CStateManager& mgr);
bool CheckOrbitDisableSourceList() const { return x9e4_orbitDisableList.size() != 0; } bool CheckOrbitDisableSourceList() const { return !x9e4_orbitDisableList.empty(); }
void RemoveOrbitDisableSource(TUniqueId); void RemoveOrbitDisableSource(TUniqueId);
void AddOrbitDisableSource(CStateManager& mgr, TUniqueId); void AddOrbitDisableSource(CStateManager& mgr, TUniqueId);
void UpdateOrbitPreventionTimer(float); void UpdateOrbitPreventionTimer(float);
@ -579,7 +589,7 @@ public:
float GetUnbiasedEyeHeight() const; float GetUnbiasedEyeHeight() const;
float GetStepUpHeight() const; float GetStepUpHeight() const;
float GetStepDownHeight() const; float GetStepDownHeight() const;
void Teleport(const zeus::CTransform& xf, CStateManager& mgr, bool); void Teleport(const zeus::CTransform& xf, CStateManager& mgr, bool resetBallCam);
void BombJump(const zeus::CVector3f& pos, CStateManager& mgr); void BombJump(const zeus::CVector3f& pos, CStateManager& mgr);
zeus::CTransform CreateTransformFromMovementDirection() const; zeus::CTransform CreateTransformFromMovementDirection() const;
const CCollisionPrimitive* GetCollisionPrimitive() const; const CCollisionPrimitive* GetCollisionPrimitive() const;
@ -607,7 +617,7 @@ public:
const CScriptWater* GetVisorRunoffEffect(const CStateManager& mgr) const; const CScriptWater* GetVisorRunoffEffect(const CStateManager& mgr) const;
void SetMorphBallState(EPlayerMorphBallState state, CStateManager& mgr); void SetMorphBallState(EPlayerMorphBallState state, CStateManager& mgr);
bool CanLeaveMorphBallState(CStateManager& mgr, zeus::CVector3f& pos) const; bool CanLeaveMorphBallState(CStateManager& mgr, zeus::CVector3f& pos) const;
void SetHudDisable(float f1, float f2, float f3); void SetHudDisable(float staticTimer, float outSpeed, float inSpeed);
void SetIntoBallReadyAnimation(CStateManager& mgr); void SetIntoBallReadyAnimation(CStateManager& mgr);
void LeaveMorphBallState(CStateManager& mgr); void LeaveMorphBallState(CStateManager& mgr);
bool CanEnterMorphBallState(CStateManager& mgr, float f1) const; bool CanEnterMorphBallState(CStateManager& mgr, float f1) const;
@ -637,17 +647,22 @@ public:
CPlayerCameraBob* GetCameraBob() const { return x76c_cameraBob.get(); } CPlayerCameraBob* GetCameraBob() const { return x76c_cameraBob.get(); }
float GetDeathTime() const { return x9f4_deathTime; } float GetDeathTime() const { return x9f4_deathTime; }
const CPlayerEnergyDrain& GetEnergyDrain() const { return x274_energyDrain; } const CPlayerEnergyDrain& GetEnergyDrain() const { return x274_energyDrain; }
EPlayerZoneInfo GetOrbitZone() const { return x330_orbitZone; } EPlayerZoneInfo GetOrbitZone() const { return x330_orbitZoneMode; }
EPlayerZoneType GetOrbitType() const { return x334_orbitType; } EPlayerZoneType GetOrbitType() const { return x334_orbitType; }
const zeus::CTransform& GetFirstPersonCameraTransform(const CStateManager& mgr) const; const zeus::CTransform& GetFirstPersonCameraTransform(const CStateManager& mgr) const;
const std::vector<TUniqueId>& GetNearbyOrbitObjects() const { return x344_nearbyOrbitObjects; } const std::vector<TUniqueId>& GetNearbyOrbitObjects() const { return x344_nearbyOrbitObjects; }
const std::vector<TUniqueId>& GetOnScreenOrbitObjects() const { return x354_onScreenOrbitObjects; } const std::vector<TUniqueId>& GetOnScreenOrbitObjects() const { return x354_onScreenOrbitObjects; }
const std::vector<TUniqueId>& GetOffScreenOrbitObjects() const { return x364_offScreenOrbitObjects; } const std::vector<TUniqueId>& GetOffScreenOrbitObjects() const { return x364_offScreenOrbitObjects; }
void SetPlayerHitWallDuringMove(); void SetPlayerHitWallDuringMove();
ESurfaceRestraints GetCurrentSurfaceRestraint() const { return x2ac_surfaceRestraint; }
ESurfaceRestraints GetSurfaceRestraint() const
{ return x2b0_outOfWaterTicks == 2 ? GetCurrentSurfaceRestraint() : ESurfaceRestraints::Water; }
void DecrementPhazon(); void DecrementPhazon();
void IncrementPhazon(); void IncrementPhazon();
void ApplySubmergedPitchBend(CSfxHandle& sfx); void ApplySubmergedPitchBend(CSfxHandle& sfx);
void DetachActorFromPlayer();
bool AttachActorToPlayer(TUniqueId id, bool disableGun);
float GetAttachedActorStruggle() const { return xa28_attachedActorStruggle; }
}; };
} }

View File

@ -77,7 +77,7 @@ void CPlayerCameraBob::SetState(CPlayerCameraBob::ECameraBobState state, CStateM
x20_oldState = x24_curState; x20_oldState = x24_curState;
x24_curState = state; x24_curState = state;
if (x20_oldState == ECameraBobState::Two) if (x20_oldState == ECameraBobState::InAir)
{ {
x28_applyLandingTrans = true; x28_applyLandingTrans = true;
x68_ = std::min(x68_, -35.f); x68_ = std::min(x68_, -35.f);
@ -91,7 +91,7 @@ void CPlayerCameraBob::SetState(CPlayerCameraBob::ECameraBobState state, CStateM
} }
} }
if (x24_curState == ECameraBobState::Three && x100_ != 0.f) if (x24_curState == ECameraBobState::WalkNoBob && x100_ != 0.f)
InitViewWander(mgr); InitViewWander(mgr);
} }
@ -162,7 +162,7 @@ void CPlayerCameraBob::Update(float dt, CStateManager& mgr)
x78_ = 0.f; x78_ = 0.f;
} }
if (x24_curState == ECameraBobState::Three) if (x24_curState == ECameraBobState::WalkNoBob)
x104_ = 1.f; x104_ = 1.f;
else else
x104_ = 0.f; x104_ = 0.f;

View File

@ -21,15 +21,15 @@ public:
enum class ECameraBobState enum class ECameraBobState
{ {
Zero, Walk,
One, Orbit,
Two, InAir,
Three, WalkNoBob,
Four, GunFireNoBob,
Five, TurningNoBob,
Six, FreeLookNoBob,
Seven, GrappleNoBob,
Eight Unspecified
}; };
static float kCameraBobExtentX; static float kCameraBobExtentX;
@ -56,8 +56,8 @@ private:
float x14_ = 0.f; float x14_ = 0.f;
float x18_bobTimeScale = 0.f; float x18_bobTimeScale = 0.f;
float x1c_bobTime = 0.f; float x1c_bobTime = 0.f;
ECameraBobState x20_oldState = ECameraBobState::Eight; ECameraBobState x20_oldState = ECameraBobState::Unspecified;
ECameraBobState x24_curState = ECameraBobState::Eight; ECameraBobState x24_curState = ECameraBobState::Unspecified;
bool x28_applyLandingTrans = false; bool x28_applyLandingTrans = false;
bool x29_ = false; bool x29_ = false;
zeus::CTransform x2c_cameraBobTransform; zeus::CTransform x2c_cameraBobTransform;

View File

@ -8,8 +8,8 @@ namespace urde
class CScriptPlayerHint : public CActor class CScriptPlayerHint : public CActor
{ {
u32 xe8_ = 0; rstl::reserved_vector<TUniqueId, 8> xe8_objectList;
bool xfc_ = false; bool xfc_deactivated = false;
u32 x100_priority; u32 x100_priority;
u32 x104_overrideFlags; u32 x104_overrideFlags;
TUniqueId x108_actor = kInvalidUniqueId; TUniqueId x108_actor = kInvalidUniqueId;
@ -20,6 +20,8 @@ public:
u32 GetPriority() const { return x100_priority; } u32 GetPriority() const { return x100_priority; }
u32 GetOverrideFlags() const { return x104_overrideFlags; } u32 GetOverrideFlags() const { return x104_overrideFlags; }
TUniqueId GetActorId() const { return x108_actor; } TUniqueId GetActorId() const { return x108_actor; }
void ClearObjectList() { xe8_objectList.clear(); }
void SetDeactivated() { xfc_deactivated = true; }
}; };
} }