summaryrefslogtreecommitdiff
path: root/src/code/z_camera.c
diff options
context:
space:
mode:
authorengineer124 <47598039+engineer124@users.noreply.github.com>2024-11-21 10:48:50 +1100
committerGitHub <noreply@github.com>2024-11-20 15:48:50 -0800
commit0b51a16453b0dcf136bf694206ee603adac67eaf (patch)
treee1cd8196a489bbc982a87665557fe2ab5ce5c6dc /src/code/z_camera.c
parent70e97dc285caf2060dda282c7420ed1e655f806e (diff)
Player Docs: Spin Attack (#1741)
* spin attack * cleanup * fix bss * PR review * sync func name * add todo
Diffstat (limited to 'src/code/z_camera.c')
-rw-r--r--src/code/z_camera.c50
1 files changed, 9 insertions, 41 deletions
diff --git a/src/code/z_camera.c b/src/code/z_camera.c
index d010162a7..4be0ae9a6 100644
--- a/src/code/z_camera.c
+++ b/src/code/z_camera.c
@@ -400,36 +400,10 @@ s32 func_800CB924(Camera* camera) {
}
s32 func_800CB950(Camera* camera) {
- Player* player;
- s32 phi_v0;
- s32 ret;
- f32 yDiff;
-
if (camera->focalActor == &GET_PLAYER(camera->play)->actor) {
- yDiff = Camera_fabsf(camera->focalActorPosRot.pos.y - camera->focalActorFloorHeight);
-
- phi_v0 = false;
- if (yDiff < 11.0f) {
- phi_v0 = true;
- }
-
- ret = phi_v0;
-
- if (!ret) {
-
- ret = false;
-
- if (camera->focalActor->gravity > -0.1f) {
- ret = true;
- }
-
- player = (Player*)camera->focalActor;
- if (!ret) {
- ret = player->stateFlags1 & PLAYER_STATE1_200000;
- ret = !!ret;
- }
- }
- return ret;
+ return ((Camera_fabsf(camera->focalActorPosRot.pos.y - camera->focalActorFloorHeight)) < 11.0f) ||
+ (camera->focalActor->gravity > -0.1f) ||
+ (((Player*)camera->focalActor)->stateFlags1 & PLAYER_STATE1_200000);
} else {
return true;
}
@@ -445,18 +419,12 @@ s32 Camera_IsClimbingLedge(Camera* camera) {
}
}
-s32 Camera_IsChargingSwordOrDekuFlowerDive(Camera* camera) {
+s32 Camera_IsChargingSpinAttackOrDekuFlowerDive(Camera* camera) {
Actor* focalActor = camera->focalActor;
- s32 ret;
if (focalActor == &GET_PLAYER(camera->play)->actor) {
- // Charging Sword
- ret = !!(((Player*)focalActor)->stateFlags1 & PLAYER_STATE1_1000);
- if (!ret) {
- // Deku Flower Dive
- ret = !!(((Player*)focalActor)->stateFlags3 & PLAYER_STATE3_100);
- }
- return ret;
+ return (((Player*)focalActor)->stateFlags1 & PLAYER_STATE1_CHARGING_SPIN_ATTACK) ||
+ (((Player*)focalActor)->stateFlags3 & PLAYER_STATE3_100);
} else {
return false;
}
@@ -2953,7 +2921,7 @@ s32 Camera_Parallel1(Camera* camera) {
rwData->unk_1C = 0;
}
- if (func_800CB950(camera) || (((Player*)camera->focalActor)->stateFlags1 & PLAYER_STATE1_1000) ||
+ if (func_800CB950(camera) || (((Player*)camera->focalActor)->stateFlags1 & PLAYER_STATE1_CHARGING_SPIN_ATTACK) ||
(((Player*)camera->focalActor)->stateFlags3 & PLAYER_STATE3_100)) {
rwData->unk_04 = camera->focalActorPosRot.pos.y;
sp72 = false;
@@ -3594,7 +3562,7 @@ s32 Camera_Battle1(Camera* camera) {
swingPitchFinal = roData->swingPitchFinal;
fov = roData->fov;
- if (Camera_IsChargingSwordOrDekuFlowerDive(camera)) {
+ if (Camera_IsChargingSpinAttackOrDekuFlowerDive(camera)) {
camera->pitchUpdateRateInv = Camera_ScaledStepToCeilF(18.0f, camera->pitchUpdateRateInv, 0.5f, 0.1f);
camera->yOffsetUpdateRate = Camera_ScaledStepToCeilF(0.2f, camera->yOffsetUpdateRate, 0.5f, 0.0001f);
camera->xzOffsetUpdateRate = Camera_ScaledStepToCeilF(0.2f, camera->xzOffsetUpdateRate, 0.5f, 0.0001f);
@@ -3690,7 +3658,7 @@ s32 Camera_Battle1(Camera* camera) {
sp104 = PREG(86) + 800.0f;
}
- if ((spA4.r > sp104) || Camera_IsChargingSwordOrDekuFlowerDive(camera)) {
+ if ((spA4.r > sp104) || Camera_IsChargingSpinAttackOrDekuFlowerDive(camera)) {
distRatio = 1.0f;
spF8 = 10.0f;
} else {