2022-10-09 05:13:17 +00:00
|
|
|
#ifndef _CFIRSTPERSONCAMERA
|
|
|
|
#define _CFIRSTPERSONCAMERA
|
2022-10-05 18:05:56 +00:00
|
|
|
|
|
|
|
#include "MetroidPrime/Cameras/CGameCamera.hpp"
|
|
|
|
|
|
|
|
class CFirstPersonCamera : public CGameCamera {
|
|
|
|
public:
|
2022-11-07 00:20:46 +00:00
|
|
|
CFirstPersonCamera(const TUniqueId& uid, const CTransform4f& xf, TUniqueId watchedObj,
|
|
|
|
float orbitCameraSpeed, float fov, float nearz, float farz, float aspect);
|
2024-09-23 05:56:21 +00:00
|
|
|
|
|
|
|
// CEntity
|
|
|
|
~CFirstPersonCamera() override;
|
|
|
|
void Accept(IVisitor& visitor) override;
|
|
|
|
void PreThink(float dt, CStateManager& mgr) override;
|
|
|
|
void Think(float dt, CStateManager& mgr) override;
|
|
|
|
|
|
|
|
// CActor
|
|
|
|
void Render(const CStateManager&) const override;
|
|
|
|
|
|
|
|
// CGameCamera
|
|
|
|
void ProcessInput(const CFinalInput& input, CStateManager& mgr) override;
|
|
|
|
void Reset(const CTransform4f& xf, CStateManager& mgr) override;
|
|
|
|
|
2022-11-03 22:36:16 +00:00
|
|
|
void SetScriptPitchId(TUniqueId uid) { x1c4_pitchId = uid; }
|
2024-09-23 05:56:21 +00:00
|
|
|
// UpdateElevation__18CFirstPersonCameraFR13CStateManager
|
|
|
|
// UpdateTransform__18CFirstPersonCameraFR13CStateManagerf
|
2024-09-26 05:54:05 +00:00
|
|
|
const CTransform4f& GetGunFollowTransform() const;
|
2024-09-23 05:56:21 +00:00
|
|
|
// SetLockCamera__18CFirstPersonCameraFb
|
2024-09-25 04:05:42 +00:00
|
|
|
void CancelCinematicOffset();
|
2022-11-03 22:36:16 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
float x188_orbitCameraSpeed;
|
|
|
|
bool x18c_lockCamera;
|
|
|
|
CTransform4f x190_gunFollowXf;
|
|
|
|
float x1c0_pitch;
|
|
|
|
TUniqueId x1c4_pitchId;
|
|
|
|
bool x1c6_24_deferBallTransitionProcessing : 1;
|
|
|
|
CVector3f x1c8_closeInVec;
|
|
|
|
float x1d4_closeInTimer;
|
2022-10-05 18:05:56 +00:00
|
|
|
};
|
|
|
|
|
2022-10-09 05:13:17 +00:00
|
|
|
#endif // _CFIRSTPERSONCAMERA
|