summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorengineer124 <47598039+engineer124@users.noreply.github.com>2022-12-04 23:02:24 -0500
committerGitHub <noreply@github.com>2022-12-04 23:02:24 -0500
commit8ff58118b35d9b3a294d74ad4f6c1bb302a2768c (patch)
tree7e99191f0230d1615d3b54e93b38ce038f93fb60 /src/code
parentda2e8a8f2c07b40a7bb4eaeeddaf7a6249933bbe (diff)
Camera Flags (#1225)
* Generic Camera Flags * New flag names * Add flags to functions * Finish flag docs * More docs * More cleanup * More clarity * Better shrinkwindow flag docs * Improve name * CAM_INTERFACE_FLAGS * Better approach to edge cases * Change ordering for consistency * Oops * Add masks to macro * PR/Discord discussions * cleanup comment * Oops * PR Suggestions * More PR Feedback * More PR Suggestions * PR Suggestions * More flag style change * Small cleanup * sync names with other PRs * more fixes * fix comments * update with hud visibility mode docs * missed one * fix comments * Roman PR Suggestions * interfaceField * small fix * letterbox cleanup * fix macro arg * fix func declaration
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_camera.c741
-rw-r--r--src/code/z_camera_data.inc.c587
-rw-r--r--src/code/z_demo.c2
-rw-r--r--src/code/z_kankyo.c3
-rw-r--r--src/code/z_onepointdemo.c4
-rw-r--r--src/code/z_play.c15
-rw-r--r--src/code/z_player_lib.c2
7 files changed, 802 insertions, 552 deletions
diff --git a/src/code/z_camera.c b/src/code/z_camera.c
index e61bac3be..37a08200d 100644
--- a/src/code/z_camera.c
+++ b/src/code/z_camera.c
@@ -757,45 +757,43 @@ s32 Camera_CopyPREGToModeValues(Camera* camera) {
return true;
}
-#define LETTERBOX_MASK (0xF000)
-#define LETTERBOX_SIZE_MASK (0x7000)
-#define LETTERBOX_INSTANT (0x8000)
-#define IFACE_ALPHA_MASK (0x0F00)
+void Camera_UpdateInterface(s16 interfaceField) {
+ s16 hudVisibilityMode;
-void Camera_UpdateInterface(s16 flags) {
- s16 interfaceAlpha;
-
- if ((flags & LETTERBOX_MASK) != LETTERBOX_MASK) {
- switch (flags & LETTERBOX_SIZE_MASK) {
- case 0x1000:
+ if ((interfaceField & CAM_LETTERBOX_MASK) != CAM_LETTERBOX_IGNORE) {
+ switch (interfaceField & CAM_LETTERBOX_SIZE_MASK) {
+ case CAM_LETTERBOX_SMALL:
sCameraLetterboxSize = 26;
break;
- case 0x2000:
+
+ case CAM_LETTERBOX_MEDIUM:
sCameraLetterboxSize = 27;
break;
- case 0x3000:
+
+ case CAM_LETTERBOX_LARGE:
sCameraLetterboxSize = 32;
break;
+
default:
sCameraLetterboxSize = 0;
break;
}
- if (flags & LETTERBOX_INSTANT) {
+ if (interfaceField & CAM_LETTERBOX_INSTANT) {
Letterbox_SetSize(sCameraLetterboxSize);
} else {
Letterbox_SetSizeTarget(sCameraLetterboxSize);
}
}
- if ((flags & IFACE_ALPHA_MASK) != IFACE_ALPHA_MASK) {
- interfaceAlpha = (flags & IFACE_ALPHA_MASK) >> 8;
- if (interfaceAlpha == 0) {
- interfaceAlpha = HUD_VISIBILITY_ALL;
+ if ((interfaceField & CAM_HUD_VISIBILITY_MASK) != CAM_HUD_VISIBILITY_IGNORE) {
+ hudVisibilityMode = (interfaceField & CAM_HUD_VISIBILITY_MASK) >> CAM_HUD_VISIBILITY_SHIFT;
+ if (hudVisibilityMode == (CAM_HUD_VISIBILITY_ALL >> CAM_HUD_VISIBILITY_SHIFT)) {
+ hudVisibilityMode = HUD_VISIBILITY_ALL;
}
- if (interfaceAlpha != sCameraInterfaceAlpha) {
- sCameraInterfaceAlpha = interfaceAlpha;
- Interface_ChangeHudVisibilityMode(sCameraInterfaceAlpha);
+ if (sCameraHudVisibilityMode != hudVisibilityMode) {
+ sCameraHudVisibilityMode = hudVisibilityMode;
+ Interface_ChangeHudVisibilityMode(sCameraHudVisibilityMode);
}
}
}
@@ -1469,14 +1467,14 @@ s32 Camera_Normal1(Camera* camera) {
roData->unk_14 = GET_NEXT_SCALED_RO_DATA(values);
roData->fovTarget = GET_NEXT_RO_DATA(values);
roData->atLERPScaleMax = GET_NEXT_SCALED_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
Camera_CopyPREGToModeValues(camera);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
OLib_Vec3fDiffToVecGeo(&atEyeGeo, at, eye);
OLib_Vec3fDiffToVecGeo(&atEyeNextGeo, at, eyeNext);
@@ -1560,7 +1558,7 @@ s32 Camera_Normal1(Camera* camera) {
camera->fovUpdateRate = Camera_LERPCeilF(CAM_DATA_SCALED(R_CAM_FOV_UPDATE_RATE), camera->yOffsetUpdateRate,
camera->speedRatio * 0.05f, rate);
- if (roData->interfaceFlags & 1) {
+ if (roData->interfaceField & NORMAL1_FLAG_0) {
t = Camera_GetPitchAdjFromFloorHeightDiffs(camera, atEyeGeo.yaw - 0x7FFF, false);
sp9C = ((1.0f / roData->unk_10) * 0.5f) * (1.0f - camera->speedRatio);
rwData->slopePitchAdj =
@@ -1576,12 +1574,12 @@ s32 Camera_Normal1(Camera* camera) {
? (sp9C = Math_SinS(rwData->swing.unk_14), ((-40.0f * sp9C) + (roData->yOffset * (1.0f - sp9C))))
: roData->yOffset;
- if (roData->interfaceFlags & 0x80) {
- func_800458D4(camera, &atEyeNextGeo, spA0, &rwData->yOffset, roData->interfaceFlags & 1);
- } else if (roData->interfaceFlags & 0x20) {
+ if (roData->interfaceField & NORMAL1_FLAG_7) {
+ func_800458D4(camera, &atEyeNextGeo, spA0, &rwData->yOffset, roData->interfaceField & NORMAL1_FLAG_0);
+ } else if (roData->interfaceField & NORMAL1_FLAG_5) {
func_80045B08(camera, &atEyeNextGeo, spA0, rwData->slopePitchAdj);
} else {
- Camera_CalcAtDefault(camera, &atEyeNextGeo, spA0, roData->interfaceFlags & 1);
+ Camera_CalcAtDefault(camera, &atEyeNextGeo, spA0, roData->interfaceField & NORMAL1_FLAG_0);
}
OLib_Vec3fDiffToVecGeo(&eyeAdjustment, at, eyeNext);
@@ -1615,7 +1613,7 @@ s32 Camera_Normal1(Camera* camera) {
}
Camera_AddVecGeoToVec3f(eyeNext, at, &eyeAdjustment);
- if ((camera->status == CAM_STAT_ACTIVE) && !(roData->interfaceFlags & 0x10)) {
+ if ((camera->status == CAM_STAT_ACTIVE) && !(roData->interfaceField & NORMAL1_FLAG_4)) {
rwData->swingYawTarget = camera->playerPosRot.rot.y - 0x7FFF;
if (rwData->startSwingTimer > 0) {
func_80046E20(camera, &eyeAdjustment, roData->distMin, roData->unk_0C, &sp98, &rwData->swing);
@@ -1637,7 +1635,7 @@ s32 Camera_Normal1(Camera* camera) {
camera->inputDir.y, 1.0f - (0.99f * sp98), 0xA);
}
- if (roData->interfaceFlags & 4) {
+ if (roData->interfaceField & NORMAL1_FLAG_2) {
camera->inputDir.x = -atEyeGeo.pitch;
camera->inputDir.y = atEyeGeo.yaw - 0x7FFF;
camera->inputDir.z = 0;
@@ -1708,14 +1706,14 @@ s32 Camera_Normal2(Camera* camera) {
roData->unk_10 = GET_NEXT_SCALED_RO_DATA(values);
roData->unk_14 = GET_NEXT_RO_DATA(values);
roData->unk_18 = GET_NEXT_SCALED_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
Camera_CopyPREGToModeValues(camera);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
switch (camera->animState) {
case 0:
@@ -1735,7 +1733,7 @@ s32 Camera_Normal2(Camera* camera) {
rwData->unk_18 = 0.0f;
- if (roData->interfaceFlags & 4) {
+ if (roData->interfaceField & NORMAL2_FLAG_2) {
sp88.pitch = rwData->unk_20;
sp88.yaw = rwData->unk_22 + 0x3FFF;
sp88.r = 100.0f;
@@ -1769,13 +1767,14 @@ s32 Camera_Normal2(Camera* camera) {
camera->fovUpdateRate = Camera_LERPCeilF(CAM_DATA_SCALED(R_CAM_FOV_UPDATE_RATE), camera->yOffsetUpdateRate,
camera->speedRatio * 0.05f, 0.1f);
- if (!(roData->interfaceFlags & 0x80)) {
- Camera_CalcAtDefault(camera, &atToEyeNextDir, roData->unk_00, roData->interfaceFlags & 1);
+ if (!(roData->interfaceField & NORMAL2_FLAG_7)) {
+ Camera_CalcAtDefault(camera, &atToEyeNextDir, roData->unk_00, roData->interfaceField & NORMAL2_FLAG_0);
} else {
- func_800458D4(camera, &atToEyeNextDir, roData->unk_00, &rwData->unk_24, roData->interfaceFlags & 1);
+ func_800458D4(camera, &atToEyeNextDir, roData->unk_00, &rwData->unk_24,
+ roData->interfaceField & NORMAL2_FLAG_0);
}
- if (roData->interfaceFlags & 4) {
+ if (roData->interfaceField & NORMAL2_FLAG_2) {
rwData->unk_00.x = playerPosRot->pos.x + rwData->unk_0C.x;
rwData->unk_00.z = playerPosRot->pos.z + rwData->unk_0C.z;
}
@@ -1818,7 +1817,7 @@ s32 Camera_Normal2(Camera* camera) {
if (camera->status == CAM_STAT_ACTIVE) {
bgChk.pos = *eyeNext;
- if (!camera->play->envCtx.skyboxDisabled || roData->interfaceFlags & 0x10) {
+ if (!camera->play->envCtx.skyboxDisabled || roData->interfaceField & NORMAL2_FLAG_4) {
Camera_BGCheckInfo(camera, at, &bgChk);
*eye = bgChk.pos;
} else {
@@ -1870,7 +1869,7 @@ s32 Camera_Normal3(Camera* camera) {
roData->unk_10 = GET_NEXT_RO_DATA(values);
roData->fovTarget = GET_NEXT_RO_DATA(values);
roData->maxAtLERPScale = GET_NEXT_SCALED_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -1881,7 +1880,7 @@ s32 Camera_Normal3(Camera* camera) {
OLib_Vec3fDiffToVecGeo(&sp74, at, eyeNext);
sUpdateCameraDirection = true;
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
switch (camera->animState) {
case 0:
case 10:
@@ -2029,7 +2028,7 @@ s32 Camera_Parallel1(Camera* camera) {
roData->unk_0C = GET_NEXT_RO_DATA(values);
roData->fovTarget = GET_NEXT_RO_DATA(values);
roData->unk_14 = GET_NEXT_SCALED_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
roData->unk_18 = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
roData->unk_1C = GET_NEXT_SCALED_RO_DATA(values);
}
@@ -2048,7 +2047,7 @@ s32 Camera_Parallel1(Camera* camera) {
case 25:
rwData->unk_16 = 0;
rwData->unk_10 = 0;
- if (roData->interfaceFlags & 4) {
+ if (roData->interfaceField & PARALLEL1_FLAG_2) {
rwData->animTimer = 20;
} else {
rwData->animTimer = R_CAM_DEFAULT_ANIM_TIME;
@@ -2060,10 +2059,10 @@ s32 Camera_Parallel1(Camera* camera) {
}
if (rwData->animTimer != 0) {
- if (roData->interfaceFlags & 2) {
+ if (roData->interfaceField & PARALLEL1_FLAG_1) {
// Rotate roData->yawTarget degrees from behind the player.
rwData->yawTarget = (s16)(playerPosRot->rot.y - 0x7FFF) + roData->yawTarget;
- } else if (roData->interfaceFlags & 4) {
+ } else if (roData->interfaceField & PARALLEL1_FLAG_2) {
// rotate to roData->yawTarget
rwData->yawTarget = roData->yawTarget;
} else {
@@ -2071,10 +2070,10 @@ s32 Camera_Parallel1(Camera* camera) {
rwData->yawTarget = atToEyeNextDir.yaw;
}
} else {
- if (roData->interfaceFlags & 0x20) {
+ if (roData->interfaceField & PARALLEL1_FLAG_5) {
rwData->yawTarget = (s16)(playerPosRot->rot.y - 0x7FFF) + roData->yawTarget;
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
}
rwData->pitchTarget = roData->pitchTarget;
@@ -2099,7 +2098,7 @@ s32 Camera_Parallel1(Camera* camera) {
camera->fovUpdateRate = Camera_LERPCeilF(CAM_DATA_SCALED(R_CAM_FOV_UPDATE_RATE), camera->fovUpdateRate,
camera->speedRatio * 0.05f, 0.1f);
- if (roData->interfaceFlags & 1) {
+ if (roData->interfaceField & PARALLEL1_FLAG_0) {
tangle = Camera_GetPitchAdjFromFloorHeightDiffs(camera, atToEyeDir.yaw - 0x7FFF, true);
spB8 = ((1.0f / roData->unk_0C) * 0.3f);
@@ -2117,15 +2116,16 @@ s32 Camera_Parallel1(Camera* camera) {
sp6A = 1;
}
- if (!(roData->interfaceFlags & 0x80) && !sp6A) {
+ if (!(roData->interfaceField & PARALLEL1_FLAG_7) && !sp6A) {
Camera_CalcAtForParallel(camera, &atToEyeNextDir, roData->yOffset, &rwData->yTarget,
- roData->interfaceFlags & 1);
+ roData->interfaceField & PARALLEL1_FLAG_0);
} else {
- func_800458D4(camera, &atToEyeNextDir, roData->unk_18, &rwData->yTarget, roData->interfaceFlags & 1);
+ func_800458D4(camera, &atToEyeNextDir, roData->unk_18, &rwData->yTarget,
+ roData->interfaceField & PARALLEL1_FLAG_0);
}
if (rwData->animTimer != 0) {
- camera->unk_14C |= 0x20;
+ camera->stateFlags |= CAM_STATE_5;
tangle = (((rwData->animTimer + 1) * rwData->animTimer) >> 1);
spA8.yaw = atToEyeDir.yaw + (((s16)(rwData->yawTarget - atToEyeDir.yaw) / tangle) * rwData->animTimer);
spA8.pitch = atToEyeDir.pitch;
@@ -2137,13 +2137,13 @@ s32 Camera_Parallel1(Camera* camera) {
OLib_Vec3fDiffToVecGeo(&spA8, at, eyeNext);
spA8.r = camera->dist;
- if (roData->interfaceFlags & 0x40) {
+ if (roData->interfaceField & PARALLEL1_FLAG_6) {
spA8.yaw = Camera_LERPCeilS(rwData->yawTarget, atToEyeNextDir.yaw, 0.6f, 0xA);
} else {
spA8.yaw = Camera_LERPCeilS(rwData->yawTarget, atToEyeNextDir.yaw, 0.8f, 0xA);
}
- if (roData->interfaceFlags & 1) {
+ if (roData->interfaceField & PARALLEL1_FLAG_0) {
phi_a0 = rwData->pitchTarget - rwData->unk_10;
} else {
phi_a0 = rwData->pitchTarget;
@@ -2162,7 +2162,7 @@ s32 Camera_Parallel1(Camera* camera) {
Camera_AddVecGeoToVec3f(eyeNext, at, &spA8);
if (camera->status == CAM_STAT_ACTIVE) {
sp6C.pos = *eyeNext;
- if (!camera->play->envCtx.skyboxDisabled || roData->interfaceFlags & 0x10) {
+ if (!camera->play->envCtx.skyboxDisabled || roData->interfaceField & PARALLEL1_FLAG_4) {
Camera_BGCheckInfo(camera, at, &sp6C);
*eye = sp6C.pos;
} else {
@@ -2186,15 +2186,15 @@ s32 Camera_Parallel2(Camera* camera) {
s32 Camera_Parallel3(Camera* camera) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
- s16 val = GET_NEXT_RO_DATA(values);
+ s16 interfaceField = GET_NEXT_RO_DATA(values);
- sCameraInterfaceFlags = val;
+ sCameraInterfaceField = interfaceField;
- if (val & 1) {
- camera->unk_14C |= 0x400;
+ if (interfaceField & PARALLEL3_FLAG_0) {
+ camera->stateFlags |= CAM_STATE_10;
}
- if (val & 2) {
- camera->unk_14C |= 0x10;
+ if (interfaceField & PARALLEL3_FLAG_1) {
+ camera->stateFlags |= CAM_STATE_4;
}
//! @bug doesn't return
}
@@ -2242,7 +2242,7 @@ s32 Camera_Jump1(Camera* camera) {
roData->maxYawUpdate = CAM_DATA_SCALED(GET_NEXT_RO_DATA(values));
roData->unk_14 = GET_NEXT_RO_DATA(values);
roData->atLERPScaleMax = CAM_DATA_SCALED(GET_NEXT_RO_DATA(values));
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -2255,7 +2255,7 @@ s32 Camera_Jump1(Camera* camera) {
OLib_Vec3fDiffToVecGeo(&eyeAtOffset, at, eye);
OLib_Vec3fDiffToVecGeo(&eyeNextAtOffset, at, eyeNext);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (RELOAD_PARAMS(camera)) {
rwData->swing.unk_16 = rwData->swing.unk_18 = 0;
@@ -2331,9 +2331,9 @@ s32 Camera_Jump1(Camera* camera) {
eyeNext->x = newEye.x;
eyeNext->z = newEye.z;
eyeNext->y += (newEye.y - eyeNext->y) * CAM_DATA_SCALED(R_CAM_JUMP1_EYE_Y_STEP_SCALE);
- if ((camera->status == CAM_STAT_ACTIVE) && !(roData->interfaceFlags & 0x10)) {
+ if ((camera->status == CAM_STAT_ACTIVE) && !(roData->interfaceField & JUMP1_FLAG_4)) {
func_80046E20(camera, &eyeDiffGeo, roData->distMin, roData->yawUpateRateTarget, &spA4, &rwData->swing);
- if (roData->interfaceFlags & 4) {
+ if (roData->interfaceField & JUMP1_FLAG_2) {
camera->inputDir.x = -eyeAtOffset.pitch;
camera->inputDir.y = eyeAtOffset.yaw - 0x7FFF;
camera->inputDir.z = 0;
@@ -2403,7 +2403,7 @@ s32 Camera_Jump2(Camera* camera) {
roData->xzUpdRateTarget = GET_NEXT_SCALED_RO_DATA(values);
roData->fovTarget = GET_NEXT_RO_DATA(values);
roData->atLERPStepScale = GET_NEXT_SCALED_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -2413,7 +2413,7 @@ s32 Camera_Jump2(Camera* camera) {
OLib_Vec3fDiffToVecGeo(&atToEyeDir, at, eye);
OLib_Vec3fDiffToVecGeo(&atToEyeNextDir, at, eyeNext);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (RELOAD_PARAMS(camera)) {
bgChkPos = playerPosRot->pos;
@@ -2433,7 +2433,7 @@ s32 Camera_Jump2(Camera* camera) {
yawDiff = (s16)(playerPosRot->rot.y - 0x7FFF) - atToEyeNextDir.yaw;
rwData->initYawDiff = ((yawDiff / R_CAM_DEFAULT_ANIM_TIME) / 4) * 3;
- if (roData->interfaceFlags & 2) {
+ if (roData->interfaceField & JUMP2_FLAG_1) {
rwData->yawAdj = 0xA;
} else {
rwData->yawAdj = 0x2710;
@@ -2611,7 +2611,7 @@ s32 Camera_Jump3(Camera* camera) {
roData->unk_14 = GET_NEXT_SCALED_RO_DATA(values);
roData->fovTarget = GET_NEXT_RO_DATA(values);
roData->unk_1C = GET_NEXT_SCALED_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -2621,7 +2621,7 @@ s32 Camera_Jump3(Camera* camera) {
camera->mode = prevMode;
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
switch (camera->animState) {
case 0:
@@ -2669,7 +2669,7 @@ s32 Camera_Jump3(Camera* camera) {
camera->fovUpdateRate = Camera_LERPCeilF(CAM_DATA_SCALED(R_CAM_FOV_UPDATE_RATE), camera->yOffsetUpdateRate,
camera->speedRatio * 0.05f, 0.1f);
- Camera_CalcAtDefault(camera, &eyeNextAtOffset, roData->yOffset, roData->interfaceFlags);
+ Camera_CalcAtDefault(camera, &eyeNextAtOffset, roData->yOffset, roData->interfaceField);
OLib_Vec3fDiffToVecGeo(&eyeDiffGeo, at, eyeNext);
camera->dist = eyeDiffGeo.r =
@@ -2710,9 +2710,9 @@ s32 Camera_Jump3(Camera* camera) {
}
Camera_AddVecGeoToVec3f(eyeNext, at, &eyeDiffGeo);
- if ((camera->status == CAM_STAT_ACTIVE) && !(roData->interfaceFlags & 0x10)) {
+ if ((camera->status == CAM_STAT_ACTIVE) && !(roData->interfaceField & JUMP3_FLAG_4)) {
func_80046E20(camera, &eyeDiffGeo, roData->distMin, roData->swingUpdateRate, &spBC, &rwData->swing);
- if (roData->interfaceFlags & 4) {
+ if (roData->interfaceField & JUMP3_FLAG_2) {
camera->inputDir.x = -eyeAtOffset.pitch;
camera->inputDir.y = eyeAtOffset.yaw - 0x7FFF;
camera->inputDir.z = 0;
@@ -2804,7 +2804,7 @@ s32 Camera_Battle1(Camera* camera) {
roData->swingPitchAdj = GET_NEXT_SCALED_RO_DATA(values);
roData->fov = GET_NEXT_RO_DATA(values);
roData->atLERPScaleOnGround = GET_NEXT_SCALED_RO_DATA(values);
- roData->flags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
roData->yOffsetOffGround = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
roData->atLERPScaleOffGround = GET_NEXT_SCALED_RO_DATA(values);
rwData->chargeTimer = 40;
@@ -2868,7 +2868,7 @@ s32 Camera_Battle1(Camera* camera) {
return true;
}
- sCameraInterfaceFlags = roData->flags;
+ sCameraInterfaceField = roData->interfaceField;
if (RELOAD_PARAMS(camera)) {
rwData->unk_14 = 0;
@@ -2919,7 +2919,7 @@ s32 Camera_Battle1(Camera* camera) {
Camera_CalcAtForLockOn(camera, &atToEyeNextDir, &camera->targetPosRot.pos,
isOffGround ? roData->yOffsetOffGround : roData->yOffset, distance, &rwData->yPosOffset,
- &playerToTargetDir, (isOffGround ? 0x81 : 1) | roData->flags);
+ &playerToTargetDir, (isOffGround ? 0x81 : 1) | roData->interfaceField);
tmpAng2 = playerToTargetDir.yaw;
playerHead = playerPosRot->pos;
playerHead.y += playerHeight;
@@ -2986,9 +2986,9 @@ s32 Camera_Battle1(Camera* camera) {
Camera_AddVecGeoToVec3f(eyeNext, at, &spB4);
spBC.pos = *eyeNext;
if (camera->status == CAM_STAT_ACTIVE) {
- if (!camera->play->envCtx.skyboxDisabled || roData->flags & 1) {
+ if (!camera->play->envCtx.skyboxDisabled || roData->interfaceField & BATTLE1_FLAG_0) {
Camera_BGCheckInfo(camera, at, &spBC);
- } else if (roData->flags & 2) {
+ } else if (roData->interfaceField & BATTLE1_FLAG_1) {
func_80043F94(camera, at, &spBC);
} else {
OLib_Vec3fDistNormalize(&sp128, at, &spBC.pos);
@@ -3048,7 +3048,7 @@ s32 Camera_Battle4(Camera* camera) {
roData->lerpUpdateRate = GET_NEXT_SCALED_RO_DATA(values);
roData->fovTarget = GET_NEXT_RO_DATA(values);
roData->atLERPTarget = GET_NEXT_SCALED_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -3058,7 +3058,7 @@ s32 Camera_Battle4(Camera* camera) {
OLib_Vec3fDiffToVecGeo(&eyeAtOffset, at, eye);
OLib_Vec3fDiffToVecGeo(&eyeNextAtOffset, at, eyeNext);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
switch (camera->animState) {
case 0:
@@ -3166,7 +3166,7 @@ s32 Camera_KeepOn1(Camera* camera) {
roData->unk_1C = GET_NEXT_SCALED_RO_DATA(values);
roData->unk_20 = GET_NEXT_RO_DATA(values);
roData->unk_24 = GET_NEXT_SCALED_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
roData->unk_28 = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
roData->unk_2C = GET_NEXT_SCALED_RO_DATA(values);
}
@@ -3177,7 +3177,7 @@ s32 Camera_KeepOn1(Camera* camera) {
playerHeight += roData->unk_00;
OLib_Vec3fDiffToVecGeo(&spC0, at, eye);
OLib_Vec3fDiffToVecGeo(&spB8, at, eyeNext);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (RELOAD_PARAMS(camera)) {
camera->animState++;
rwData->unk_10 = 0;
@@ -3199,10 +3199,11 @@ s32 Camera_KeepOn1(Camera* camera) {
sp104 = roData->unk_04;
sp84 = 1;
- switch (camera->paramFlags & 0x18) {
- case 8:
+ switch (camera->viewFlags & (CAM_VIEW_TARGET | CAM_VIEW_TARGET_POS)) {
+ case CAM_VIEW_TARGET:
if ((camera->player->actor.category == 2) && (camera->player->interactRangeActor == camera->target)) {
PosRot sp54;
+
Actor_GetFocus(&sp54, &camera->player->actor);
spC8.r = 60.0f;
spC8.yaw = camera->playerPosRot.rot.y;
@@ -3225,7 +3226,7 @@ s32 Camera_KeepOn1(Camera* camera) {
camera->fovUpdateRate = Camera_LERPCeilF(CAM_DATA_SCALED(R_CAM_FOV_UPDATE_RATE), camera->fovUpdateRate,
camera->speedRatio * 0.05f, 0.1f);
goto cont;
- case 0x10:
+ case CAM_VIEW_TARGET_POS:
rwData->unk_0C = NULL;
cont:
if (camera->playerGroundY == camera->playerPosRot.pos.y || camera->player->actor.gravity > -0.1f ||
@@ -3237,7 +3238,7 @@ s32 Camera_KeepOn1(Camera* camera) {
}
Camera_CalcAtForLockOn(camera, &spB8, &camera->targetPosRot.pos, sp80 ? roData->unk_28 : roData->unk_00,
- sp104, &rwData->unk_08, &spC8, (sp80 ? 0x80 : 0) | roData->interfaceFlags);
+ sp104, &rwData->unk_08, &spC8, (sp80 ? 0x80 : 0) | roData->interfaceField);
sp114 = playerPosRot->pos;
sp114.y += playerHeight;
OLib_Vec3fDiffToVecGeo(&spC8, &sp114, &camera->targetPosRot.pos);
@@ -3322,9 +3323,9 @@ s32 Camera_KeepOn1(Camera* camera) {
Camera_AddVecGeoToVec3f(eyeNext, at, &spD8);
sp8C.pos = *eyeNext;
if (camera->status == CAM_STAT_ACTIVE) {
- if (!camera->play->envCtx.skyboxDisabled || roData->interfaceFlags & 1) {
+ if (!camera->play->envCtx.skyboxDisabled || roData->interfaceField & KEEPON1_FLAG_0) {
Camera_BGCheckInfo(camera, at, &sp8C);
- } else if (roData->interfaceFlags & 2) {
+ } else if (roData->interfaceField & KEEPON1_FLAG_1) {
func_80043F94(camera, at, &sp8C);
} else {
OLib_Vec3fDistNormalize(&sp120, at, &sp8C.pos);
@@ -3389,13 +3390,13 @@ s32 Camera_KeepOn3(Camera* camera) {
}
if (RELOAD_PARAMS(camera)) {
if (camera->play->view.unk_124 == 0) {
- camera->unk_14C |= 0x20;
+ camera->stateFlags |= CAM_STATE_5;
camera->play->view.unk_124 = camera->camId | 0x50;
return 1;
}
- camera->unk_14C &= ~0x20;
+ camera->stateFlags &= ~CAM_STATE_5;
}
- camera->unk_14C &= ~0x10;
+ camera->stateFlags &= ~CAM_STATE_4;
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
f32 yNormal =
@@ -3412,7 +3413,7 @@ s32 Camera_KeepOn3(Camera* camera) {
roData->fovTarget = GET_NEXT_RO_DATA(values);
roData->atLERPScaleMax = GET_NEXT_SCALED_RO_DATA(values);
roData->initTimer = GET_NEXT_RO_DATA(values);
- roData->flags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -3427,7 +3428,7 @@ s32 Camera_KeepOn3(Camera* camera) {
playerHeadPos = camPlayerPosRot->pos;
playerHeadPos.y += playerHeight;
OLib_Vec3fDiffToVecGeo(&targetToPlayerDir, &playerHeadPos, &camera->targetPosRot.pos);
- sCameraInterfaceFlags = roData->flags;
+ sCameraInterfaceField = roData->interfaceField;
if (RELOAD_PARAMS(camera)) {
colChkActors[0] = camera->target;
colChkActors[1] = &camera->player->actor;
@@ -3439,13 +3440,13 @@ s32 Camera_KeepOn3(Camera* camera) {
swingAngle = F32_LERPIMP(roData->swingPitchInitial, roData->swingPitchFinal, temp_f0);
atToEyeAdj.pitch = CAM_DEG_TO_BINANG(swingAngle) + ((s16)(-(targetToPlayerDir.pitch * roData->swingPitchAdj)));
swingAngle = F32_LERPIMP(roData->swingYawInital, roData->swingYawFinal, temp_f0);
- if (roData->flags & 0x10) {
+ if (roData->interfaceField & KEEPON3_FLAG_4) {
if ((s16)(targetToPlayerDir.yaw - atToEyeNextDir.yaw) < 0) {
atToEyeAdj.yaw = targetToPlayerDir.yaw + CAM_DEG_TO_BINANG(swingAngle);
} else {
atToEyeAdj.yaw = targetToPlayerDir.yaw - CAM_DEG_TO_BINANG(swingAngle);
}
- } else if (roData->flags & 0x20) {
+ } else if (roData->interfaceField & KEEPON3_FLAG_5) {
if ((s16)(targetToPlayerDir.yaw - atToEyeNextDir.yaw) < 0) {
atToEyeAdj.yaw = (s16)(targetToPlayerDir.yaw - 0x7FFF) - CAM_DEG_TO_BINANG(swingAngle);
} else {
@@ -3477,7 +3478,7 @@ s32 Camera_KeepOn3(Camera* camera) {
targetToPlayerDir.r = prevTargetPlayerDist;
atToEyeAdj.r = roData->minDist + (targetToPlayerDir.r * (1 - 0.5f)) - atToEyeNextDir.r + atToEyeNextDir.r;
Camera_AddVecGeoToVec3f(&lineChkPointB, &rwData->atTarget, &atToEyeAdj);
- if (!(roData->flags & 0x80)) {
+ if (!(roData->interfaceField & KEEPON3_FLAG_7)) {
while (i < angleCnt) {
if (!CollisionCheck_LineOCCheck(camera->play, &camera->play->colChkCtx, &rwData->atTarget,
&lineChkPointB, colChkActors, 2) &&
@@ -3491,7 +3492,7 @@ s32 Camera_KeepOn3(Camera* camera) {
}
}
osSyncPrintf("camera: talk: BG&collision check %d time(s)\n", i);
- camera->unk_14C &= ~0xC;
+ camera->stateFlags &= ~(CAM_STATE_2 | CAM_STATE_3);
pad = ((rwData->animTimer + 1) * rwData->animTimer) >> 1;
rwData->eyeToAtTargetYaw = (f32)(s16)(atToEyeAdj.yaw - atToEyeNextDir.yaw) / pad;
rwData->eyeToAtTargetPitch = (f32)(s16)(atToEyeAdj.pitch - atToEyeNextDir.pitch) / pad;
@@ -3516,11 +3517,11 @@ s32 Camera_KeepOn3(Camera* camera) {
Camera_BGCheck(camera, at, eye);
rwData->animTimer--;
} else {
- camera->unk_14C |= 0x410;
+ camera->stateFlags |= (CAM_STATE_4 | CAM_STATE_10);
}
- if (camera->unk_14C & 8) {
- sCameraInterfaceFlags = 0;
+ if (camera->stateFlags & CAM_STATE_3) {
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0);
func_80043B60(camera);
camera->atLERPStepScale = 0.0f;
@@ -3532,8 +3533,8 @@ s32 Camera_KeepOn3(Camera* camera) {
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CRIGHT) ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_R) ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_Z)) {
- camera->unk_14C |= 4;
- camera->unk_14C &= ~8;
+ camera->stateFlags |= CAM_STATE_2;
+ camera->stateFlags &= ~CAM_STATE_3;
}
}
return 1;
@@ -3569,27 +3570,27 @@ s32 Camera_KeepOn4(Camera* camera) {
if (RELOAD_PARAMS(camera)) {
if (camera->play->view.unk_124 == 0) {
- camera->unk_14C |= 0x20;
- camera->unk_14C &= ~(0x4 | 0x2);
+ camera->stateFlags |= CAM_STATE_5;
+ camera->stateFlags &= ~(CAM_STATE_1 | CAM_STATE_2);
camera->play->view.unk_124 = camera->camId | 0x50;
return 1;
}
rwData->unk_14 = *temp_s0;
- camera->unk_14C &= ~0x20;
+ camera->stateFlags &= ~CAM_STATE_5;
}
if (rwData->unk_14 != *temp_s0) {
osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: item: item type changed %d -> %d\n" VT_RST, rwData->unk_14,
*temp_s0);
camera->animState = 20;
- camera->unk_14C |= 0x20;
- camera->unk_14C &= ~(0x4 | 0x2);
+ camera->stateFlags |= CAM_STATE_5;
+ camera->stateFlags &= ~(CAM_STATE_1 | CAM_STATE_2);
camera->play->view.unk_124 = camera->camId | 0x50;
return 1;
}
playerHeight = Player_GetHeight(camera->player);
- camera->unk_14C &= ~0x10;
+ camera->stateFlags &= ~CAM_STATE_4;
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
f32 yNormal = 1.0f + t - (68.0f / playerHeight * t);
@@ -3600,7 +3601,7 @@ s32 Camera_KeepOn4(Camera* camera) {
roData->unk_0C = GET_NEXT_RO_DATA(values);
roData->unk_10 = GET_NEXT_RO_DATA(values);
roData->unk_18 = GET_NEXT_RO_DATA(values);
- roData->unk_1C = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
roData->unk_14 = GET_NEXT_SCALED_RO_DATA(values);
roData->unk_1E = GET_NEXT_RO_DATA(values);
osSyncPrintf("camera: item: type %d\n", *temp_s0);
@@ -3610,83 +3611,103 @@ s32 Camera_KeepOn4(Camera* camera) {
roData->unk_04 = playerHeight * 2.0f * yNormal;
roData->unk_08 = 10.0f;
break;
+
case 2:
case 3:
roData->unk_08 = -20.0f;
roData->unk_18 = 80.0f;
break;
+
case 4:
roData->unk_00 = playerHeight * -0.2f * yNormal;
roData->unk_08 = 25.0f;
break;
+
case 8:
roData->unk_00 = playerHeight * -0.2f * yNormal;
roData->unk_04 = playerHeight * 0.8f * yNormal;
roData->unk_08 = 50.0f;
roData->unk_18 = 70.0f;
break;
+
case 9:
roData->unk_00 = playerHeight * 0.1f * yNormal;
roData->unk_04 = playerHeight * 0.5f * yNormal;
roData->unk_08 = -20.0f;
roData->unk_0C = 0.0f;
- roData->unk_1C = 0x2540;
+ roData->interfaceField =
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_6);
break;
+
case 5:
roData->unk_00 = playerHeight * -0.4f * yNormal;
roData->unk_08 = -10.0f;
roData->unk_0C = 45.0f;
- roData->unk_1C = 0x2002;
+ roData->interfaceField =
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON4_FLAG_1);
break;
+
case 10:
roData->unk_00 = playerHeight * -0.5f * yNormal;
roData->unk_04 = playerHeight * 1.5f * yNormal;
roData->unk_08 = -15.0f;
roData->unk_0C = 175.0f;
roData->unk_18 = 70.0f;
- roData->unk_1C = 0x2202;
+ roData->interfaceField =
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_NOTHING_ALT, KEEPON4_FLAG_1);
roData->unk_1E = 0x3C;
break;
+
case 12:
roData->unk_00 = playerHeight * -0.6f * yNormal;
roData->unk_04 = playerHeight * 1.6f * yNormal;
roData->unk_08 = -2.0f;
roData->unk_0C = 120.0f;
roData->unk_10 = player->stateFlags1 & PLAYER_STATE1_27 ? 0.0f : 20.0f;
- roData->unk_1C = 0x3212;
+ roData->interfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT,
+ KEEPON4_FLAG_4 | KEEPON4_FLAG_1);
roData->unk_1E = 0x1E;
roData->unk_18 = 50.0f;
break;
+
case 0x5A:
roData->unk_00 = playerHeight * -0.3f * yNormal;
roData->unk_18 = 45.0f;
- roData->unk_1C = 0x2F02;
+ roData->interfaceField =
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1);
break;
+
case 0x5B:
roData->unk_00 = playerHeight * -0.1f * yNormal;
roData->unk_04 = playerHeight * 1.5f * yNormal;
roData->unk_08 = -3.0f;
roData->unk_0C = 10.0f;
roData->unk_18 = 55.0f;
- roData->unk_1C = 0x2F08;
+ roData->interfaceField =
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3);
break;
+
case 0x51:
roData->unk_00 = playerHeight * -0.3f * yNormal;
roData->unk_04 = playerHeight * 1.5f * yNormal;
roData->unk_08 = 2.0f;
roData->unk_0C = 20.0f;
roData->unk_10 = 20.0f;
- roData->unk_1C = 0x2280;
+ roData->interfaceField =
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_NOTHING_ALT, KEEPON4_FLAG_7);
roData->unk_1E = 0x1E;
roData->unk_18 = 45.0f;
break;
+
case 11:
roData->unk_00 = playerHeight * -0.19f * yNormal;
roData->unk_04 = playerHeight * 0.7f * yNormal;
roData->unk_0C = 130.0f;
roData->unk_10 = 10.0f;
- roData->unk_1C = 0x2522;
+ roData->interfaceField = CAM_INTERFACE_FIELD(
+ CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_5 | KEEPON4_FLAG_1);
break;
+
default:
break;
}
@@ -3697,7 +3718,7 @@ s32 Camera_KeepOn4(Camera* camera) {
}
sUpdateCameraDirection = 1;
- sCameraInterfaceFlags = roData->unk_1C;
+ sCameraInterfaceField = roData->interfaceField;
OLib_Vec3fDiffToVecGeo(&spB0, at, eye);
OLib_Vec3fDiffToVecGeo(&spA8, at, eyeNext);
D_8015BD50 = playerPosRot->pos;
@@ -3716,18 +3737,18 @@ s32 Camera_KeepOn4(Camera* camera) {
spCC[sp9C] = &camera->player->actor;
sp9C++;
func_80043ABC(camera);
- camera->unk_14C &= ~(0x4 | 0x2);
+ camera->stateFlags &= ~(CAM_STATE_1 | CAM_STATE_2);
rwData->unk_10 = roData->unk_1E;
rwData->unk_08 = playerPosRot->pos.y - camera->playerPosDelta.y;
- if (roData->unk_1C & 2) {
+ if (roData->interfaceField & KEEPON4_FLAG_1) {
spA2 = CAM_DEG_TO_BINANG(roData->unk_08);
spA0 = (s16)((s16)(playerPosRot->rot.y - 0x7FFF) - spA8.yaw) > 0
? (s16)(playerPosRot->rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->unk_0C)
: (s16)(playerPosRot->rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->unk_0C);
- } else if (roData->unk_1C & 4) {
+ } else if (roData->interfaceField & KEEPON4_FLAG_2) {
spA2 = CAM_DEG_TO_BINANG(roData->unk_08);
spA0 = CAM_DEG_TO_BINANG(roData->unk_0C);
- } else if ((roData->unk_1C & 8) && camera->target != NULL) {
+ } else if ((roData->interfaceField & KEEPON4_FLAG_3) && camera->target != NULL) {
PosRot sp60;
Actor_GetWorldPosShapeRot(&sp60, camera->target);
@@ -3737,7 +3758,7 @@ s32 Camera_KeepOn4(Camera* camera) {
: (s16)(sp60.rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->unk_0C);
spCC[1] = camera->target;
sp9C++;
- } else if ((roData->unk_1C & 0x80) && camera->target != NULL) {
+ } else if ((roData->interfaceField & KEEPON4_FLAG_7) && camera->target != NULL) {
PosRot sp4C;
Actor_GetWorld(&sp4C, camera->target);
@@ -3747,7 +3768,7 @@ s32 Camera_KeepOn4(Camera* camera) {
: sp9E - CAM_DEG_TO_BINANG(roData->unk_0C);
spCC[1] = camera->target;
sp9C++;
- } else if (roData->unk_1C & 0x40) {
+ } else if (roData->interfaceField & KEEPON4_FLAG_6) {
spA2 = CAM_DEG_TO_BINANG(roData->unk_08);
spA0 = spA8.yaw;
} else {
@@ -3759,7 +3780,7 @@ s32 Camera_KeepOn4(Camera* camera) {
spB8.yaw = spA0;
spB8.r = roData->unk_04;
Camera_AddVecGeoToVec3f(&D_8015BD70, &D_8015BD50, &spB8);
- if (!(roData->unk_1C & 1)) {
+ if (!(roData->interfaceField & KEEPON4_FLAG_0)) {
angleCnt = ARRAY_COUNT(D_8011D3B0);
for (i = 0; i < angleCnt; i++) {
if (!CollisionCheck_LineOCCheck(camera->play, &camera->play->colChkCtx, &D_8015BD50, &D_8015BD70,
@@ -3799,23 +3820,23 @@ s32 Camera_KeepOn4(Camera* camera) {
camera->dist = Camera_LERPCeilF(roData->unk_04, camera->dist, 0.25f, 2.0f);
spB8.r = camera->dist;
if (rwData->unk_10 != 0) {
- camera->unk_14C |= 0x20;
+ camera->stateFlags |= CAM_STATE_5;
rwData->unk_0C += (s16)rwData->unk_00;
rwData->unk_0E += (s16)rwData->unk_04;
rwData->unk_10--;
- } else if (roData->unk_1C & 0x10) {
- camera->unk_14C |= (0x400 | 0x10);
- camera->unk_14C |= (0x4 | 0x2);
- camera->unk_14C &= ~8;
+ } else if (roData->interfaceField & KEEPON4_FLAG_4) {
+ camera->stateFlags |= (CAM_STATE_4 | CAM_STATE_10);
+ camera->stateFlags |= (CAM_STATE_1 | CAM_STATE_2);
+ camera->stateFlags &= ~CAM_STATE_3;
if (camera->timer > 0) {
camera->timer--;
}
} else {
- camera->unk_14C |= (0x400 | 0x10);
- if (camera->unk_14C & 8 || roData->unk_1C & 0x80) {
- sCameraInterfaceFlags = 0;
- camera->unk_14C |= (0x4 | 0x2);
- camera->unk_14C &= ~8;
+ camera->stateFlags |= (CAM_STATE_4 | CAM_STATE_10);
+ if ((camera->stateFlags & CAM_STATE_3) || (roData->interfaceField & KEEPON4_FLAG_7)) {
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0);
+ camera->stateFlags |= (CAM_STATE_1 | CAM_STATE_2);
+ camera->stateFlags &= ~CAM_STATE_3;
if (camera->prevBgCamIndex < 0) {
Camera_ChangeSettingFlags(camera, camera->prevSetting, 2);
} else {
@@ -3849,14 +3870,15 @@ s32 Camera_KeepOn0(Camera* camera) {
UNUSED Vec3s bgCamRot;
s16 fov;
- camera->unk_14C &= ~0x10;
+ camera->stateFlags &= ~CAM_STATE_4;
+
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
roData->fovScale = GET_NEXT_SCALED_RO_DATA(values);
roData->yawScale = GET_NEXT_SCALED_RO_DATA(values);
roData->timerInit = GET_NEXT_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -3889,7 +3911,7 @@ s32 Camera_KeepOn0(Camera* camera) {
OLib_Vec3fDiffToVecGeo(&eyeAtOffset, eye, at);
OLib_Vec3fDiffToVecGeo(&eyeTargetPosOffset, eye, &camera->targetPosRot.pos);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (camera->animState == 0) {
camera->animState++;
@@ -3905,7 +3927,7 @@ s32 Camera_KeepOn0(Camera* camera) {
Camera_AddVecGeoToVec3f(at, eye, &eyeAtOffset);
rwData->animTimer--;
} else {
- camera->unk_14C |= (0x400 | 0x10);
+ camera->stateFlags |= (CAM_STATE_4 | CAM_STATE_10);
}
camera->fov = Camera_LERPCeilF(rwData->fovTarget, camera->fov, 0.5f, 10.0f);
return true;
@@ -3937,7 +3959,7 @@ s32 Camera_Fixed1(Camera* camera) {
roData->unk_00 = GET_NEXT_SCALED_RO_DATA(values) * playerHeight;
roData->lerpStep = GET_NEXT_SCALED_RO_DATA(values);
roData->fov = GET_NEXT_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -3949,7 +3971,7 @@ s32 Camera_Fixed1(Camera* camera) {
rwData->fov *= 100;
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (camera->animState == 0) {
camera->animState++;
@@ -4009,7 +4031,7 @@ s32 Camera_Fixed2(Camera* camera) {
roData->eyeStepScale = GET_NEXT_SCALED_RO_DATA(values);
roData->posStepScale = GET_NEXT_SCALED_RO_DATA(values);
roData->fov = GET_NEXT_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
rwData->fov = roData->fov * 100.0f;
bgCamFuncData = (BgCamFuncData*)Camera_GetBgCamFuncData(camera);
@@ -4030,7 +4052,7 @@ s32 Camera_Fixed2(Camera* camera) {
Camera_CopyPREGToModeValues(camera);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
posOffsetTarget.x = 0.0f;
posOffsetTarget.y = roData->yOffset + playerHeight;
@@ -4043,7 +4065,7 @@ s32 Camera_Fixed2(Camera* camera) {
if (camera->animState == 0) {
camera->animState++;
func_80043B60(camera);
- if (!(roData->interfaceFlags & 1)) {
+ if (!(roData->interfaceField & FIXED2_FLAG_0)) {
*eye = *eyeNext = rwData->eye;
camera->at = atTarget;
}
@@ -4085,7 +4107,7 @@ s32 Camera_Fixed3(Camera* camera) {
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
Camera_Vec3sToVec3f(eyeNext, &bgCamFuncData->pos);
*eye = *eyeNext;
rwData->rot = bgCamFuncData->rot;
@@ -4127,7 +4149,7 @@ s32 Camera_Fixed3(Camera* camera) {
atGeo.pitch = -rwData->rot.x;
Camera_AddVecGeoToVec3f(at, eye, &atGeo);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
rwData->fov = R_CAM_DATA(CAM_DATA_FOV);
camera->roll = 0;
camera->fov = rwData->fov * 0.01f;
@@ -4166,7 +4188,7 @@ s32 Camera_Fixed4(Camera* camera) {
roData->speedToEyePos = GET_NEXT_SCALED_RO_DATA(values);
roData->followSpeed = GET_NEXT_SCALED_RO_DATA(values);
roData->fov = GET_NEXT_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
bgCamFuncData = (BgCamFuncData*)Camera_GetBgCamFuncData(camera);
if (bgCamFuncData != NULL) {
@@ -4178,10 +4200,10 @@ s32 Camera_Fixed4(Camera* camera) {
if (R_RELOAD_CAM_PARAMS) {
Camera_CopyPREGToModeValues(camera);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (camera->animState == 0) {
camera->animState++;
- if (!(roData->interfaceFlags & 4)) {
+ if (!(roData->interfaceField & FIXED4_FLAG_2)) {
func_80043B60(camera);
}
rwData->followSpeed = roData->followSpeed;
@@ -4271,7 +4293,7 @@ s32 Camera_Subj3(Camera* camera) {
roData->atOffset.y = GET_NEXT_RO_DATA(values) * 0.1f;
roData->atOffset.z = GET_NEXT_RO_DATA(values) * 0.1f;
roData->fovTarget = GET_NEXT_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
sp84.r = roData->eyeNextDist;
sp84.yaw = sp60.rot.y - 0x7FFF;
sp84.pitch = sp60.rot.x;
@@ -4281,7 +4303,7 @@ s32 Camera_Subj3(Camera* camera) {
Camera_AddVecGeoToVec3f(&sp8C, &sp98, &sp84);
OLib_Vec3fDiffToVecGeo(&sp7C, at, eye);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (RELOAD_PARAMS(camera)) {
rwData->r = sp7C.r;
rwData->yaw = sp7C.yaw;
@@ -4394,7 +4416,7 @@ s32 Camera_Subj4(Camera* camera) {
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -4410,7 +4432,7 @@ s32 Camera_Subj4(Camera* camera) {
Actor_GetWorldPosShapeRot(&playerPosRot, &camera->player->actor);
OLib_Vec3fDiffToVecGeo(&atEyeOffset, at, eye);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
// Crawlspace setup (runs for only 1 frame)
if (camera->animState == 0) {
@@ -4571,7 +4593,7 @@ s32 Camera_Data4(Camera* camera) {
1.0f + CAM_DATA_SCALED(R_CAM_YOFFSET_NORM) - (CAM_DATA_SCALED(R_CAM_YOFFSET_NORM) * (68.0f / playerHeight));
roData->yOffset = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
roData->fov = GET_NEXT_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
bgCamFuncData = (BgCamFuncData*)Camera_GetBgCamFuncData(camera);
Camera_Vec3sToVec3f(&rwData->eyePosRot.pos, &bgCamFuncData->pos);
@@ -4590,7 +4612,7 @@ s32 Camera_Data4(Camera* camera) {
Camera_CopyPREGToModeValues(camera);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (camera->animState == 0) {
camera->animState++;
@@ -4652,7 +4674,7 @@ s32 Camera_Unique1(Camera* camera) {
roData->pitchTarget = CAM_DEG_TO_BINANG(GET_NEXT_RO_DATA(values));
roData->fovTarget = GET_NEXT_RO_DATA(values);
roData->atLERPScaleMax = GET_NEXT_SCALED_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS != 0) {
@@ -4664,7 +4686,7 @@ s32 Camera_Unique1(Camera* camera) {
OLib_Vec3fDiffToVecGeo(&eyeAtOffset, at, eye);
OLib_Vec3fDiffToVecGeo(&eyeNextAtOffset, at, eyeNext);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (camera->animState == 0) {
camera->posOffset.y = camera->posOffset.y - camera->playerPosDelta.y;
@@ -4747,41 +4769,41 @@ s32 Camera_Unique2(Camera* camera) {
roData->yOffset = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
roData->distTarget = GET_NEXT_RO_DATA(values);
roData->fovTarget = GET_NEXT_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
Camera_CopyPREGToModeValues(camera);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
- if ((camera->animState == 0) || (rwData->unk_04 != roData->interfaceFlags)) {
- rwData->unk_04 = roData->interfaceFlags;
+ if ((camera->animState == 0) || (rwData->unk_04 != roData->interfaceField)) {
+ rwData->unk_04 = roData->interfaceField;
}
if (camera->animState == 0) {
camera->animState = 1;
func_80043B60(camera);
rwData->unk_00 = 200.0f;
- if (roData->interfaceFlags & 0x10) {
- camera->unk_14C &= ~4;
+ if (roData->interfaceField & UNIQUE2_FLAG_4) {
+ camera->stateFlags &= ~CAM_STATE_2;
}
}
playerPos = camera->playerPosRot.pos;
- lerpRateFactor = (roData->interfaceFlags & 1 ? 1.0f : camera->speedRatio);
+ lerpRateFactor = (roData->interfaceField & UNIQUE2_FLAG_0 ? 1.0f : camera->speedRatio);
at->x = F32_LERPIMP(at->x, playerPos.x, lerpRateFactor * 0.6f);
at->y = F32_LERPIMP(at->y, playerPos.y + playerHeight + roData->yOffset, 0.4f);
at->z = F32_LERPIMP(at->z, playerPos.z, lerpRateFactor * 0.6f);
rwData->unk_00 = F32_LERPIMP(rwData->unk_00, 2.0f, 0.05f); // unused.
- if (roData->interfaceFlags & 1) {
+ if (roData->interfaceField & UNIQUE2_FLAG_0) {
OLib_Vec3fDiffToVecGeo(&eyeOffset, at, eyeNext);
eyeOffset.r = roData->distTarget;
Camera_AddVecGeoToVec3f(&playerPos, at, &eyeOffset);
Camera_LERPCeilVec3f(&playerPos, eye, 0.25f, 0.25f, 0.2f);
- } else if (roData->interfaceFlags & 2) {
+ } else if (roData->interfaceField & UNIQUE2_FLAG_1) {
if (OLib_Vec3fDistXZ(at, eyeNext) < roData->distTarget) {
OLib_Vec3fDiffToVecGeo(&eyeOffset, at, eyeNext);
eyeOffset.yaw = Camera_LERPCeilS(eyeOffset.yaw, eyeAtOffset.yaw, 0.1f, 0xA);
@@ -4814,7 +4836,8 @@ s32 Camera_Unique3(Camera* camera) {
PosRot* cameraPlayerPosRot = &camera->playerPosRot;
playerHeight = Player_GetHeight(camera->player);
- camera->unk_14C &= ~0x10;
+ camera->stateFlags &= ~CAM_STATE_4;
+
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
f32 yNormal =
@@ -4822,16 +4845,19 @@ s32 Camera_Unique3(Camera* camera) {
roData->yOffset = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
roData->fov = GET_NEXT_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
+
if (R_RELOAD_CAM_PARAMS != 0) {
Camera_CopyPREGToModeValues(camera);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+
+ sCameraInterfaceField = roData->interfaceField;
+
switch (camera->animState) {
case 0:
func_80043B60(camera);
- camera->unk_14C &= ~(0x8 | 0x4);
+ camera->stateFlags &= ~(CAM_STATE_2 | CAM_STATE_3);
rwData->initialFov = camera->fov;
rwData->initialDist = OLib_Vec3fDist(at, &camera->eye);
camera->animState++;
@@ -4854,7 +4880,7 @@ s32 Camera_Unique3(Camera* camera) {
camera->animState++;
FALLTHROUGH;
case 2:
- if (roData->interfaceFlags & 4) {
+ if (roData->interfaceField & UNIQUE3_FLAG_2) {
camera->at = cameraPlayerPosRot->pos;
camera->at.y += playerHeight + roData->yOffset;
}
@@ -4864,17 +4890,17 @@ s32 Camera_Unique3(Camera* camera) {
camera->animState++;
FALLTHROUGH;
case 3:
- camera->unk_14C |= (0x400 | 0x10);
- if ((camera->unk_14C & 8) != 0) {
+ camera->stateFlags |= (CAM_STATE_4 | CAM_STATE_10);
+ if (camera->stateFlags & CAM_STATE_3) {
camera->animState++;
} else {
break;
}
FALLTHROUGH;
case 4:
- if (roData->interfaceFlags & 2) {
- camera->unk_14C |= 4;
- camera->unk_14C &= ~8;
+ if (roData->interfaceField & UNIQUE3_FLAG_1) {
+ camera->stateFlags |= CAM_STATE_2;
+ camera->stateFlags &= ~CAM_STATE_3;
Camera_ChangeSettingFlags(camera, CAM_SET_PIVOT_IN_FRONT, 2);
break;
}
@@ -4904,8 +4930,8 @@ s32 Camera_Unique3(Camera* camera) {
camera->animState++;
FALLTHROUGH;
default:
- camera->unk_14C |= 4;
- camera->unk_14C &= ~8;
+ camera->stateFlags |= CAM_STATE_2;
+ camera->stateFlags &= ~CAM_STATE_3;
camera->fov = roData->fov;
Camera_ChangeSettingFlags(camera, camera->prevSetting, 2);
camera->atLERPStepScale = 0.0f;
@@ -4942,7 +4968,7 @@ s32 Camera_Unique0(Camera* camera) {
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -4952,11 +4978,11 @@ s32 Camera_Unique0(Camera* camera) {
playerPosWithOffset = playerPosRot->pos;
playerPosWithOffset.y += yOffset;
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (camera->animState == 0) {
func_80043B60(camera);
- camera->unk_14C &= ~4;
+ camera->stateFlags &= ~CAM_STATE_2;
bgCamFuncData = (BgCamFuncData*)Camera_GetBgCamFuncData(camera);
Camera_Vec3sToVec3f(&rwData->eyeAndDirection.point, &bgCamFuncData->pos);
@@ -4984,7 +5010,7 @@ s32 Camera_Unique0(Camera* camera) {
rwData->initalPos = playerPosRot->pos;
}
- if (roData->interfaceFlags & 1) {
+ if (roData->interfaceField & UNIQUE0_FLAG_0) {
if (rwData->animTimer > 0) {
rwData->animTimer--;
rwData->initalPos = playerPosRot->pos;
@@ -5003,14 +5029,14 @@ s32 Camera_Unique0(Camera* camera) {
camera->posOffset.y = camera->at.y - playerPosRot->pos.y;
camera->posOffset.z = camera->at.z - playerPosRot->pos.z;
camera->atLERPStepScale = 0.0f;
- camera->unk_14C |= 4;
+ camera->stateFlags |= CAM_STATE_2;
Camera_ChangeSettingFlags(camera, camera->prevSetting, 2);
}
} else {
if (rwData->animTimer > 0) {
rwData->animTimer--;
if (rwData->animTimer == 0) {
- sCameraInterfaceFlags = 0;
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0);
}
} else {
rwData->initalPos = playerPosRot->pos;
@@ -5031,7 +5057,7 @@ s32 Camera_Unique0(Camera* camera) {
camera->posOffset.z = camera->at.z - playerPosRot->pos.z;
camera->atLERPStepScale = 0.0f;
Camera_ChangeSettingFlags(camera, camera->prevSetting, 2);
- camera->unk_14C |= 4;
+ camera->stateFlags |= CAM_STATE_2;
}
}
return true;
@@ -5050,7 +5076,7 @@ s32 Camera_Unique5(Camera* camera) {
/**
* This function doesn't really update much.
- * Eye/at positions are updated via Camera_SetParam
+ * Eye/at positions are updated via Camera_SetViewParam
*/
s32 Camera_Unique6(Camera* camera) {
Unique6ReadOnlyData* roData = &camera->paramData.uniq6.roData;
@@ -5061,14 +5087,14 @@ s32 Camera_Unique6(Camera* camera) {
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
Camera_CopyPREGToModeValues(camera);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (camera->animState == 0) {
camera->animState++;
@@ -5087,7 +5113,7 @@ s32 Camera_Unique6(Camera* camera) {
camera->dist = OLib_Vec3fDist(&camera->at, &camera->eye);
}
- if (roData->interfaceFlags & 1 && camera->timer > 0) {
+ if ((roData->interfaceField & UNIQUE6_FLAG_0) && (camera->timer > 0)) {
camera->timer--;
}
@@ -5115,7 +5141,7 @@ s32 Camera_Unique7(Camera* camera) {
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
roData->fov = GET_NEXT_RO_DATA(values);
- roData->interfaceFlags = (s16)GET_NEXT_RO_DATA(values);
+ roData->interfaceField = (s16)GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
Camera_CopyPREGToModeValues(camera);
@@ -5139,7 +5165,7 @@ s32 Camera_Unique7(Camera* camera) {
fov *= 100;
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (camera->animState == 0) {
camera->animState++;
@@ -5155,7 +5181,7 @@ s32 Camera_Unique7(Camera* camera) {
rwData->unk_00.x = Camera_LERPFloorS(playerPosEyeOffset.yaw, rwData->unk_00.x, 0.4f, 0x7D0);
playerPosEyeOffset.pitch = -bgCamFuncData->rot.x * Math_CosS(playerPosEyeOffset.yaw - bgCamFuncData->rot.y);
Camera_AddVecGeoToVec3f(at, eye, &playerPosEyeOffset);
- camera->unk_14C |= 0x400;
+ camera->stateFlags |= CAM_STATE_10;
return true;
}
@@ -5192,14 +5218,14 @@ s32 Camera_Unique9(Camera* camera) {
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
Camera_CopyPREGToModeValues(camera);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
Actor_GetWorld(&playerPosRot, &camera->player->actor);
@@ -5230,7 +5256,8 @@ s32 Camera_Unique9(Camera* camera) {
if ((rwData->curKeyFrame->unk_01 & 0xF0) == 0x80) {
D_8011D3AC = rwData->curKeyFrame->unk_01 & 0xF;
} else if ((rwData->curKeyFrame->unk_01 & 0xF0) == 0xC0) {
- Camera_UpdateInterface(0xF000 | ((rwData->curKeyFrame->unk_01 & 0xF) << 8));
+ Camera_UpdateInterface(
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY(rwData->curKeyFrame->unk_01), 0));
} else if (camera->player->stateFlags1 & PLAYER_STATE1_27 &&
player->currentBoots != PLAYER_BOOTS_IRON) {
func_8002DF38(camera->play, camera->target, 8);
@@ -5445,15 +5472,15 @@ s32 Camera_Unique9(Camera* camera) {
*eyeNext = rwData->eyeTarget;
camera->fov = rwData->fovTarget;
camera->roll = rwData->rollTarget;
- camera->unk_14C |= 0x400;
+ camera->stateFlags |= CAM_STATE_10;
break;
case 21:
// same as 15, but with unk_38 ?
if (rwData->unk_38 == 0) {
rwData->unk_38 = 1;
- } else if (camera->unk_14C & 8) {
+ } else if (camera->stateFlags & CAM_STATE_3) {
rwData->unk_38 = 0;
- camera->unk_14C &= ~8;
+ camera->stateFlags &= ~CAM_STATE_3;
}
*at = rwData->atTarget;
*eyeNext = rwData->eyeTarget;
@@ -5461,10 +5488,10 @@ s32 Camera_Unique9(Camera* camera) {
camera->roll = rwData->rollTarget;
break;
case 16:
- // same as 21, but don't unset bit 0x8 on unk_14C
+ // same as 21, but don't unset CAM_STATE_3 on stateFlags
if (rwData->unk_38 == 0) {
rwData->unk_38 = 1;
- } else if (camera->unk_14C & 8) {
+ } else if (camera->stateFlags & CAM_STATE_3) {
rwData->unk_38 = 0;
}
@@ -5701,10 +5728,10 @@ s32 Camera_Demo1(Camera* camera) {
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
switch (camera->animState) {
case 0:
@@ -5779,14 +5806,14 @@ s32 Camera_Demo3(Camera* camera) {
Demo3ReadWriteData* rwData = &camera->paramData.demo3.rwData;
s32 pad2;
- camera->unk_14C &= ~0x10;
+ camera->stateFlags &= ~CAM_STATE_4;
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
roData->fov = GET_NEXT_RO_DATA(values);
roData->unk_04 = GET_NEXT_RO_DATA(values); // unused.
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -5795,11 +5822,11 @@ s32 Camera_Demo3(Camera* camera) {
OLib_Vec3fDiffToVecGeo(&eyeAtOffset, at, eye);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
switch (camera->animState) {
case 0:
- camera->unk_14C &= ~(0x8 | 0x4);
+ camera->stateFlags &= ~(CAM_STATE_2 | CAM_STATE_3);
func_80043B60(camera);
camera->fov = roData->fov;
camera->roll = rwData->animFrame = 0;
@@ -5896,8 +5923,8 @@ s32 Camera_Demo3(Camera* camera) {
rwData->unk_0C += (4.0f / 45.0f);
break;
case 30:
- camera->unk_14C |= 0x400;
- if (camera->unk_14C & 8) {
+ camera->stateFlags |= CAM_STATE_10;
+ if (camera->stateFlags & CAM_STATE_3) {
camera->animState = 4;
}
FALLTHROUGH;
@@ -5910,7 +5937,7 @@ s32 Camera_Demo3(Camera* camera) {
eyeOffset.pitch = 0;
eyeOffset.yaw = eyeAtOffset.yaw;
rwData->unk_0C = 0.1f;
- sCameraInterfaceFlags = 0x3400;
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A, 0);
if (!((rwData->animFrame < 0 || camera->xzSpeed > 0.001f ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_A) ||
@@ -5921,20 +5948,20 @@ s32 Camera_Demo3(Camera* camera) {
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CRIGHT) ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_R) ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_Z)) &&
- camera->unk_14C & 8)) {
+ (camera->stateFlags & CAM_STATE_3))) {
goto skipeyeUpdate;
}
FALLTHROUGH;
default:
- camera->unk_14C |= 0x14;
- camera->unk_14C &= ~8;
+ camera->stateFlags |= (CAM_STATE_2 | CAM_STATE_4);
+ camera->stateFlags &= ~CAM_STATE_3;
if (camera->prevBgCamIndex < 0) {
Camera_ChangeSettingFlags(camera, camera->prevSetting, 2);
} else {
Camera_ChangeBgCamIndex(camera, camera->prevBgCamIndex);
camera->prevBgCamIndex = -1;
}
- sCameraInterfaceFlags = 0;
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0);
skipeyeUpdate:
skipUpdateEye = true;
break;
@@ -6000,7 +6027,7 @@ s32 Camera_Demo5(Camera* camera) {
Actor_GetFocus(&playerhead, &camera->player->actor);
player = camera->player;
- sCameraInterfaceFlags = 0x3200;
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, 0);
if ((camera->target == NULL) || (camera->target->update == NULL)) {
if (camera->target == NULL) {
osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: warning: attention: target is not valid, stop!\n" VT_RST);
@@ -6225,13 +6252,13 @@ s32 Camera_Demo6(Camera* camera) {
mainCam = Play_GetCamera(camera->play, CAM_ID_MAIN);
camFocus = camera->target;
- stateTimers[1] = 0x37;
- stateTimers[2] = 0x46;
- stateTimers[3] = 0x5A;
+ stateTimers[1] = 55;
+ stateTimers[2] = 70;
+ stateTimers[3] = 90;
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -6293,8 +6320,8 @@ s32 Camera_Demo6(Camera* camera) {
s32 Camera_Demo7(Camera* camera) {
if (camera->animState == 0) {
- camera->unk_14C &= ~4;
- camera->unk_14C |= 0x1000;
+ camera->stateFlags &= ~CAM_STATE_2;
+ camera->stateFlags |= CAM_STATE_12;
camera->animState++;
}
//! @bug doesn't return
@@ -6335,14 +6362,14 @@ s32 Camera_Demo9(Camera* camera) {
mainCamPlayerPosRot = &mainCam->playerPosRot;
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
Camera_CopyPREGToModeValues(camera);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
switch (camera->animState) {
case 0:
@@ -6460,14 +6487,14 @@ s32 Camera_Special0(Camera* camera) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
roData->lerpAtScale = GET_NEXT_SCALED_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
Camera_CopyPREGToModeValues(camera);
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (camera->animState == 0) {
camera->animState++;
@@ -6515,7 +6542,7 @@ s32 Camera_Special4(Camera* camera) {
Special4ReadWriteData* rwData = &camera->paramData.spec4.rwData;
if (camera->animState == 0) {
- sCameraInterfaceFlags = 0x3200;
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, 0);
camera->fov = 40.0f;
camera->animState++;
rwData->initalTimer = camera->timer;
@@ -6578,7 +6605,7 @@ s32 Camera_Special5(Camera* camera) {
roData->pitch = CAM_DEG_TO_BINANG(GET_NEXT_RO_DATA(values));
roData->fovTarget = GET_NEXT_RO_DATA(values);
roData->atMaxLERPScale = GET_NEXT_SCALED_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -6589,7 +6616,7 @@ s32 Camera_Special5(Camera* camera) {
OLib_Vec3fDiffToVecGeo(&sp5C, at, eyeNext);
Actor_GetWorld(&spA8, camera->target);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (camera->animState == 0) {
camera->animState++;
@@ -6731,7 +6758,7 @@ s32 Camera_Special6(Camera* camera) {
if (RELOAD_PARAMS(camera) || R_RELOAD_CAM_PARAMS) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -6752,13 +6779,15 @@ s32 Camera_Special6(Camera* camera) {
fov *= 100;
}
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
if (eyeNext->x != bgCamPos.x || eyeNext->y != bgCamPos.y || eyeNext->z != bgCamPos.z || camera->animState == 0) {
// A change in the current scene's camera positon has been detected,
// Change "screens"
camera->player->actor.freezeTimer = 12;
- sCameraInterfaceFlags = (sCameraInterfaceFlags & 0xF0FF) | 0x300;
+ // Overwrite hud visibility to CAM_HUD_VISIBILITY_HEARTS_FORCE
+ sCameraInterfaceField =
+ (sCameraInterfaceField & (u16)~CAM_HUD_VISIBILITY_MASK) | CAM_HUD_VISIBILITY_HEARTS_FORCE;
rwData->initalPlayerY = playerPosRot->pos.y;
rwData->animTimer = 12;
*eyeNext = bgCamPos;
@@ -6793,7 +6822,8 @@ s32 Camera_Special6(Camera* camera) {
rwData->animTimer--;
} else {
// Camera following player on the x axis.
- sCameraInterfaceFlags &= 0xF0FF;
+ // Overwrite hud visibility to CAM_HUD_VISIBILITY_ALL
+ sCameraInterfaceField = (sCameraInterfaceField & (u16)~CAM_HUD_VISIBILITY_MASK) | CAM_HUD_VISIBILITY_ALL;
eyePosCalc = *eyeNext;
eyePosCalc.x += (playerPosRot->pos.x - eyePosCalc.x) * 0.5f;
eyePosCalc.y += (playerPosRot->pos.y - rwData->initalPlayerY) * 0.2f;
@@ -6834,7 +6864,7 @@ s32 Camera_Special9(Camera* camera) {
BgCamFuncData* bgCamFuncData;
playerYOffset = Player_GetHeight(camera->player);
- camera->unk_14C &= ~0x10;
+ camera->stateFlags &= ~CAM_STATE_4;
yNormal =
1.0f + CAM_DATA_SCALED(R_CAM_YOFFSET_NORM) - (CAM_DATA_SCALED(R_CAM_YOFFSET_NORM) * (68.0f / playerYOffset));
@@ -6843,7 +6873,7 @@ s32 Camera_Special9(Camera* camera) {
roData->yOffset = GET_NEXT_SCALED_RO_DATA(values) * playerYOffset * yNormal;
roData->unk_04 = GET_NEXT_RO_DATA(values);
- roData->interfaceFlags = GET_NEXT_RO_DATA(values);
+ roData->interfaceField = GET_NEXT_RO_DATA(values);
}
if (R_RELOAD_CAM_PARAMS) {
@@ -6860,13 +6890,13 @@ s32 Camera_Special9(Camera* camera) {
OLib_Vec3fDiffToVecGeo(&atEyeOffsetGeo, at, eye);
- sCameraInterfaceFlags = roData->interfaceFlags;
+ sCameraInterfaceField = roData->interfaceField;
switch (camera->animState) {
if (1) {}
case 0:
- camera->unk_14C &= ~(0x4 | 0x2);
+ camera->stateFlags &= ~(CAM_STATE_1 | CAM_STATE_2);
camera->animState++;
rwData->targetYaw = ABS(playerPosRot->rot.y - adjustedPlayerPosRot.rot.y) >= 0x4000
? adjustedPlayerPosRot.rot.y - 0x7FFF
@@ -6876,7 +6906,7 @@ s32 Camera_Special9(Camera* camera) {
doorParams->timer1--;
if (doorParams->timer1 <= 0) {
camera->animState++;
- if (roData->interfaceFlags & 1) {
+ if (roData->interfaceField & SPECIAL9_FLAG_0) {
bgCamFuncData = (BgCamFuncData*)Camera_GetBgCamFuncData(camera);
Camera_Vec3sToVec3f(eyeNext, &bgCamFuncData->pos);
spAC = *eye = *eyeNext;
@@ -6935,8 +6965,8 @@ s32 Camera_Special9(Camera* camera) {
camera->animState++;
FALLTHROUGH;
default:
- camera->unk_14C |= (0x400 | 0x10);
- sCameraInterfaceFlags = 0;
+ camera->stateFlags |= (CAM_STATE_4 | CAM_STATE_10);
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0);
if (camera->xzSpeed > 0.001f || CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_A) ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_B) ||
@@ -6945,10 +6975,11 @@ s32 Camera_Special9(Camera* camera) {
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CUP) ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CRIGHT) ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_R) ||
- CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_Z) || roData->interfaceFlags & 0x8) {
+ CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_Z) ||
+ (roData->interfaceField & SPECIAL9_FLAG_3)) {
Camera_ChangeSettingFlags(camera, camera->prevSetting, 2);
- camera->unk_14C |= (0x4 | 0x2);
+ camera->stateFlags |= (CAM_STATE_1 | CAM_STATE_2);
}
break;
}
@@ -7041,21 +7072,21 @@ void Camera_Init(Camera* camera, View* view, CollisionContext* colCtx, PlayState
camera->yOffsetUpdateRate = CAM_DATA_SCALED(R_CAM_Y_OFFSET_UPDATE_RATE);
camera->fovUpdateRate = CAM_DATA_SCALED(R_CAM_FOV_UPDATE_RATE);
sCameraLetterboxSize = 32;
- sCameraInterfaceAlpha = 0;
- camera->unk_14C = 0;
+ sCameraHudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
+ camera->stateFlags = 0;
camera->setting = camera->prevSetting = CAM_SET_FREE0;
camera->bgCamIndex = camera->prevBgCamIndex = -1;
camera->mode = 0;
camera->bgId = BGCHECK_SCENE;
camera->csId = 0x7FFF;
camera->timer = -1;
- camera->unk_14C |= 0x4000;
+ camera->stateFlags |= CAM_STATE_14;
camera->up.y = 1.0f;
camera->up.z = camera->up.x = 0.0f;
camera->quakeOffset.x = camera->quakeOffset.y = camera->quakeOffset.z = 0;
camera->atLERPStepScale = 1;
- sCameraInterfaceFlags = 0xFF00;
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, 0);
sDbgModeIdx = -1;
D_8011D3F0 = 3;
osSyncPrintf(VT_FGCOL(BLUE) "camera: initialize --- " VT_RST " UID %d\n", camera->uid);
@@ -7064,7 +7095,7 @@ void Camera_Init(Camera* camera, View* view, CollisionContext* colCtx, PlayState
void func_80057FC4(Camera* camera) {
if (camera != &camera->play->mainCamera) {
camera->prevSetting = camera->setting = CAM_SET_FREE0;
- camera->unk_14C &= ~0x4;
+ camera->stateFlags &= ~CAM_STATE_2;
} else if (camera->play->roomCtx.curRoom.roomShape->base.type != ROOM_SHAPE_TYPE_IMAGE) {
switch (camera->play->roomCtx.curRoom.behaviorType1) {
case ROOM_BEHAVIOR_TYPE1_1:
@@ -7080,13 +7111,13 @@ void func_80057FC4(Camera* camera) {
osSyncPrintf("camera: room type: default set etc (%d)\n", camera->play->roomCtx.curRoom.behaviorType1);
Camera_ChangeDoorCam(camera, NULL, -99, 0, 0, 18, 10);
camera->prevSetting = camera->setting = CAM_SET_NORMAL0;
- camera->unk_14C |= 4;
+ camera->stateFlags |= CAM_STATE_2;
break;
}
} else {
osSyncPrintf("camera: room type: prerender\n");
camera->prevSetting = camera->setting = CAM_SET_FREE0;
- camera->unk_14C &= ~0x4;
+ camera->stateFlags &= ~CAM_STATE_2;
}
}
@@ -7138,17 +7169,18 @@ void Camera_InitPlayerSettings(Camera* camera, Player* player) {
camera->bgCamIndexBeforeUnderwater = -1;
camera->waterCamSetting = -1;
- camera->unk_14C |= 4;
+ camera->stateFlags |= CAM_STATE_2;
if (camera == &camera->play->mainCamera) {
- sCameraInterfaceFlags = 0xB200;
+ sCameraInterfaceField =
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE | CAM_LETTERBOX_INSTANT, CAM_HUD_VISIBILITY_NOTHING_ALT, 0);
} else {
- sCameraInterfaceFlags = 0;
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0);
}
func_80057FC4(camera);
- camera->unk_14A = 0;
- camera->paramFlags = 0;
+ camera->behaviorFlags = 0;
+ camera->viewFlags = 0;
camera->nextBgCamIndex = -1;
camera->atLERPStepScale = 1.0f;
Camera_CopyDataToRegs(camera, camera->mode);
@@ -7274,24 +7306,24 @@ s32 Camera_UpdateWater(Camera* camera) {
Player* player = camera->player;
s16 prevBgId;
- if (!(camera->unk_14C & 2) || sCameraSettings[camera->setting].unk_00 & 0x40000000) {
+ if (!(camera->stateFlags & CAM_STATE_1) || sCameraSettings[camera->setting].unk_00 & 0x40000000) {
return 0;
}
- if (camera->unk_14C & 0x200) {
+ if (camera->stateFlags & CAM_STATE_9) {
if (player->stateFlags2 & PLAYER_STATE2_11) {
Camera_ChangeSettingFlags(camera, CAM_SET_PIVOT_WATER_SURFACE, 6);
- camera->unk_14C |= (s16)0x8000;
- } else if (camera->unk_14C & (s16)0x8000) {
+ camera->stateFlags |= CAM_STATE_15;
+ } else if (camera->stateFlags & CAM_STATE_15) {
Camera_ChangeSettingFlags(camera, *waterCamSetting, 6);
- camera->unk_14C &= ~((s16)0x8000);
+ camera->stateFlags &= ~CAM_STATE_15;
}
}
- if (!(camera->unk_14C & (s16)0x8000)) {
+ if (!(camera->stateFlags & CAM_STATE_15)) {
if (waterBgCamIndex = Camera_GetWaterBoxBgCamIndex(camera, &waterY), waterBgCamIndex == -2) {
// No camera data index
- if (!(camera->unk_14C & 0x200)) {
- camera->unk_14C |= 0x200;
+ if (!(camera->stateFlags & CAM_STATE_9)) {
+ camera->stateFlags |= CAM_STATE_9;
camera->waterYPos = waterY;
camera->bgCamIndexBeforeUnderwater = camera->bgCamIndex;
*waterQuakeIndex = -1;
@@ -7306,8 +7338,8 @@ s32 Camera_UpdateWater(Camera* camera) {
}
} else if (waterBgCamIndex != -1) {
// player is in a water box
- if (!(camera->unk_14C & 0x200)) {
- camera->unk_14C |= 0x200;
+ if (!(camera->stateFlags & CAM_STATE_9)) {
+ camera->stateFlags |= CAM_STATE_9;
camera->waterYPos = waterY;
camera->bgCamIndexBeforeUnderwater = camera->bgCamIndex;
*waterQuakeIndex = -1;
@@ -7319,10 +7351,10 @@ s32 Camera_UpdateWater(Camera* camera) {
*waterCamSetting = camera->setting;
camera->bgId = prevBgId;
}
- } else if (camera->unk_14C & 0x200) {
+ } else if (camera->stateFlags & CAM_STATE_9) {
// player is out of a water box.
osSyncPrintf("camera: water: off\n");
- camera->unk_14C &= ~0x200;
+ camera->stateFlags &= ~CAM_STATE_9;
prevBgId = camera->bgId;
camera->bgId = BGCHECK_SCENE;
if (camera->bgCamIndexBeforeUnderwater < 0) {
@@ -7337,8 +7369,8 @@ s32 Camera_UpdateWater(Camera* camera) {
if (waterY = Camera_GetWaterSurface(camera, &camera->eye, &waterLightsIndex), waterY != BGCHECK_Y_MIN) {
camera->waterYPos = waterY;
- if (!(camera->unk_14C & 0x100)) {
- camera->unk_14C |= 0x100;
+ if (!(camera->stateFlags & CAM_STATE_8)) {
+ camera->stateFlags |= CAM_STATE_8;
osSyncPrintf("kankyo changed water, sound on\n");
Environment_EnableUnderwaterLights(camera->play, waterLightsIndex);
camera->waterDistortionTimer = 80;
@@ -7372,8 +7404,8 @@ s32 Camera_UpdateWater(Camera* camera) {
camera->distortionFlags |= DISTORTION_UNDERWATER_WEAK;
}
} else {
- if (camera->unk_14C & 0x100) {
- camera->unk_14C &= ~0x100;
+ if (camera->stateFlags & CAM_STATE_8) {
+ camera->stateFlags &= ~CAM_STATE_8;
osSyncPrintf("kankyo changed water off, sound off\n");
Environment_DisableUnderwaterLights(camera->play);
if (*waterQuakeIndex != 0) {
@@ -7502,11 +7534,11 @@ void Camera_UpdateDistortion(Camera* camera) {
Math_CosS(depthPhase) * (zScale * scaleFactor) + 1.0f);
View_SetDistortionSpeed(&camera->play->view, speed * speedFactor);
- camera->unk_14C |= 0x40;
+ camera->stateFlags |= CAM_STATE_6;
- } else if (camera->unk_14C & 0x40) {
+ } else if (camera->stateFlags & CAM_STATE_6) {
View_ClearDistortion(&camera->play->view);
- camera->unk_14C &= ~0x40;
+ camera->stateFlags &= ~CAM_STATE_6;
}
}
@@ -7580,13 +7612,14 @@ Vec3s Camera_Update(Camera* camera) {
Camera_UpdateHotRoom(camera);
}
- if (!(camera->unk_14C & 4)) {
+ if (!(camera->stateFlags & CAM_STATE_2)) {
camera->nextBgCamIndex = -1;
}
- if ((camera->unk_14C & 1) && (camera->unk_14C & 4) && !(camera->unk_14C & 0x400) &&
- (!(camera->unk_14C & 0x200) || (player->currentBoots == PLAYER_BOOTS_IRON)) &&
- (!(camera->unk_14C & (s16)0x8000)) && (playerGroundY != BGCHECK_Y_MIN)) {
+ if ((camera->stateFlags & CAM_STATE_0) && (camera->stateFlags & CAM_STATE_2) &&
+ !(camera->stateFlags & CAM_STATE_10) &&
+ (!(camera->stateFlags & CAM_STATE_9) || (player->currentBoots == PLAYER_BOOTS_IRON)) &&
+ !(camera->stateFlags & CAM_STATE_15) && (playerGroundY != BGCHECK_Y_MIN)) {
bgCamIndex = Camera_GetBgCamIndex(camera, &bgId, playerFloorPoly);
if (bgCamIndex != -1) {
camera->nextBgId = bgId;
@@ -7597,7 +7630,7 @@ Vec3s Camera_Update(Camera* camera) {
}
if (camera->nextBgCamIndex != -1 && (fabsf(curPlayerPosRot.pos.y - playerGroundY) < 2.0f) &&
- (!(camera->unk_14C & 0x200) || (player->currentBoots == PLAYER_BOOTS_IRON))) {
+ (!(camera->stateFlags & CAM_STATE_9) || (player->currentBoots == PLAYER_BOOTS_IRON))) {
camera->bgId = camera->nextBgId;
Camera_ChangeBgCamIndex(camera, camera->nextBgCamIndex);
camera->nextBgCamIndex = -1;
@@ -7614,13 +7647,13 @@ Vec3s Camera_Update(Camera* camera) {
return camera->inputDir;
}
- camera->unk_14A = 0;
- camera->unk_14C &= ~(0x400 | 0x20);
- camera->unk_14C |= 0x10;
+ camera->behaviorFlags = 0;
+ camera->stateFlags &= ~(CAM_STATE_10 | CAM_STATE_5);
+ camera->stateFlags |= CAM_STATE_4;
if (R_DBG_CAM_UPDATE) {
osSyncPrintf("camera: engine (%d %d %d) %04x \n", camera->setting, camera->mode,
- sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx, camera->unk_14C);
+ sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx, camera->stateFlags);
}
if (sOOBTimer < 200) {
@@ -7632,25 +7665,25 @@ Vec3s Camera_Update(Camera* camera) {
if (camera->status == CAM_STAT_ACTIVE) {
if ((gSaveContext.gameMode != GAMEMODE_NORMAL) && (gSaveContext.gameMode != GAMEMODE_END_CREDITS)) {
- sCameraInterfaceFlags = 0;
- Camera_UpdateInterface(sCameraInterfaceFlags);
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0);
+ Camera_UpdateInterface(sCameraInterfaceField);
} else if ((D_8011D3F0 != 0) && (camera->camId == CAM_ID_MAIN)) {
D_8011D3F0--;
- sCameraInterfaceFlags = 0x3200;
- Camera_UpdateInterface(sCameraInterfaceFlags);
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, 0);
+ Camera_UpdateInterface(sCameraInterfaceField);
} else if (camera->play->transitionMode != TRANS_MODE_OFF) {
- sCameraInterfaceFlags = 0xF200;
- Camera_UpdateInterface(sCameraInterfaceFlags);
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_NOTHING_ALT, 0);
+ Camera_UpdateInterface(sCameraInterfaceField);
} else if (camera->play->csCtx.state != CS_STATE_IDLE) {
- sCameraInterfaceFlags = 0x3200;
- Camera_UpdateInterface(sCameraInterfaceFlags);
+ sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, 0);
+ Camera_UpdateInterface(sCameraInterfaceField);
} else {
- Camera_UpdateInterface(sCameraInterfaceFlags);
+ Camera_UpdateInterface(sCameraInterfaceField);
}
}
if (R_DBG_CAM_UPDATE) {
- osSyncPrintf("camera: shrink_and_bitem %x(%d)\n", sCameraInterfaceFlags, camera->play->transitionMode);
+ osSyncPrintf("camera: shrink_and_bitem %x(%d)\n", sCameraInterfaceField, camera->play->transitionMode);
}
if (R_DBG_CAM_UPDATE) {
@@ -7712,8 +7745,8 @@ Vec3s Camera_Update(Camera* camera) {
viewFov = camera->fov;
}
- if (camera->paramFlags & 4) {
- camera->paramFlags &= ~4;
+ if (camera->viewFlags & CAM_VIEW_UP) {
+ camera->viewFlags &= ~CAM_VIEW_UP;
viewUp = camera->up;
} else {
camera->up = viewUp;
@@ -7785,7 +7818,7 @@ void Camera_Finish(Camera* camera) {
osSyncPrintf("camera: player demo end!!\n");
}
- mainCam->unk_14C |= 8;
+ mainCam->stateFlags |= CAM_STATE_3;
}
if (CHILD_CAM(camera)->parentCamId == camera->camId) {
@@ -7809,8 +7842,8 @@ void Camera_Finish(Camera* camera) {
}
s32 func_8005A02C(Camera* camera) {
- camera->unk_14C |= 0xC;
- camera->unk_14C &= ~(0x1000 | 0x8);
+ camera->stateFlags |= (CAM_STATE_2 | CAM_STATE_3);
+ camera->stateFlags &= ~(CAM_STATE_3 | CAM_STATE_12);
return true;
}
@@ -7821,8 +7854,8 @@ s32 Camera_ChangeModeFlags(Camera* camera, s16 mode, u8 flags) {
osSyncPrintf("+=+(%d)+=+ recive request -> %s\n", camera->play->state.frames, sCameraModeNames[mode]);
}
- if (camera->unk_14C & 0x20 && flags == 0) {
- camera->unk_14A |= 0x20;
+ if ((camera->stateFlags & CAM_STATE_5) && (flags == 0)) {
+ camera->behaviorFlags |= CAM_BEHAVIOR_MODE_2;
return -1;
}
@@ -7840,18 +7873,18 @@ s32 Camera_ChangeModeFlags(Camera* camera, s16 mode, u8 flags) {
func_8005A02C(camera);
return 0xC0000000 | mode;
} else {
- camera->unk_14A |= 0x20;
- camera->unk_14A |= 2;
+ camera->behaviorFlags |= CAM_BEHAVIOR_MODE_2;
+ camera->behaviorFlags |= CAM_BEHAVIOR_MODE_1;
return 0;
}
} else {
if (mode == camera->mode && flags == 0) {
- camera->unk_14A |= 0x20;
- camera->unk_14A |= 2;
+ camera->behaviorFlags |= CAM_BEHAVIOR_MODE_2;
+ camera->behaviorFlags |= CAM_BEHAVIOR_MODE_1;
return -1;
}
- camera->unk_14A |= 0x20;
- camera->unk_14A |= 2;
+ camera->behaviorFlags |= CAM_BEHAVIOR_MODE_2;
+ camera->behaviorFlags |= CAM_BEHAVIOR_MODE_1;
Camera_CopyDataToRegs(camera, mode);
modeChangeFlags = 0;
switch (mode) {
@@ -7959,16 +7992,16 @@ s32 Camera_CheckValidMode(Camera* camera, s16 mode) {
}
s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags) {
- if (camera->unk_14A & 1) {
+ if (camera->behaviorFlags & CAM_BEHAVIOR_SETTING_1) {
if ((u32)((u32)(sCameraSettings[camera->setting].unk_00 & 0xF000000) >> 0x18) >=
(u32)((u32)(sCameraSettings[setting].unk_00 & 0xF000000) >> 0x18)) {
- camera->unk_14A |= 0x10;
+ camera->behaviorFlags |= CAM_BEHAVIOR_SETTING_2;
return -2;
}
}
if (((setting == CAM_SET_MEADOW_BIRDS_EYE) || (setting == CAM_SET_MEADOW_UNUSED)) && LINK_IS_ADULT &&
(camera->play->sceneId == SCENE_SACRED_FOREST_MEADOW)) {
- camera->unk_14A |= 0x10;
+ camera->behaviorFlags |= CAM_BEHAVIOR_SETTING_2;
return -5;
}
@@ -7978,20 +8011,20 @@ s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags) {
}
if ((setting == camera->setting) && !(flags & 1)) {
- camera->unk_14A |= 0x10;
+ camera->behaviorFlags |= CAM_BEHAVIOR_SETTING_2;
if (!(flags & 2)) {
- camera->unk_14A |= 1;
+ camera->behaviorFlags |= CAM_BEHAVIOR_SETTING_1;
}
return -1;
}
- camera->unk_14A |= 0x10;
+ camera->behaviorFlags |= CAM_BEHAVIOR_SETTING_2;
if (!(flags & 2)) {
- camera->unk_14A |= 1;
+ camera->behaviorFlags |= CAM_BEHAVIOR_SETTING_1;
}
- camera->unk_14C |= 0xC;
- camera->unk_14C &= ~0x1008;
+ camera->stateFlags |= (CAM_STATE_2 | CAM_STATE_3);
+ camera->stateFlags &= ~(CAM_STATE_3 | CAM_STATE_12);
if (!(sCameraSettings[camera->setting].unk_00 & 0x40000000)) {
camera->prevSetting = camera->setting;
@@ -8029,17 +8062,17 @@ s32 Camera_ChangeBgCamIndex(Camera* camera, s32 bgCamIndex) {
s16 settingChangeSuccessful;
if (bgCamIndex == -1 || bgCamIndex == camera->bgCamIndex) {
- camera->unk_14A |= 0x40;
+ camera->behaviorFlags |= CAM_BEHAVIOR_BG_2;
return -1;
}
- if (!(camera->unk_14A & 0x40)) {
+ if (!(camera->behaviorFlags & CAM_BEHAVIOR_BG_2)) {
newCameraSetting = Camera_GetBgCamSetting(camera, bgCamIndex);
- camera->unk_14A |= 0x40;
+ camera->behaviorFlags |= CAM_BEHAVIOR_BG_2;
settingChangeSuccessful = Camera_ChangeSettingFlags(camera, newCameraSetting, 5) >= 0;
if (settingChangeSuccessful || sCameraSettings[camera->setting].unk_00 & 0x80000000) {
camera->bgCamIndex = bgCamIndex;
- camera->unk_14A |= 4;
+ camera->behaviorFlags |= CAM_BEHAVIOR_BG_1;
Camera_CopyDataToRegs(camera, camera->mode);
} else if (settingChangeSuccessful < -1) {
//! @bug: This is likely checking the wrong value. The actual return of Camera_ChangeSettingFlags or
@@ -8112,55 +8145,61 @@ s32 Camera_RequestQuake(Camera* camera, s32 unused, s16 y, s32 duration) {
return true;
}
-s32 Camera_SetParam(Camera* camera, s32 param, void* value) {
+s32 Camera_SetViewParam(Camera* camera, s32 viewFlag, void* param) {
s32 pad[3];
- if (value != NULL) {
- switch (param) {
- case 1:
- camera->paramFlags &= ~(0x10 | 0x8 | 0x1);
- camera->at = *(Vec3f*)value;
+ if (param != NULL) {
+ switch (viewFlag) {
+ case CAM_VIEW_AT:
+ camera->viewFlags &= ~(CAM_VIEW_AT | CAM_VIEW_TARGET | CAM_VIEW_TARGET_POS);
+ camera->at = *(Vec3f*)param;
break;
- case 16:
- camera->paramFlags &= ~(0x10 | 0x8 | 0x1);
- camera->targetPosRot.pos = *(Vec3f*)value;
+
+ case CAM_VIEW_TARGET_POS:
+ camera->viewFlags &= ~(CAM_VIEW_AT | CAM_VIEW_TARGET | CAM_VIEW_TARGET_POS);
+ camera->targetPosRot.pos = *(Vec3f*)param;
break;
- case 8:
- if (camera->setting == CAM_SET_CS_C || camera->setting == CAM_SET_CS_ATTENTION) {
- break;
+
+ case CAM_VIEW_TARGET:
+ if (camera->setting != CAM_SET_CS_C && camera->setting != CAM_SET_CS_ATTENTION) {
+ camera->target = (Actor*)param;
+ camera->viewFlags &= ~(CAM_VIEW_AT | CAM_VIEW_TARGET | CAM_VIEW_TARGET_POS);
}
- camera->target = (Actor*)value;
- camera->paramFlags &= ~(0x10 | 0x8 | 0x1);
break;
- case 2:
- camera->eye = camera->eyeNext = *(Vec3f*)value;
+
+ case CAM_VIEW_EYE:
+ camera->eye = camera->eyeNext = *(Vec3f*)param;
break;
- case 4:
- camera->up = *(Vec3f*)value;
+
+ case CAM_VIEW_UP:
+ camera->up = *(Vec3f*)param;
break;
- case 0x40:
- camera->roll = CAM_DEG_TO_BINANG(*(f32*)value);
+
+ case CAM_VIEW_ROLL:
+ camera->roll = CAM_DEG_TO_BINANG(*(f32*)param);
break;
- case 0x20:
- camera->fov = *(f32*)value;
+
+ case CAM_VIEW_FOV:
+ camera->fov = *(f32*)param;
break;
+
default:
return false;
}
- camera->paramFlags |= param;
+ camera->viewFlags |= viewFlag;
} else {
return false;
}
return true;
}
-s32 Camera_UnsetParam(Camera* camera, s16 param) {
- camera->paramFlags &= ~param;
+s32 Camera_UnsetViewFlag(Camera* camera, s16 viewFlag) {
+ camera->viewFlags &= ~viewFlag;
return true;
}
-s32 func_8005AC48(Camera* camera, s16 arg1) {
- camera->unk_14C = arg1;
+s32 Camera_OverwriteStateFlags(Camera* camera, s16 stateFlags) {
+ camera->stateFlags = stateFlags;
return true;
}
@@ -8190,14 +8229,14 @@ s32 Camera_SetCSParams(Camera* camera, CutsceneCameraPoint* atPoints, CutsceneCa
return 1;
}
-s16 func_8005ACFC(Camera* camera, s16 arg1) {
- camera->unk_14C |= arg1;
- return camera->unk_14C;
+s16 Camera_SetStateFlag(Camera* camera, s16 stateFlag) {
+ camera->stateFlags |= stateFlag;
+ return camera->stateFlags;
}
-s16 func_8005AD1C(Camera* camera, s16 arg1) {
- camera->unk_14C &= ~arg1;
- return camera->unk_14C;
+s16 Camera_UnsetStateFlag(Camera* camera, s16 stateFlag) {
+ camera->stateFlags &= ~stateFlag;
+ return camera->stateFlags;
}
/**
@@ -8230,11 +8269,11 @@ s32 Camera_ChangeDoorCam(Camera* camera, Actor* doorActor, s16 bgCamIndex, f32 a
} else {
s32 setting = Camera_GetBgCamSetting(camera, bgCamIndex);
- camera->unk_14A |= 0x40;
+ camera->behaviorFlags |= CAM_BEHAVIOR_BG_2;
if (Camera_ChangeSetting(camera, setting) >= 0) {
camera->bgCamIndex = bgCamIndex;
- camera->unk_14A |= 4;
+ camera->behaviorFlags |= CAM_BEHAVIOR_BG_1;
}
osSyncPrintf("....change door camera ID %d (set %d)\n", camera->bgCamIndex, camera->setting);
@@ -8344,10 +8383,10 @@ s32 func_8005B198(void) {
}
s16 func_8005B1A4(Camera* camera) {
- camera->unk_14C |= 0x8;
+ camera->stateFlags |= CAM_STATE_3;
if ((camera->camId == CAM_ID_MAIN) && (camera->play->activeCamId != CAM_ID_MAIN)) {
- GET_ACTIVE_CAM(camera->play)->unk_14C |= 0x8;
+ GET_ACTIVE_CAM(camera->play)->stateFlags |= CAM_STATE_3;
return camera->play->activeCamId;
}
diff --git a/src/code/z_camera_data.inc.c b/src/code/z_camera_data.inc.c
index e140fe885..77e56f45b 100644
--- a/src/code/z_camera_data.inc.c
+++ b/src/code/z_camera_data.inc.c
@@ -94,7 +94,7 @@ s16 sCamDataRegsInit[CAM_DATA_MAX] = {
35, // CAM_DATA_MAX_YAW_UPDATE
60, // CAM_DATA_FOV
60, // CAM_DATA_AT_LERP_STEP_SCALE
- 3, // CAM_DATA_FLAGS
+ 3, // CAM_DATA_INTERFACE_FIELD
0, // CAM_DATA_YAW_TARGET
-40, // CAM_DATA_GROUND_Y_OFFSET
20, // CAM_DATA_GROUND_AT_LERP_STEP_SCALE
@@ -216,87 +216,111 @@ char sCameraModeNames[][12] = {
*/
CameraModeValue sSetNormal0ModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 200, 300, 10, 12, 10, 35, 60, 60, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ -20, 200, 300, 10, 12, 10, 35, 60, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetNormal0ModeTargetData[] = {
- CAM_FUNCDATA_PARA1(-20, 250, 0, 0, 5, 5, 45, 50, 0x200A, -40, 20),
+ CAM_FUNCDATA_PARA1(
+ -20, 250, 0, 0, 5, 5, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), -40,
+ 20),
};
CameraModeValue sSetNormal0ModeFollowTargetData[] = {
- CAM_FUNCDATA_KEEP1(-20, 120, 140, 25, 45, -5, 15, 15, 45, 50, 0x2001, -50, 30),
+ CAM_FUNCDATA_KEEP1(-20, 120, 140, 25, 45, -5, 15, 15, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), -50, 30),
};
CameraModeValue sSetNormal0ModeTalkData[] = {
- CAM_FUNCDATA_KEEP3(-30, 70, 200, 40, 10, 0, 5, 70, 45, 50, 10, 0x3500),
+ CAM_FUNCDATA_KEEP3(-30, 70, 200, 40, 10, 0, 5, 70, 45, 50, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, 0)),
};
CameraModeValue sSetNormal0ModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-20, 180, 10, 80, 0, 10, 25, 50, 80, 0x2002, -40, 25),
+ CAM_FUNCDATA_BATT1(-20, 180, 10, 80, 0, 10, 25, 50, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -40, 25),
};
CameraModeValue sSetNormal0ModeClimbData[] = {
- CAM_FUNCDATA_JUMP2(-20, 200, 300, 20, 5, 5, 60, 40, 0x0000),
+ CAM_FUNCDATA_JUMP2(-20, 200, 300, 20, 5, 5, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeFirstPersonData[] = {
- CAM_FUNCDATA_SUBJ3(0, 5, 50, 10, 0, 0, 0, 45, 0x0000),
+ CAM_FUNCDATA_SUBJ3(0, 5, 50, 10, 0, 0, 0, 45, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeBowArrowData[] = {
- CAM_FUNCDATA_SUBJ3(-7, 14, 50, 10, 0, -30, -5, 45, 0x2000),
+ CAM_FUNCDATA_SUBJ3(-7, 14, 50, 10, 0, -30, -5, 45,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeBowArrowZData[] = {
- CAM_FUNCDATA_SUBJ3(20, 70, 70, 10, -120, 20, 0, 45, 0x2000),
+ CAM_FUNCDATA_SUBJ3(20, 70, 70, 10, -120, 20, 0, 45,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeHookshotData[] = {
- CAM_FUNCDATA_SPEC5_ALT(-20, 80, 250, 45, 60, 40, 6, 0x2000),
+ CAM_FUNCDATA_SPEC5_ALT(-20, 80, 250, 45, 60, 40, 6,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeBoomerangData[] = {
- CAM_FUNCDATA_SUBJ3(5, 50, 50, 10, 0, 0, 0, 45, 0x2000),
+ CAM_FUNCDATA_SUBJ3(5, 50, 50, 10, 0, 0, 0, 45,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeSlingshotData[] = {
- CAM_FUNCDATA_SUBJ3(-7, 14, 50, 10, -9, -63, -30, 45, 0x2000),
+ CAM_FUNCDATA_SUBJ3(-7, 14, 50, 10, -9, -63, -30, 45,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeClimbZData[] = {
- CAM_FUNCDATA_JUMP2(-20, 200, 300, 20, 999, 5, 60, 40, 0x2006),
+ CAM_FUNCDATA_JUMP2(-20, 200, 300, 20, 999, 5, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, JUMP2_FLAG_2 | JUMP2_FLAG_1)),
};
CameraModeValue sSetNormal0ModeJumpData[] = {
- CAM_FUNCDATA_JUMP1(-20, 200, 300, 12, 35, 60, 40, 0x0000),
+ CAM_FUNCDATA_JUMP1(-20, 200, 300, 12, 35, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeHangData[] = {
- CAM_FUNCDATA_UNIQ1(-80, 200, 300, 40, 60, 10, 0x0000),
+ CAM_FUNCDATA_UNIQ1(-80, 200, 300, 40, 60, 10, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeHangZData[] = {
- CAM_FUNCDATA_UNIQ1(-120, 300, 300, 70, 45, 10, 0x2000),
+ CAM_FUNCDATA_UNIQ1(-120, 300, 300, 70, 45, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeFreeFallData[] = {
- CAM_FUNCDATA_JUMP1(-20, 200, 300, 15, 80, 60, 20, 0x0000),
+ CAM_FUNCDATA_JUMP1(-20, 200, 300, 15, 80, 60, 20,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeChargeData[] = {
- CAM_FUNCDATA_BATT4(-20, 300, 50, 2, 80, 20, 0xF000),
+ CAM_FUNCDATA_BATT4(-20, 300, 50, 2, 80, 20, CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal0ModeStillData[] = {
- CAM_FUNCDATA_NORM1(-20, 200, 300, 10, 100, 10, 100, 60, 5, 0xF003),
+ CAM_FUNCDATA_NORM1(
+ -20, 200, 300, 10, 100, 10, 100, 60, 5,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetNormal0ModePushPullData[] = {
- CAM_FUNCDATA_PARA1(0, 250, 25, 0, 5, 5, 70, 30, 0x206A, -20, 30),
+ CAM_FUNCDATA_PARA1(0, 250, 25, 0, 5, 5, 70, 30,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL,
+ PARALLEL1_FLAG_6 | PARALLEL1_FLAG_5 | PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1),
+ -20, 30),
};
CameraModeValue sSetNormal0ModeFollowBoomerangData[] = {
- CAM_FUNCDATA_KEEP1(-5, 120, 140, 5, 85, 10, 5, 25, 45, 50, 0x2001, -15, 30),
+ CAM_FUNCDATA_KEEP1(-5, 120, 140, 5, 85, 10, 5, 25, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), -15, 30),
};
/**
@@ -306,55 +330,66 @@ CameraModeValue sSetNormal0ModeFollowBoomerangData[] = {
*/
CameraModeValue sSetNormal1ModeNormalData[] = {
- CAM_FUNCDATA_NORM1(0, 200, 400, 10, 12, 20, 40, 60, 60, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ 0, 200, 400, 10, 12, 20, 40, 60, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetNormal1ModeTargetData[] = {
- CAM_FUNCDATA_PARA1(0, 250, 0, 0, 5, 5, 45, 50, 0x2002, -40, 20),
+ CAM_FUNCDATA_PARA1(0, 250, 0, 0, 5, 5, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), -40, 20),
};
CameraModeValue sSetNormal1ModeFollowTargetData[] = {
- CAM_FUNCDATA_KEEP1(-20, 120, 140, 25, 45, -5, 15, 15, 45, 50, 0x2001, -50, 20),
+ CAM_FUNCDATA_KEEP1(-20, 120, 140, 25, 45, -5, 15, 15, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), -50, 20),
};
CameraModeValue sSetNormal1ModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-20, 250, 10, 80, 0, 10, 25, 50, 65, 0x2002, -40, 25),
+ CAM_FUNCDATA_BATT1(-20, 250, 10, 80, 0, 10, 25, 50, 65,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -40, 25),
};
CameraModeValue sSetNormal1ModeHookshotData[] = {
- CAM_FUNCDATA_SPEC5(-20, 80, 250, 6, 45, 60, 40, 0x2000),
+ CAM_FUNCDATA_SPEC5(-20, 80, 250, 6, 45, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal1ModeJumpData[] = {
- CAM_FUNCDATA_JUMP1(0, 250, 400, 15, 50, 60, 30, 0x0000),
+ CAM_FUNCDATA_JUMP1(0, 250, 400, 15, 50, 60, 30, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal1ModeFreeFallData[] = {
- CAM_FUNCDATA_JUMP1(0, 200, 400, 30, 80, 60, 20, 0x0000),
+ CAM_FUNCDATA_JUMP1(0, 200, 400, 30, 80, 60, 20, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal1ModeClimbData[] = {
- CAM_FUNCDATA_JUMP2(-20, 200, 400, 20, 5, 5, 60, 40, 0x0000),
+ CAM_FUNCDATA_JUMP2(-20, 200, 400, 20, 5, 5, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal1ModeClimbZData[] = {
- CAM_FUNCDATA_JUMP2(-20, 250, 400, 20, 999, 5, 60, 40, 0x2006),
+ CAM_FUNCDATA_JUMP2(-20, 250, 400, 20, 999, 5, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, JUMP2_FLAG_2 | JUMP2_FLAG_1)),
};
CameraModeValue sSetNormal1ModeChargeData[] = {
- CAM_FUNCDATA_BATT4(0, 300, 50, 2, 80, 20, 0xF000),
+ CAM_FUNCDATA_BATT4(0, 300, 50, 2, 80, 20, CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal1ModeHangData[] = {
- CAM_FUNCDATA_UNIQ1(-80, 200, 400, 40, 60, 10, 0x0000),
+ CAM_FUNCDATA_UNIQ1(-80, 200, 400, 40, 60, 10, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal1ModeHangZData[] = {
- CAM_FUNCDATA_UNIQ1(-120, 400, 400, 70, 45, 10, 0x2000),
+ CAM_FUNCDATA_UNIQ1(-120, 400, 400, 70, 45, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetNormal1ModeStillData[] = {
- CAM_FUNCDATA_NORM1(0, 200, 400, 10, 100, 20, 100, 60, 5, 0xF003),
+ CAM_FUNCDATA_NORM1(
+ 0, 200, 400, 10, 100, 20, 100, 60, 5,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
/**
@@ -364,51 +399,65 @@ CameraModeValue sSetNormal1ModeStillData[] = {
*/
CameraModeValue sSetDungeon0ModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-10, 150, 250, 5, 10, 5, 30, 60, 60, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ -10, 150, 250, 5, 10, 5, 30, 60, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetDungeon0ModeTargetData[] = {
- CAM_FUNCDATA_PARA1(-20, 150, 0, 0, 5, 5, 45, 50, 0x200A, -40, 20),
+ CAM_FUNCDATA_PARA1(
+ -20, 150, 0, 0, 5, 5, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), -40,
+ 20),
};
CameraModeValue sSetDungeon0ModeFollowTargetData[] = {
- CAM_FUNCDATA_KEEP1(-20, 120, 140, 25, 45, -5, 15, 15, 45, 50, 0x2001, -40, 20),
+ CAM_FUNCDATA_KEEP1(-20, 120, 140, 25, 45, -5, 15, 15, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), -40, 20),
};
CameraModeValue sSetDungeon0ModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-20, 180, 10, 80, 0, 10, 25, 45, 80, 0x2002, -40, 25),
+ CAM_FUNCDATA_BATT1(-20, 180, 10, 80, 0, 10, 25, 45, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -40, 25),
};
CameraModeValue sSetDungeon0ModeJumpData[] = {
- CAM_FUNCDATA_JUMP1(-10, 150, 250, 10, 50, 60, 40, 0x0000),
+ CAM_FUNCDATA_JUMP1(-10, 150, 250, 10, 50, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon0ModeFreeFallData[] = {
- CAM_FUNCDATA_JUMP1(-10, 150, 250, 10, 80, 60, 20, 0x0000),
+ CAM_FUNCDATA_JUMP1(-10, 150, 250, 10, 80, 60, 20,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon0ModeClimbData[] = {
- CAM_FUNCDATA_JUMP2(-40, 150, 250, 20, 5, 5, 60, 40, 0x0000),
+ CAM_FUNCDATA_JUMP2(-40, 150, 250, 20, 5, 5, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon0ModeClimbZData[] = {
- CAM_FUNCDATA_JUMP2(-40, 250, 250, 20, 999, 5, 60, 40, 0x2006),
+ CAM_FUNCDATA_JUMP2(-40, 250, 250, 20, 999, 5, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, JUMP2_FLAG_2 | JUMP2_FLAG_1)),
};
CameraModeValue sSetDungeon0ModeChargeData[] = {
- CAM_FUNCDATA_BATT4(-10, 300, 50, 2, 80, 20, 0xF000),
+ CAM_FUNCDATA_BATT4(-10, 300, 50, 2, 80, 20, CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon0ModeHangData[] = {
- CAM_FUNCDATA_UNIQ1(-80, 150, 250, 40, 60, 10, 0x0000),
+ CAM_FUNCDATA_UNIQ1(-80, 150, 250, 40, 60, 10, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon0ModeHangZData[] = {
- CAM_FUNCDATA_UNIQ1(-120, 250, 250, 70, 45, 10, 0x2000),
+ CAM_FUNCDATA_UNIQ1(-120, 250, 250, 70, 45, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon0ModeStillData[] = {
- CAM_FUNCDATA_NORM1(-10, 150, 250, 5, 100, 5, 100, 60, 5, 0xF003),
+ CAM_FUNCDATA_NORM1(
+ -10, 150, 250, 5, 100, 5, 100, 60, 5,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
/**
@@ -418,47 +467,60 @@ CameraModeValue sSetDungeon0ModeStillData[] = {
*/
CameraModeValue sSetDungeon1ModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-40, 150, 150, 0, 10, 5, 30, 60, 60, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ -40, 150, 150, 0, 10, 5, 30, 60, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetDungeon1ModeTalkData[] = {
- CAM_FUNCDATA_KEEP3(-20, 70, 200, 40, 10, 0, 5, 70, 45, 50, 10, 0x3500),
+ CAM_FUNCDATA_KEEP3(-20, 70, 200, 40, 10, 0, 5, 70, 45, 50, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, 0)),
};
CameraModeValue sSetDungeon1ModeJumpData[] = {
- CAM_FUNCDATA_JUMP1(-40, 150, 150, 10, 50, 60, 40, 0x0000),
+ CAM_FUNCDATA_JUMP1(-40, 150, 150, 10, 50, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon1ModeFreeFallData[] = {
- CAM_FUNCDATA_JUMP1(-40, 150, 180, 12, 80, 60, 20, 0x0000),
+ CAM_FUNCDATA_JUMP1(-40, 150, 180, 12, 80, 60, 20,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon1ModeClimbData[] = {
- CAM_FUNCDATA_JUMP2(-40, 150, 150, 20, 5, 5, 60, 40, 0x0000),
+ CAM_FUNCDATA_JUMP2(-40, 150, 150, 20, 5, 5, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon1ModeClimbZData[] = {
- CAM_FUNCDATA_JUMP2(-40, 150, 150, 20, 999, 5, 60, 40, 0x2006),
+ CAM_FUNCDATA_JUMP2(-40, 150, 150, 20, 999, 5, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, JUMP2_FLAG_2 | JUMP2_FLAG_1)),
};
CameraModeValue sSetDungeon1ModeChargeData[] = {
- CAM_FUNCDATA_BATT4(-40, 200, 50, 2, 80, 20, 0xF000),
+ CAM_FUNCDATA_BATT4(-40, 200, 50, 2, 80, 20, CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon1ModeHangData[] = {
- CAM_FUNCDATA_UNIQ1(-80, 150, 150, 40, 60, 10, 0x0000),
+ CAM_FUNCDATA_UNIQ1(-80, 150, 150, 40, 60, 10, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon1ModeHangZData[] = {
- CAM_FUNCDATA_UNIQ1(-120, 150, 150, 70, 45, 10, 0x2000),
+ CAM_FUNCDATA_UNIQ1(-120, 150, 150, 70, 45, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon1ModeStillData[] = {
- CAM_FUNCDATA_NORM1(-40, 150, 150, 0, 100, 5, 100, 60, 5, 0xF003),
+ CAM_FUNCDATA_NORM1(
+ -40, 150, 150, 0, 100, 5, 100, 60, 5,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetDungeon1ModePushPullData[] = {
- CAM_FUNCDATA_PARA1(-40, 180, 25, 0, 5, 5, 60, 50, 0x206A, -20, 30),
+ CAM_FUNCDATA_PARA1(-40, 180, 25, 0, 5, 5, 60, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL,
+ PARALLEL1_FLAG_6 | PARALLEL1_FLAG_5 | PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1),
+ -20, 30),
};
/**
@@ -468,22 +530,28 @@ CameraModeValue sSetDungeon1ModePushPullData[] = {
*/
CameraModeValue sSetNormal3ModeNormalData[] = {
- CAM_FUNCDATA_JUMP3(-20, 280, 300, 20, 15, 5, 40, 60, 100, 0x0004),
+ CAM_FUNCDATA_JUMP3(-20, 280, 300, 20, 15, 5, 40, 60, 100,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_2)),
};
CameraModeValue sSetNormal3ModeTargetData[] = {
- CAM_FUNCDATA_PARA1(-50, 250, 70, 0, 15, 5, 60, 100, 0x200A, -50, 20),
+ CAM_FUNCDATA_PARA1(
+ -50, 250, 70, 0, 15, 5, 60, 100,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), -50,
+ 20),
};
CameraModeValue sSetNormal3ModeTalkData[] = {
- CAM_FUNCDATA_KEEP3(-30, 70, 200, 40, 10, 10, 20, 70, 45, 10, 10, 0x3500),
+ CAM_FUNCDATA_KEEP3(-30, 70, 200, 40, 10, 10, 20, 70, 45, 10, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, 0)),
};
/*
* These values are for when the eye is >= OREG(45) units below the surface of the water.
*/
CameraModeValue sSetNormal3ModeBoomerangData[] = {
- CAM_FUNCDATA_JUMP3(-40, 150, 250, -5, 18, 5, 60, 60, 40, 0x0005),
+ CAM_FUNCDATA_JUMP3(-40, 150, 250, -5, 18, 5, 60, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_2 | JUMP3_FLAG_0)),
};
/**
@@ -493,23 +561,30 @@ CameraModeValue sSetNormal3ModeBoomerangData[] = {
*/
CameraModeValue sSetHorseModeNormalData[] = {
- CAM_FUNCDATA_NORM3(-50, 220, 250, 10, 16, 20, 60, 100, 0x0600),
+ CAM_FUNCDATA_NORM3(-50, 220, 250, 10, 16, 20, 60, 100,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_FORCE, 0)),
};
CameraModeValue sSetHorseModeTargetData[] = {
- CAM_FUNCDATA_NORM3(-40, 180, 220, -2, 12, 100, 45, 100, 0x2600),
+ CAM_FUNCDATA_NORM3(-40, 180, 220, -2, 12, 100, 45, 100,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_FORCE, 0)),
};
CameraModeValue sSetHorseModeBowArrowData[] = {
- CAM_FUNCDATA_SUBJ3(-7, 14, 100, 10, 0, -30, -5, 40, 0x2600),
+ CAM_FUNCDATA_SUBJ3(-7, 14, 100, 10, 0, -30, -5, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_FORCE, 0)),
};
CameraModeValue sSetHorseModeFollowTargetData[] = {
- CAM_FUNCDATA_KEEP1(-60, 180, 220, 25, 45, -5, 15, 15, 45, 50, 0x2601, -60, 20),
+ CAM_FUNCDATA_KEEP1(
+ -60, 180, 220, 25, 45, -5, 15, 15, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_FORCE, KEEPON1_FLAG_0), -60,
+ 20),
};
CameraModeValue sSetHorseModeTalkData[] = {
- CAM_FUNCDATA_KEEP3(-60, 140, 200, 40, 10, 0, 5, 70, 45, 50, 10, 0x3500),
+ CAM_FUNCDATA_KEEP3(-60, 140, 200, 40, 10, 0, 5, 70, 45, 50, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, 0)),
};
/**
@@ -519,11 +594,13 @@ CameraModeValue sSetHorseModeTalkData[] = {
*/
CameraModeValue sSetBossGohmaModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 150, 250, 0, 15, 5, 40, 60, 60, 0x0001),
+ CAM_FUNCDATA_NORM1(-20, 150, 250, 0, 15, 5, 40, 60, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_0)),
};
CameraModeValue sSetBossGohmaModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-30, 150, 10, 40, -10, 0, 25, 60, 40, 0x2002, -50, 20),
+ CAM_FUNCDATA_BATT1(-30, 150, 10, 40, -10, 0, 25, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -50, 20),
};
/**
@@ -533,11 +610,14 @@ CameraModeValue sSetBossGohmaModeBattleData[] = {
*/
CameraModeValue sSetBossDodongoModeNormalData[] = {
- CAM_FUNCDATA_NORM1(0, 150, 300, 0, 12, 5, 70, 70, 40, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ 0, 150, 300, 0, 12, 5, 70, 70, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetBossDodongoModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-20, 160, 10, 60, -5, 0, 25, 70, 50, 0x2002, -40, 20),
+ CAM_FUNCDATA_BATT1(-20, 160, 10, 60, -5, 0, 25, 70, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -40, 20),
};
/**
@@ -547,11 +627,14 @@ CameraModeValue sSetBossDodongoModeBattleData[] = {
*/
CameraModeValue sSetBossBarinadeModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 150, 300, -5, 15, 5, 40, 70, 70, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ -20, 150, 300, -5, 15, 5, 40, 70, 70,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetBossBarinadeModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-30, 125, 10, 10, 0, 0, 50, 60, 50, 0x2002, -50, 20),
+ CAM_FUNCDATA_BATT1(-30, 125, 10, 10, 0, 0, 50, 60, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -50, 20),
};
/**
@@ -561,11 +644,14 @@ CameraModeValue sSetBossBarinadeModeBattleData[] = {
*/
CameraModeValue sSetBossPhantomGanonModeNormalData[] = {
- CAM_FUNCDATA_NORM1(10, 150, 250, 0, 15, 15, 40, 60, 100, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ 10, 150, 250, 0, 15, 15, 40, 60, 100,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetBossPhantomGanonModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-20, 200, 45, 40, 5, -5, 35, 60, 100, 0x2002, -40, 60),
+ CAM_FUNCDATA_BATT1(-20, 200, 45, 40, 5, -5, 35, 60, 100,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -40, 60),
};
/**
@@ -575,11 +661,14 @@ CameraModeValue sSetBossPhantomGanonModeBattleData[] = {
*/
CameraModeValue sSetBossVolvagiaModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 500, 500, 10, 16, 10, 40, 60, 80, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ -20, 500, 500, 10, 16, 10, 40, 60, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetBossVolvagiaModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-20, 200, 20, 60, 0, 10, 15, 45, 50, 0x2002, -40, 20),
+ CAM_FUNCDATA_BATT1(-20, 200, 20, 60, 0, 10, 15, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -40, 20),
};
/**
@@ -589,15 +678,21 @@ CameraModeValue sSetBossVolvagiaModeBattleData[] = {
*/
CameraModeValue sSetBossBongoModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 500, 500, 10, 20, 10, 40, 60, 80, 0x0083),
+ CAM_FUNCDATA_NORM1(-20, 500, 500, 10, 20, 10, 40, 60, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL,
+ NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetBossBongoModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-20, 200, 20, 60, 0, 10, 15, 45, 50, 0x2082, -40, 20),
+ CAM_FUNCDATA_BATT1(
+ -20, 200, 20, 60, 0, 10, 15, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_7 | BATTLE1_FLAG_1), -40, 20),
};
CameraModeValue sSetBossBongoModeJumpData[] = {
- CAM_FUNCDATA_NORM1(-20, 500, 500, 10, 20, 10, 80, 60, 80, 0x0083),
+ CAM_FUNCDATA_NORM1(-20, 500, 500, 10, 20, 10, 80, 60, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL,
+ NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
/**
@@ -607,11 +702,14 @@ CameraModeValue sSetBossBongoModeJumpData[] = {
*/
CameraModeValue sSetBossMorphaModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 100, 150, -10, 15, 10, 40, 80, 60, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ -20, 100, 150, -10, 15, 10, 40, 80, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetBossMorphaModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-20, 200, 10, 80, -10, 10, 25, 70, 40, 0x2002, -40, 20),
+ CAM_FUNCDATA_BATT1(-20, 200, 10, 80, -10, 10, 25, 70, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -40, 20),
};
/**
@@ -621,15 +719,20 @@ CameraModeValue sSetBossMorphaModeBattleData[] = {
*/
CameraModeValue sSetBossTwinrovaPlatformModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 150, 300, 0, 20, 10, 40, 60, 80, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ -20, 150, 300, 0, 20, 10, 40, 60, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetBossTwinrovaModeBattleData[] = {
- CAM_FUNCDATA_BATT1(0, 400, 0, 60, -10, 5, 25, 45, 40, 0x2002, -20, 20),
+ CAM_FUNCDATA_BATT1(0, 400, 0, 60, -10, 5, 25, 45, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -20, 20),
};
CameraModeValue sSetBossTwinrovaFloorModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-10, 150, 200, -10, 12, 10, 40, 60, 50, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ -10, 150, 200, -10, 12, 10, 40, 60, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
/**
@@ -639,11 +742,12 @@ CameraModeValue sSetBossTwinrovaFloorModeNormalData[] = {
*/
CameraModeValue sSetBossGanondorfModeNormalData[] = {
- CAM_FUNCDATA_NORM1(40, 330, 330, -5, 15, 15, 40, 60, 100, 0x0000),
+ CAM_FUNCDATA_NORM1(40, 330, 330, -5, 15, 15, 40, 60, 100,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetBossGanondorfModeChargeData[] = {
- CAM_FUNCDATA_BATT4(-40, 250, 0, 2, 80, 20, 0xF000),
+ CAM_FUNCDATA_BATT4(-40, 250, 0, 2, 80, 20, CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, 0)),
};
/**
@@ -653,11 +757,14 @@ CameraModeValue sSetBossGanondorfModeChargeData[] = {
*/
CameraModeValue sSetBossGanonModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 500, 500, 10, 20, 10, 40, 60, 80, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ -20, 500, 500, 10, 20, 10, 40, 60, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetBossGanonModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-20, 180, 20, 60, 0, 10, 25, 45, 50, 0x2002, -40, 20),
+ CAM_FUNCDATA_BATT1(-20, 180, 20, 60, 0, 10, 25, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -40, 20),
};
/**
@@ -667,11 +774,13 @@ CameraModeValue sSetBossGanonModeBattleData[] = {
*/
CameraModeValue sSetTowerClimbModeNormalData[] = {
- CAM_FUNCDATA_NORM2(0, 120, 280, 60, 8, 40, 60, 50, 0x0000),
+ CAM_FUNCDATA_NORM2(0, 120, 280, 60, 8, 40, 60, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetTowerClimbModeJumpData[] = {
- CAM_FUNCDATA_NORM2(0, 120, 280, 60, 8, 40, 60, 50, 0x0080),
+ CAM_FUNCDATA_NORM2(0, 120, 280, 60, 8, 40, 60, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL2_FLAG_7)),
};
/**
@@ -681,11 +790,13 @@ CameraModeValue sSetTowerClimbModeJumpData[] = {
*/
CameraModeValue sSetTowerUnusedModeNormalData[] = {
- CAM_FUNCDATA_NORM2(0, 270, 300, 120, 8, 60, 60, 100, 0x0000),
+ CAM_FUNCDATA_NORM2(0, 270, 300, 120, 8, 60, 60, 100,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetTowerUnusedModeJumpData[] = {
- CAM_FUNCDATA_NORM2(0, 270, 300, 120, 6, 60, 60, 100, 0x0000),
+ CAM_FUNCDATA_NORM2(0, 270, 300, 120, 6, 60, 60, 100,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
/**
@@ -695,15 +806,16 @@ CameraModeValue sSetTowerUnusedModeJumpData[] = {
*/
CameraModeValue sSetMarketBalconyModeNormalData[] = {
- CAM_FUNCDATA_FIXD1(-40, 100, 60, 0x0000),
+ CAM_FUNCDATA_FIXD1(-40, 100, 60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetMarketBalconyModeFollowTargetData[] = {
- CAM_FUNCDATA_FIXD1(-40, 100, 60, 0x2000),
+ CAM_FUNCDATA_FIXD1(-40, 100, 60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetMarketBalconyModeTalkData[] = {
- CAM_FUNCDATA_FIXD1(-40, 100, 60, 0x3500),
+ CAM_FUNCDATA_FIXD1(-40, 100, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, 0)),
};
/**
@@ -713,7 +825,7 @@ CameraModeValue sSetMarketBalconyModeTalkData[] = {
*/
CameraModeValue sSetChuBowlingModeNormalData[] = {
- CAM_FUNCDATA_FIXD1(-40, 25, 60, 0x0000),
+ CAM_FUNCDATA_FIXD1(-40, 25, 60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
/**
@@ -723,7 +835,7 @@ CameraModeValue sSetChuBowlingModeNormalData[] = {
*/
CameraModeValue sSetPivotCrawlspaceModeNormalData[] = {
- CAM_FUNCDATA_FIXD2(-40, 50, 80, 60, 0x0001),
+ CAM_FUNCDATA_FIXD2(-40, 50, 80, 60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, FIXED2_FLAG_0)),
};
/**
@@ -733,7 +845,7 @@ CameraModeValue sSetPivotCrawlspaceModeNormalData[] = {
*/
CameraModeValue sSetPivotShopBrowsingModeNormalData[] = {
- CAM_FUNCDATA_DATA4(-40, 60, 0x3F00),
+ CAM_FUNCDATA_DATA4(-40, 60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_IGNORE, 0)),
};
/**
@@ -743,7 +855,7 @@ CameraModeValue sSetPivotShopBrowsingModeNormalData[] = {
*/
CameraModeValue sSetPivotInFrontAndFromSideModeNormalData[] = {
- CAM_FUNCDATA_FIXD4(-40, 50, 80, 60, 0x0004),
+ CAM_FUNCDATA_FIXD4(-40, 50, 80, 60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, FIXED4_FLAG_2)),
};
/**
@@ -753,7 +865,7 @@ CameraModeValue sSetPivotInFrontAndFromSideModeNormalData[] = {
*/
CameraModeValue sDataOnlyNullFlags[] = {
- CAM_FUNCDATA_FLAGS(0x0000),
+ CAM_FUNCDATA_INTERFACE_FIELD(CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
/**
@@ -763,7 +875,7 @@ CameraModeValue sDataOnlyNullFlags[] = {
*/
CameraModeValue sSetPrerendFixedModeFollowTargetData[] = {
- CAM_FUNCDATA_FLAGS(0x2000),
+ CAM_FUNCDATA_INTERFACE_FIELD(CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
/**
@@ -773,15 +885,15 @@ CameraModeValue sSetPrerendFixedModeFollowTargetData[] = {
*/
CameraModeValue sSetPrerendPivotModeNormalData[] = {
- CAM_FUNCDATA_UNIQ7(60, 0x0000),
+ CAM_FUNCDATA_UNIQ7(60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetPrerendPivotModeFollowTargetData[] = {
- CAM_FUNCDATA_UNIQ7(60, 0x2000),
+ CAM_FUNCDATA_UNIQ7(60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetPrerendPivotModeTalkData[] = {
- CAM_FUNCDATA_KEEP0(30, 0, 4, 0x3500),
+ CAM_FUNCDATA_KEEP0(30, 0, 4, CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, 0)),
};
/**
@@ -791,7 +903,7 @@ CameraModeValue sSetPrerendPivotModeTalkData[] = {
*/
CameraModeValue sSetDoor0ModeNormalData[] = {
- CAM_FUNCDATA_UNIQ3(-40, 60, 0x3200),
+ CAM_FUNCDATA_UNIQ3(-40, 60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, 0)),
};
/**
@@ -801,11 +913,14 @@ CameraModeValue sSetDoor0ModeNormalData[] = {
*/
CameraModeValue sSetDoorCModeNormalData[] = {
- CAM_FUNCDATA_SPEC9(-5, 60, 0x3202),
+ CAM_FUNCDATA_SPEC9(-5, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, SPECIAL9_FLAG_1)),
};
CameraModeValue sSetDoorCModeTargetData[] = {
- CAM_FUNCDATA_SPEC9(-5, 60, 0x320A),
+ CAM_FUNCDATA_SPEC9(
+ -5, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, SPECIAL9_FLAG_3 | SPECIAL9_FLAG_1)),
};
/**
@@ -816,7 +931,8 @@ CameraModeValue sSetDoorCModeTargetData[] = {
// Camera_Subj4 only reads one setting which is used for flags
CameraModeValue sSetCrawlspaceModeNormalData[] = {
- CAM_FUNCDATA_SUBJ4(0x0000, 2, 30, 10, 45, 0x3200),
+ CAM_FUNCDATA_SUBJ4(CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0), 2, 30, 10, 45,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, 0)),
};
/**
@@ -826,7 +942,7 @@ CameraModeValue sSetCrawlspaceModeNormalData[] = {
*/
CameraModeValue sSetStart1ModeNormalData[] = {
- CAM_FUNCDATA_FLAGS(0x0001),
+ CAM_FUNCDATA_INTERFACE_FIELD(CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, UNIQUE0_FLAG_0)),
};
/**
@@ -836,7 +952,7 @@ CameraModeValue sSetStart1ModeNormalData[] = {
*/
CameraModeValue sSetFree0ModeNormalData[] = {
- CAM_FUNCDATA_FLAGS(0xFF00),
+ CAM_FUNCDATA_INTERFACE_FIELD(CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, 0)),
};
/**
@@ -846,7 +962,7 @@ CameraModeValue sSetFree0ModeNormalData[] = {
*/
CameraModeValue sSetFree1ModeNormalData[] = {
- CAM_FUNCDATA_FLAGS(0xFF01),
+ CAM_FUNCDATA_INTERFACE_FIELD(CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, UNIQUE6_FLAG_0)),
};
/**
@@ -856,7 +972,7 @@ CameraModeValue sSetFree1ModeNormalData[] = {
*/
CameraModeValue sSetPivotCornerModeNormalData[] = {
- CAM_FUNCDATA_FIXD2(-40, 100, 80, 60, 0x0000),
+ CAM_FUNCDATA_FIXD2(-40, 100, 80, 60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
/**
@@ -866,11 +982,11 @@ CameraModeValue sSetPivotCornerModeNormalData[] = {
*/
CameraModeValue sSetPivotWaterSurfaceModeNormalData[] = {
- CAM_FUNCDATA_UNIQ2(-40, 60, 60, 0x0002),
+ CAM_FUNCDATA_UNIQ2(-40, 60, 60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, UNIQUE2_FLAG_1)),
};
CameraModeValue sSetPivotWaterSurfaceModeTargetData[] = {
- CAM_FUNCDATA_UNIQ2(-30, 45, 100, 0x2001),
+ CAM_FUNCDATA_UNIQ2(-30, 45, 100, CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, UNIQUE2_FLAG_0)),
};
/**
@@ -879,8 +995,8 @@ CameraModeValue sSetPivotWaterSurfaceModeTargetData[] = {
*=====================================================================
*/
-CameraModeValue sDataOnlyInterfaceFlags[] = {
- CAM_FUNCDATA_FLAGS(0x3200),
+CameraModeValue sDataOnlyInterfaceField[] = {
+ CAM_FUNCDATA_INTERFACE_FIELD(CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, 0)),
};
/**
@@ -890,11 +1006,14 @@ CameraModeValue sDataOnlyInterfaceFlags[] = {
*/
CameraModeValue sSetForestBirdsEyeModeNormalData[] = {
- CAM_FUNCDATA_PARA1(-50, 450, 40, 180, 5, 5, 70, 30, 0x000C, -50, 20),
+ CAM_FUNCDATA_PARA1(
+ -50, 450, 40, 180, 5, 5, 70, 30,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_2), -50, 20),
};
CameraModeValue sSetForestBirdsEyeModeTalkData[] = {
- CAM_FUNCDATA_FLAGS(0x3501),
+ CAM_FUNCDATA_INTERFACE_FIELD(
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, PARALLEL3_FLAG_0)),
};
/**
@@ -905,7 +1024,7 @@ CameraModeValue sSetForestBirdsEyeModeTalkData[] = {
// Also set to but unused by function Demo4
CameraModeValue sSetSlowChestCsModeNormalData[] = {
- CAM_FUNCDATA_DEMO3(60, 30, 0x3200),
+ CAM_FUNCDATA_DEMO3(60, 30, CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, 0)),
};
/**
@@ -915,7 +1034,8 @@ CameraModeValue sSetSlowChestCsModeNormalData[] = {
*/
CameraModeValue sSetCs3ModeNormalData[] = {
- CAM_FUNCDATA_FLAGS(0x3212),
+ CAM_FUNCDATA_INTERFACE_FIELD(
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, DEMO9_FLAG_4 | DEMO9_FLAG_1)),
};
/**
@@ -925,27 +1045,34 @@ CameraModeValue sSetCs3ModeNormalData[] = {
*/
CameraModeValue sSetBeanGenericModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-50, 300, 300, 50, 20, 10, 50, 70, 40, 0x0002),
+ CAM_FUNCDATA_NORM1(-50, 300, 300, 50, 20, 10, 50, 70, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1)),
};
CameraModeValue sSetBeanGenericModeTargetData[] = {
- CAM_FUNCDATA_PARA1(-50, 300, 10, 0, 5, 5, 45, 50, 0x200A, -40, 20),
+ CAM_FUNCDATA_PARA1(
+ -50, 300, 10, 0, 5, 5, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), -40,
+ 20),
};
CameraModeValue sSetBeanGenericModeJumpData[] = {
- CAM_FUNCDATA_JUMP1(-50, 300, 300, 12, 35, 60, 40, 0x0000),
+ CAM_FUNCDATA_JUMP1(-50, 300, 300, 12, 35, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetBeanGenericModeHangData[] = {
- CAM_FUNCDATA_UNIQ1(-80, 300, 300, 60, 70, 30, 0x0000),
+ CAM_FUNCDATA_UNIQ1(-80, 300, 300, 60, 70, 30, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetBeanGenericModeHangZData[] = {
- CAM_FUNCDATA_UNIQ1(-120, 300, 300, 70, 50, 30, 0x2000),
+ CAM_FUNCDATA_UNIQ1(-120, 300, 300, 70, 50, 30,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetBeanGenericModeStillData[] = {
- CAM_FUNCDATA_NORM1(-20, 300, 350, 50, 100, 10, 100, 70, 30, 0xF002),
+ CAM_FUNCDATA_NORM1(-20, 300, 350, 50, 100, 10, 100, 70, 30,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1)),
};
/**
@@ -955,27 +1082,34 @@ CameraModeValue sSetBeanGenericModeStillData[] = {
*/
CameraModeValue sSetBeanLostWoodsModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-50, 200, 200, 20, 16, 10, 50, 60, 50, 0x0002),
+ CAM_FUNCDATA_NORM1(-50, 200, 200, 20, 16, 10, 50, 60, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1)),
};
CameraModeValue sSetBeanLostWoodsModeTargetData[] = {
- CAM_FUNCDATA_PARA1(-50, 200, 40, 0, 5, 5, 45, 50, 0x200A, -40, 20),
+ CAM_FUNCDATA_PARA1(
+ -50, 200, 40, 0, 5, 5, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), -40,
+ 20),
};
CameraModeValue sSetBeanLostWoodsModeJumpData[] = {
- CAM_FUNCDATA_JUMP1(-50, 150, 250, 12, 35, 60, 40, 0x0000),
+ CAM_FUNCDATA_JUMP1(-50, 150, 250, 12, 35, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetBeanLostWoodsModeHangData[] = {
- CAM_FUNCDATA_UNIQ1(-80, 200, 200, 40, 60, 30, 0x0000),
+ CAM_FUNCDATA_UNIQ1(-80, 200, 200, 40, 60, 30, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetBeanLostWoodsModeHangZData[] = {
- CAM_FUNCDATA_UNIQ1(-120, 200, 200, 60, 50, 30, 0x2000),
+ CAM_FUNCDATA_UNIQ1(-120, 200, 200, 60, 50, 30,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetBeanLostWoodsModeStillData[] = {
- CAM_FUNCDATA_NORM1(-20, 200, 250, 20, 100, 10, 100, 60, 30, 0xF002),
+ CAM_FUNCDATA_NORM1(-20, 200, 250, 20, 100, 10, 100, 60, 30,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1)),
};
/**
@@ -985,7 +1119,9 @@ CameraModeValue sSetBeanLostWoodsModeStillData[] = {
*/
CameraModeValue sSetSceneUnusedModeNormalData[] = {
- CAM_FUNCDATA_SPEC9(-30, 60, 0x010A),
+ CAM_FUNCDATA_SPEC9(
+ -30, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_NOTHING, SPECIAL9_FLAG_3 | SPECIAL9_FLAG_1)),
};
/**
@@ -995,7 +1131,8 @@ CameraModeValue sSetSceneUnusedModeNormalData[] = {
*/
CameraModeValue sSetSceneTransitionModeNormalData[] = {
- CAM_FUNCDATA_UNIQ2(-20, 150, 60, 0x0210),
+ CAM_FUNCDATA_UNIQ2(-20, 150, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_NOTHING_ALT, UNIQUE2_FLAG_4)),
};
/**
@@ -1005,15 +1142,20 @@ CameraModeValue sSetSceneTransitionModeNormalData[] = {
*/
CameraModeValue sSetBigOctoModeNormalData[] = {
- CAM_FUNCDATA_NORM1(0, 400, 500, 35, 14, 5, 20, 60, 40, 0x0012),
+ CAM_FUNCDATA_NORM1(
+ 0, 400, 500, 35, 14, 5, 20, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_4 | NORMAL1_FLAG_1)),
};
CameraModeValue sSetBigOctoModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-20, 250, 5, 10, 30, 20, 25, 45, 60, 0x2002, -40, 25),
+ CAM_FUNCDATA_BATT1(-20, 250, 5, 10, 30, 20, 25, 45, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -40, 25),
};
CameraModeValue sSetBigOctoModeStillData[] = {
- CAM_FUNCDATA_NORM1(0, 300, 500, 60, 8, 5, 60, 60, 30, 0x0012),
+ CAM_FUNCDATA_NORM1(
+ 0, 300, 500, 60, 8, 5, 60, 60, 30,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_4 | NORMAL1_FLAG_1)),
};
/**
@@ -1023,19 +1165,29 @@ CameraModeValue sSetBigOctoModeStillData[] = {
*/
CameraModeValue sSetMeadowBirdsEyeModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 500, 500, 80, 20, 10, 70, 70, 80, 0x0012),
+ CAM_FUNCDATA_NORM1(
+ -20, 500, 500, 80, 20, 10, 70, 70, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_4 | NORMAL1_FLAG_1)),
};
CameraModeValue sSetMeadowBirdsEyeModeTargetData[] = {
- CAM_FUNCDATA_PARA1(-20, 500, 80, 0, 5, 5, 70, 80, 0x201A, -40, 40),
+ CAM_FUNCDATA_PARA1(-20, 500, 80, 0, 5, 5, 70, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL,
+ PARALLEL1_FLAG_4 | PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1),
+ -40, 40),
};
CameraModeValue sSetMeadowBirdsEyeModeBattleData[] = {
- CAM_FUNCDATA_PARA1(-20, 500, 80, 0, 5, 5, 60, 80, 0x201A, -40, 40),
+ CAM_FUNCDATA_PARA1(-20, 500, 80, 0, 5, 5, 60, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL,
+ PARALLEL1_FLAG_4 | PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1),
+ -40, 40),
};
CameraModeValue sSetMeadowBirdsEyeModeClimbData[] = {
- CAM_FUNCDATA_NORM1(-20, 500, 500, 80, 20, 10, 80, 60, 20, 0x0012),
+ CAM_FUNCDATA_NORM1(
+ -20, 500, 500, 80, 20, 10, 80, 60, 20,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_4 | NORMAL1_FLAG_1)),
};
/**
@@ -1045,19 +1197,29 @@ CameraModeValue sSetMeadowBirdsEyeModeClimbData[] = {
*/
CameraModeValue sSetMeadowUnusedModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 750, 750, 80, 20, 10, 70, 70, 80, 0x0012),
+ CAM_FUNCDATA_NORM1(
+ -20, 750, 750, 80, 20, 10, 70, 70, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_4 | NORMAL1_FLAG_1)),
};
CameraModeValue sSetMeadowUnusedModeTargetData[] = {
- CAM_FUNCDATA_PARA1(-20, 750, 80, 0, 5, 5, 70, 80, 0x201A, -40, 40),
+ CAM_FUNCDATA_PARA1(-20, 750, 80, 0, 5, 5, 70, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL,
+ PARALLEL1_FLAG_4 | PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1),
+ -40, 40),
};
CameraModeValue sSetMeadowUnusedModeBattleData[] = {
- CAM_FUNCDATA_PARA1(-20, 750, 80, 0, 5, 5, 70, 80, 0x200A, -40, 40),
+ CAM_FUNCDATA_PARA1(
+ -20, 750, 80, 0, 5, 5, 70, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), -40,
+ 40),
};
CameraModeValue sSetMeadowUnusedModeClimbData[] = {
- CAM_FUNCDATA_NORM1(-20, 750, 750, 80, 20, 10, 80, 70, 20, 0x0012),
+ CAM_FUNCDATA_NORM1(
+ -20, 750, 750, 80, 20, 10, 80, 70, 20,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_4 | NORMAL1_FLAG_1)),
};
/**
@@ -1067,19 +1229,27 @@ CameraModeValue sSetMeadowUnusedModeClimbData[] = {
*/
CameraModeValue sSetFireBirdsEyeModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 500, 500, 80, 20, 10, 70, 70, 80, 0x0002),
+ CAM_FUNCDATA_NORM1(-20, 500, 500, 80, 20, 10, 70, 70, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1)),
};
CameraModeValue sSetFireBirdsEyeModeTargetData[] = {
- CAM_FUNCDATA_PARA1(-20, 500, 80, 0, 5, 5, 70, 80, 0x200A, -40, 40),
+ CAM_FUNCDATA_PARA1(
+ -20, 500, 80, 0, 5, 5, 70, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), -40,
+ 40),
};
CameraModeValue sSetFireBirdsEyeModeBattleData[] = {
- CAM_FUNCDATA_PARA1(-20, 500, 80, 0, 5, 5, 60, 80, 0x200A, -40, 40),
+ CAM_FUNCDATA_PARA1(
+ -20, 500, 80, 0, 5, 5, 60, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), -40,
+ 40),
};
CameraModeValue sSetFireBirdsEyeModeClimbData[] = {
- CAM_FUNCDATA_NORM1(-20, 500, 500, 80, 20, 10, 80, 60, 20, 0x0002),
+ CAM_FUNCDATA_NORM1(-20, 500, 500, 80, 20, 10, 80, 60, 20,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1)),
};
/**
@@ -1089,7 +1259,9 @@ CameraModeValue sSetFireBirdsEyeModeClimbData[] = {
*/
CameraModeValue sSetTurnAroundModeNormalData[] = {
- CAM_FUNCDATA_KEEP4(-30, 120, -10, 170, 0, 60, 0x2502, 25, 6),
+ CAM_FUNCDATA_KEEP4(
+ -30, 120, -10, 170, 0, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_1), 25, 6),
};
/**
@@ -1099,7 +1271,7 @@ CameraModeValue sSetTurnAroundModeNormalData[] = {
*/
CameraModeValue sSetPivotVerticalModeNormalData[] = {
- CAM_FUNCDATA_SPEC0(20, 0x3200),
+ CAM_FUNCDATA_SPEC0(20, CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, 0)),
};
/**
@@ -1109,7 +1281,8 @@ CameraModeValue sSetPivotVerticalModeNormalData[] = {
*/
CameraModeValue sSetNormal2and4ModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 200, 300, 10, 12, 10, 35, 60, 60, 0x0002),
+ CAM_FUNCDATA_NORM1(-20, 200, 300, 10, 12, 10, 35, 60, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1)),
};
/**
@@ -1119,39 +1292,50 @@ CameraModeValue sSetNormal2and4ModeNormalData[] = {
*/
CameraModeValue sSetFishingModeNormalData[] = {
- CAM_FUNCDATA_NORM1(0, 200, 300, 20, 12, 10, 35, 55, 60, 0x0F02),
+ CAM_FUNCDATA_NORM1(0, 200, 300, 20, 12, 10, 35, 55, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_IGNORE, NORMAL1_FLAG_1)),
};
CameraModeValue sSetFishingModeTargetData[] = {
- CAM_FUNCDATA_PARA1(-20, 250, 0, 0, 5, 5, 45, 50, 0x2F0A, -40, 20),
+ CAM_FUNCDATA_PARA1(
+ -20, 250, 0, 0, 5, 5, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), -40,
+ 20),
};
CameraModeValue sSetFishingModeFollowTargetData[] = {
- CAM_FUNCDATA_BATT1(-20, 250, 0, 80, 0, 0, 25, 55, 80, 0x2F02, -40, 25),
+ CAM_FUNCDATA_BATT1(-20, 250, 0, 80, 0, 0, 25, 55, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, BATTLE1_FLAG_1), -40, 25),
};
CameraModeValue sSetFishingModeTalkData[] = {
- CAM_FUNCDATA_KEEP3(-30, 70, 200, 40, 10, 0, 5, 70, 45, 50, 10, 0x3F20),
+ CAM_FUNCDATA_KEEP3(-30, 70, 200, 40, 10, 0, 5, 70, 45, 50, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_IGNORE, KEEPON3_FLAG_5)),
};
CameraModeValue sSetFishingModeFirstPersonData[] = {
- CAM_FUNCDATA_SUBJ3(0, 5, 50, 10, 0, 0, 0, 45, 0x0F00),
+ CAM_FUNCDATA_SUBJ3(0, 5, 50, 10, 0, 0, 0, 45,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_IGNORE, 0)),
};
CameraModeValue sSetFishingModeJumpData[] = {
- CAM_FUNCDATA_JUMP1(-20, 200, 300, 12, 35, 60, 40, 0x0F00),
+ CAM_FUNCDATA_JUMP1(-20, 200, 300, 12, 35, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_IGNORE, 0)),
};
CameraModeValue sSetFishingModeFreeFallData[] = {
- CAM_FUNCDATA_JUMP1(-20, 200, 300, 15, 80, 60, 20, 0x0F00),
+ CAM_FUNCDATA_JUMP1(-20, 200, 300, 15, 80, 60, 20,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_IGNORE, 0)),
};
CameraModeValue sSetFishingModeHangData[] = {
- CAM_FUNCDATA_UNIQ1(-80, 200, 300, 40, 60, 10, 0x0F00),
+ CAM_FUNCDATA_UNIQ1(-80, 200, 300, 40, 60, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_IGNORE, 0)),
};
CameraModeValue sSetFishingModeHangZData[] = {
- CAM_FUNCDATA_UNIQ1(-120, 300, 300, 70, 45, 10, 0x2F00),
+ CAM_FUNCDATA_UNIQ1(-120, 300, 300, 70, 45, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, 0)),
};
/**
@@ -1161,7 +1345,7 @@ CameraModeValue sSetFishingModeHangZData[] = {
*/
CameraModeValue sSetCsCModeNormalData[] = {
- CAM_FUNCDATA_FLAGS(0x3F00),
+ CAM_FUNCDATA_INTERFACE_FIELD(CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_IGNORE, 0)),
};
/**
@@ -1171,11 +1355,14 @@ CameraModeValue sSetCsCModeNormalData[] = {
*/
CameraModeValue sSetJabuTentacleModeNormalData[] = {
- CAM_FUNCDATA_NORM1_ALT(30, 200, 300, -20, 15, 5, 50, 70, 70, 0x0003),
+ CAM_FUNCDATA_NORM1_ALT(
+ 30, 200, 300, -20, 15, 5, 50, 70, 70,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetJabuTentacleModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-30, 160, 10, 10, 0, 0, 70, 60, 40, 0x2002, -50, 20),
+ CAM_FUNCDATA_BATT1(-30, 160, 10, 10, 0, 0, 70, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -50, 20),
};
/**
@@ -1185,47 +1372,63 @@ CameraModeValue sSetJabuTentacleModeBattleData[] = {
*/
CameraModeValue sSetDungeon2ModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-20, 350, 350, 20, 15, 5, 30, 60, 60, 0x0003),
+ CAM_FUNCDATA_NORM1(
+ -20, 350, 350, 20, 15, 5, 30, 60, 60,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetDungeon2ModeTargetData[] = {
- CAM_FUNCDATA_PARA1(-20, 200, 0, 0, 5, 5, 45, 50, 0x200A, -40, 20),
+ CAM_FUNCDATA_PARA1(
+ -20, 200, 0, 0, 5, 5, 45, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), -40,
+ 20),
};
CameraModeValue sSetDungeon2ModeBattleData[] = {
- CAM_FUNCDATA_BATT1(-20, 180, 10, 80, -10, 10, 25, 45, 80, 0x2002, -40, 25),
+ CAM_FUNCDATA_BATT1(-20, 180, 10, 80, -10, 10, 25, 45, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), -40, 25),
};
CameraModeValue sSetDungeon2ModeJumpData[] = {
- CAM_FUNCDATA_JUMP1(-20, 350, 350, 10, 50, 60, 40, 0x0000),
+ CAM_FUNCDATA_JUMP1(-20, 350, 350, 10, 50, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon2ModeFreeFallData[] = {
- CAM_FUNCDATA_JUMP1(-20, 350, 350, 15, 80, 60, 20, 0x0000),
+ CAM_FUNCDATA_JUMP1(-20, 350, 350, 15, 80, 60, 20,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon2ModeClimbData[] = {
- CAM_FUNCDATA_JUMP2(-40, 350, 350, 20, 5, 5, 60, 40, 0x0000),
+ CAM_FUNCDATA_JUMP2(-40, 350, 350, 20, 5, 5, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon2ModeClimbZData[] = {
- CAM_FUNCDATA_JUMP2(-40, 350, 350, 20, 999, 5, 60, 40, 0x2006),
+ CAM_FUNCDATA_JUMP2(-40, 350, 350, 20, 999, 5, 60, 40,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, JUMP2_FLAG_2 | JUMP2_FLAG_1)),
};
CameraModeValue sSetDungeon2ModeHangData[] = {
- CAM_FUNCDATA_UNIQ1(-50, 350, 350, 40, 60, 10, 0x0000),
+ CAM_FUNCDATA_UNIQ1(-50, 350, 350, 40, 60, 10, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon2ModeHangZData[] = {
- CAM_FUNCDATA_UNIQ1(-100, 350, 350, 70, 45, 10, 0x2000),
+ CAM_FUNCDATA_UNIQ1(-100, 350, 350, 70, 45, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
};
CameraModeValue sSetDungeon2ModeStillData[] = {
- CAM_FUNCDATA_NORM1(-10, 350, 350, 20, 100, 5, 100, 60, 5, 0xF003),
+ CAM_FUNCDATA_NORM1(
+ -10, 350, 350, 20, 100, 5, 100, 60, 5,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)),
};
CameraModeValue sSetDungeon2ModePushPullData[] = {
- CAM_FUNCDATA_PARA1(0, 280, 25, 0, 5, 5, 70, 30, 0x206A, -20, 30),
+ CAM_FUNCDATA_PARA1(0, 280, 25, 0, 5, 5, 70, 30,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL,
+ PARALLEL1_FLAG_6 | PARALLEL1_FLAG_5 | PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1),
+ -20, 30),
};
/**
@@ -1235,15 +1438,19 @@ CameraModeValue sSetDungeon2ModePushPullData[] = {
*/
CameraModeValue sSetDirectedYawModeNormalData[] = {
- CAM_FUNCDATA_NORM1(-10, 280, 320, -8, 20, 10, 80, 60, 80, 0x0002),
+ CAM_FUNCDATA_NORM1(-10, 280, 320, -8, 20, 10, 80, 60, 80,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1)),
};
CameraModeValue sSetDirectedYawModeFollowTargetData[] = {
- CAM_FUNCDATA_KEEP1(-20, 180, 200, 35, 45, 0, -5, 20, 50, 50, 0x2001, -50, 30),
+ CAM_FUNCDATA_KEEP1(-20, 180, 200, 35, 45, 0, -5, 20, 50, 50,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), -50, 30),
};
CameraModeValue sSetDirectedYawModeTalkData[] = {
- CAM_FUNCDATA_KEEP3(-80, 200, 250, 30, 10, -8, -8, 30, 50, 50, 10, 0x3520),
+ CAM_FUNCDATA_KEEP3(
+ -80, 200, 250, 30, 10, -8, -8, 30, 50, 50, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON3_FLAG_5)),
};
/**
@@ -1253,7 +1460,9 @@ CameraModeValue sSetDirectedYawModeTalkData[] = {
*/
CameraModeValue sNormal4ModeTalkData[] = {
- CAM_FUNCDATA_KEEP3(-30, 70, 200, 40, 10, 0, 5, 70, 45, 50, 10, 0x35A0),
+ CAM_FUNCDATA_KEEP3(-30, 70, 200, 40, 10, 0, 5, 70, 45, 50, 10,
+ CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE,
+ KEEPON3_FLAG_7 | KEEPON3_FLAG_5)),
};
/**
@@ -1808,11 +2017,11 @@ CameraMode sCamSetPivotDivingModes[] = {
};
CameraMode sCamSetCs0Modes[] = {
- CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO1, sDataOnlyInterfaceFlags), // CAM_MODE_NORMAL
+ CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO1, sDataOnlyInterfaceField), // CAM_MODE_NORMAL
};
CameraMode sCamSetCsTwistedHallwayModes[] = {
- CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO2, sDataOnlyInterfaceFlags), // CAM_MODE_NORMAL
+ CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO2, sDataOnlyInterfaceField), // CAM_MODE_NORMAL
};
CameraMode sCamSetForestBirdsEyeModes[] = {
@@ -1835,7 +2044,7 @@ CameraMode sCamSetCs3Modes[] = {
};
CameraMode sCamSetCsAttentionModes[] = {
- CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO5, sDataOnlyInterfaceFlags), // CAM_MODE_NORMAL
+ CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO5, sDataOnlyInterfaceField), // CAM_MODE_NORMAL
};
CameraMode sCamSetBeanGenericModes[] = {
@@ -1899,15 +2108,15 @@ CameraMode sCamSetElevatorPlatformModes[] = {
};
CameraMode sCamSetFireStaircaseModes[] = {
- CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPEC4, sDataOnlyInterfaceFlags), // CAM_MODE_NORMAL
+ CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPEC4, sDataOnlyInterfaceField), // CAM_MODE_NORMAL
};
CameraMode sCamSetForestUnusedModes[] = {
- CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ5, sDataOnlyInterfaceFlags), // CAM_MODE_NORMAL
+ CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ5, sDataOnlyInterfaceField), // CAM_MODE_NORMAL
};
CameraMode sCamSetForestDefeatPoeModes[] = {
- CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO6, sDataOnlyInterfaceFlags), // CAM_MODE_NORMAL
+ CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO6, sDataOnlyInterfaceField), // CAM_MODE_NORMAL
};
CameraMode sCamSetBigOctoModes[] = {
@@ -2348,10 +2557,10 @@ s32 gDbgCamEnabled = 0;
s32 sDbgModeIdx = -1;
s16 sNextUID = 0;
-s32 sCameraInterfaceFlags = 1;
-
-s32 sCameraInterfaceAlpha = 0x02;
+s32 sCameraInterfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 1);
+s32 sCameraHudVisibilityMode = HUD_VISIBILITY_NOTHING_ALT;
s32 sCameraLetterboxSize = 32;
+
s32 D_8011D3AC = -1;
s16 D_8011D3B0[] = {
diff --git a/src/code/z_demo.c b/src/code/z_demo.c
index a14535508..7193a034c 100644
--- a/src/code/z_demo.c
+++ b/src/code/z_demo.c
@@ -1430,7 +1430,7 @@ s32 Cutscene_Command_07(PlayState* play, CutsceneContext* csCtx, u8* cmd, u8 unu
Play_ChangeCameraStatus(play, csCtx->subCamId, CAM_STAT_ACTIVE);
Play_CameraChangeSetting(play, csCtx->subCamId, CAM_SET_FREE0);
sp28 = csCtx->subCamLookAtPoints->cameraRoll * 1.40625f;
- Camera_SetParam(subCam, 64, &sp28);
+ Camera_SetViewParam(subCam, CAM_VIEW_ROLL, &sp28);
sp3C.x = csCtx->subCamLookAtPoints->pos.x;
sp3C.y = csCtx->subCamLookAtPoints->pos.y;
sp3C.z = csCtx->subCamLookAtPoints->pos.z;
diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c
index 863f27d17..1384948cb 100644
--- a/src/code/z_kankyo.c
+++ b/src/code/z_kankyo.c
@@ -1700,7 +1700,8 @@ void Environment_DrawRain(PlayState* play, View* view, GraphicsContext* gfxCtx)
Vec3f windDirection = { 0.0f, 0.0f, 0.0f };
Player* player = GET_PLAYER(play);
- if (!(play->cameraPtrs[0]->unk_14C & 0x100) && (play->envCtx.precipitation[PRECIP_SNOW_CUR] == 0)) {
+ if (!(play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_8) &&
+ (play->envCtx.precipitation[PRECIP_SNOW_CUR] == 0)) {
OPEN_DISPS(gfxCtx, "../z_kankyo.c", 2799);
vec.x = view->at.x - view->eye.x;
diff --git a/src/code/z_onepointdemo.c b/src/code/z_onepointdemo.c
index 01bf40657..406e8f547 100644
--- a/src/code/z_onepointdemo.c
+++ b/src/code/z_onepointdemo.c
@@ -482,7 +482,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
case 3120:
csInfo->keyFrames = D_80121954[-(timer + 101)];
subCam->timer = 100;
- subCam->unk_14C |= 2;
+ subCam->stateFlags |= CAM_STATE_1;
csInfo->keyFrameCnt = 2;
func_8002DF54(play, NULL, 8);
@@ -494,7 +494,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
func_8002DF54(play, NULL, 8);
func_800C0808(play, subCamId, player, CAM_SET_CS_C);
- subCam->unk_14C |= 2;
+ subCam->stateFlags |= CAM_STATE_1;
break;
case 3140:
D_80121C24[0].atTargetInit = play->view.at;
diff --git a/src/code/z_play.c b/src/code/z_play.c
index ef2dbeed6..08f2ee3a7 100644
--- a/src/code/z_play.c
+++ b/src/code/z_play.c
@@ -255,7 +255,8 @@ void Play_Init(GameState* thisx) {
this->cameraPtrs[CAM_ID_MAIN] = &this->mainCamera;
this->cameraPtrs[CAM_ID_MAIN]->uid = 0;
this->activeCamId = CAM_ID_MAIN;
- func_8005AC48(&this->mainCamera, 0xFF);
+ Camera_OverwriteStateFlags(&this->mainCamera, CAM_STATE_0 | CAM_STATE_1 | CAM_STATE_2 | CAM_STATE_3 | CAM_STATE_4 |
+ CAM_STATE_5 | CAM_STATE_6 | CAM_STATE_7);
Sram_Init(this, &this->sramCtx);
Regs_InitData(this);
Message_Init(this);
@@ -1539,9 +1540,9 @@ s32 Play_CameraSetAtEye(PlayState* this, s16 camId, Vec3f* at, Vec3f* eye) {
Camera* camera = this->cameraPtrs[camIdx];
Player* player;
- ret |= Camera_SetParam(camera, 1, at);
+ ret |= Camera_SetViewParam(camera, CAM_VIEW_AT, at);
ret <<= 1;
- ret |= Camera_SetParam(camera, 2, eye);
+ ret |= Camera_SetViewParam(camera, CAM_VIEW_EYE, eye);
camera->dist = Math3D_Vec3f_DistXYZ(at, eye);
@@ -1565,11 +1566,11 @@ s32 Play_CameraSetAtEyeUp(PlayState* this, s16 camId, Vec3f* at, Vec3f* eye, Vec
Camera* camera = this->cameraPtrs[camIdx];
Player* player;
- ret |= Camera_SetParam(camera, 1, at);
+ ret |= Camera_SetViewParam(camera, CAM_VIEW_AT, at);
ret <<= 1;
- ret |= Camera_SetParam(camera, 2, eye);
+ ret |= Camera_SetViewParam(camera, CAM_VIEW_EYE, eye);
ret <<= 1;
- ret |= Camera_SetParam(camera, 4, up);
+ ret |= Camera_SetViewParam(camera, CAM_VIEW_UP, up);
camera->dist = Math3D_Vec3f_DistXYZ(at, eye);
@@ -1588,7 +1589,7 @@ s32 Play_CameraSetAtEyeUp(PlayState* this, s16 camId, Vec3f* at, Vec3f* eye, Vec
}
s32 Play_CameraSetFov(PlayState* this, s16 camId, f32 fov) {
- s32 ret = Camera_SetParam(this->cameraPtrs[camId], 0x20, &fov) & 1;
+ s32 ret = Camera_SetViewParam(this->cameraPtrs[camId], CAM_VIEW_FOV, &fov) & 1;
if (1) {}
return ret;
diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c
index 00fbf40e0..29cb897b7 100644
--- a/src/code/z_player_lib.c
+++ b/src/code/z_player_lib.c
@@ -624,7 +624,7 @@ void func_8008EEAC(PlayState* play, Actor* actor) {
this->unk_664 = actor;
this->unk_684 = actor;
this->stateFlags1 |= PLAYER_STATE1_16;
- Camera_SetParam(Play_GetCamera(play, CAM_ID_MAIN), 8, actor);
+ Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, actor);
Camera_ChangeMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_FOLLOWTARGET);
}