metaforce/Runtime/Camera/CBallCamera.hpp

40 lines
999 B
C++
Raw Normal View History

#ifndef __URDE_CBALLCAMERA_HPP__
#define __URDE_CBALLCAMERA_HPP__
#include "CGameCamera.hpp"
namespace urde
{
class CBallCamera : public CGameCamera
{
2017-08-02 07:13:11 +00:00
public:
enum class EBallCameraState
{
2017-08-18 01:30:15 +00:00
Zero,
One,
Two,
Three,
Four,
Five
2017-08-02 07:13:11 +00:00
};
private:
2017-08-19 06:52:13 +00:00
TUniqueId x3dc_tooCloseActorId = kInvalidUniqueId;
2017-08-18 01:30:15 +00:00
float x3e0_ = 10000.f;
public:
CBallCamera(TUniqueId, TUniqueId, const zeus::CTransform& xf, float, float, float, float);
2017-03-24 05:30:16 +00:00
void Accept(IVisitor& visitor);
void ProcessInput(const CFinalInput&, CStateManager& mgr);
void Reset(const zeus::CTransform&, CStateManager& mgr);
2017-08-02 07:13:11 +00:00
void SetState(EBallCameraState state, CStateManager& mgr);
2017-08-18 01:30:15 +00:00
bool TransitionFromMorphBallState(CStateManager& mgr);
2017-08-19 06:52:13 +00:00
TUniqueId GetTooCloseActorId() const { return x3dc_tooCloseActorId; }
2017-08-18 01:30:15 +00:00
float GetX3E0() const { return x3e0_; }
void TeleportCamera(const zeus::CVector3f& pos, CStateManager& mgr);
};
}
#endif // __URDE_CBALLCAMERA_HPP__