Decomp, some camera names (#7043)

This commit is contained in:
djevangelia
2026-08-08 23:12:31 +02:00
committed by GitHub
parent 982f598e01
commit f2f4413bff
11 changed files with 97 additions and 94 deletions
+3 -3
View File
@@ -674,10 +674,10 @@ void CollisionHeader_GetVirtual(void* colHeader, CollisionHeader** dest);
void func_800418D0(CollisionContext* colCtx, PlayState* play);
void BgCheck_ResetPolyCheckTbl(SSNodeList* nodeList, s32 numPolys);
u32 SurfaceType_GetCamDataIndex(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
u16 func_80041A4C(CollisionContext* colCtx, u32 camId, s32 bgId);
u16 BgCheck_GetBgCamSettingImpl(CollisionContext* colCtx, u32 bgCamIndex, s32 bgId);
u16 SurfaceType_GetCameraSType(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
u16 SurfaceType_GetNumCameras(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
Vec3s* func_80041C10(CollisionContext* colCtx, s32 camId, s32 bgId);
Vec3s* BgCheck_GetBgCamFuncDataImpl(CollisionContext* colCtx, s32 bgCamIndex, s32 bgId);
Vec3s* SurfaceType_GetCamPosData(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
u32 SurfaceType_GetSceneExitIndex(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
u32 SurfaceType_GetFloorType(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
@@ -734,7 +734,7 @@ void Camera_InitPlayerSettings(Camera* camera, Player* player);
s16 Camera_ChangeStatus(Camera* camera, s16 status);
Vec3s Camera_Update(Camera* camera);
void Camera_Finish(Camera* camera);
s32 Camera_ChangeMode(Camera* camera, s16 mode);
s32 Camera_RequestMode(Camera* camera, s16 mode);
s32 Camera_CheckValidMode(Camera* camera, s16 mode);
s32 Camera_RequestSetting(Camera* camera, s16 setting);
s32 Camera_ChangeDataIdx(Camera* camera, s32 camDataIdx);
@@ -143,7 +143,7 @@ extern "C" void DisableFixedCamera_SetNormalCamera(PlayState* play) {
play->mainCamera.prevSetting = CAM_SET_NORMAL0;
}
Camera_RequestSetting(&play->mainCamera, CAM_SET_NORMAL0);
Camera_ChangeMode(&play->mainCamera, CAM_MODE_NORMAL);
Camera_RequestMode(&play->mainCamera, CAM_MODE_NORMAL);
}
extern "C" void DisableFixedCamera_CheckCameraState(PlayState* play) {
@@ -225,7 +225,7 @@ extern "C" void DisableFixedCamera_CheckCameraState(PlayState* play) {
sStoreLastCamType = play->mainCamera.camDataIdx;
}
Camera_RequestSetting(&play->mainCamera, CAM_SET_TURN_AROUND);
Camera_ChangeMode(&play->mainCamera, CAM_MODE_NORMAL);
Camera_RequestMode(&play->mainCamera, CAM_MODE_NORMAL);
if (sStoreLastCamType >= 0) {
play->mainCamera.camDataIdx = sStoreLastCamType;
}
+1 -1
View File
@@ -1749,7 +1749,7 @@ void RegisterEntranceShuffleHooks() {
return;
}
memcpy(camera, &backupCamera, sizeof(Camera));
Camera_ChangeMode(camera, CAM_MODE_TALK);
Camera_RequestMode(camera, CAM_MODE_TALK);
*should = false;
} else if (backedUpScene != gPlayState->sceneNum) {
memcpy(&backupCamera, camera, sizeof(Camera));
+1 -1
View File
@@ -3497,7 +3497,7 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) {
if ((player != NULL) && (actor == player->focusActor)) {
Player_ReleaseLockOn(player);
Camera_ChangeMode(Play_GetCamera(play, Play_GetActiveCamId(play)), 0);
Camera_RequestMode(Play_GetCamera(play, Play_GetActiveCamId(play)), CAM_MODE_NORMAL);
}
if (actor == actorCtx->targetCtx.arrowPointedActor) {
+19 -16
View File
@@ -3865,25 +3865,26 @@ u32 SurfaceType_GetData(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId,
* SurfaceType return CamData Index
*/
u32 SurfaceType_GetCamDataIndex(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId) {
return SurfaceType_GetData(colCtx, poly, bgId, 0) & 0xFF;
}
/**
* CamData return cameraSType
* BgCam get setting of bgCam
*/
u16 func_80041A4C(CollisionContext* colCtx, u32 camId, s32 bgId) {
u16 result;
u16 BgCheck_GetBgCamSettingImpl(CollisionContext* colCtx, u32 bgCamIndex, s32 bgId) {
u16 camSetting;
CollisionHeader* colHeader;
CamData* camData;
CamData* bgCamList;
colHeader = BgCheck_GetCollisionHeader(colCtx, bgId);
if (colHeader == NULL) {
return 0;
return CAM_SET_NONE;
}
camData = colHeader->cameraDataList;
result = camData[camId].cameraSType;
return result;
bgCamList = colHeader->cameraDataList;
camSetting = bgCamList[bgCamIndex].cameraSType;
return camSetting;
}
/**
@@ -3905,7 +3906,7 @@ u16 SurfaceType_GetCameraSType(CollisionContext* colCtx, CollisionPoly* poly, s3
if (surfaceTypes == PHYSICAL_TO_VIRTUAL(gSegments[0])) {
return 0;
}
return func_80041A4C(colCtx, SurfaceType_GetCamDataIndex(colCtx, poly, bgId), bgId);
return BgCheck_GetBgCamSettingImpl(colCtx, SurfaceType_GetCamDataIndex(colCtx, poly, bgId), bgId);
}
/**
@@ -3951,18 +3952,20 @@ u16 SurfaceType_GetNumCameras(CollisionContext* colCtx, CollisionPoly* poly, s32
/**
* CamData Get camPosData
*/
Vec3s* func_80041C10(CollisionContext* colCtx, s32 camId, s32 bgId) {
Vec3s* BgCheck_GetBgCamFuncDataImpl(CollisionContext* colCtx, s32 bgCamIndex, s32 bgId) {
CollisionHeader* colHeader = BgCheck_GetCollisionHeader(colCtx, bgId);
CamData* cameraDataList;
CamData* bgCamList;
if (colHeader == NULL) {
return NULL;
}
cameraDataList = colHeader->cameraDataList;
if (cameraDataList == PHYSICAL_TO_VIRTUAL(gSegments[0])) {
bgCamList = colHeader->cameraDataList;
if (bgCamList == PHYSICAL_TO_VIRTUAL(gSegments[0])) {
return NULL;
}
return (Vec3s*)SEGMENTED_TO_VIRTUAL(cameraDataList[camId].camPosData);
return (Vec3s*)SEGMENTED_TO_VIRTUAL(bgCamList[bgCamIndex].camPosData);
}
/**
@@ -3984,7 +3987,7 @@ Vec3s* SurfaceType_GetCamPosData(CollisionContext* colCtx, CollisionPoly* poly,
if (surfaceTypes == PHYSICAL_TO_VIRTUAL(gSegments[0])) {
return NULL;
}
return func_80041C10(colCtx, SurfaceType_GetCamDataIndex(colCtx, poly, bgId), bgId);
return BgCheck_GetBgCamFuncDataImpl(colCtx, SurfaceType_GetCamDataIndex(colCtx, poly, bgId), bgId);
}
/**
+51 -51
View File
@@ -12,7 +12,7 @@
#include "soh/Enhancements/savestate_serialize.h"
s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags);
s32 Camera_ChangeModeFlags(Camera* camera, s16 mode, u8 flags);
s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange);
s32 Camera_QRegInit(void);
s32 Camera_UpdateWater(Camera* camera);
@@ -449,17 +449,17 @@ f32 Camera_GetFloorYLayer(Camera* camera, Vec3f* norm, Vec3f* pos, s32* bgId) {
}
/**
* Returns the CameraSettingType of the camera at index `camDataIdx`
* Returns the CameraSettingType of the camera at index `bgCamIndex`
*/
s16 Camera_GetCamDataSetting(Camera* camera, s32 camDataIdx) {
return func_80041A4C(&camera->play->colCtx, camDataIdx, BGCHECK_SCENE);
s16 Camera_GetBgCamSetting(Camera* camera, s32 bgCamIndex) {
return BgCheck_GetBgCamSettingImpl(&camera->play->colCtx, bgCamIndex, BGCHECK_SCENE);
}
/**
* Returns the scene camera info for the current camera data index
* Returns the bgCamFuncData using the current bgCam index
*/
Vec3s* Camera_GetCamBGData(Camera* camera) {
return func_80041C10(&camera->play->colCtx, camera->camDataIdx, BGCHECK_SCENE);
return BgCheck_GetBgCamFuncDataImpl(&camera->play->colCtx, camera->camDataIdx, BGCHECK_SCENE);
}
/**
@@ -474,7 +474,7 @@ s32 Camera_GetDataIdxForPoly(Camera* camera, s32* bgId, CollisionPoly* poly) {
Actor_GetWorldPosShapeRot(&playerPosRot, &camera->player->actor); // unused.
camDataIdx = SurfaceType_GetCamDataIndex(&camera->play->colCtx, poly, *bgId);
if (func_80041A4C(&camera->play->colCtx, camDataIdx, *bgId) == CAM_SET_NONE) {
if (BgCheck_GetBgCamSettingImpl(&camera->play->colCtx, camDataIdx, *bgId) == CAM_SET_NONE) {
ret = -1;
} else {
ret = camDataIdx;
@@ -2980,7 +2980,7 @@ s32 Camera_Battle1(Camera* camera) {
VT_COL(YELLOW, BLACK) "camera: warning: battle: target is not valid, change parallel\n" VT_RST);
}
camera->target = NULL;
Camera_ChangeMode(camera, CAM_MODE_TARGET);
Camera_RequestMode(camera, CAM_MODE_TARGET);
return true;
}
@@ -2996,7 +2996,7 @@ s32 Camera_Battle1(Camera* camera) {
} else {
osSyncPrintf("camera: battle: target actor name " VT_COL(RED, WHITE) "%d" VT_RST "\n", anim->target->id);
camera->target = NULL;
Camera_ChangeMode(camera, CAM_MODE_TARGET);
Camera_RequestMode(camera, CAM_MODE_TARGET);
return true;
}
anim->animTimer = OREG(23) + OREG(24);
@@ -3260,7 +3260,7 @@ s32 Camera_KeepOn1(Camera* camera) {
VT_COL(YELLOW, BLACK) "camera: warning: keepon: target is not valid, change parallel\n" VT_RST);
}
camera->target = NULL;
Camera_ChangeMode(camera, CAM_MODE_TARGET);
Camera_RequestMode(camera, CAM_MODE_TARGET);
return 1;
}
@@ -3493,7 +3493,7 @@ s32 Camera_KeepOn3(Camera* camera) {
osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: warning: talk: target is not valid, change parallel\n" VT_RST);
}
camera->target = NULL;
Camera_ChangeMode(camera, CAM_MODE_TARGET);
Camera_RequestMode(camera, CAM_MODE_TARGET);
return 1;
}
if (camera->animState == 0 || camera->animState == 0xA || camera->animState == 0x14) {
@@ -3987,7 +3987,7 @@ s32 Camera_KeepOn0(Camera* camera) {
VT_COL(YELLOW, BLACK) "camera: warning: talk: target is not valid, change normal camera\n" VT_RST);
}
camera->target = NULL;
Camera_ChangeMode(camera, CAM_MODE_NORMAL);
Camera_RequestMode(camera, CAM_MODE_NORMAL);
return true;
}
@@ -5622,7 +5622,7 @@ s32 Camera_Unique9(Camera* camera) {
// Change the parent camera (or default)'s mode to normal
s32 camIdx = camera->parentCamIdx <= SUBCAM_NONE ? CAM_ID_MAIN : camera->parentCamIdx;
Camera_ChangeModeFlags(camera->play->cameraPtrs[camIdx], CAM_MODE_NORMAL, 1);
Camera_RequestModeImpl(camera->play->cameraPtrs[camIdx], CAM_MODE_NORMAL, true);
}
case 18: {
// copy the current camera to the parent (or default)'s camera.
@@ -7810,56 +7810,56 @@ s32 func_8005A02C(Camera* camera) {
return true;
}
s32 Camera_ChangeModeFlags(Camera* camera, s16 mode, u8 flags) {
static s32 modeChangeFlags = 0;
s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange) {
static s32 sModeRequestFlags = 0;
if (QREG(89)) {
osSyncPrintf("+=+(%d)+=+ recive request -> %s\n", camera->play->state.frames, sCameraModeNames[mode]);
osSyncPrintf("+=+(%d)+=+ recive request -> %s\n", camera->play->state.frames, sCameraModeNames[requestedMode]);
}
if (camera->unk_14C & 0x20 && flags == 0) {
if (camera->unk_14C & 0x20 && !forceModeChange) {
camera->unk_14A |= 0x20;
return -1;
}
if (!((sCameraSettings[camera->setting].unk_00 & 0x3FFFFFFF) & (1 << mode))) {
if (mode == CAM_MODE_FIRST_PERSON) {
if (!((sCameraSettings[camera->setting].unk_00 & 0x3FFFFFFF) & (1 << requestedMode))) {
if (requestedMode == CAM_MODE_FIRST_PERSON) {
osSyncPrintf("camera: error sound\n");
Sfx_PlaySfxCentered(NA_SE_SY_ERROR);
}
if (camera->mode != CAM_MODE_NORMAL) {
osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: change camera mode: force NORMAL: %s %s refused\n" VT_RST,
sCameraSettingNames[camera->setting], sCameraModeNames[mode]);
sCameraSettingNames[camera->setting], sCameraModeNames[requestedMode]);
camera->mode = CAM_MODE_NORMAL;
Camera_CopyDataToRegs(camera, camera->mode);
func_8005A02C(camera);
return 0xC0000000 | mode;
return 0xC0000000 | requestedMode;
} else {
camera->unk_14A |= 0x20;
camera->unk_14A |= 2;
return 0;
}
} else {
if (mode == camera->mode && flags == 0) {
if (requestedMode == camera->mode && !forceModeChange) {
camera->unk_14A |= 0x20;
camera->unk_14A |= 2;
return -1;
}
camera->unk_14A |= 0x20;
camera->unk_14A |= 2;
Camera_CopyDataToRegs(camera, mode);
modeChangeFlags = 0;
switch (mode) {
Camera_CopyDataToRegs(camera, requestedMode);
sModeRequestFlags = 0;
switch (requestedMode) {
case CAM_MODE_FIRST_PERSON:
modeChangeFlags = 0x20;
sModeRequestFlags = 0x20;
break;
case CAM_MODE_BATTLE:
modeChangeFlags = 4;
sModeRequestFlags = 4;
break;
case CAM_MODE_FOLLOWTARGET:
if (camera->target != NULL && camera->target->id != ACTOR_EN_BOOM) {
modeChangeFlags = 8;
sModeRequestFlags = 8;
}
break;
case CAM_MODE_TARGET:
@@ -7867,51 +7867,51 @@ s32 Camera_ChangeModeFlags(Camera* camera, s16 mode, u8 flags) {
case CAM_MODE_Z_AIM:
case CAM_MODE_HANGZ:
case CAM_MODE_PUSHPULL:
modeChangeFlags = 2;
sModeRequestFlags = 2;
break;
}
switch (camera->mode) {
case CAM_MODE_FIRST_PERSON:
if (modeChangeFlags & 0x20) {
if (sModeRequestFlags & 0x20) {
camera->animState = 0xA;
}
break;
case CAM_MODE_TARGET:
if (modeChangeFlags & 0x10) {
if (sModeRequestFlags & 0x10) {
camera->animState = 0xA;
}
modeChangeFlags |= 1;
sModeRequestFlags |= 1;
break;
case CAM_MODE_CHARGE:
modeChangeFlags |= 1;
sModeRequestFlags |= 1;
break;
case CAM_MODE_FOLLOWTARGET:
if (modeChangeFlags & 8) {
if (sModeRequestFlags & 8) {
camera->animState = 0xA;
}
modeChangeFlags |= 1;
sModeRequestFlags |= 1;
break;
case CAM_MODE_BATTLE:
if (modeChangeFlags & 4) {
if (sModeRequestFlags & 4) {
camera->animState = 0xA;
}
modeChangeFlags |= 1;
sModeRequestFlags |= 1;
break;
case CAM_MODE_Z_AIM:
case CAM_MODE_HANGZ:
case CAM_MODE_PUSHPULL:
modeChangeFlags |= 1;
sModeRequestFlags |= 1;
break;
case CAM_MODE_NORMAL:
if (modeChangeFlags & 0x10) {
if (sModeRequestFlags & 0x10) {
camera->animState = 0xA;
}
break;
}
modeChangeFlags &= ~0x10;
sModeRequestFlags &= ~0x10;
if (camera->status == CAM_STAT_ACTIVE) {
switch (modeChangeFlags) {
switch (sModeRequestFlags) {
case 1:
Sfx_PlaySfxCentered(0);
break;
@@ -7933,20 +7933,20 @@ s32 Camera_ChangeModeFlags(Camera* camera, s16 mode, u8 flags) {
// Clear free look if an action is performed that would move the camera (targeting, first person, talking)
if (CVarGetInteger(CVAR_SETTING("FreeLook.Enabled"), 0) && SetCameraManual(camera) == 1 &&
((mode >= CAM_MODE_TARGET && mode <= CAM_MODE_BATTLE) ||
(mode >= CAM_MODE_FIRST_PERSON && mode <= CAM_MODE_CLIMBZ) || mode == CAM_MODE_HANGZ ||
mode == CAM_MODE_FOLLOWBOOMERANG)) {
((requestedMode >= CAM_MODE_TARGET && requestedMode <= CAM_MODE_BATTLE) ||
(requestedMode >= CAM_MODE_FIRST_PERSON && requestedMode <= CAM_MODE_CLIMBZ) ||
requestedMode == CAM_MODE_HANGZ || requestedMode == CAM_MODE_FOLLOWBOOMERANG)) {
camera->play->manualCamera = false;
}
func_8005A02C(camera);
camera->mode = mode;
return 0x80000000 | mode;
camera->mode = requestedMode;
return 0x80000000 | requestedMode;
}
}
s32 Camera_ChangeMode(Camera* camera, s16 mode) {
return Camera_ChangeModeFlags(camera, mode, 0);
s32 Camera_RequestMode(Camera* camera, s16 mode) {
return Camera_RequestModeImpl(camera, mode, false);
}
s32 Camera_CheckValidMode(Camera* camera, s16 mode) {
@@ -8015,7 +8015,7 @@ s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags) {
camera->setting = setting;
if (Camera_ChangeModeFlags(camera, camera->mode, 1) >= 0) {
if (Camera_RequestModeImpl(camera, camera->mode, true) >= 0) {
Camera_CopyDataToRegs(camera, camera->mode);
}
@@ -8039,7 +8039,7 @@ s32 Camera_ChangeDataIdx(Camera* camera, s32 camDataIdx) {
}
if (!(camera->unk_14A & 0x40)) {
newCameraSetting = Camera_GetCamDataSetting(camera, camDataIdx);
newCameraSetting = Camera_GetBgCamSetting(camera, camDataIdx);
camera->unk_14A |= 0x40;
settingChangeSuccessful = Camera_ChangeSettingFlags(camera, newCameraSetting, 5) >= 0;
if (settingChangeSuccessful || sCameraSettings[camera->setting].unk_00 & 0x80000000) {
@@ -8230,7 +8230,7 @@ s32 Camera_ChangeDoorCam(Camera* camera, Actor* doorActor, s16 camDataIdx, f32 a
Camera_RequestSetting(camera, CAM_SET_DOORC);
osSyncPrintf(".... change default door camera (set %d)\n", CAM_SET_DOORC);
} else {
s32 setting = Camera_GetCamDataSetting(camera, camDataIdx);
s32 setting = Camera_GetBgCamSetting(camera, camDataIdx);
camera->unk_14A |= 0x40;
+8 -8
View File
@@ -603,7 +603,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
break;
case 3190:
Play_CameraChangeSetting(play, camIdx, CAM_SET_FOREST_DEFEAT_POE);
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
Camera_RequestMode(mainCam, CAM_MODE_NORMAL);
Player_SetCsAction(play, actor, 0xC);
break;
case 3230:
@@ -863,14 +863,14 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
csInfo->keyFrameCnt = 6;
func_800C0808(play, camIdx, player, CAM_SET_CS_C);
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
Camera_RequestMode(mainCam, CAM_MODE_NORMAL);
break;
case 4150:
csInfo->keyFrames = D_801228A4;
csInfo->keyFrameCnt = 5;
Player_SetCsActionWithHaltedActors(play, NULL, 8);
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
Camera_RequestMode(mainCam, CAM_MODE_NORMAL);
func_800C0808(play, camIdx, player, CAM_SET_CS_C);
break;
case 4160:
@@ -878,7 +878,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
csInfo->keyFrameCnt = 4;
Player_SetCsActionWithHaltedActors(play, NULL, 8);
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
Camera_RequestMode(mainCam, CAM_MODE_NORMAL);
func_800C0808(play, camIdx, player, CAM_SET_CS_C);
break;
case 4170:
@@ -886,7 +886,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
csInfo->keyFrameCnt = 2;
Player_SetCsActionWithHaltedActors(play, NULL, 8);
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
Camera_RequestMode(mainCam, CAM_MODE_NORMAL);
func_800C0808(play, camIdx, player, CAM_SET_CS_C);
break;
case 4190:
@@ -894,7 +894,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
csInfo->keyFrameCnt = 8;
Player_SetCsAction(play, &player->actor, 8);
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
Camera_RequestMode(mainCam, CAM_MODE_NORMAL);
func_800C0808(play, camIdx, player, CAM_SET_CS_C);
break;
case 4200:
@@ -902,7 +902,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
csInfo->keyFrameCnt = 3;
Player_SetCsAction(play, &player->actor, 8);
Camera_ChangeMode(mainCam, CAM_MODE_NORMAL);
Camera_RequestMode(mainCam, CAM_MODE_NORMAL);
func_800C0808(play, camIdx, player, CAM_SET_CS_C);
break;
case 4210:
@@ -1319,7 +1319,7 @@ s32 OnePointCutscene_Attention(PlayState* play, Actor* actor) {
parentCam = play->cameraPtrs[CAM_ID_MAIN];
if (parentCam->mode == CAM_MODE_FOLLOWBOOMERANG) {
osSyncPrintf(VT_COL(YELLOW, BLACK) "actor attention demo camera: change mode BOOKEEPON -> NORMAL\n" VT_RST);
Camera_ChangeMode(parentCam, CAM_MODE_NORMAL);
Camera_RequestMode(parentCam, CAM_MODE_NORMAL);
}
// Finds the camera of the first actor attention demo with a lower category actor, or the first non-attention demo
+1 -1
View File
@@ -586,7 +586,7 @@ void Play_Init(GameState* thisx) {
player = GET_PLAYER(play);
Camera_InitPlayerSettings(&play->mainCamera, player);
Camera_ChangeMode(&play->mainCamera, CAM_MODE_NORMAL);
Camera_RequestMode(&play->mainCamera, CAM_MODE_NORMAL);
// OTRTODO: Bounds check cameraDataList to guard against scenes spawning the player with
// an out of bounds background camera index. This requires adding an extra field to the
+2 -2
View File
@@ -746,8 +746,8 @@ void Player_SetAutoLockOnActor(PlayState* play, Actor* actor) {
this->focusActor = actor;
this->autoLockOnActor = actor;
this->stateFlags1 |= PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS;
Camera_SetParam(Play_GetCamera(play, 0), 8, actor);
Camera_ChangeMode(Play_GetCamera(play, 0), 2);
Camera_SetParam(Play_GetCamera(play, CAM_ID_MAIN), 8, actor);
Camera_RequestMode(Play_GetCamera(play, CAM_ID_MAIN), 2);
}
s32 func_8008EF30(PlayState* play) {
+1 -1
View File
@@ -416,7 +416,7 @@ BgImage* func_80096A74(PolygonType1* polygon1, PlayState* play) {
camId = camera->camDataIdx;
if (GameInteractor_Should(VB_SHOULD_LOAD_BG_IMAGE, true, &camId)) {
// jfifid
camId2 = func_80041C10(&play->colCtx, camId, BGCHECK_SCENE)[2].y;
camId2 = BgCheck_GetBgCamFuncDataImpl(&play->colCtx, camId, BGCHECK_SCENE)[2].y;
if (camId2 >= 0) {
camId = camId2;
}
@@ -5870,7 +5870,7 @@ s32 func_8083AD4C(PlayState* play, Player* this) {
// Check if aiming camera mode should be overridden due to player settings
GameInteractor_Should(VB_CHANGE_AIMING_CAMERA, true, &this->heldItemAction, &camMode);
return Camera_ChangeMode(Play_GetCamera(play, CAM_ID_MAIN), camMode);
return Camera_RequestMode(Play_GetCamera(play, CAM_ID_MAIN), camMode);
}
/**
@@ -11469,11 +11469,11 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) {
seqMode = SEQ_MODE_DEFAULT;
if (this->csAction != 0) {
Camera_ChangeMode(Play_GetCamera(play, 0), CAM_MODE_NORMAL);
Camera_RequestMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_NORMAL);
} else if (!(this->stateFlags1 & PLAYER_STATE1_FIRST_PERSON)) {
if ((this->actor.parent != NULL) && (this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT)) {
camMode = CAM_MODE_HOOKSHOT;
Camera_SetParam(Play_GetCamera(play, 0), 8, this->actor.parent);
Camera_SetParam(Play_GetCamera(play, CAM_ID_MAIN), 8, this->actor.parent);
} else if (Player_Action_8084377C == this->actionFunc) {
camMode = CAM_MODE_STILL;
} else if (this->stateFlags2 & PLAYER_STATE2_GRABBING_DYNAPOLY) {
@@ -11490,7 +11490,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) {
} else {
camMode = CAM_MODE_BATTLE;
}
Camera_SetParam(Play_GetCamera(play, 0), 8, focusActor);
Camera_SetParam(Play_GetCamera(play, CAM_ID_MAIN), 8, focusActor);
} else if (this->stateFlags1 & PLAYER_STATE1_CHARGING_SPIN_ATTACK) {
camMode = CAM_MODE_CHARGE;
} else if (this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN) {
@@ -11498,7 +11498,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) {
if (CVarGetInteger(CVAR_ENHANCEMENT("BoomerangFirstPerson"), 0)) {
// Avoid camera jumps by switching to normal cam to exit the first person camera,
// before following the boomerang
if (Play_GetCamera(play, 0)->mode == CAM_MODE_FIRST_PERSON) {
if (Play_GetCamera(play, CAM_ID_MAIN)->mode == CAM_MODE_FIRST_PERSON) {
camMode = CAM_MODE_NORMAL;
} else {
camMode = CAM_MODE_FOLLOWBOOMERANG;
@@ -11507,7 +11507,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) {
} else {
camMode = CAM_MODE_FOLLOWBOOMERANG;
}
Camera_SetParam(Play_GetCamera(play, 0), 8, this->boomerangActor);
Camera_SetParam(Play_GetCamera(play, CAM_ID_MAIN), 8, this->boomerangActor);
} else if (this->stateFlags1 & (PLAYER_STATE1_HANGING_OFF_LEDGE | PLAYER_STATE1_CLIMBING_LEDGE)) {
if (Player_FriendlyLockOnOrParallel(this)) {
camMode = CAM_MODE_HANGZ;
@@ -11543,7 +11543,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) {
}
}
Camera_ChangeMode(Play_GetCamera(play, 0), camMode);
Camera_RequestMode(Play_GetCamera(play, CAM_ID_MAIN), camMode);
} else {
// First person mode
seqMode = SEQ_MODE_STILL;
@@ -14939,7 +14939,7 @@ s32 Player_UpdateNoclip(Player* this, PlayState* play) {
sNoclipEnabled ^= 1;
if (sNoclipEnabled) {
Camera_ChangeMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_Z_AIM);
Camera_RequestMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_Z_AIM);
}
}