Decompile some of the missing functions in CameraParamChunk

This commit is contained in:
shibbo 2020-07-08 01:39:49 -04:00
parent 90338cf421
commit 5e9f341f46
3 changed files with 51 additions and 2 deletions

View File

@ -0,0 +1,34 @@
#pragma once
#include "Actor/NameObj/NameObj.h"
#include "JGeometry/TMatrix34.h"
class CameraPoseParam;
class CameraMan : public NameObj
{
public:
CameraMan(const char *);
virtual ~CameraMan();
virtual void init(const JMapInfoIter &);
virtual void movement();
virtual void calc();
virtual void notifyActivate();
virtual void notifyDeactivate();
virtual bool isInterpolationOff() const;
virtual bool isCollisionOff() const;
virtual bool isZeroFrameMoveOff() const;
virtual bool isSubjectiveCameraOff() const;
virtual bool isCorrectingErpPositionOff() const;
virtual bool isEnableToReset() const;
virtual bool isEnableToRoundLeft() const;
virtual bool isEnableToRoundRight() const;
virtual void roundLeft();
virtual void roundRight();
CameraPoseParam* mParams; // _10
u8 _14;
u8 _15;
JGeometry::TMatrix34<JGeometry::SMatrix34C<f32> > mMtx; // _18
};

View File

@ -60,7 +60,6 @@ public:
virtual void initiate();
virtual const char* getClassName() const;
void arrangeCamTypeName(u32, const char **);
s32 getZoneID() const;
bool isOnNoReset() const;
bool isOnUseFovy() const;
@ -69,10 +68,11 @@ public:
bool isCollisionOff() const;
bool isSubjectiveCameraOff() const;
void getVPanAxis(JGeometry::TVec3<f32> *) const;
void setCameraType(const char *, const CameraHolder *);
void setUseFovy(bool);
void setLOFsErpOff(bool);
void setCollisionOff(bool);
void arrangeCamTypeName(u32, const char **);
CameraParamChunkID* mChunk; // _4
s8 mDefaultCamera; // _8

View File

@ -12,6 +12,11 @@ CameraParamChunk::CameraParamChunk(CameraHolder *pHolder, const CameraParamChunk
mParams.init();
}
s32 CameraParamChunk::getZoneID() const
{
return mChunk->mChunkLength;
}
bool CameraParamChunk::isOnNoReset() const
{
return mParams.mFlags & 0x1;
@ -56,6 +61,11 @@ void CameraParamChunk::getVPanAxis(JGeometry::TVec3<f32> *out) const
MR::normalize(out);
}
void CameraParamChunk::setCameraType(const char *pName, const CameraHolder *pHolder)
{
mDefaultCamera = pHolder->getIndexOf(pName);
}
void CameraParamChunk::setUseFovy(bool flag)
{
mParams.mFlags = (mParams.mFlags & 0xFFFFFFFD);
@ -165,6 +175,11 @@ void CameraParamChunk::initiate()
mGeneralParams = &params;
}
const char* CameraParamChunk::getClassName() const
{
return "Base";
}
void CameraParamChunk::arrangeCamTypeName(u32 cameraVersion, const char **pName)
{
if (cameraVersion < 0x30004)