@@ -976,7 +976,9 @@ void CPlayer::FluidFXThink(EFluidState state, CScriptWater& water, CStateManager
976976 case EFluidState::EnteredFluid: {
977977 bool doSplash = true ;
978978 if (x4fc_flatMoveSpeed > 12 .5f ) {
979- const zeus::CVector3f lookDir = x34_transform.basis [1 ].normalized ();
979+ zeus::CVector3f lookDir = x34_transform.basis [1 ];
980+ lookDir.z () = 0 .f ;
981+ lookDir.normalize ();
980982 zeus::CVector3f dcVel = GetDampedClampedVelocityWR ();
981983 dcVel.z () = 0 .f ;
982984 if (lookDir.dot (dcVel.normalized ()) > 0 .75f ) {
@@ -1806,23 +1808,23 @@ void CPlayer::ProcessInput(const CFinalInput& input, CStateManager& mgr) {
18061808
18071809 if (GetFrozenState ()) {
18081810 UpdateFrozenState (input, mgr);
1809- }
18101811
1811- if (GetFrozenState ()) {
1812- if (x258_movementState == EPlayerMovementState::OnGround ||
1813- x258_movementState == EPlayerMovementState::FallingMorphed) {
1814- return ;
1815- }
1812+ if (GetFrozenState ()) {
1813+ if (x258_movementState == EPlayerMovementState::OnGround ||
1814+ x258_movementState == EPlayerMovementState::FallingMorphed) {
1815+ return ;
1816+ }
18161817
1817- const CFinalInput dummyInput;
1818- if (x2f8_morphBallState == EPlayerMorphBallState::Morphed) {
1819- x768_morphball->ComputeBallMovement (dummyInput, mgr, input.DeltaTime ());
1820- x768_morphball->UpdateBallDynamics (mgr, input.DeltaTime ());
1821- } else {
1822- ComputeMovement (dummyInput, mgr, input.DeltaTime ());
1823- }
1818+ const CFinalInput dummyInput;
1819+ if (x2f8_morphBallState == EPlayerMorphBallState::Morphed) {
1820+ x768_morphball->ComputeBallMovement (dummyInput, mgr, input.DeltaTime ());
1821+ x768_morphball->UpdateBallDynamics (mgr, input.DeltaTime ());
1822+ } else {
1823+ ComputeMovement (dummyInput, mgr, input.DeltaTime ());
1824+ }
18241825
1825- return ;
1826+ return ;
1827+ }
18261828 }
18271829
18281830 if (x760_controlsFrozen) {
@@ -2125,7 +2127,7 @@ void CPlayer::Freeze(CStateManager& stateMgr, CAssetId steamTxtr, u16 sfx, CAsse
21252127 }
21262128
21272129 if (showMsg) {
2128- const char16_t * msg = g_MainStringTable->GetString (int ( x2f8_morphBallState > = EPlayerMorphBallState::Morphed) + 19 );
2130+ const char16_t * msg = g_MainStringTable->GetString (x2f8_morphBallState ! = EPlayerMorphBallState::Morphed ? 19 : 20 );
21292131 const CHUDMemoParms parms (5 .f , true , false , false );
21302132 MP1::CSamusHud::DisplayHudMemo (msg, parms);
21312133 }
@@ -2610,7 +2612,7 @@ void CPlayer::Think(float dt, CStateManager& mgr) {
26102612 x2b0_outOfWaterTicks += 1 ;
26112613 }
26122614
2613- x9c5_24_ = x9c4_24_visorChangeRequested ;
2615+ x9c5_24_ = x9c4_31_inWaterMovement ;
26142616 x9c4_31_inWaterMovement = x9c5_25_splashUpdated;
26152617 x9c5_25_splashUpdated = false ;
26162618 UpdateBombJumpStuff ();
@@ -3060,15 +3062,16 @@ void CPlayer::UpdateGunState(const CFinalInput& input, CStateManager& mgr) {
30603062 bool needsDraw = false ;
30613063 if (ControlMapper::GetDigitalInput (ControlMapper::ECommands::FireOrBomb, input) ||
30623064 ControlMapper::GetDigitalInput (ControlMapper::ECommands::MissileOrPowerBomb, input) ||
3063- x3b8_grappleState == EGrappleState::None ||
3064- (g_tweakPlayer->GetGunButtonTogglesHolster () &&
3065- ControlMapper::GetPressInput (ControlMapper::ECommands::ToggleHolster, input))) {
3065+ x3b8_grappleState == EGrappleState::None) {
3066+ needsDraw = true ;
3067+ } else if (g_tweakPlayer->GetGunButtonTogglesHolster () &&
3068+ ControlMapper::GetPressInput (ControlMapper::ECommands::ToggleHolster, input)) {
30663069 needsDraw = true ;
30673070 }
30683071
3069- if (x3b8_grappleState == EGrappleState::None &&
3070- ( mgr.GetPlayerState ()->GetCurrentVisor () == CPlayerState::EPlayerVisor::Scan ||
3071- mgr.GetPlayerState ()->GetTransitioningVisor () == CPlayerState::EPlayerVisor::Scan) ) {
3072+ if (x3b8_grappleState != EGrappleState::None ||
3073+ mgr.GetPlayerState ()->GetCurrentVisor () == CPlayerState::EPlayerVisor::Scan ||
3074+ mgr.GetPlayerState ()->GetTransitioningVisor () == CPlayerState::EPlayerVisor::Scan) {
30723075 needsDraw = false ;
30733076 }
30743077
@@ -3205,7 +3208,7 @@ void CPlayer::UpdateGunTransform(const zeus::CVector3f& gunPos, CStateManager& m
32053208 viewGunPos = camXf.rotate (gunPos - zeus::CVector3f (0 .f , 0 .f , eyeHeight)) + GetEyePosition ();
32063209 }
32073210
3208- const zeus::CUnitVector3f rightDir (gunXf .basis [0 ]);
3211+ const zeus::CUnitVector3f rightDir (camXf .basis [0 ]);
32093212 gunXf.origin = viewGunPos;
32103213
32113214 switch (x498_gunHolsterState) {
@@ -5500,11 +5503,11 @@ zeus::CVector3f CPlayer::CalculateLeftStickEdgePosition(float strafeInput, float
55005503 }
55015504
55025505 if (forwardInput < 0 .f ) {
5503- f29 = -0 . 555f ;
5506+ f29 = -f29 ;
55045507 }
55055508
55065509 const float f4 = zeus::clamp (-1 .f , std::atan (std::fabs (forwardInput) / std::fabs (strafeInput)) / (M_PIF / 4 .f ), 1 .f );
5507- return zeus::CVector3f (f30 - f31, f29 , 0 .f ) * f4 + zeus::CVector3f (f31, 0 .f , 0 .f );
5510+ return zeus::CVector3f (f31, 0 . f , 0 .f ) + f4 * ( zeus::CVector3f (f30, f29, 0 . f ) - zeus::CVector3f ( f31, 0 .f , 0 .f ) );
55085511}
55095512
55105513bool CPlayer::SidewaysDashAllowed (float strafeInput, float forwardInput, const CFinalInput& input,
@@ -6204,11 +6207,10 @@ void CPlayer::DecrementEnvironmentDamage() {
62046207}
62056208
62066209void CPlayer::IncrementEnvironmentDamage () {
6207- if (xa10_envDmgCounter != 0 ) {
6208- xa10_envDmgCounter++;
6209- } else {
6210+ if (xa10_envDmgCounter == 0 ) {
62106211 xa14_envDmgCameraShakeTimer = 0 .f ;
62116212 }
6213+ xa10_envDmgCounter++;
62126214}
62136215
62146216bool CPlayer::CheckSubmerged () const {
0 commit comments