mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-08-21 14:55:27 -04:00
Decomp, some camera names (#7043)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user