2024-09-23 05:56:21 +00:00
|
|
|
#ifndef _CSCRIPTCAMERAHINT
|
|
|
|
#define _CSCRIPTCAMERAHINT
|
|
|
|
|
|
|
|
#include "MetroidPrime/CActor.hpp"
|
|
|
|
#include "MetroidPrime/Cameras/CBallCamera.hpp"
|
2024-09-25 04:05:42 +00:00
|
|
|
#include "MetroidPrime/Cameras/CCameraOverrideInfo.hpp"
|
2024-09-23 05:56:21 +00:00
|
|
|
#include "MetroidPrime/TGameTypes.hpp"
|
|
|
|
|
|
|
|
#include "Kyoto/Math/CTransform4f.hpp"
|
|
|
|
|
|
|
|
#include "rstl/reserved_vector.hpp"
|
|
|
|
|
|
|
|
class CCameraSpring;
|
|
|
|
|
|
|
|
class CScriptCameraHint : public CActor {
|
|
|
|
public:
|
|
|
|
CScriptCameraHint(TUniqueId uid, const rstl::string& name, const CEntityInfo& info,
|
|
|
|
const CTransform4f& xf, bool active, int priority,
|
|
|
|
CBallCamera::EBallCameraBehaviour behavior, int overrideFlags, float minDist,
|
2024-09-25 04:05:42 +00:00
|
|
|
float maxDist, float backwardsDist, const CVector3f& lookAtOffset,
|
|
|
|
const CVector3f& chaseLookAtOffset, const CVector3f& ballToCam, float fov,
|
|
|
|
float attitudeRange, float azimuthRange, float anglePerSecond,
|
|
|
|
float clampVelRange, float clampRotRange, float elevation,
|
|
|
|
float interpolateTime, float clampVelTime, float controlInterpDur);
|
2024-09-23 05:56:21 +00:00
|
|
|
|
|
|
|
// CEntity
|
|
|
|
~CScriptCameraHint() override;
|
|
|
|
void Accept(IVisitor& visitor) override;
|
|
|
|
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
|
|
|
|
|
2024-09-25 04:05:42 +00:00
|
|
|
TUniqueId GetSenderId() const;
|
|
|
|
void ClearSenders();
|
|
|
|
void AddSender(TUniqueId uid);
|
|
|
|
void RemoveSender(TUniqueId uid, CStateManager& mgr);
|
|
|
|
void CheckLegacyConnections(CStateManager& mgr);
|
|
|
|
|
|
|
|
const CCameraOverrideInfo& GetInfo() const { return mOverrideInfo; } // Not real?
|
|
|
|
uint GetOverrideFlags() const { return mOverrideInfo.mOverrideFlags; }
|
|
|
|
CBallCamera::EBallCameraBehaviour GetBehaviourType() const { return mOverrideInfo.mBehaviour; }
|
|
|
|
int GetPriority() const { return mPriority; }
|
|
|
|
TUniqueId GetDelegatedCameraId() const { return mDelegatedCameraId; }
|
2024-09-23 05:56:21 +00:00
|
|
|
// OverrideCameraInfo__17CScriptCameraHintFP11CBallCamera
|
|
|
|
|
2024-09-25 04:05:42 +00:00
|
|
|
uint GetSenderCount() const { return mSenders.size(); }
|
|
|
|
bool GetInactive() const { return mInactive; }
|
|
|
|
|
2024-09-23 05:56:21 +00:00
|
|
|
private:
|
2024-09-25 04:05:42 +00:00
|
|
|
int mPriority;
|
|
|
|
CCameraOverrideInfo mOverrideInfo;
|
|
|
|
rstl::reserved_vector< TUniqueId, 8 > mSenders;
|
|
|
|
TUniqueId mDelegatedCameraId;
|
|
|
|
bool mInactive;
|
|
|
|
CTransform4f mOrigXf;
|
2024-09-23 05:56:21 +00:00
|
|
|
};
|
|
|
|
CHECK_SIZEOF(CScriptCameraHint, 0x198)
|
|
|
|
|
|
|
|
#endif // _CSCRIPTCAMERAHINT
|