Skip to content

[Camera] Implement some CameraUtil and CameraPoserFunction - #631

Open
Moddimation wants to merge 3 commits into
MonsterDruide1:masterfrom
Moddimation:CameraUtil
Open

[Camera] Implement some CameraUtil and CameraPoserFunction#631
Moddimation wants to merge 3 commits into
MonsterDruide1:masterfrom
Moddimation:CameraUtil

Conversation

@Moddimation

@Moddimation Moddimation commented Jun 1, 2025

Copy link
Copy Markdown
Contributor

Old PR of mine, not sure if i missed any fixes... Take your time looking at this.


This change is Reviewable


Report for 1.0 (83ecf1c - 7128abb)

📈 Matched code: 10.57% (+0.03%, +3964 bytes)

✅ 73 new matches
Unit Item Bytes Before After
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcPreCameraAngleV(al::CameraPoser const*) +176 0.00% 100.00%
Library/Camera/CameraUtil al::initFixDoorwayCamera(al::IUseCamera const*, char const*, sead::Vector3<float> const&, sead::Vector3<float> const&) +156 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcTargetVelocityH(sead::Vector3<float>*, al::CameraPoser const*) +152 0.00% 100.00%
Library/Camera/CameraUtil al::calcCameraFront(sead::Vector3<float>*, al::IUseCamera const*, int) +152 0.00% 100.00%
Library/Camera/CameraUtil al::initObjectCamera(al::IUseCamera const*, al::ActorInitInfo const&, char const*, char const*) +152 0.00% 100.00%
Library/Camera/CameraUtil al::initFixCamera(al::IUseCamera const*, char const*, sead::Vector3<float> const&, sead::Vector3<float> const&) +152 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcCameraPose(sead::Quat<float>*, al::CameraPoser const*) +148 0.00% 100.00%
Library/Camera/CameraUtil al::initObjectCamera(al::IUseCamera const*, al::PlacementInfo const&, char const*, char const*) +144 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcPreCameraAngleH(al::CameraPoser const*) +136 0.00% 100.00%
Library/Camera/CameraUtil al::tryCalcCameraLookDirH(sead::Vector3<float>*, al::SceneCameraInfo const*, sead::Vector3<float> const&, int) +136 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::setLookAtPosToTargetAddOffset(al::CameraPoser*, sead::Vector3<float> const&) +120 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcPreLookDir(sead::Vector3<float>*, al::CameraPoser const*) +116 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcLookDir(sead::Vector3<float>*, al::CameraPoser const*) +108 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcPreCameraDirH(sead::Vector3<float>*, al::CameraPoser const*) +104 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcCameraDirH(sead::Vector3<float>*, al::CameraPoser const*) +92 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcPreLookDirH(sead::Vector3<float>*, al::CameraPoser const*) +92 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::setLookAtPosToTarget(al::CameraPoser*) +92 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::setCameraPosToTarget(al::CameraPoser*) +92 0.00% 100.00%
Library/Camera/CameraUtil al::calcCameraLookDir(sead::Vector3<float>*, al::IUseCamera const*, int) +92 0.00% 100.00%
Library/Camera/CameraUtil al::tryCalcCameraDirH(sead::Vector3<float>*, al::SceneCameraInfo const*, sead::Vector3<float> const&, int) +92 0.00% 100.00%
Library/Camera/CameraUtil al::calcCameraDir(sead::Vector3<float>*, al::IUseCamera const*, int) +80 0.00% 100.00%
Library/Camera/CameraUtil al::calcCameraSideDir(sead::Vector3<float>*, al::IUseCamera const*, int) +68 0.00% 100.00%
Library/Camera/CameraUtil al::calcCameraUpDir(sead::Vector3<float>*, al::IUseCamera const*, int) +68 0.00% 100.00%
Library/Camera/CameraUtil al::initObjectCameraNoPlacementInfo(al::IUseCamera const*, char const*, char const*) +68 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcTargetTrans(sead::Vector3<float>*, al::CameraPoser const*) +64 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcTargetVelocity(sead::Vector3<float>*, al::CameraPoser const*) +64 0.00% 100.00%
Library/Camera/CameraPoserFunction alCameraPoserFunction::calcTargetUp(sead::Vector3<float>*, al::CameraPoser const*) +64 0.00% 100.00%
Library/Camera/CameraUtil al::setNearClipDistance(al::IUseCamera const*, float, int) +64 0.00% 100.00%
Library/Camera/CameraUtil al::setFarClipDistance(al::IUseCamera const*, float, int) +64 0.00% 100.00%
Library/Camera/CameraUtil al::startCamera(al::IUseCamera const*, al::CameraTicket*, int) +64 0.00% 100.00%

