OdysseyDecomp/lib/al/Library/Camera/SnapShotCameraCtrl.h

53 lines
1.2 KiB
C++

#pragma once
#include <gfx/seadCamera.h>
#include "Library/Audio/IUseAudioKeeper.h"
#include "Library/Nerve/NerveExecutor.h"
#include "Library/Yaml/ByamlIter.h"
struct CameraParam {
bool hasMin;
bool hasMax;
f32 minFovyDegree;
f32 maxFovyDegree;
};
namespace al {
struct SnapShotCameraSceneInfo;
class ICameraInput;
class IUseCollision;
class SnapShotCameraCtrl : public NerveExecutor, public IUseAudioKeeper {
public:
SnapShotCameraCtrl(const SnapShotCameraSceneInfo*);
void start(f32);
void load(const ByamlIter& iter);
void startReset(s32);
void update(const sead::LookAtCamera&, const IUseCollision*, const ICameraInput*);
void makeLookAtCameraPost(sead::LookAtCamera*) const;
void makeLookAtCameraLast(sead::LookAtCamera*) const;
void exeWait();
void exeReset();
f32 getFovyDegree() const { return mFovyDegree; };
private:
SnapShotCameraSceneInfo* mCameraSceneInfo;
CameraParam* mParam;
bool mIsValidLookAtOffset;
sead::Vector3f mLookAtOffset;
sead::Vector3f unk1;
bool mIsValidZoomFovy;
f32 mFovyDegree;
f32 unk2;
f32 unk3;
f32 mMaxZoomOutFovyDegree;
bool mIsValidRoll;
f32 mRollDegree;
f32 mRollTarget;
u32 unk4;
bool unk5;
};
} // namespace al