metaforce/Runtime/World/CScriptSpindleCamera.hpp

72 lines
2.1 KiB
C++

#ifndef __URDE_CSCRIPTSPINDLECAMERA_HPP__
#define __URDE_CSCRIPTSPINDLECAMERA_HPP__
#include "Camera/CGameCamera.hpp"
namespace urde
{
struct SSpindleSegment
{
u32 x0_;
u32 x4_paramFlags;
float x8_;
float xc_;
float x10_;
float x14_;
SSpindleSegment(CInputStream& in);
void FixupAngles()
{
x8_ = zeus::degToRad(x8_);
xc_ = zeus::degToRad(xc_);
}
};
class CScriptSpindleCamera : public CGameCamera
{
u32 x188_r9;
u32 x18c_ = 0;
float x1b0_f1;
float x1b4_f2;
float x1b8_f3;
float x1bc_f4;
SSpindleSegment x1c0_seg1;
SSpindleSegment x1d8_seg2;
SSpindleSegment x1f0_seg3;
SSpindleSegment x208_seg4;
SSpindleSegment x220_seg5;
SSpindleSegment x238_seg6;
SSpindleSegment x250_seg7;
SSpindleSegment x268_seg8;
SSpindleSegment x280_seg9;
SSpindleSegment x298_seg10;
SSpindleSegment x2b0_seg11;
SSpindleSegment x2c8_seg12;
SSpindleSegment x2e0_seg13;
SSpindleSegment x2f8_seg14;
SSpindleSegment x310_seg15;
float x328_ = 0.f;
bool x32c_24 = false;
zeus::CVector3f x330_lookDir;
public:
CScriptSpindleCamera(TUniqueId uid, const std::string& name, const CEntityInfo& info,
const zeus::CTransform& xf, bool active, u32 r9,
float f1, float f2, float f3, float f4, const SSpindleSegment& seg1,
const SSpindleSegment& seg2, const SSpindleSegment& seg3,
const SSpindleSegment& seg4, const SSpindleSegment& seg5,
const SSpindleSegment& seg6, const SSpindleSegment& seg7,
const SSpindleSegment& seg8, const SSpindleSegment& seg9,
const SSpindleSegment& seg10, const SSpindleSegment& seg11,
const SSpindleSegment& seg12, const SSpindleSegment& seg13,
const SSpindleSegment& seg14, const SSpindleSegment& seg15);
void Accept(IVisitor& visitor);
void ProcessInput(const CFinalInput& input, CStateManager& mgr);
void Reset(const zeus::CTransform& xf, CStateManager& mgr);
};
}
#endif // __URDE_CSCRIPTSPINDLECAMERA_HPP__