1#pragma once
2
3#include <basis/seadTypes.h>
4
5#include "Library/Camera/CameraPoser.h"
6
7namespace al {
8class ByamlIter;
9struct CameraStartInfo;
10class IntervalTrigger;
11class LiveActor;
12
13class CameraPoserSubjective : public CameraPoser {
14public:
15 CameraPoserSubjective(const char*);
16 void init() override;
17 void loadParam(const ByamlIter&) override;
18 void start(const CameraStartInfo&) override;
19 void movement() override;
20 void update() override;
21 void startSnapShotMode() override;
22 void endSnapShotMode() override;
23 void exeWait();
24 void exeReset();
25 f32 getCameraOffsetFront();
26 bool isZooming() const override;
27 bool isEnableRotateByPad() const override;
28
29 void setStartAngleH(f32 angle) {
30 mIsSetStartAngleH = true;
31 mStartAngleH = angle;
32 }
33
34 void setCameraOffsetUp(f32 offset) { mCameraOffsetUp = offset; }
35
36private:
37 f32 _140;
38 f32 _144;
39 f32 _148;
40 f32 _14c;
41 f32 _150;
42 f32 mGyroAngleH;
43 f32 mGyroAngleV;
44 f32 _15c;
45 f32 _160;
46 bool mIsZooming;
47 bool _165;
48 f32 _168;
49 f32 _16c;
50 f32 mMinAngleV;
51 f32 mMaxAngleV;
52 f32 mCameraOffsetUp;
53 f32 mStartAngleV;
54 bool mIsSetStartAngleH;
55 f32 mStartAngleH;
56 f32 _188;
57 f32 _18c;
58 IntervalTrigger* mIntervalTrigger;
59 LiveActor* mActor;
60 bool mIsSnapShowMode;
61};
62
63static_assert(sizeof(CameraPoserSubjective) == 0x1A8);
64
65} // namespace al
66