prime/include/MetroidPrime/ScriptObjects/CScriptCameraHint.hpp

58 lines
2.2 KiB
C++
Raw Normal View History

2024-09-23 05:56:21 +00:00
#ifndef _CSCRIPTCAMERAHINT
#define _CSCRIPTCAMERAHINT
#include "MetroidPrime/CActor.hpp"
#include "MetroidPrime/Cameras/CBallCamera.hpp"
#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,
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;
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
uint GetSenderCount() const { return mSenders.size(); }
bool GetInactive() const { return mInactive; }
2024-09-23 05:56:21 +00:00
private:
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