mirror of https://github.com/AxioDL/metaforce.git
Scan visor and waterbox fix
This commit is contained in:
parent
b139e1c000
commit
8d839d8a17
|
@ -385,13 +385,13 @@ void CGroundMovement::MoveGroundCollider_New(CStateManager& mgr, CPhysicsActor&
|
|||
CGameCollision::BuildAreaCollisionCache(mgr, cache);
|
||||
CPlayer& player = static_cast<CPlayer&>(actor);
|
||||
player.x9c5_28_slidingOnWall = false;
|
||||
bool startingJump = player.x258_movementState == CPlayer::EPlayerMovementState::StartingJump;
|
||||
bool startingJump = player.x258_movementState == CPlayer::EPlayerMovementState::ApplyJump;
|
||||
bool dampUnderwater = false;
|
||||
if (player.x9c4_31_dampUnderwaterMotion)
|
||||
if (!mgr.GetPlayerState()->HasPowerUp(CPlayerState::EItemType::GravitySuit))
|
||||
dampUnderwater = true;
|
||||
|
||||
bool noJump = (player.x258_movementState != CPlayer::EPlayerMovementState::StartingJump &&
|
||||
bool noJump = (player.x258_movementState != CPlayer::EPlayerMovementState::ApplyJump &&
|
||||
player.x258_movementState != CPlayer::EPlayerMovementState::Jump);
|
||||
|
||||
float stepDown = player.GetStepDownHeight();
|
||||
|
|
|
@ -2007,7 +2007,7 @@ CFrontEndUI::CFrontEndUI()
|
|||
|
||||
m->ResetGameState();
|
||||
g_GameState->SetCurrentWorldId(g_ResFactory->TranslateOriginalToNew(g_DefaultWorldTag.id));
|
||||
g_GameState->CurrentWorldState().SetAreaId(4);
|
||||
g_GameState->CurrentWorldState().SetAreaId(7);
|
||||
g_GameState->GameOptions().ResetToDefaults();
|
||||
g_GameState->WriteBackupBuf();
|
||||
|
||||
|
|
|
@ -402,13 +402,24 @@ void CPlayerVisor::DrawScanEffect(const CStateManager& mgr, const CTargetingMana
|
|||
zeus::CTransform seventeenScale = zeus::CTransform::Scale(17.f * vpScale, 1.f, 17.f * vpScale);
|
||||
CGraphics::SetModelMatrix(seventeenScale * windowScale);
|
||||
|
||||
float uvX0 = rect.x4_left / float(g_Viewport.x8_width);
|
||||
float uvX1 = (rect.x4_left + rect.xc_width) / float(g_Viewport.x8_width);
|
||||
float uvY0 = rect.x8_top / float(g_Viewport.xc_height);
|
||||
float uvY1 = (rect.x8_top + rect.x10_height) / float(g_Viewport.xc_height);
|
||||
CTexturedQuadFilter::Vert rttVerts[4] =
|
||||
{
|
||||
{{-5.f, 0.f, 4.45f}, {rect.x4_left / float(g_Viewport.x8_width), rect.x8_top / float(g_Viewport.xc_height)}},
|
||||
{{ 5.f, 0.f, 4.45f}, {(rect.x4_left + rect.xc_width) / float(g_Viewport.x8_width), rect.x8_top / float(g_Viewport.xc_height)}},
|
||||
{{-5.f, 0.f, -4.45f}, {rect.x4_left / float(g_Viewport.x8_width), (rect.x8_top + rect.x10_height) / float(g_Viewport.xc_height)}},
|
||||
{{ 5.f, 0.f, -4.45f}, {(rect.x4_left + rect.xc_width) / float(g_Viewport.x8_width), (rect.x8_top + rect.x10_height) / float(g_Viewport.xc_height)}}
|
||||
{{-5.f, 0.f, 4.45f}, {uvX0, uvY0}},
|
||||
{{ 5.f, 0.f, 4.45f}, {uvX1, uvY0}},
|
||||
{{-5.f, 0.f, -4.45f}, {uvX0, uvY1}},
|
||||
{{ 5.f, 0.f, -4.45f}, {uvX1, uvY1}}
|
||||
};
|
||||
if (CGraphics::g_BooPlatform == boo::IGraphicsDataFactory::Platform::OpenGL)
|
||||
{
|
||||
rttVerts[0].m_uv.y = uvY1;
|
||||
rttVerts[1].m_uv.y = uvY1;
|
||||
rttVerts[2].m_uv.y = uvY0;
|
||||
rttVerts[3].m_uv.y = uvY0;
|
||||
}
|
||||
const_cast<CTexturedQuadFilter&>(x108_newScanPane).drawVerts(zeus::CColor(1.f, transFactor), rttVerts);
|
||||
|
||||
// No cull faces
|
||||
|
|
|
@ -158,7 +158,7 @@ static const CMaterialFilter BallTransitionCollide =
|
|||
|
||||
s32 CPlayer::ChooseTransitionToAnimation(float dt, CStateManager& mgr) const
|
||||
{
|
||||
if (x258_movementState == EPlayerMovementState::StartingJump)
|
||||
if (x258_movementState == EPlayerMovementState::ApplyJump)
|
||||
return 3; // B_airposetoball_samus
|
||||
zeus::CVector3f localVel = x34_transform.transposeRotate(x138_velocity);
|
||||
zeus::CVector3f localVelFlat = localVel;
|
||||
|
@ -1878,7 +1878,7 @@ void CPlayer::ProcessInput(const CFinalInput& input, CStateManager& mgr)
|
|||
if (ShouldSampleFailsafe(mgr))
|
||||
{
|
||||
CFailsafeTest::EInputState inputState = CFailsafeTest::EInputState::Moving;
|
||||
if (x258_movementState == EPlayerMovementState::StartingJump)
|
||||
if (x258_movementState == EPlayerMovementState::ApplyJump)
|
||||
inputState = CFailsafeTest::EInputState::StartingJump;
|
||||
else if (x258_movementState == EPlayerMovementState::Jump)
|
||||
inputState = CFailsafeTest::EInputState::Jump;
|
||||
|
@ -2680,7 +2680,7 @@ void CPlayer::Think(float dt, CStateManager& mgr)
|
|||
{
|
||||
x288_startingJumpTimeout -= dt;
|
||||
if (0.f >= x288_startingJumpTimeout)
|
||||
SetMoveState(EPlayerMovementState::StartingJump, mgr);
|
||||
SetMoveState(EPlayerMovementState::ApplyJump, mgr);
|
||||
}
|
||||
|
||||
if (x2a0_ > 0.f)
|
||||
|
@ -2692,7 +2692,7 @@ void CPlayer::Think(float dt, CStateManager& mgr)
|
|||
|
||||
x300_fallingTime += dt;
|
||||
if (x258_movementState == EPlayerMovementState::FallingMorphed && x300_fallingTime > 0.4f)
|
||||
SetMoveState(EPlayerMovementState::StartingJump, mgr);
|
||||
SetMoveState(EPlayerMovementState::ApplyJump, mgr);
|
||||
|
||||
if (x570_immuneTimer > 0.f)
|
||||
x570_immuneTimer -= dt;
|
||||
|
@ -2868,7 +2868,7 @@ void CPlayer::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CState
|
|||
x2f8_morphBallState == EPlayerMorphBallState::Morphed)
|
||||
{
|
||||
if (x138_velocity.z < -40.f && !x768_morphball->GetIsInHalfPipeMode() &&
|
||||
x258_movementState == EPlayerMovementState::StartingJump &&
|
||||
x258_movementState == EPlayerMovementState::ApplyJump &&
|
||||
x300_fallingTime > 0.75f)
|
||||
SetCoefficientOfRestitutionModifier(0.2f);
|
||||
x768_morphball->StartLandingSfx();
|
||||
|
@ -2904,8 +2904,8 @@ void CPlayer::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CState
|
|||
case EScriptObjectMessage::LandOnNotFloor:
|
||||
if (x2f8_morphBallState == EPlayerMorphBallState::Morphed &&
|
||||
x768_morphball->GetSpiderBallState() == CMorphBall::ESpiderBallState::Active &&
|
||||
x258_movementState != EPlayerMovementState::StartingJump)
|
||||
SetMoveState(EPlayerMovementState::StartingJump, mgr);
|
||||
x258_movementState != EPlayerMovementState::ApplyJump)
|
||||
SetMoveState(EPlayerMovementState::ApplyJump, mgr);
|
||||
break;
|
||||
case EScriptObjectMessage::OnIceSurface:
|
||||
x2ac_surfaceRestraint = ESurfaceRestraints::Ice;
|
||||
|
@ -4072,7 +4072,7 @@ void CPlayer::UpdateGrappleState(const CFinalInput& input, CStateManager& mgr)
|
|||
if (x3d8_grappleJumpTimeout <= 0.f)
|
||||
{
|
||||
BreakGrapple(EPlayerOrbitRequest::StopOrbit, mgr);
|
||||
SetMoveState(EPlayerMovementState::StartingJump, mgr);
|
||||
SetMoveState(EPlayerMovementState::ApplyJump, mgr);
|
||||
ComputeMovement(input, mgr, input.DeltaTime());
|
||||
PreventFallingCameraPitch();
|
||||
}
|
||||
|
@ -4094,7 +4094,7 @@ void CPlayer::UpdateGrappleState(const CFinalInput& input, CStateManager& mgr)
|
|||
x3d8_grappleJumpTimeout -= input.DeltaTime();
|
||||
if (x3d8_grappleJumpTimeout <= 0.f)
|
||||
{
|
||||
SetMoveState(EPlayerMovementState::StartingJump, mgr);
|
||||
SetMoveState(EPlayerMovementState::ApplyJump, mgr);
|
||||
ComputeMovement(input, mgr, input.DeltaTime());
|
||||
BreakGrapple(EPlayerOrbitRequest::StopOrbit, mgr);
|
||||
PreventFallingCameraPitch();
|
||||
|
@ -5503,7 +5503,7 @@ float CPlayer::GetUnbiasedEyeHeight() const
|
|||
float CPlayer::GetStepUpHeight() const
|
||||
{
|
||||
if (x258_movementState == EPlayerMovementState::Jump ||
|
||||
x258_movementState == EPlayerMovementState::StartingJump)
|
||||
x258_movementState == EPlayerMovementState::ApplyJump)
|
||||
return 0.3f;
|
||||
return CPhysicsActor::GetStepUpHeight();
|
||||
}
|
||||
|
@ -5512,7 +5512,7 @@ float CPlayer::GetStepDownHeight() const
|
|||
{
|
||||
if (x258_movementState == EPlayerMovementState::Jump)
|
||||
return -1.f;
|
||||
if (x258_movementState == EPlayerMovementState::StartingJump)
|
||||
if (x258_movementState == EPlayerMovementState::ApplyJump)
|
||||
return 0.1f;
|
||||
return CPhysicsActor::GetStepDownHeight();
|
||||
}
|
||||
|
@ -5681,7 +5681,7 @@ void CPlayer::SetMoveState(EPlayerMovementState newState, CStateManager& mgr)
|
|||
switch (newState)
|
||||
{
|
||||
case EPlayerMovementState::Jump:
|
||||
if (x258_movementState == EPlayerMovementState::StartingJump)
|
||||
if (x258_movementState == EPlayerMovementState::ApplyJump)
|
||||
{
|
||||
CSfxHandle hnd = CSfxManager::SfxStart(SFXsam_b_jump_00, 1.f, 0.f, true, 0x7f, false, kInvalidAreaId);
|
||||
ApplySubmergedPitchBend(hnd);
|
||||
|
@ -5741,11 +5741,11 @@ void CPlayer::SetMoveState(EPlayerMovementState newState, CStateManager& mgr)
|
|||
x2a4_cancelCameraPitch = false;
|
||||
x298_jumpPresses = 0;
|
||||
break;
|
||||
case EPlayerMovementState::StartingJump:
|
||||
case EPlayerMovementState::ApplyJump:
|
||||
x288_startingJumpTimeout = 0.f;
|
||||
if (x258_movementState != EPlayerMovementState::StartingJump)
|
||||
if (x258_movementState != EPlayerMovementState::ApplyJump)
|
||||
{
|
||||
x258_movementState = EPlayerMovementState::StartingJump;
|
||||
x258_movementState = EPlayerMovementState::ApplyJump;
|
||||
if (x294_jumpCameraTimer <= x288_startingJumpTimeout &&
|
||||
x29c_fallCameraTimer <= x288_startingJumpTimeout &&
|
||||
!x3dc_inFreeLook && !x3dd_lookButtonHeld)
|
||||
|
@ -5799,7 +5799,7 @@ float CPlayer::JumpInput(const CFinalInput& input, CStateManager& mgr)
|
|||
if (x828_distanceUnderWater >= 0.8f * GetEyeHeight())
|
||||
doubleJumpImpulse *= jumpFactor;
|
||||
|
||||
if (x258_movementState == EPlayerMovementState::StartingJump)
|
||||
if (x258_movementState == EPlayerMovementState::ApplyJump)
|
||||
{
|
||||
if (g_tweakPlayer->GetMaxDoubleJumpWindow() - g_tweakPlayer->GetMinDoubleJumpWindow() >= x28c_sjTimer &&
|
||||
0.f < x28c_sjTimer && ControlMapper::GetPressInput(ControlMapper::ECommands::JumpOrBoost, input))
|
||||
|
@ -5843,7 +5843,7 @@ float CPlayer::JumpInput(const CFinalInput& input, CStateManager& mgr)
|
|||
}
|
||||
|
||||
if (x258_movementState == EPlayerMovementState::Jump)
|
||||
SetMoveState(EPlayerMovementState::StartingJump, mgr);
|
||||
SetMoveState(EPlayerMovementState::ApplyJump, mgr);
|
||||
|
||||
return 0.f;
|
||||
}
|
||||
|
@ -6203,7 +6203,7 @@ float CPlayer::GetWeight() const { return xe8_mass * -GetGravity(); }
|
|||
zeus::CVector3f CPlayer::GetDampedClampedVelocityWR() const
|
||||
{
|
||||
zeus::CVector3f localVel = x34_transform.transposeRotate(x138_velocity);
|
||||
if ((x258_movementState != EPlayerMovementState::StartingJump ||
|
||||
if ((x258_movementState != EPlayerMovementState::ApplyJump ||
|
||||
GetSurfaceRestraint() != ESurfaceRestraints::InAir) &&
|
||||
x304_orbitState == EPlayerOrbitState::NoOrbit)
|
||||
{
|
||||
|
|
|
@ -100,7 +100,7 @@ public:
|
|||
{
|
||||
OnGround,
|
||||
Jump,
|
||||
StartingJump,
|
||||
ApplyJump,
|
||||
Falling,
|
||||
FallingMorphed
|
||||
};
|
||||
|
|
|
@ -59,7 +59,7 @@ class Shader_CFluidPlaneShader : public hecl::TessellationShader
|
|||
const SFluidPlaneShaderInfo& m_info;
|
||||
public:
|
||||
Shader_CFluidPlaneShader(const SFluidPlaneShaderInfo& in, bool tessellation)
|
||||
: m_info(in), VtxFmt(tessellation ? TessVtxFmtElems : VtxFmtElems),
|
||||
: m_info(in), VtxFmt(tessellation ? boo::VertexFormatInfo(TessVtxFmtElems) : boo::VertexFormatInfo(VtxFmtElems)),
|
||||
PipelineInfo({in.m_additive ? boo::BlendFactor::One : boo::BlendFactor::SrcAlpha,
|
||||
in.m_additive ? boo::BlendFactor::One : boo::BlendFactor::InvSrcAlpha,
|
||||
boo::Primitive::TriStrips, boo::ZTest::LEqual, false, true, false,
|
||||
|
@ -89,7 +89,7 @@ class Shader_CFluidPlaneDoorShader : public hecl::GeneralShader
|
|||
const SFluidPlaneDoorShaderInfo& m_info;
|
||||
public:
|
||||
explicit Shader_CFluidPlaneDoorShader(const SFluidPlaneDoorShaderInfo& in)
|
||||
: m_info(in), VtxFmt(Shader_CFluidPlaneShader::VtxFmtElems),
|
||||
: m_info(in), VtxFmt(boo::VertexFormatInfo(Shader_CFluidPlaneShader::VtxFmtElems)),
|
||||
PipelineInfo({boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha,
|
||||
boo::Primitive::TriStrips, boo::ZTest::LEqual, false, true, false,
|
||||
boo::CullMode::None}) {}
|
||||
|
|
2
hecl
2
hecl
|
@ -1 +1 @@
|
|||
Subproject commit 73dc1183d7de7796c391b739727bd462eed9daff
|
||||
Subproject commit 2ef53263a09a8a99ec73e86b23283d7275db23c0
|
Loading…
Reference in New Issue