2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 07:07:42 +00:00

Initial CCinematicCamera implementations

This commit is contained in:
Jack Andersen
2017-11-22 16:15:09 -10:00
parent ef4a07e963
commit 41edf5a226
10 changed files with 207 additions and 113 deletions

View File

@@ -1332,7 +1332,7 @@ void CPlayer::Render(const CStateManager& mgr) const
bool doRender = x2f4_cameraState != EPlayerCameraState::Spawned;
if (!doRender)
if (TCastToConstPtr<CCinematicCamera> cam = mgr.GetCameraManager()->GetCurrentCamera(mgr))
doRender = (x2f8_morphBallState == EPlayerMorphBallState::Morphed && cam->GetW1() & 0x40);
doRender = (x2f8_morphBallState == EPlayerMorphBallState::Morphed && cam->GetFlags() & 0x40);
if (x2f4_cameraState != EPlayerCameraState::FirstPerson && doRender)
{
bool doTransitionRender = false;
@@ -1911,7 +1911,7 @@ bool CPlayer::ShouldSampleFailsafe(CStateManager& mgr) const
TCastToPtr<CCinematicCamera> cineCam = mgr.GetCameraManager()->GetCurrentCamera(mgr);
if (!mgr.GetPlayerState()->IsPlayerAlive())
return false;
return x2f4_cameraState != EPlayerCameraState::Spawned || !cineCam || (cineCam->GetW1() & 0x80) == 0;
return x2f4_cameraState != EPlayerCameraState::Spawned || !cineCam || (cineCam->GetFlags() & 0x80) == 0;
}
void CPlayer::CalculateLeaveMorphBallDirection(const CFinalInput& input)
@@ -6301,7 +6301,7 @@ void CPlayer::SetCameraState(EPlayerCameraState camState, CStateManager& stateMg
{
bool ballLight = false;
if (TCastToPtr<CCinematicCamera> cineCam = camMgr->GetCurrentCamera(stateMgr))
ballLight = x2f8_morphBallState == EPlayerMorphBallState::Morphed && cineCam->GetW1() & 0x40;
ballLight = x2f8_morphBallState == EPlayerMorphBallState::Morphed && cineCam->GetFlags() & 0x40;
x768_morphball->SetBallLightActive(stateMgr, ballLight);
break;
}