metaforce/Runtime/World/CScriptSpindleCamera.hpp

72 lines
2.1 KiB
C++
Raw Normal View History

2018-10-07 03:42:33 +00:00
#pragma once
#include "Camera/CGameCamera.hpp"
namespace urde
{
2017-11-12 05:14:57 +00:00
struct SSpindleProperty
{
u32 x0_;
u32 x4_paramFlags;
float x8_;
float xc_;
float x10_;
float x14_;
2017-11-12 05:14:57 +00:00
SSpindleProperty(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;
2017-11-12 05:14:57 +00:00
SSpindleProperty x1c0_seg1;
SSpindleProperty x1d8_seg2;
SSpindleProperty x1f0_seg3;
SSpindleProperty x208_seg4;
SSpindleProperty x220_seg5;
SSpindleProperty x238_seg6;
SSpindleProperty x250_seg7;
SSpindleProperty x268_seg8;
SSpindleProperty x280_seg9;
SSpindleProperty x298_seg10;
SSpindleProperty x2b0_seg11;
SSpindleProperty x2c8_seg12;
SSpindleProperty x2e0_seg13;
SSpindleProperty x2f8_seg14;
SSpindleProperty x310_seg15;
float x328_ = 0.f;
bool x32c_24 = false;
zeus::CVector3f x330_lookDir;
2018-10-11 22:57:05 +00:00
bool x33c_24_;
public:
2017-11-13 06:19:18 +00:00
CScriptSpindleCamera(TUniqueId uid, std::string_view name, const CEntityInfo& info,
const zeus::CTransform& xf, bool active, u32 r9,
2017-11-12 05:14:57 +00:00
float f1, float f2, float f3, float f4, const SSpindleProperty& seg1,
const SSpindleProperty& seg2, const SSpindleProperty& seg3,
const SSpindleProperty& seg4, const SSpindleProperty& seg5,
const SSpindleProperty& seg6, const SSpindleProperty& seg7,
const SSpindleProperty& seg8, const SSpindleProperty& seg9,
const SSpindleProperty& seg10, const SSpindleProperty& seg11,
const SSpindleProperty& seg12, const SSpindleProperty& seg13,
const SSpindleProperty& seg14, const SSpindleProperty& seg15);
void Accept(IVisitor& visitor);
2018-10-11 22:57:05 +00:00
void Think(float, CStateManager&);
void Reset(const zeus::CTransform& xf, CStateManager& mgr);
2018-10-11 22:57:05 +00:00
void ProcessInput(const CFinalInput& input, CStateManager& mgr);
};
}