Skip to content

Commit c18b69b

Browse files
committed
Various minor fixes from decomp
1 parent aa26577 commit c18b69b

File tree

5 files changed

+38
-39
lines changed

5 files changed

+38
-39
lines changed

Runtime/Graphics/CCubeRenderer.cpp

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -315,13 +315,7 @@ void CCubeRenderer::AddStaticGeometry(const std::vector<CMetroidModelInstance>*
315315
}
316316

317317
void CCubeRenderer::EnablePVS(const CPVSVisSet& set, u32 areaIdx) {
318-
if (!xdc_) {
319-
xc8_pvs.emplace(set);
320-
xdc_ = true;
321-
} else {
322-
xc8_pvs.emplace(set);
323-
}
324-
318+
xc8_pvs.emplace(set);
325319
xe0_pvsAreaIdx = areaIdx;
326320
}
327321

Runtime/Graphics/CCubeRenderer.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ class CCubeRenderer final : public IRenderer {
6161
void* xac_drawableCallbackUserData = nullptr;
6262
zeus::CPlane xb0_viewPlane{0.f, 1.f, 0.f, 0.f};
6363
enum class EPVSMode : u8 { Mask, PVS, PVSAndMask } xc0_pvsMode = EPVSMode::Mask;
64+
int xc4_; // ?
6465
std::optional<CPVSVisSet> xc8_pvs;
65-
bool xdc_{};
6666
u32 xe0_pvsAreaIdx = UINT32_MAX;
6767
CTexture xe4_blackTex{ETexelFormat::RGB565, 4, 4, 1, "Black Texture"};
6868
std::unique_ptr<CTexture> x14c_reflectionTex;

Runtime/Particle/CDecal.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,9 @@ void CDecal::RenderMdl() {
256256
desc.x38_DMDL->Draw(flags);
257257
}
258258
}
259+
260+
CGraphics::SetCullMode(ERglCullMode::Front);
261+
CTevCombiners::ResetStates();
259262
}
260263

261264
void CDecal::Render() {

Runtime/World/CPlayer.cpp

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -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

55105513
bool CPlayer::SidewaysDashAllowed(float strafeInput, float forwardInput, const CFinalInput& input,
@@ -6204,11 +6207,10 @@ void CPlayer::DecrementEnvironmentDamage() {
62046207
}
62056208

62066209
void 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

62146216
bool CPlayer::CheckSubmerged() const {

Runtime/World/CPlayer.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ class CPlayer : public CPhysicsActor {
154154
u32 x2d0_curAcceleration = 1;
155155
float x2d4_accelerationChangeTimer = 0.f;
156156
zeus::CAABox x2d8_fpBounds;
157-
float x2f0_ballTransHeight = 0.f;
157+
float x2f0_ballTransHeight = 1.f;
158158
EPlayerCameraState x2f4_cameraState = EPlayerCameraState::FirstPerson;
159159
EPlayerMorphBallState x2f8_morphBallState = EPlayerMorphBallState::Unmorphed;
160160
EPlayerMorphBallState x2fc_spawnedMorphBallState = EPlayerMorphBallState::Unmorphed;
@@ -223,7 +223,7 @@ class CPlayer : public CPhysicsActor {
223223
zeus::CVector3f x500_lookDir = x34_transform.basis[1];
224224
zeus::CVector3f x50c_moveDir = x34_transform.basis[1];
225225
zeus::CVector3f x518_leaveMorphDir = x34_transform.basis[1];
226-
zeus::CVector3f x524_lastPosForDirCalc = x34_transform.basis[1];
226+
zeus::CVector3f x524_lastPosForDirCalc = x34_transform.origin;
227227
zeus::CVector3f x530_gunDir = x34_transform.basis[1];
228228
float x53c_timeMoving = 0.f;
229229
zeus::CVector3f x540_controlDir = x34_transform.basis[1];

0 commit comments

Comments
 (0)