...and 43 more new matches

📈 1 improvement in an unmatched item
Unit Item Bytes Before After
Library/Camera/CameraPoserFunction alCameraPoserFunction::isPrePriorityDemoAll(al::CameraStartInfo const&) +5 0.00% 25.00%

@MonsterDruide1 MonsterDruide1 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incomplete review - please address the comments added so far, so there are not too many open comments at once.

Reviewed 5 of 12 files at r1, all commit messages.
Reviewable status: 5 of 12 files reviewed, 33 unresolved discussions


a discussion (no related file):
Fails to compile


lib/NintendoSDK line 0 at r1 (raw file):
This should not be changed in this PR - it probably just sneaked in during some rebase.


lib/al/Library/Camera/CameraPoserFunction.h line 67 at r1 (raw file):

void calcPreCameraDirH(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcPreLookDir(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcPreLookDirH(sead::Vector3f* vec, const al::CameraPoser* poser);

Suggestion:

void calcLookDir(sead::Vector3f* lookDir, const al::CameraPoser* poser);
void calcCameraDir(sead::Vector3f* cameraDir, const al::CameraPoser* poser);
void calcCameraDirH(sead::Vector3f* cameraDirH, const al::CameraPoser* poser);
void calcLookDirH(sead::Vector3f* lookDirH, const al::CameraPoser* poser);
void calcSideDir(sead::Vector3f* sideDir, const al::CameraPoser* poser);
void calcPreCameraDir(sead::Vector3f* preCameraDir, const al::CameraPoser* poser);
void calcPreCameraDirH(sead::Vector3f* preCameraDirH, const al::CameraPoser* poser);
void calcPreLookDir(sead::Vector3f* preLookDir, const al::CameraPoser* poser);
void calcPreLookDirH(sead::Vector3f* preLookDirH, const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 71 at r1 (raw file):

f32 calcPreCameraAngleV(const al::CameraPoser* poser);
void calcTargetTrans(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcTargetTransWithOffset(sead::Vector3f* vec, const al::CameraPoser* poser);

Suggestion:

void calcTargetTrans(sead::Vector3f* targetTrans, const al::CameraPoser* poser);
void calcTargetTransWithOffset(sead::Vector3f* targetTransWithOffset, const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 83 at r1 (raw file):

void calcTargetFront(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcTargetSide(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcTargetGravity(sead::Vector3f* vec, const al::CameraPoser* poser);

Suggestion:

void calcTargetVelocity(sead::Vector3f* targetVelocity, const al::CameraPoser* poser);
void calcTargetVelocityH(sead::Vector3f* targetVelocityH, const al::CameraPoser* poser);
void calcTargetUp(sead::Vector3f* up, const al::CameraPoser* poser);
f32 calcTargetSpeedV(const al::CameraPoser* poser);
void calcTargetPose(sead::Quatf* quat, const al::CameraPoser* poser);
void calcTargetFront(sead::Vector3f* targetFront, const al::CameraPoser* poser);
void calcTargetSide(sead::Vector3f* targetSide, const al::CameraPoser* poser);
void calcTargetGravity(sead::Vector3f* targetGravity, const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 86 at r1 (raw file):

void calcTargetSpeedH(const al::CameraPoser* poser);
void calcTargetJumpSpeed(const al::CameraPoser* poser);
void calcTargetFallSpeed(const al::CameraPoser* poser);

Suggestion:

f32 calcTargetSpeedH(const al::CameraPoser* poser);
f32 calcTargetJumpSpeed(const al::CameraPoser* poser);
f32 calcTargetFallSpeed(const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 93 at r1 (raw file):

bool isExistCollisionUnderTarget(const al::CameraPoser* poser);
void getUnderTargetCollisionPos(const al::CameraPoser* poser);
void getUnderTargetCollisionNormal(const al::CameraPoser* poser);

Suggestion:

const sead::Vector3f& getUnderTargetCollisionPos(const al::CameraPoser* poser);
const sead::Vector3f& getUnderTargetCollisionNormal(const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 96 at r1 (raw file):

bool isExistSlopeCollisionUnderTarget(const al::CameraPoser* poser);
bool isExistWallCollisionUnderTarget(const al::CameraPoser* poser);
bool tryCalcSlopeCollisionDownFrontDirH(sead::Vector3f* vec, const al::CameraPoser* poser);

Suggestion:

bool tryCalcSlopeCollisionDownFrontDirH(sead::Vector3f* frontDirH, const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 98 at r1 (raw file):

bool tryCalcSlopeCollisionDownFrontDirH(sead::Vector3f* vec, const al::CameraPoser* poser);
void getSlopeCollisionUpSpeed(const al::CameraPoser* poser);
void getSlopeCollisionDownSpeed(const al::CameraPoser* poser);

Suggestion:

f32 getSlopeCollisionUpSpeed(const al::CameraPoser* poser);
f32 getSlopeCollisionDownSpeed(const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 100 at r1 (raw file):

void getSlopeCollisionDownSpeed(const al::CameraPoser* poser);
bool isExistSubTarget(const al::CameraPoser* poser);
void checkValidTurnToSubTarget(const al::CameraPoser* poser);

Suggestion:

bool checkValidTurnToSubTarget(const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 102 at r1 (raw file):

void checkValidTurnToSubTarget(const al::CameraPoser* poser);
void calcSubTargetBack(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcSubTargetTrans(sead::Vector3f* vec, const al::CameraPoser* poser);

Suggestion:

void calcSubTargetBack(sead::Vector3f* back, const al::CameraPoser* poser);
void calcSubTargetTrans(sead::Vector3f* trans, const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 104 at r1 (raw file):

void calcSubTargetTrans(sead::Vector3f* vec, const al::CameraPoser* poser);
bool isChangeSubTarget(const al::CameraPoser* poser);
void calcSubTargetFront(sead::Vector3f* vec, const al::CameraPoser* poser);

Suggestion:

void calcSubTargetFront(sead::Vector3f* front, const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 108 at r1 (raw file):

void getSubTargetTurnSpeedRate1(const al::CameraPoser* poser);
void getSubTargetTurnSpeedRate2(const al::CameraPoser* poser);
void getSubTargetTurnRestartStep(const al::CameraPoser* poser);

Suggestion:

f32 getSubTargetRequestDistance(const al::CameraPoser* poser);
f32 getSubTargetTurnSpeedRate1(const al::CameraPoser* poser);
f32 getSubTargetTurnSpeedRate2(const al::CameraPoser* poser);
s32 getSubTargetTurnRestartStep(const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 116 at r1 (raw file):

void initCameraVerticalAbsorberNoCameraPosAbsorb(al::CameraPoser* poser);
void getCameraVerticalAbsorbPosUp(const al::CameraPoser* poser);
void getCameraVerticalAbsorbPosDown(const al::CameraPoser* poser);

Suggestion:

f32 getCameraVerticalAbsorbPosUp(const al::CameraPoser* poser);
f32 getCameraVerticalAbsorbPosDown(const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 119 at r1 (raw file):

void liberateVerticalAbsorb(al::CameraPoser* poser);
void stopUpdateVerticalAbsorb(al::CameraPoser* poser);
void stopUpdateVerticalAbsorbForSnapShotMode(al::CameraPoser* poser, const sead::Vector3f& vec);

Better leave out the name than give a generic, "wrong" one

Suggestion:

(al::CameraPoser* poser, const sead::Vector3f&);

lib/al/Library/Camera/CameraPoserFunction.h line 134 at r1 (raw file):

void setCameraAngleV(al::CameraPoser* poser, f32);
void getCameraAngleH(const al::CameraPoser* poser);
void getCameraAngleV(const al::CameraPoser* poser);

Suggestion:

f32 getCameraAngleH(const al::CameraPoser* poser);
f32 getCameraAngleV(const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 138 at r1 (raw file):

bool isValidAngleSwing(const al::CameraPoser* poser);
void initCameraOffsetCtrlPreset(al::CameraPoser* poser);
void getOffset(const al::CameraPoser* poser);

Suggestion:

const sead::Vector3f& getOffset(const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 142 at r1 (raw file):

void resetGyro(al::CameraPoser* poser);
void calcCameraGyroPose(const al::CameraPoser* poser, sead::Vector3f* vec, sead::Vector3f* vec0,
                        sead::Vector3f* vec1);

Suggestion:

void calcCameraGyroPose(const al::CameraPoser* poser, sead::Vector3f*, sead::Vector3f*,
                        sead::Vector3f*);

lib/al/Library/Camera/CameraPoserFunction.h line 145 at r1 (raw file):

void getGyroFront(al::CameraPoser* poser);
void getGyroAngleV(al::CameraPoser* poser);
void getGyroAngleH(al::CameraPoser* poser);

Suggestion:

const sead::Vector3f& getGyroFront(al::CameraPoser* poser);
f32 getGyroAngleV(al::CameraPoser* poser);
f32 getGyroAngleH(al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 171 at r1 (raw file):

void setSnapShotMaxZoomOutFovyDegree(al::CameraPoser* poser, f32);
void getSnapShotRollDegree(const al::CameraPoser* poser);
void getSnapShotLookAtOffset(const al::CameraPoser* poser);

Suggestion:

f32 getSnapShotRollDegree(const al::CameraPoser* poser);
const sead::Vector3f& getSnapShotLookAtOffset(const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 185 at r1 (raw file):

bool isRequestMoveDownAngleV(const al::CameraObjectRequestInfo&);
bool isRequestSetAngleV(const al::CameraObjectRequestInfo&);
void getRequestAngleV(const al::CameraObjectRequestInfo&);

Suggestion:

f32 getRequestTargetAngleV(const al::CameraObjectRequestInfo&);
f32 getRequestAngleSpeed(const al::CameraObjectRequestInfo&);
bool isRequestMoveDownAngleV(const al::CameraObjectRequestInfo&);
bool isRequestSetAngleV(const al::CameraObjectRequestInfo&);
f32 getRequestAngleV(const al::CameraObjectRequestInfo&);

lib/al/Library/Camera/CameraPoserFunction.h line 208 at r1 (raw file):

                                               const sead::Vector3f& vec2);
void checkCameraCollisionMoveSphere(sead::Vector3f* vec, const al::IUseCollision*,
                                    const sead::Vector3f& vec0, const sead::Vector3f& vec1, f32);

Suggestion:

bool checkFirstCameraCollisionArrow(sead::Vector3f*, sead::Vector3f*,
                                    const al::IUseCollision*, const sead::Vector3f&,
                                    const sead::Vector3f&);
bool checkFirstCameraCollisionArrow(CameraCollisionHitResult*, const al::IUseCollision*,
                                    const sead::Vector3f&, const sead::Vector3f&);
bool checkFirstCameraCollisionArrowOnlyCeiling(sead::Vector3f*, sead::Vector3f*,
                                               const al::IUseCollision*, const sead::Vector3f&,
                                               const sead::Vector3f&);
void checkCameraCollisionMoveSphere(sead::Vector3f*, const al::IUseCollision*,
                                    const sead::Vector3f&, const sead::Vector3f&, f32);

lib/al/Library/Camera/CameraPoserFunction.h line 214 at r1 (raw file):

void multVecZone(sead::Vector3f* vec, const sead::Vector3f& vec0, const al::CameraPoser* poser);
void multVecInvZone(sead::Vector3f* vec, const sead::Vector3f& vec0, const al::CameraPoser* poser);
void rotateVecZone(sead::Vector3f* vec, const sead::Vector3f& vec0, const al::CameraPoser* poser);

Suggestion:

void multVecZone(sead::Vector3f* out, const sead::Vector3f& vec, const al::CameraPoser* poser);
void multVecInvZone(sead::Vector3f* out, const sead::Vector3f& vec, const al::CameraPoser* poser);
void rotateVecZone(sead::Vector3f* out, const sead::Vector3f& vec, const al::CameraPoser* poser);

lib/al/Library/Camera/CameraPoserFunction.h line 216 at r1 (raw file):

void rotateVecZone(sead::Vector3f* vec, const sead::Vector3f& vec0, const al::CameraPoser* poser);
void calcOffsetCameraKeepInFrameV(sead::Vector3f* vec, sead::LookAtCamera* lookAtCam,
                                  const sead::Vector3f& vec0, const al::CameraPoser* poser, f32,

Suggestion:

bool calcOffsetCameraKeepInFrameV(sead::Vector3f*, sead::LookAtCamera* lookAtCam,
                                  const sead::Vector3f&, const al::CameraPoser* poser, f32,

lib/al/Library/Camera/CameraPoserFunction.h line 219 at r1 (raw file):

                                  f32);
void makeCameraKeepInFrameV(sead::LookAtCamera* lookAtCam, const sead::Vector3f& vec,
                            const al::CameraPoser* poser, f32, f32);

Suggestion:

void makeCameraKeepInFrameV(sead::LookAtCamera* lookAtCam, const sead::Vector3f&,
                            const al::CameraPoser* poser, f32, f32);

lib/al/Library/Camera/CameraPoserFunction.h line 222 at r1 (raw file):

void initCameraRail(al::CameraPoser* poser, const al::PlacementInfo&, const char*);
bool tryGetCameraRailArg(f32*, const al::PlacementInfo&, const char*, const char*);
// void getCameraRailPointObjId(al::CameraPoser const*, s32);

Suggestion:

const char* getCameraRailPointObjId(const al::CameraPoser* poser, s32);

lib/al/Library/Camera/CameraPoserFunction.h line 223 at r1 (raw file):

bool tryGetCameraRailArg(f32*, const al::PlacementInfo&, const char*, const char*);
// void getCameraRailPointObjId(al::CameraPoser const*, s32);
bool tryFindNearestLimitRailKeeper(const al::CameraPoser* poser, const sead::Vector3f& vec);

Suggestion:

al::CameraLimitRailKeeper* tryFindNearestLimitRailKeeper(const al::CameraPoser* poser, const sead::Vector3f&);

lib/al/Library/Camera/CameraPoserFunction.h line 224 at r1 (raw file):

// void getCameraRailPointObjId(al::CameraPoser const*, s32);
bool tryFindNearestLimitRailKeeper(const al::CameraPoser* poser, const sead::Vector3f& vec);
sead::Vector2f calcCameraRotateStick(sead::Vector2f*, const al::CameraPoser* poser);

Suggestion:

void calcCameraRotateStick(sead::Vector2f*, const al::CameraPoser* poser);

lib/al/Library/Area/AreaInitInfo.h line 19 at r1 (raw file):

             SceneObjHolder* sceneObjHolder);

    const PlacementInfo& getPlacementInfo() const { return *this; }

Useless function - whenever the underlying PlacementInfo is needed, you can just use the AreaInitInfo itself directly.


lib/al/Library/Camera/CameraUtil.h line 102 at r1 (raw file):

CameraTicket* initObjectCameraWithPlacementInfo(const IUseCamera* user, const PlacementId* placeId,
                                                const char* str0, const char* str1,
                                                sead::Matrix34f mat);

This function doesn't exist?

Code quote:

CameraTicket* initObjectCameraWithPlacementInfo(const IUseCamera* user, const PlacementId* placeId,
                                                const char* str0, const char* str1,
                                                sead::Matrix34f mat);

lib/al/Library/Camera/CameraViewCtrlScene.h line 15 at r1 (raw file):

    SceneCameraViewCtrl();

    CameraSwitchRequester* getSwitchRequester() { return mSwitchRequester; }

Suggestion:

CameraSwitchRequester* getSwitchRequester() const { return mSwitchRequester; }

tools/config.toml line 0 at r1 (raw file):
Should not be changed in this PR, especially as the underlying viking update is not finished/merged yet


data/odyssey_functions.csv line 0 at r1 (raw file):
Do not change unrelated functions from m to M

@MonsterDruide1 MonsterDruide1 added the status:waiting for author Reviews have shown that the author of this PR needs to change some things. label Nov 1, 2025

@Moddimation Moddimation left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Moddimation made 33 comments.
Reviewable status: 1 of 14 files reviewed, 33 unresolved discussions (waiting on @MonsterDruide1).


a discussion (no related file):

Previously, MonsterDruide1 wrote…

Fails to compile

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 119 at r1 (raw file):

Previously, MonsterDruide1 wrote…

Better leave out the name than give a generic, "wrong" one

i just scrapped this in favor of "the person that implements it also labels it", if thats alright


data/odyssey_functions.csv line at r1 (raw file):

Previously, MonsterDruide1 wrote…

Do not change unrelated functions from m to M

Done.


lib/NintendoSDK line at r1 (raw file):

Previously, MonsterDruide1 wrote…

This should not be changed in this PR - it probably just sneaked in during some rebase.

Done.


lib/al/Library/Area/AreaInitInfo.h line 19 at r1 (raw file):

Previously, MonsterDruide1 wrote…

Useless function - whenever the underlying PlacementInfo is needed, you can just use the AreaInitInfo itself directly.

Done.


lib/al/Library/Camera/CameraUtil.h line 102 at r1 (raw file):

Previously, MonsterDruide1 wrote…

This function doesn't exist?

Done.


tools/config.toml line at r1 (raw file):

Previously, MonsterDruide1 wrote…

Should not be changed in this PR, especially as the underlying viking update is not finished/merged yet

Done.


lib/al/Library/Camera/CameraViewCtrlScene.h line 15 at r1 (raw file):

    SceneCameraViewCtrl();

    CameraSwitchRequester* getSwitchRequester() { return mSwitchRequester; }

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 67 at r1 (raw file):

void calcPreCameraDirH(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcPreLookDir(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcPreLookDirH(sead::Vector3f* vec, const al::CameraPoser* poser);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 71 at r1 (raw file):

f32 calcPreCameraAngleV(const al::CameraPoser* poser);
void calcTargetTrans(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcTargetTransWithOffset(sead::Vector3f* vec, const al::CameraPoser* poser);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 83 at r1 (raw file):

void calcTargetFront(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcTargetSide(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcTargetGravity(sead::Vector3f* vec, const al::CameraPoser* poser);

i just scrapped this in favor of "the person that implements it also labels it", if thats alright


lib/al/Library/Camera/CameraPoserFunction.h line 86 at r1 (raw file):

void calcTargetSpeedH(const al::CameraPoser* poser);
void calcTargetJumpSpeed(const al::CameraPoser* poser);
void calcTargetFallSpeed(const al::CameraPoser* poser);

i just scrapped this in favor of "the person that implements it also labels it", if thats alright


lib/al/Library/Camera/CameraPoserFunction.h line 93 at r1 (raw file):

bool isExistCollisionUnderTarget(const al::CameraPoser* poser);
void getUnderTargetCollisionPos(const al::CameraPoser* poser);
void getUnderTargetCollisionNormal(const al::CameraPoser* poser);

i just scrapped this in favor of "the person that implements it also labels it", if thats alright


lib/al/Library/Camera/CameraPoserFunction.h line 96 at r1 (raw file):

bool isExistSlopeCollisionUnderTarget(const al::CameraPoser* poser);
bool isExistWallCollisionUnderTarget(const al::CameraPoser* poser);
bool tryCalcSlopeCollisionDownFrontDirH(sead::Vector3f* vec, const al::CameraPoser* poser);

i just scrapped this in favor of "the person that implements it also labels it", if thats alright


lib/al/Library/Camera/CameraPoserFunction.h line 98 at r1 (raw file):

bool tryCalcSlopeCollisionDownFrontDirH(sead::Vector3f* vec, const al::CameraPoser* poser);
void getSlopeCollisionUpSpeed(const al::CameraPoser* poser);
void getSlopeCollisionDownSpeed(const al::CameraPoser* poser);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 100 at r1 (raw file):

void getSlopeCollisionDownSpeed(const al::CameraPoser* poser);
bool isExistSubTarget(const al::CameraPoser* poser);
void checkValidTurnToSubTarget(const al::CameraPoser* poser);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 102 at r1 (raw file):

void checkValidTurnToSubTarget(const al::CameraPoser* poser);
void calcSubTargetBack(sead::Vector3f* vec, const al::CameraPoser* poser);
void calcSubTargetTrans(sead::Vector3f* vec, const al::CameraPoser* poser);

i just scrapped this in favor of "the person that implements it also labels it", if thats alright


lib/al/Library/Camera/CameraPoserFunction.h line 104 at r1 (raw file):

void calcSubTargetTrans(sead::Vector3f* vec, const al::CameraPoser* poser);
bool isChangeSubTarget(const al::CameraPoser* poser);
void calcSubTargetFront(sead::Vector3f* vec, const al::CameraPoser* poser);

i just scrapped this in favor of "the person that implements it also labels it", if thats alright


lib/al/Library/Camera/CameraPoserFunction.h line 108 at r1 (raw file):

void getSubTargetTurnSpeedRate1(const al::CameraPoser* poser);
void getSubTargetTurnSpeedRate2(const al::CameraPoser* poser);
void getSubTargetTurnRestartStep(const al::CameraPoser* poser);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 116 at r1 (raw file):

void initCameraVerticalAbsorberNoCameraPosAbsorb(al::CameraPoser* poser);
void getCameraVerticalAbsorbPosUp(const al::CameraPoser* poser);
void getCameraVerticalAbsorbPosDown(const al::CameraPoser* poser);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 134 at r1 (raw file):

void setCameraAngleV(al::CameraPoser* poser, f32);
void getCameraAngleH(const al::CameraPoser* poser);
void getCameraAngleV(const al::CameraPoser* poser);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 138 at r1 (raw file):

bool isValidAngleSwing(const al::CameraPoser* poser);
void initCameraOffsetCtrlPreset(al::CameraPoser* poser);
void getOffset(const al::CameraPoser* poser);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 142 at r1 (raw file):

void resetGyro(al::CameraPoser* poser);
void calcCameraGyroPose(const al::CameraPoser* poser, sead::Vector3f* vec, sead::Vector3f* vec0,
                        sead::Vector3f* vec1);

i just scrapped this in favor of "the person that implements it also labels it", if thats alright


lib/al/Library/Camera/CameraPoserFunction.h line 145 at r1 (raw file):

void getGyroFront(al::CameraPoser* poser);
void getGyroAngleV(al::CameraPoser* poser);
void getGyroAngleH(al::CameraPoser* poser);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 171 at r1 (raw file):

void setSnapShotMaxZoomOutFovyDegree(al::CameraPoser* poser, f32);
void getSnapShotRollDegree(const al::CameraPoser* poser);
void getSnapShotLookAtOffset(const al::CameraPoser* poser);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 185 at r1 (raw file):

bool isRequestMoveDownAngleV(const al::CameraObjectRequestInfo&);
bool isRequestSetAngleV(const al::CameraObjectRequestInfo&);
void getRequestAngleV(const al::CameraObjectRequestInfo&);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 208 at r1 (raw file):

                                               const sead::Vector3f& vec2);
void checkCameraCollisionMoveSphere(sead::Vector3f* vec, const al::IUseCollision*,
                                    const sead::Vector3f& vec0, const sead::Vector3f& vec1, f32);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 214 at r1 (raw file):

void multVecZone(sead::Vector3f* vec, const sead::Vector3f& vec0, const al::CameraPoser* poser);
void multVecInvZone(sead::Vector3f* vec, const sead::Vector3f& vec0, const al::CameraPoser* poser);
void rotateVecZone(sead::Vector3f* vec, const sead::Vector3f& vec0, const al::CameraPoser* poser);

i just scrapped this in favor of "the person that implements it also labels it", if thats alright


lib/al/Library/Camera/CameraPoserFunction.h line 216 at r1 (raw file):

void rotateVecZone(sead::Vector3f* vec, const sead::Vector3f& vec0, const al::CameraPoser* poser);
void calcOffsetCameraKeepInFrameV(sead::Vector3f* vec, sead::LookAtCamera* lookAtCam,
                                  const sead::Vector3f& vec0, const al::CameraPoser* poser, f32,

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 219 at r1 (raw file):

                                  f32);
void makeCameraKeepInFrameV(sead::LookAtCamera* lookAtCam, const sead::Vector3f& vec,
                            const al::CameraPoser* poser, f32, f32);

i just scrapped this in favor of "the person that implements it also labels it", if thats alright


lib/al/Library/Camera/CameraPoserFunction.h line 222 at r1 (raw file):

void initCameraRail(al::CameraPoser* poser, const al::PlacementInfo&, const char*);
bool tryGetCameraRailArg(f32*, const al::PlacementInfo&, const char*, const char*);
// void getCameraRailPointObjId(al::CameraPoser const*, s32);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 223 at r1 (raw file):

bool tryGetCameraRailArg(f32*, const al::PlacementInfo&, const char*, const char*);
// void getCameraRailPointObjId(al::CameraPoser const*, s32);
bool tryFindNearestLimitRailKeeper(const al::CameraPoser* poser, const sead::Vector3f& vec);

Done.


lib/al/Library/Camera/CameraPoserFunction.h line 224 at r1 (raw file):

// void getCameraRailPointObjId(al::CameraPoser const*, s32);
bool tryFindNearestLimitRailKeeper(const al::CameraPoser* poser, const sead::Vector3f& vec);
sead::Vector2f calcCameraRotateStick(sead::Vector2f*, const al::CameraPoser* poser);

Done.

@github-actions github-actions Bot added status:waiting for review This PR is ready to take the first or another look at it! and removed status:waiting for author Reviews have shown that the author of this PR needs to change some things. labels Feb 5, 2026
@Moddimation

Copy link
Copy Markdown
Contributor Author

Aya

@german77

german77 commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Superseded by #1303. I need to diff if there are any additional changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:waiting for review This PR is ready to take the first or another look at it!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants