SuperMarioOdysseyOnline/include/al/camera/CameraDirector.h

66 lines
2.8 KiB
C++

#pragma once
#include "CameraPoseUpdater.h"
#include "CameraPoserSceneInfo.h"
#include "al/camera/CameraPoser.h"
#include "al/camera/CameraTicket.h"
#include "al/hio/HioNode.h"
#include "al/execute/IUseExecutor.h"
namespace al {
class CameraResourceHolder;
class CameraRailHolder;
class CameraPoserFactory;
class PlayerHolder;
class ICameraInput;
class NameToCameraParamTransferFunc;
class CameraDirector : public al::HioNode, public al::IUseExecutor {
public:
void init(al::CameraPoserSceneInfo *,al::CameraPoserFactory const*);
al::CameraPoseUpdater *getPoseUpdater(int) const;
void endInit(al::PlayerHolder const*);
al::CameraTicket *createCameraFromFactory(char const *creatorName, al::PlacementId const*,char const*, int priority, sead::Matrix34f const&);
void createCamera(al::CameraPoser *,al::PlacementId const*,char const*,int,sead::Matrix34f const&,bool);
void execute(void) override;
void update(void);
void createObjectCamera(al::PlacementId const*,char const*,char const*,int,sead::Matrix34f const&);
void createObjectEntranceCamera(al::PlacementId const*,char const*,sead::Matrix34f const&);
void createMirrorObjectCamera(al::PlacementId const*,char const*,int,sead::Matrix34f const&);
void initAreaCameraSwitcherMultiForPrototype(al::AreaObjDirector *);
al::ICameraInput *getCameraInput(int);
void setCameraInput(al::ICameraInput const*);
void setViewCameraInput(al::ICameraInput const*,int);
void initAreaCameraSwitcherSingle(void);
void initResourceHolder(al::CameraResourceHolder const*);
void registerCameraRailHolder(al::CameraRailHolder *);
void initSceneFovyDegree(float);
void setCameraParamTransferFuncTable(al::NameToCameraParamTransferFunc const*,int);
void initSettingCloudSea(float);
void initSnapShotCameraAudioKeeper(al::IUseAudioKeeper *);
void initAndCreatePauseCameraCtrl(float);
float getSceneFovyDegree(void) const;
void validateCameraArea2D(void);
void invalidateCameraArea2D(void);
void stopByDeathPlayer(void);
void restartByDeathPlayer(void);
void startInvalidStopJudgeByDemo(void);
void endInvalidStopJudgeByDemo(void);
void startSnapShotMode(bool);
void endSnapShotMode(void);
unsigned char padding[0x20];
al::CameraPoserFactory *mFactory; // 0x28
al::CameraPoserSceneInfo *mSceneInfo; // 0x30
// 0xBC float farClipDistance
// 0xB8 float nearClipDistance
};
class IUseCamera
{
public:
virtual al::CameraDirector* getCameraDirector() const = 0;
};
};