diff --git a/.clangd b/.clangd index 3221e3cea..893158290 100644 --- a/.clangd +++ b/.clangd @@ -4,6 +4,7 @@ CompileFlags: "-Wno-c++11-compat-deprecated-writable-strings", "-Wno-undefined-inline", "-Wno-multichar", + "-Wno-c++11-extensions", "-Wsometimes-uninitialized", "-Wlogical-op-parentheses", "-Wbitwise-op-parentheses", diff --git a/include/SSystem/SComponent/c_angle.h b/include/SSystem/SComponent/c_angle.h index b6910aaad..5e2d2d14e 100644 --- a/include/SSystem/SComponent/c_angle.h +++ b/include/SSystem/SComponent/c_angle.h @@ -13,9 +13,15 @@ public: const static cSAngle _90; const static cSAngle _180; const static cSAngle _270; +#ifdef __MWERKS__ cSAngle() {} ~cSAngle() {} cSAngle(const cSAngle&); +#else + cSAngle() = default; + ~cSAngle() = default; + cSAngle(const cSAngle&) = default; +#endif cSAngle(s16); cSAngle(float); s16 Val() const { return mAngle; } @@ -45,7 +51,9 @@ public: bool operator<(const cSAngle& other) const { return mAngle < other.mAngle; } bool operator>(const cSAngle& other) const { return mAngle > other.mAngle; } operator s16() const { return mAngle; } +#ifdef __MWERKS__ void operator=(const cSAngle& other) { mAngle = other.mAngle; } +#endif static inline cSAngle getMaxNegative() { return cSAngle((s16)-0x8000); } inline void mirrorAtMaxNeg() { *this = cSAngle((s16)-0x8000) - *this; } }; @@ -131,12 +139,18 @@ private: cSAngle mInclination; // original: U public: - cSGlobe() {}; +#ifdef __MWERKS__ + cSGlobe() {} + ~cSGlobe() {} cSGlobe(const cSGlobe&); +#else + cSGlobe() = default; + ~cSGlobe() = default; + cSGlobe(const cSGlobe&) = default; +#endif cSGlobe(float, short, short); cSGlobe(float, const cSAngle&, const cSAngle&); cSGlobe(const cXyz&); - ~cSGlobe() {} cSGlobe& Formal(); void Val(const cSGlobe&); void Val(float, short, short); @@ -154,6 +168,6 @@ public: void Polar(cSPolar*) const; cXyz Norm() const; cSGlobe& Invert(); -}; +}; // Size: 0x8 #endif /* C_ANGLE_H */ diff --git a/include/SSystem/SComponent/c_xyz.h b/include/SSystem/SComponent/c_xyz.h index b6fb430fc..7c3e1cdab 100644 --- a/include/SSystem/SComponent/c_xyz.h +++ b/include/SSystem/SComponent/c_xyz.h @@ -18,18 +18,24 @@ struct cXyz : Vec { static const cXyz BaseXZ; static const cXyz BaseYZ; static const cXyz BaseXYZ; +#ifdef __MWERKS__ + cXyz() {} ~cXyz() {} - /* inlined */ cXyz() {} - cXyz(f32 pX, f32 pY, f32 pZ) { - x = pX; - y = pY; - z = pZ; - } cXyz(const cXyz& vec) { x = vec.x; y = vec.y; z = vec.z; } +#else + cXyz() = default; + ~cXyz() = default; + cXyz(const cXyz& vec) = default; +#endif + cXyz(f32 pX, f32 pY, f32 pZ) { + x = pX; + y = pY; + z = pZ; + } cXyz(const Vec& vec) { x = vec.x; y = vec.y; diff --git a/include/d/d_camera.h b/include/d/d_camera.h index a80a1bcd5..73420043c 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -260,41 +260,70 @@ public: /* 0x364 */ int m364; /* 0x368 */ f32 m368; /* 0x36C */ cXyz m36C; - /* 0x378 */ int m378; - /* 0x37C */ u8 m37C; // `CalcSubjectAngle` suggests this should be u8 but `followCamera` suggests it should be int - /* 0x37D */ u8 m37D; // The fact that this a referenced in `CalcSubjectAngle` suggests m37C can't be an int? - /* 0x37E */ s16 m37E; - /* 0x380 */ int m380; - /* 0x384 */ f32 m384; - /* 0x388 */ f32 m388; // `CalcSubjectAngle` suggests this should be a float but `followCamera` suggests it should be int - /* 0x38C */ f32 m38C; // Similar issue for 38C - /* 0x390 */ s16 m390; - /* 0x392 */ s16 m392; - /* 0x394 */ f32 m394; - /* 0x398 */ f32 m398; - /* 0x39C */ f32 m39C; - /* 0x3A0 */ f32 m3A0; - /* 0x3A4 */ f32 m3A4; - /* 0x3A8 */ f32 m3A8; - /* 0x3AC */ f32 m3AC; - /* 0x3B0 */ f32 m3B0; - /* 0x3B4 */ int m3B4; - /* 0x3B8 */ cSAngle m3B8; // `CalcSubjectAngle` thinks this is a cSAngle but `followCamera` thinks its a float (could also be cSGlobe since m3BA is a cSAngle and m3BC is a float) - /* 0x3BA */ cSAngle m3BA; - /* 0x3BC */ f32 m3BC; - /* 0x3C0 */ cXyz m3C0; - /* 0x3CC */ cXyz m3CC; - /* 0x3D8 */ u8 m3D8; - /* 0x3D9 */ u8 m3D9; - /* 0x3DA */ u8 m3DA; - /* 0x3DB */ u8 m3DB; - /* 0x3DC */ f32 m3DC; - /* 0x3E0 */ f32 m3E0; - /* 0x3E4 */ f32 m3E4; - /* 0x3E8 */ f32 m3E8; - /* 0x3EC */ f32 m3EC; - /* 0x3F0 */ f32 m3F0; - /* 0x3F4 */ u8 m3F4[0x3F8 - 0x3F4]; + /* 0x314 */ union Work { + struct { + /* 0x378 */ int m378; + /* 0x37C */ int m37C; + /* 0x380 */ int m380; + /* 0x384 */ f32 m384; + /* 0x388 */ int m388; + /* 0x38C */ int m38C; + /* 0x390 */ s16 m390; + /* 0x392 */ s16 m392; + /* 0x394 */ f32 m394; + /* 0x398 */ f32 m398; + /* 0x39C */ f32 m39C; + /* 0x3A0 */ f32 m3A0; + /* 0x3A4 */ f32 m3A4; + /* 0x3A8 */ f32 m3A8; + /* 0x3AC */ f32 m3AC; + /* 0x3B0 */ f32 m3B0; + /* 0x3B4 */ int m3B4; + /* 0x3B8 */ f32 m3B8; + /* 0x3BC */ f32 m3BC; + /* 0x3C0 */ cXyz m3C0; + /* 0x3CC */ cXyz m3CC; + /* 0x3D8 */ u8 m3D8; + /* 0x3D9 */ u8 m3D9; + /* 0x3DA */ u8 m3DA; + /* 0x3DB */ u8 m3DB; + /* 0x3DC */ f32 m3DC; + /* 0x3E0 */ f32 m3E0; + /* 0x3E4 */ f32 m3E4; + /* 0x3E8 */ f32 m3E8; + /* 0x3EC */ f32 m3EC; + /* 0x3F0 */ f32 m3F0; + /* 0x3F4 */ u8 m3F4[0x3F8 - 0x3F4]; + } follow; + struct { + /* 0x378 */ int m378; + /* 0x37C */ u8 m37C[0x380 - 0x37C]; + /* 0x380 */ int m380; + /* 0x384 */ f32 m384; + /* 0x388 */ int m388; + /* 0x38C */ u8 m38C; + /* 0x390 */ cXyz m390; + /* 0x39C */ u8 m39C; + /* 0x3A0 */ f32 m3A0; + /* 0x3A4 */ f32 m3A4; + /* 0x3A8 */ cSGlobe m3A8; + /* 0x3B0 */ f32 m3B0; + /* 0x3B4 */ f32 m3B4; + /* 0x3B8 */ f32 m3B8; + } lockon; + struct { + /* 0x378 */ int m378; + /* 0x37C */ u8 m37C; + /* 0x37D */ u8 m37D; + /* 0x380 */ int m380; + /* 0x384 */ f32 m384; + /* 0x388 */ f32 m388; + /* 0x38C */ f32 m38C; + /* 0x390 */ u8 m390[0x3B8 - 0x390]; + /* 0x3B8 */ cSAngle m3B8; + /* 0x3BA */ cSAngle m3BA; + } subject; + } mWork; /* 0x3F8 */ dCamera_event_data mEventData; /* 0x50C */ u32 mEventFlags; /* 0x510 */ int mCurStyle; diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index 0fe99b9a3..2015f719d 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -227,54 +227,47 @@ class JntHit_c; struct fopAc_cullSizeSphere { public: #ifdef __MWERKS__ - /* 0x0 */ cXyz center; - /* 0xC */ f32 radius; - fopAc_cullSizeSphere() {} + ~fopAc_cullSizeSphere() {} +#else + fopAc_cullSizeSphere() = default; + ~fopAc_cullSizeSphere() = default; +#endif fopAc_cullSizeSphere(cXyz p, f32 r) { center = p; radius = r; } - ~fopAc_cullSizeSphere() {} -#else - /* 0x0 */ Vec center; + + /* 0x0 */ cXyz center; /* 0xC */ f32 radius; -#endif }; -#ifdef __MWERKS__ #define fopAc_MakeCullSizeSphere(center, radius) fopAc_cullSizeSphere(center, radius) -#else -#define fopAc_MakeCullSizeSphere(center, radius) {(Vec)center, radius} -#endif struct fopAc_cullSizeBox { public: #ifdef __MWERKS__ fopAc_cullSizeBox() {} + ~fopAc_cullSizeBox() {} fopAc_cullSizeBox(const fopAc_cullSizeBox& box) { min = box.min; max = box.max; } +#else + fopAc_cullSizeBox() = default; + ~fopAc_cullSizeBox() = default; + fopAc_cullSizeBox(const fopAc_cullSizeBox& box) = default; +#endif fopAc_cullSizeBox(cXyz min, cXyz max) { this->min = min; this->max = max; } - ~fopAc_cullSizeBox() {} /* 0x0 */ cXyz min; /* 0xC */ cXyz max; -#else - /* 0x0 */ Vec min; - /* 0xC */ Vec max; -#endif }; -#ifdef __MWERKS__ #define fopAc_MakeCullSizeBox(min, max) fopAc_cullSizeBox(min, max) -#else -#define fopAc_MakeCullSizeBox(min, max) {(Vec)min, (Vec)max} -#endif class fopAc_ac_c : public leafdraw_class { public: diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 2357afec2..6a77a4ddd 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -502,23 +502,11 @@ void fopAcM_DeleteHeap(fopAc_ac_c* p_actor); bool fopAcM_entrySolidHeap(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback, u32 estimatedHeapSize); inline void fopAcM_SetMin(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ) { -#ifdef __MWERKS__ p_actor->cull.box.min.set(minX, minY, minZ); -#else - p_actor->cull.box.min.x = minX; - p_actor->cull.box.min.y = minY; - p_actor->cull.box.min.z = minZ; -#endif } inline void fopAcM_SetMax(fopAc_ac_c* p_actor, f32 maxX, f32 maxY, f32 maxZ) { -#ifdef __MWERKS__ p_actor->cull.box.max.set(maxX, maxY, maxZ); -#else - p_actor->cull.box.max.x = maxX; - p_actor->cull.box.max.y = maxY; - p_actor->cull.box.max.z = maxZ; -#endif } void fopAcM_setCullSizeBox(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ, f32 maxX, f32 maxY, diff --git a/src/SSystem/SComponent/c_angle.cpp b/src/SSystem/SComponent/c_angle.cpp index a9718b5e5..0e7ebcb84 100644 --- a/src/SSystem/SComponent/c_angle.cpp +++ b/src/SSystem/SComponent/c_angle.cpp @@ -14,10 +14,12 @@ const cSAngle cSAngle::_90(static_cast(0x4000)); const cSAngle cSAngle::_180(static_cast(-0x8000)); const cSAngle cSAngle::_270(static_cast(-0x4000)); +#ifdef __MWERKS__ /* 80253BB0-80253BE0 .text __ct__7cSAngleFRC7cSAngle */ cSAngle::cSAngle(const cSAngle& angle) { Val(angle); } +#endif /* 80253BE0-80253C10 .text __ct__7cSAngleFs */ cSAngle::cSAngle(s16 angle) { @@ -246,10 +248,12 @@ void cSPolar::Globe(cSGlobe* globe) const { globe->Val(mRadial, 0x4000 - mAngle1.Val(), mAngle2.Val()); } +#ifdef __MWERKS__ /* 80254524-80254554 .text __ct__7cSGlobeFRC7cSGlobe */ cSGlobe::cSGlobe(const cSGlobe& other) { Val(other); } +#endif /* 80254554-80254584 .text __ct__7cSGlobeFfss */ cSGlobe::cSGlobe(f32 f, s16 s1, s16 s2) { diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp index 54e3672b4..85a5ac242 100644 --- a/src/d/d_camera.cpp +++ b/src/d/d_camera.cpp @@ -2681,9 +2681,9 @@ bool dCamera_c::followCamera(s32 param_1) { bVar2 = false; if (m108 == 0) { - m3AC = 0; - m3B0 = 0.0f; - m3D9 = 0; + mWork.follow.m3AC = 0; + mWork.follow.m3B0 = 0.0f; + mWork.follow.m3D9 = 0; } bVar1 = false; @@ -2746,11 +2746,11 @@ bool dCamera_c::followCamera(s32 param_1) { if (check_owner_action(mPadId, daPyStts0_UNK200_e | daPyStts0_UNK100_e) && !check_owner_action(mPadId, daPyStts0_UNK2000000_e)) { if (dVar21 > -10.0f) { - m3B0 = -10.0f; + mWork.follow.m3B0 = -10.0f; } } else { - m3B0 += ((dVar21 - m3B0) * 0.06f); + mWork.follow.m3B0 += ((dVar21 - mWork.follow.m3B0) * 0.06f); } if (check_owner_action1(mPadId, daPyStts1_UNK40000_e)) { @@ -2783,61 +2783,61 @@ bool dCamera_c::followCamera(s32 param_1) { if (bVar3) { if (mStickMainPosXLast < -0.2f) { - m3D9 = 1; + mWork.follow.m3D9 = 1; } if (mStickMainPosXLast > 0.2f) { - m3D9 = 0; + mWork.follow.m3D9 = 0; } f32 temp_004 = 0.04f; - if (m3D9) { + if (mWork.follow.m3D9) { fVar37 = -45.0f; } else { fVar37 = 45.0f; } - m3AC += (fVar37 - m3AC) * temp_004; + mWork.follow.m3AC += (fVar37 - mWork.follow.m3AC) * temp_004; } else { - m3AC += (dVar19 - m3AC) * 0.06f; + mWork.follow.m3AC += (dVar19 - mWork.follow.m3AC) * 0.06f; } } - cXyz local_314(m3AC, dVar20, m3B0); + cXyz local_314(mWork.follow.m3AC, dVar20, mWork.follow.m3B0); cXyz local_158; if (m108 == 0) { m03C.Val(m050 - m044); - m378 = 'FLLW'; - m394 = fVar40; - m388 = 0x50; - m398 = dVar25; - m39C = dVar24; - m38C = m392 = m390 = 0; - m3A0 = m3BC = mDirection.V().Degree(); - m3C0 = m044; - m3CC = m050; - m3E8 = m3E0 = m3E4 = 0.01f; - m3DC = 0.75f; - m3EC = dVar23; - m3F0 = dVar22; - m3B4 = 0; - m3D8 = 1; - m3A8 = m060; - m3B8 = 0.0f; - m3DA = 0; + mWork.follow.m378 = 'FLLW'; + mWork.follow.m394 = fVar40; + mWork.follow.m388 = 0x50; + mWork.follow.m398 = dVar25; + mWork.follow.m39C = dVar24; + mWork.follow.m38C = mWork.follow.m392 = mWork.follow.m390 = 0; + mWork.follow.m3A0 = mWork.follow.m3BC = mDirection.V().Degree(); + mWork.follow.m3C0 = m044; + mWork.follow.m3CC = m050; + mWork.follow.m3E8 = mWork.follow.m3E0 = mWork.follow.m3E4 = 0.01f; + mWork.follow.m3DC = 0.75f; + mWork.follow.m3EC = dVar23; + mWork.follow.m3F0 = dVar22; + mWork.follow.m3B4 = 0; + mWork.follow.m3D8 = 1; + mWork.follow.m3A8 = m060; + mWork.follow.m3B8 = 0.0f; + mWork.follow.m3DA = 0; - m3A4 = positionOf(mpPlayerActor).y; + mWork.follow.m3A4 = positionOf(mpPlayerActor).y; if (chkFlag(0x8000) || !m110) { m102 = 1; m101 = 1; m100 = 1; - m37C = 1; + mWork.follow.m37C = 1; } else { cXyz cStack_248 = relationalPos(mpPlayerActor, &local_314); @@ -2873,13 +2873,13 @@ bool dCamera_c::followCamera(s32 param_1) { dVar20 = 10.0f; } - m37C = (std::sqrtf(playerHeight / dVar20) * 3.8f) + 1; + mWork.follow.m37C = (std::sqrtf(playerHeight / dVar20) * 3.8f) + 1; } - m398 = m39C = mDirection.R(); - m3A8 = mFovY; - m380 = m37C * (m37C + 1) >> 1; - m384 = 0.0f; + mWork.follow.m398 = mWork.follow.m39C = mDirection.R(); + mWork.follow.m3A8 = mFovY; + mWork.follow.m380 = mWork.follow.m37C * (mWork.follow.m37C + 1) >> 1; + mWork.follow.m384 = 0.0f; } cXyz cStack_260 = relationalPos(mpPlayerActor, &local_314); @@ -2890,17 +2890,17 @@ bool dCamera_c::followCamera(s32 param_1) { cXyz cross; if (m100 == 0) { if (m31D != 0) { - dComIfG_Bgsp()->MoveBgMatrixCrrPos(mBG.m5C.m04, true, &m3C0, NULL, NULL); + dComIfG_Bgsp()->MoveBgMatrixCrrPos(mBG.m5C.m04, true, &mWork.follow.m3C0, NULL, NULL); } - m384 = m37C - m108; + mWork.follow.m384 = mWork.follow.m37C - m108; - f32 temp = (m384 / m380); - m3C0 += (cStack_260 - m3C0) * temp; + f32 temp = (mWork.follow.m384 / mWork.follow.m380); + mWork.follow.m3C0 += (cStack_260 - mWork.follow.m3C0) * temp; - m044 += (m3C0 - m044) * dVar23; + m044 += (mWork.follow.m3C0 - m044) * dVar23; - f32 xyzDist = dCamMath::xyzHorizontalDistance(cStack_260, m3C0); + f32 xyzDist = dCamMath::xyzHorizontalDistance(cStack_260, mWork.follow.m3C0); if (local_314.x > local_314.z) { local_314.z = local_314.x; @@ -2937,19 +2937,18 @@ bool dCamera_c::followCamera(s32 param_1) { m03C.U(m03C.U() + ((acStack_4a8.Inv() - m03C.U()) * fVar40)); } - m3CC = m050 = m044 + m03C.Xyz(); + mWork.follow.m3CC = m050 = m044 + m03C.Xyz(); - if (m37C <= m108) { + if (mWork.follow.m37C <= m108) { m102 = 1; m101 = 1; m100 = 1; } - m3A0 = m03C.V().Degree(); - m39C = m03C.R(); - //m398 = pfVar14; + mWork.follow.m3A0 = m03C.V().Degree(); + mWork.follow.m398 = mWork.follow.m39C = m03C.R(); m060 += (fVar40 * (dVar31 - m060)); - m380 -= m384; + mWork.follow.m380 -= mWork.follow.m384; return true; } @@ -2959,16 +2958,16 @@ bool dCamera_c::followCamera(s32 param_1) { fVar37 -= groundHeight(&player_pos); if (m360 && (check_owner_action(mPadId, daPyStts0_SWIM_e) || daNpc_kam_c::m_hyoi_kamome == 0 || check_owner_action(mPadId, 0x200))) { - if (m388 < 0x50) { - m388++; + if (mWork.follow.m388 < 0x50) { + mWork.follow.m388++; local_158.x = 176.0f; - local_158.y = m388; - m394 += (fVar40 - m394) * dCamMath::rationalBezierRatio(m388 / 80.0f, 1.25f); + local_158.y = mWork.follow.m388; + mWork.follow.m394 += (fVar40 - mWork.follow.m394) * dCamMath::rationalBezierRatio(mWork.follow.m388 / 80.0f, 1.25f); } } else { - m394 = 0.0F; - m388 = 0; + mWork.follow.m394 = 0.0F; + mWork.follow.m388 = 0; } if (check_owner_action(mPadId, daPyStts0_UNK4000000_e | daPyStts0_UNK2000000_e | daPyStts0_UNK800000_e | daPyStts0_UNK40_e | daPyStts0_UNK20_e | daPyStts0_UNK1_e) || (check_owner_action1(mPadId, daPyStts1_UNK10000_e) && mDMCSystem.field_0x0 == 0)) { @@ -2976,29 +2975,29 @@ bool dCamera_c::followCamera(s32 param_1) { } if ((check_owner_action(mPadId, daPyStts0_UNK2000000_e | daPyStts0_UNK100_e | daPyStts0_UNK40_e | daPyStts0_UNK20_e | daPyStts0_UNK1_e) && check_owner_action1(mPadId, daPyStts1_UNK10000_e)) || (cSAngle::_270 < local_4ac && local_4ac < cSAngle::_90)) { - m3EC = dVar23; + mWork.follow.m3EC = dVar23; } else { - m3EC = 0.1f; + mWork.follow.m3EC = 0.1f; } - if (m388 == 0) { - m3F0 = dVar22; + if (mWork.follow.m388 == 0) { + mWork.follow.m3F0 = dVar22; } else { - m3F0 = dVar22 * 0.1f + (1.0f - (dVar22 * 0.1f)) * m394; - if (chkFlag(0x100000) || m3EC <= 0.25f) { + mWork.follow.m3F0 = dVar22 * 0.1f + (1.0f - (dVar22 * 0.1f)) * mWork.follow.m394; + if (chkFlag(0x100000) || mWork.follow.m3EC <= 0.25f) { bVar3 = false; if (daNpc_Cb1_c::isFlying() || daNpc_Md_c::isFlying()) { bVar3 = true; } if (!bVar3 && check_owner_action1(mPadId, daPyStts1_UNK40000_e)) goto LAB_8016b24c; } - m3EC = m394 * 0.75f + 0.25f; + mWork.follow.m3EC = mWork.follow.m394 * 0.75f + 0.25f; } LAB_8016b24c: - cXyz cStack_284(m3EC, m3F0, m3EC); + cXyz cStack_284(mWork.follow.m3EC, mWork.follow.m3F0, mWork.follow.m3EC); bVar4 = true; bVar3 = false; @@ -3006,7 +3005,7 @@ bool dCamera_c::followCamera(s32 param_1) { bVar3 = true; } - if (chkFlag(0x100000) || check_owner_action(mPadId, daPyStts0_UNK4000000_e | daPyStts0_UNK2000000_e | daPyStts0_UNK800000_e | daPyStts0_TELESCOPE_LOOK_e | daPyStts0_UNK40_e | daPyStts0_UNK20_e | daPyStts0_UNK1_e) || check_owner_action1(mPadId, daPyStts1_UNK10000_e | daPyStts1_DEKU_LEAF_FAN_e) || m388) { + if (chkFlag(0x100000) || check_owner_action(mPadId, daPyStts0_UNK4000000_e | daPyStts0_UNK2000000_e | daPyStts0_UNK800000_e | daPyStts0_TELESCOPE_LOOK_e | daPyStts0_UNK40_e | daPyStts0_UNK20_e | daPyStts0_UNK1_e) || check_owner_action1(mPadId, daPyStts1_UNK10000_e | daPyStts1_DEKU_LEAF_FAN_e) || mWork.follow.m388) { bVar4 = false; } @@ -3043,107 +3042,107 @@ bool dCamera_c::followCamera(s32 param_1) { cSGlobe local_484(m050 - m044); - if (m392 <= 0 || iVar17 <= m392) { + if (mWork.follow.m392 <= 0 || iVar17 <= mWork.follow.m392) { dVar20 = dCamMath::rationalBezierRatio((float) iVar5 / (float)iVar17, fVar38); - m3D8 = 1; - m3B8 = (1.0f - m3B8.Val()) * dVar20; + mWork.follow.m3D8 = 1; + mWork.follow.m3B8 = (1.0f - mWork.follow.m3B8) * dVar20; } else if (chkFlag(0x100000) || daNpc_Cb1_c::isFlying()) { - if (m3D8) { - m3B8 = 0.05f; + if (mWork.follow.m3D8) { + mWork.follow.m3B8 = 0.05f; } - m3D8 = 0; - m3B8 += (1.0f - m3B8.Val()) * 0.2f; + mWork.follow.m3D8 = 0; + mWork.follow.m3B8 += (1.0f - mWork.follow.m3B8) * 0.2f; } else if (daNpc_Md_c::isFlying() || daNpc_kam_c::m_hyoi_kamome) { - m3D8 = 1; + mWork.follow.m3D8 = 1; } else if (check_owner_action1(mPadId, check_owner_action1(mPadId, daPyStts1_UNK40000_e | daPyStts1_DEKU_LEAF_FAN_e))) { - if (m3D8) { - m3B8 = 0.05f; + if (mWork.follow.m3D8) { + mWork.follow.m3B8 = 0.05f; } - m3D8 = 0; - m3B8 += (0.5f - m3B8.Val()) * 0.05f; + mWork.follow.m3D8 = 0; + mWork.follow.m3B8 += (0.5f - mWork.follow.m3B8) * 0.05f; } else { - m3D8 = 1; + mWork.follow.m3D8 = 1; if (mDMCSystem.field_0x0) { - m3B8 = 0.0f; + mWork.follow.m3B8 = 0.0f; } else if (mStickMainPosYLast >= 0.0f) { - m3B8 = 1.0f - ((cSAngle(dCamMath::rationalBezierRatio(mStickMainPosXLast, dVar33) * 180.0f).Cos() * 0.5f) + 0.5f); + mWork.follow.m3B8 = 1.0f - ((cSAngle(dCamMath::rationalBezierRatio(mStickMainPosXLast, dVar33) * 180.0f).Cos() * 0.5f) + 0.5f); } else { - m3B8 = 1.0f - ((cSAngle(dCamMath::rationalBezierRatio(mStickMainPosXLast, dVar34) * 180.0f).Cos() * 0.25f) + 0.75f); + mWork.follow.m3B8 = 1.0f - ((cSAngle(dCamMath::rationalBezierRatio(mStickMainPosXLast, dVar34) * 180.0f).Cos() * 0.25f) + 0.75f); } - m3B8 *= mStickMainValueLast; + mWork.follow.m3B8 *= mStickMainValueLast; if (chkFlag(0x80000)) { - m3B8 *= 0.5f; + mWork.follow.m3B8 *= 0.5f; } else { - m3B8 *= 0.1f; + mWork.follow.m3B8 *= 0.1f; } if (check_owner_action(mPadId, daPyStts0_UNK2000000_e | daPyStts0_UNK100_e) || check_owner_action1(mPadId, check_owner_action1(mPadId, daPyStts1_UNK10000_e))) { - if (m38C == 0) { + if (mWork.follow.m38C == 0) { if (local_4ac > cSAngle::_270 && local_4ac < cSAngle::_90) { - m38C = 1; + mWork.follow.m38C = 1; } else { - m38C = -1; + mWork.follow.m38C = -1; } } - else if (m38C < 0) { - m38C--; - if (m38C <= -0x20) { - m38C = 0x10; + else if (mWork.follow.m38C < 0) { + mWork.follow.m38C--; + if (mWork.follow.m38C <= -0x20) { + mWork.follow.m38C = 0x10; } } - else if (m38C < 0xf) { - m3B8 = m38C * 0.033333335f; - m38C++; + else if (mWork.follow.m38C < 0xf) { + mWork.follow.m3B8 = mWork.follow.m38C * 0.033333335f; + mWork.follow.m38C++; } else if (!check_owner_action(mPadId, daPyStts0_UNK2000000_e)) { if (mStickMainValueLast < 0.1f) { - m3B8 = 0.05f; + mWork.follow.m3B8 = 0.05f; } else { - m3B8 = dCamMath::rationalBezierRatio(std::fabsf(local_4ac.Sin()), 12.0f); + mWork.follow.m3B8 = dCamMath::rationalBezierRatio(std::fabsf(local_4ac.Sin()), 12.0f); } } } else if (bVar1) { - if (m38C == 0 && (local_4ac <= cSAngle::_270 || local_4ac >= cSAngle::_90)) { - m38C = 1; + if (mWork.follow.m38C == 0 && (local_4ac <= cSAngle::_270 || local_4ac >= cSAngle::_90)) { + mWork.follow.m38C = 1; } - else if (m38C < 0xf) { - m3B8 = iVar5 * 0.033333335f; - m38C++; + else if (mWork.follow.m38C < 0xf) { + mWork.follow.m3B8 = iVar5 * 0.033333335f; + mWork.follow.m38C++; } else if (check_owner_action(mPadId, daPyStts0_UNK40_e | daPyStts0_UNK20_e)) { - m3B8 = 0.15f; + mWork.follow.m3B8 = 0.15f; } else if (mStickMainValueLast < 0.1f) { - m3B8 = 0.05f; + mWork.follow.m3B8 = 0.05f; } else { - m3B8 = dCamMath::rationalBezierRatio(std::fabsf(local_4ac.Sin()), 12.0f); + mWork.follow.m3B8 = dCamMath::rationalBezierRatio(std::fabsf(local_4ac.Sin()), 12.0f); } } else { - m3B8 *= dVar35; - m38C = 0; + mWork.follow.m3B8 *= dVar35; + mWork.follow.m38C = 0; } } cSAngle acStack_4b4; - if (chkFlag(0x80) && !chkFlag(0x80000) && mCurMode == 0 && m38C == 0) { + if (chkFlag(0x80) && !chkFlag(0x80000) && mCurMode == 0 && mWork.follow.m38C == 0) { acStack_4b4 = cSAngle(mDirection.U().Val()); } else if (bVar1) { @@ -3157,93 +3156,93 @@ bool dCamera_c::followCamera(s32 param_1) { } cSAngle acStack_4b8 = cSAngle((s16)0); - cSAngle acStack_51c = (acStack_4b4 - local_484.V()) * m3B8.Degree() * local_484.U().Cos(); + cSAngle acStack_51c = (acStack_4b4 - local_484.V()) * mWork.follow.m3B8 * local_484.U().Cos(); m03C.U(local_484.V() + acStack_51c + acStack_4b8); cSAngle local_4bc; if (check_owner_action1(mPadId, daPyStts1_UNK20000_e)) { - if (m392 <= iVar17) { + if (mWork.follow.m392 <= iVar17) { local_4bc = acStack_490; - m3E0 = dCamMath::rationalBezierRatio((float)m392 / (float)iVar17, fVar38); + mWork.follow.m3E0 = dCamMath::rationalBezierRatio((float)mWork.follow.m392 / (float)iVar17, fVar38); setFlag(0x4000000); - m392++; + mWork.follow.m392++; } else { local_4bc = acStack_490; - m3E0 = 1.0f; + mWork.follow.m3E0 = 1.0f; } - m3BC = m3A0 = local_4bc.Degree(); + mWork.follow.m3BC = mWork.follow.m3A0 = local_4bc.Degree(); } else { - if (m392 != 0) { - m3E0 = 0.0f; + if (mWork.follow.m392 != 0) { + mWork.follow.m3E0 = 0.0f; } - m392 = 0; + mWork.follow.m392 = 0; if (mCurMode == 1) { - m3E0 = 0.5f; - m3BC = m3A0 = m3A0 + (m3B8.Val() * (dVar28 - m3A0)); - local_4bc = cAngle::d2s(m3A0); - m3E0 += (fVar40 - m3E0) * 0.5f; + mWork.follow.m3E0 = 0.5f; + mWork.follow.m3BC = mWork.follow.m3A0 = mWork.follow.m3A0 + (mWork.follow.m3B8 * (dVar28 - mWork.follow.m3A0)); + local_4bc = cAngle::d2s(mWork.follow.m3A0); + mWork.follow.m3E0 += (fVar40 - mWork.follow.m3E0) * 0.5f; } - else if (m388 == 0) { - m3BC += dVar27 * (dVar28 - m3BC); + else if (mWork.follow.m388 == 0) { + mWork.follow.m3BC += dVar27 * (dVar28 - mWork.follow.m3BC); dVar20 = 0.01f; - if (m3B4 != 0) { + if (mWork.follow.m3B4 != 0) { dVar20 = 0.25f; dVar29 = dVar20; } - m3A0 += dVar29 * ((m3BC + m148.Degree()) - m3A0); - local_4bc = cAngle::d2s(m3A0); + mWork.follow.m3A0 += dVar29 * ((mWork.follow.m3BC + m148.Degree()) - mWork.follow.m3A0); + local_4bc = cAngle::d2s(mWork.follow.m3A0); if (chkFlag(0x80000)) { - m3E0 = 0.0f; + mWork.follow.m3E0 = 0.0f; } - else if (m3B4) { - m3E0 += dVar20 * (fVar40 - m3E0); + else if (mWork.follow.m3B4) { + mWork.follow.m3E0 += dVar20 * (fVar40 - mWork.follow.m3E0); } else if (mMonitor.mPos.y < 0.01f && mCurMode == 0) { - m3E0 += (0.1f - m3E0) * 0.05f; + mWork.follow.m3E0 += (0.1f - mWork.follow.m3E0) * 0.05f; } else { - m3E0 += dVar20 * (fVar40 - m3E0); + mWork.follow.m3E0 += dVar20 * (fVar40 - mWork.follow.m3E0); } } else { if (check_owner_action(mPadId, daPyStts0_UNK2000000_e) || check_owner_action1(mPadId, daPyStts1_UNK10000_e)) { local_4bc = acStack_51c; - m3BC = m3A0 = local_4bc.Degree(); - m3E0 = 0.95f; + mWork.follow.m3BC = mWork.follow.m3A0 = local_4bc.Degree(); + mWork.follow.m3E0 = 0.95f; } else if (isPlayerFlying(mPadId) || daNpc_kam_c::m_hyoi_kamome) { local_4bc = acStack_51c; - if (m3A4 < positionOf(mpPlayerActor).y) { - m3E0 = dCamMath::rationalBezierRatio(m394, dVar30); + if (mWork.follow.m3A4 < positionOf(mpPlayerActor).y) { + mWork.follow.m3E0 = dCamMath::rationalBezierRatio(mWork.follow.m394, dVar30); } else { - m3E0 += (0.75f - m3E0) * 0.15f; + mWork.follow.m3E0 += (0.75f - mWork.follow.m3E0) * 0.15f; } - m3BC = m3A0 = local_4bc.Degree(); + mWork.follow.m3BC = mWork.follow.m3A0 = local_4bc.Degree(); } else { local_4bc = acStack_51c; - m3BC = m3A0 = local_4bc.Degree(); - m3E0 = dCamMath::rationalBezierRatio(m394, dVar30); + mWork.follow.m3BC = mWork.follow.m3A0 = local_4bc.Degree(); + mWork.follow.m3E0 = dCamMath::rationalBezierRatio(mWork.follow.m394, dVar30); } } } - m3A4 = positionOf(mpPlayerActor).y; + mWork.follow.m3A4 = positionOf(mpPlayerActor).y; if (check_owner_action(mPadId, daPyStts0_UNK2000000_e | daPyStts0_UNK100_e | daPyStts0_UNK40_e | daPyStts0_UNK20_e | daPyStts0_UNK1_e || check_owner_action1(mPadId, daPyStts1_UNK10000_e))) { - m3B4 = 1; + mWork.follow.m3B4 = 1; } else { - m3B4 = 0; + mWork.follow.m3B4 = 0; } if (local_4bc < local_498) { @@ -3253,30 +3252,30 @@ bool dCamera_c::followCamera(s32 param_1) { local_4bc.Val(local_49c); } - m03C.V(m03C.U() + ((local_4bc - m03C.U()) * m3E0)); + m03C.V(m03C.U() + ((local_4bc - m03C.U()) * mWork.follow.m3E0)); if (local_494 > m03C.U()) { m03C.V(local_494); } - m398 += dVar27 * (dVar25 - m398); - m39C += dVar27 * (dVar24 - m39C); + mWork.follow.m398 += dVar27 * (dVar25 - mWork.follow.m398); + mWork.follow.m39C += dVar27 * (dVar24 - mWork.follow.m39C); - if (m398 < local_484.R()) { - m3DC += (dVar26 - m3DC) * 0.01f; - local_484.R(m398); + if (mWork.follow.m398 < local_484.R()) { + mWork.follow.m3DC += (dVar26 - mWork.follow.m3DC) * 0.01f; + local_484.R(mWork.follow.m398); } - else if (local_484.R() > m39C) { - m3DC += (dVar26 - m3DC) * 0.01f; - local_484.R(m39C); + else if (local_484.R() > mWork.follow.m39C) { + mWork.follow.m3DC += (dVar26 - mWork.follow.m3DC) * 0.01f; + local_484.R(mWork.follow.m39C); } else { - m3DC = 1.0f; + mWork.follow.m3DC = 1.0f; } - m03C.R(m03C.R() + m3DC * (local_484.R() - m03C.R())); - m3CC = m044 + m03C.Xyz(); + m03C.R(m03C.R() + mWork.follow.m3DC * (local_484.R() - m03C.R())); + mWork.follow.m3CC = m044 + m03C.Xyz(); if (bVar3 && bVar4 && mCamParam.Flag(param_1, dCamPrmFlg_UNK001)) { cSGlobe cStack_48c(m03C); @@ -3287,15 +3286,15 @@ bool dCamera_c::followCamera(s32 param_1) { } } - m050 += (m3CC - m050) * 0.75f; + m050 += (mWork.follow.m3CC - m050) * 0.75f; m03C.Val(m050 - m044); if (chkFlag(8)) { - m3DA = 1; + mWork.follow.m3DA = 1; } - m3E8 += (dVar32 - m3E8) * 0.01f; - m060 += m3E8 * (dVar31 - m060); + mWork.follow.m3E8 += (dVar32 - mWork.follow.m3E8) * 0.01f; + m060 += mWork.follow.m3E8 * (dVar31 - m060); if (check_owner_action1(mPadId, daPyStts1_DEKU_LEAF_FAN_e)) { m060 += cM_rndFX(mCamSetup.m078); @@ -3349,22 +3348,19 @@ bool dCamera_c::lockonCamera(s32 param_1) { m100 = 1; m101 = 1; m102 = 1; - m378 = 'LOCK'; - m380 = 0; - m384 = 1.0f; - m38C = 0; - m588 = 0; - m390 = m044.x; - m394 = m044.y; - m398 = m044.z; + mWork.lockon.m378 = 'LOCK'; + mWork.lockon.m380 = 0; + mWork.lockon.m384 = 1.0f; + mWork.lockon.m38C = 0; + mWork.lockon.m39C = 0; + mWork.lockon.m390 = m044; cXyz cStack_150 = m044 - attentionPos(mpPlayerActor); - //m3A8.Val() - //cSGlobe::Val((cSGlobe *)&this->field304_0x3a8,&cStack_150); - m3A0 = m39C = 0.0f; - m3B8 = mCamSetup.Cushion4Base(); - m388 = 0; - m3A0 = 0; - m3A4 = 0; + mWork.lockon.m3A8.Val(cStack_150); + mWork.lockon.m3A0 = mWork.lockon.m39C = 0.0f; + mWork.lockon.m3B8 = mCamSetup.Cushion4Base(); + mWork.lockon.m388 = 0; + mWork.lockon.m3A0 = 0; + mWork.lockon.m3A4 = 0; if (mpLockonTarget) { radiusActorInSight(mpPlayerActor, mpLockonTarget); @@ -3375,20 +3371,20 @@ bool dCamera_c::lockonCamera(s32 param_1) { dComIfG_Bgsp()->MoveBgMatrixCrrPos(mBG.m5C.m04, true, &m36C, NULL, NULL); } if (dComIfGp_getAttention().LockonTruth() && check_owner_action(mPadId, daPyStts0_BOOMERANG_WAIT_e)) { - m38C = 1; + mWork.lockon.m38C = 1; } else { - m38C = 0; + mWork.lockon.m38C = 0; } if (check_owner_action(mPadId, daPyStts0_UNK400_e)) { - m38C = 0; + mWork.lockon.m38C = 0; } else { - if (m38C) { + if (mWork.lockon.m38C) { dComIfGp_getVibration().StartShock(2, 0x10, cXyz(0.0f, 1.0f, 0.0f)); } - m38C = 1; + mWork.lockon.m38C = 1; } bool bVar6 = true; @@ -3449,12 +3445,12 @@ bool dCamera_c::lockonCamera(s32 param_1) { cSAngle local_25c = m03C.U().Inv() - acStack_254; if (local_25c < cSAngle::_0) { - m38C = 0; + mWork.lockon.m38C = 0; acStack_254 -= local_258; local_25c = -acStack_254; } else { - m38C = 1; + mWork.lockon.m38C = 1; acStack_254 += local_258; } @@ -3463,24 +3459,24 @@ bool dCamera_c::lockonCamera(s32 param_1) { if (chkFlag(0x80080)) { cXyz local_114 = attentionPos(mpPlayerActor); if (pointInSight(&local_114)) { - if (m388 == 0) { - int iVar10 = -m38C + 1; - m390 = iVar10 - (-m38C + (iVar10 == 0)); + if (mWork.lockon.m388 == 0) { + int iVar10 = -mWork.lockon.m38C + 1; + mWork.lockon.m388 = iVar10 - (-mWork.lockon.m38C + (iVar10 == 0)); } bVar6 = true; - m388 = 0x3c; + mWork.lockon.m388 = 0x3c; } } if (lineBGCheckBack(&m044, &local_108, 0x7f) && lineBGCheck(&m050, &m044, 0x7f)) { bVar6 = true; - m388 = 0x3c; + mWork.lockon.m388 = 0x3c; } - if (m388) { - m388--; - if (m388 && mStickMainValueLast <= 0.1f) { - m388 = 1; + if (mWork.lockon.m388) { + mWork.lockon.m388--; + if (mWork.lockon.m388 && mStickMainValueLast <= 0.1f) { + mWork.lockon.m388 = 1; } bVar6 = true; } @@ -3490,7 +3486,7 @@ bool dCamera_c::lockonCamera(s32 param_1) { if (chkFlag(0x10)) { fVar3 = 0.01f; - m3B8 = 0.01f; + mWork.lockon.m3B8 = 0.01f; } else if (m360) { fVar3 = mCamSetup.Cushion4Base(); @@ -3499,9 +3495,9 @@ bool dCamera_c::lockonCamera(s32 param_1) { fVar3 = mCamSetup.Cushion4Jump(); } - m3B8 += (fVar3 - m3B8.Val()) * mCamSetup.CusCus(); - m390 = local_108.x; - m398 = local_108.z; + mWork.lockon.m3B8 += (fVar3 - mWork.lockon.m3B8) * mCamSetup.CusCus(); + mWork.lockon.m390.x = local_108.x; + mWork.lockon.m390.z = local_108.z; if (bVar6) { dVar17 = mCamParam.LockonCenterHeight(fVar4); @@ -3510,13 +3506,13 @@ bool dCamera_c::lockonCamera(s32 param_1) { dVar17 = mCamParam.LockonCenterHeight(fVar4) + 25.0f; } - m398 += m3B8 * ((local_108.y + dVar17) - m398); + mWork.lockon.m390.z += mWork.lockon.m3B8 * ((local_108.y + dVar17) - mWork.lockon.m390.z); dVar17 = local_230.R(); f32 dVar19; if (mpLockonTarget) { f32 dVar18 = local_25c.Cos(); - dVar19 = (local_230.U() * 1.3f).Cos(); + dVar19 = cSAngle(local_230.U() * 1.3f).Cos(); if (std::fabsf(dVar18) < std::fabsf(dVar19)) { dVar19 = dVar18; } @@ -3527,22 +3523,22 @@ bool dCamera_c::lockonCamera(s32 param_1) { } cSAngle acStack_260 = local_230.U(); - m3E8 += (fVar21 - m3E8) * mCamSetup.CusCus(); - m3E0 += (fVar2 - m3E0) * mCamSetup.CusCus(); - cSAngle temp(m3E0 + 2); - cSAngle acStack_264 = temp + (acStack_260 - temp) * m3E8; + mWork.lockon.m3B4 += (fVar21 - mWork.lockon.m3B4) * mCamSetup.CusCus(); + mWork.lockon.m3B0 += (fVar2 - mWork.lockon.m3B0) * mCamSetup.CusCus(); + cSAngle temp(mWork.lockon.m3B0 + 2); + cSAngle acStack_264 = temp + (acStack_260 - temp) * mWork.lockon.m3B4; cSAngle acStack_268; if (bVar6) { - fVar2 = m3A8 * 0.75f; + fVar2 = mWork.lockon.m3A8.R() * 0.75f; acStack_268.Val(m534 + (local_230.U() - m534) * 0.05f); } else { - fVar2 = m3A8 + m3E4 * (m384 * (dVar19 + dVar17 * 0.05f) - m3A8); - acStack_268.Val(m534 + m3E8 * (local_230.U() - m534)); + fVar2 = mWork.lockon.m3A8.R() + mWork.lockon.m3B0 * (mWork.lockon.m384 * (dVar19 + dVar17 * 0.05f) - mWork.lockon.m3A8.R()); + acStack_268.Val(m534 + mWork.lockon.m3B4 * (local_230.U() - m534)); } - //m3A8.Val(fVar2, acStack_268, acStack_264); - //m044 = m390 + m3A8.Xyz(); + mWork.lockon.m3A8.Val(fVar2, acStack_268, acStack_264); + m044 = mWork.lockon.m390 + mWork.lockon.m3A8.Xyz(); if (mpLockonTarget && mLockOnActorId != -1) { cXyz local_120 = attentionPos(mpPlayerActor); if (lineBGCheck(&local_120, &m044, 0x7f)) { @@ -3586,9 +3582,10 @@ bool dCamera_c::lockonCamera(s32 param_1) { } else { iVar15 = local_258.Val(); + f32 f1 = (float)local_274.Val() / (float)iVar15; if (local_25c.Val() < iVar15) { fVar22 = mCamParam.Val(param_1, dCamStyleParam_UNK15); - fVar21 = dCamMath::customRBRatio(-((float)local_274.Val() / (float)iVar15), fVar21); + fVar21 = dCamMath::customRBRatio(-f1, fVar21); dVar17 = fVar22 * fVar21; } else { @@ -3599,7 +3596,7 @@ bool dCamera_c::lockonCamera(s32 param_1) { local_27c = cSAngle::_180 - local_258; } - dVar17 = mCamParam.Val(param_1, dCamStyleParam_UNK20) * dCamMath::rationalBezierRatio((float)local_274.Val() / (float)local_27c.Val(), fVar21); + dVar17 = mCamParam.Val(param_1, dCamStyleParam_UNK20) * dCamMath::rationalBezierRatio(f1, fVar21); if (dVar20 < 100.0f) { dVar17 *= dCamMath::rationalBezierRatio(dVar20 / 100.0f, 1.0f); @@ -3612,12 +3609,12 @@ bool dCamera_c::lockonCamera(s32 param_1) { } if (check_owner_action1(mPadId, daPyStts1_UNK20000_e)) { - iVar15 = m380; + iVar15 = mWork.lockon.m380; if (iVar15 <= iVar16) { f32 bezier_ratio = dCamMath::rationalBezierRatio((float)iVar15 / (float)iVar16, fVar1); local_270 += (local_250 - local_270) * bezier_ratio; setFlag(0x4000000); - m380++; + mWork.lockon.m380++; } else { local_270 = local_250; @@ -3628,12 +3625,12 @@ bool dCamera_c::lockonCamera(s32 param_1) { local_270 -= (local_230.U() * 0.7f + local_270) * 0.1f; } else { - m380 = 0; + mWork.lockon.m380 = 0; if (chkFlag(0x10)) { local_270 += (mCamParam.LockonLatitude(fVar4) - local_270) * 0.05f; } else if (!m360 && !check_owner_action(mPadId, daPyStts0_UNK400_e)) { - //dVar17 = m3A8.V().Cos(); + //dVar17 = mWork.lockon.m3A8.V().Cos(); local_270 += (local_240.U() - local_270) * (1.0f - std::fabsf(fVar5)) * std::fabsf(dVar17); } else { @@ -3762,7 +3759,7 @@ bool dCamera_c::CalcSubjectAngle(s16* param_1, s16* param_2) { return false; } - if (m378 != 'SUBJ') { + if (mWork.subject.m378 != 'SUBJ') { return false; } @@ -3770,19 +3767,19 @@ bool dCamera_c::CalcSubjectAngle(s16* param_1, s16* param_2) { return false; } - if (!m37C) { + if (!mWork.subject.m37C) { bVar9 = false; } - fVar1 = mCamParam.Val(m380, 19); - fVar2 = mCamParam.Val(m380, 24); - fVar3 = mCamParam.Val(m380, 21); + fVar1 = mCamParam.Val(mWork.subject.m380, 19); + fVar2 = mCamParam.Val(mWork.subject.m380, 24); + fVar3 = mCamParam.Val(mWork.subject.m380, 21); fVar4 = mCamSetup.m030; if (!bVar9) { - cSAngle local_88(fVar2 * m384); - cSAngle local_8c(fVar1 * m388); - s16 local_98 = local_88.Val() + m3BA; + cSAngle local_88(fVar2 * mWork.subject.m384); + cSAngle local_8c(fVar1 * mWork.subject.m388); + s16 local_98 = local_88.Val() + mWork.subject.m3BA; *param_2 = local_98; *param_1 = local_8c.Val(); } @@ -3791,13 +3788,13 @@ bool dCamera_c::CalcSubjectAngle(s16* param_1, s16* param_2) { fVar5 = g_mDoCPd_cpadInfo[mPadId].mMainStickPosY; if (is_player(mpPlayerActor)) { - m3B8 = ((daPy_py_c*)mpPlayerActor)->getBodyAngleX(); + mWork.subject.m3B8 = ((daPy_py_c*)mpPlayerActor)->getBodyAngleX(); } else { - m3B8 = mpPlayerActor->shape_angle.x; + mWork.subject.m3B8 = mpPlayerActor->shape_angle.x; } - m3BA = mpPlayerActor->shape_angle.y; + mWork.subject.m3BA = mpPlayerActor->shape_angle.y; f32 f1; if (fVar6 > 0.7f) { @@ -3823,7 +3820,7 @@ bool dCamera_c::CalcSubjectAngle(s16* param_1, s16* param_2) { fVar5 = f3; f32 f2 = 5.0f; - if ((mEye.y <= m354 + f2 || mEye.y <= mBG.m5C.m58 + f2) && ((m388 >= 0.0f && f3 > 0.0f) || (m388 < 0.0f && f3 <= 0.0f))) { + if ((mEye.y <= m354 + f2 || mEye.y <= mBG.m5C.m58 + f2) && ((mWork.subject.m388 >= 0.0f && f3 > 0.0f) || (mWork.subject.m388 < 0.0f && f3 <= 0.0f))) { fVar5 = 0.0f; } @@ -3832,53 +3829,53 @@ bool dCamera_c::CalcSubjectAngle(s16* param_1, s16* param_2) { } if (!check_owner_action(mPadId, daPyStts0_UNK40000_e)) { - if (mCamParam.Flag(m380, dCamPrmFlg_UNK020)) { - m384 = -f1; - m388 = fVar5; + if (mCamParam.Flag(mWork.subject.m380, dCamPrmFlg_UNK020)) { + mWork.subject.m384 = -f1; + mWork.subject.m388 = fVar5; } else { dVar11 = dCamMath::rationalBezierRatio(f1, mCamSetup.CurveWeight()); dVar12 = dCamMath::rationalBezierRatio(fVar5, mCamSetup.CurveWeight()); if (check_owner_action(mPadId, daPyStts0_UNK2000_e)) { - m384 = -dVar11 * fVar3; - m388 += dVar12 * fVar3; + mWork.subject.m384 = -dVar11 * fVar3; + mWork.subject.m388 += dVar12 * fVar3; } else { - if (mCamParam.Flag(m380, dCamPrmFlg_UNK010)) { - f32 temp = fVar3 - (m38C * (fVar3 * fVar4)); - m384 = -dVar11 * temp; - m388 += dVar12 * temp; + if (mCamParam.Flag(mWork.subject.m380, dCamPrmFlg_UNK010)) { + f32 temp = fVar3 - (mWork.subject.m38C * (fVar3 * fVar4)); + mWork.subject.m384 = -dVar11 * temp; + mWork.subject.m388 += dVar12 * temp; } else { - m384 = -dVar11 * fVar3; - m388 += dVar12 * fVar3; + mWork.subject.m384 = -dVar11 * fVar3; + mWork.subject.m388 += dVar12 * fVar3; } } - if (m384 > 1.0f) { - m384 = 1.0f; + if (mWork.subject.m384 > 1.0f) { + mWork.subject.m384 = 1.0f; } - if (m384 < -1.0f) { - m384 = -1.0f; + if (mWork.subject.m384 < -1.0f) { + mWork.subject.m384 = -1.0f; } - if (m388 > 1.0f) { - m388 = 1.0f; + if (mWork.subject.m388 > 1.0f) { + mWork.subject.m388 = 1.0f; } - if (m388 < -1.0f) { - m388 = -1.0f; + if (mWork.subject.m388 < -1.0f) { + mWork.subject.m388 = -1.0f; } } } else { - m384 = 0.0f; + mWork.subject.m384 = 0.0f; } - cSAngle local_90(fVar2 * m384); - cSAngle local_94(fVar1 * m388); + cSAngle local_90(fVar2 * mWork.subject.m384); + cSAngle local_94(fVar1 * mWork.subject.m388); - s16 local_a8 = local_90.Val() + m3BA; + s16 local_a8 = local_90.Val() + mWork.subject.m3BA; *param_2 = local_a8; *param_1 = local_94.Val(); - m37D = 0; + mWork.subject.m37D = 0; return bVar9; } diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index 4d5832fbe..c311a1cb7 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -548,30 +548,30 @@ s32 fopAcM_checkCullingBox(Mtx pMtx, f32 x0, f32 y0, f32 z0, f32 x1, f32 y1, f32 static l_HIO l_hio; static fopAc_cullSizeBox l_cullSizeBox[14] = { - /* fopAc_CULLBOX_0_e */ fopAc_MakeCullSizeBox(cXyz(-40.0f, 0.0f, -40.0f), cXyz(40.0f, 125.0f, 40.0f)), - /* fopAc_CULLBOX_1_e */ fopAc_MakeCullSizeBox(cXyz(-25.0f, 0.0f, -25.0f), cXyz(25.0f, 50.0f, 25.0f)), - /* fopAc_CULLBOX_2_e */ fopAc_MakeCullSizeBox(cXyz(-50.0f, 0.0f, -50.0f), cXyz(50.0f, 100.0f, 50.0f)), - /* fopAc_CULLBOX_3_e */ fopAc_MakeCullSizeBox(cXyz(-75.0f, 0.0f, -75.0f), cXyz(75.0f, 150.0f, 75.0f)), - /* fopAc_CULLBOX_4_e */ fopAc_MakeCullSizeBox(cXyz(-100.0f, 0.0f, -100.0f), cXyz(100.0f, 800.0f, 100.0f)), - /* fopAc_CULLBOX_5_e */ fopAc_MakeCullSizeBox(cXyz(-125.0f, 0.0f, -125.0f), cXyz(125.0f, 250.0f, 125.0f)), - /* fopAc_CULLBOX_6_e */ fopAc_MakeCullSizeBox(cXyz(-150.0f, 0.0f, -150.0f), cXyz(150.0f, 300.0f, 150.0f)), - /* fopAc_CULLBOX_7_e */ fopAc_MakeCullSizeBox(cXyz(-200.0f, 0.0f, -200.0f), cXyz(200.0f, 400.0f, 200.0f)), - /* fopAc_CULLBOX_8_e */ fopAc_MakeCullSizeBox(cXyz(-600.0f, 0.0f, -600.0f), cXyz(600.0f, 900.0f, 600.0f)), - /* fopAc_CULLBOX_9_e */ fopAc_MakeCullSizeBox(cXyz(-250.0f, 0.0f, -50.0f), cXyz(250.0f, 450.0f, 50.0f)), - /* fopAc_CULLBOX_10_e */ fopAc_MakeCullSizeBox(cXyz(-60.0f, 0.0f, -20.0f), cXyz(40.0f, 130.0f, 150.0f)), - /* fopAc_CULLBOX_11_e */ fopAc_MakeCullSizeBox(cXyz(-75.0f, 0.0f, -75.0f), cXyz(75.0f, 210.0f, 75.0f)), - /* fopAc_CULLBOX_12_e */ fopAc_MakeCullSizeBox(cXyz(-70.0f, -100.0f, -80.0f), cXyz(70.0f, 240.0f, 100.0f)), - /* fopAc_CULLBOX_13_e */ fopAc_MakeCullSizeBox(cXyz(-60.0f, -20.0f, -60.0f), cXyz(60.0f, 160.0f, 60.0f)), + /* fopAc_CULLBOX_0_e */ fopAc_cullSizeBox(cXyz(-40.0f, 0.0f, -40.0f), cXyz(40.0f, 125.0f, 40.0f)), + /* fopAc_CULLBOX_1_e */ fopAc_cullSizeBox(cXyz(-25.0f, 0.0f, -25.0f), cXyz(25.0f, 50.0f, 25.0f)), + /* fopAc_CULLBOX_2_e */ fopAc_cullSizeBox(cXyz(-50.0f, 0.0f, -50.0f), cXyz(50.0f, 100.0f, 50.0f)), + /* fopAc_CULLBOX_3_e */ fopAc_cullSizeBox(cXyz(-75.0f, 0.0f, -75.0f), cXyz(75.0f, 150.0f, 75.0f)), + /* fopAc_CULLBOX_4_e */ fopAc_cullSizeBox(cXyz(-100.0f, 0.0f, -100.0f), cXyz(100.0f, 800.0f, 100.0f)), + /* fopAc_CULLBOX_5_e */ fopAc_cullSizeBox(cXyz(-125.0f, 0.0f, -125.0f), cXyz(125.0f, 250.0f, 125.0f)), + /* fopAc_CULLBOX_6_e */ fopAc_cullSizeBox(cXyz(-150.0f, 0.0f, -150.0f), cXyz(150.0f, 300.0f, 150.0f)), + /* fopAc_CULLBOX_7_e */ fopAc_cullSizeBox(cXyz(-200.0f, 0.0f, -200.0f), cXyz(200.0f, 400.0f, 200.0f)), + /* fopAc_CULLBOX_8_e */ fopAc_cullSizeBox(cXyz(-600.0f, 0.0f, -600.0f), cXyz(600.0f, 900.0f, 600.0f)), + /* fopAc_CULLBOX_9_e */ fopAc_cullSizeBox(cXyz(-250.0f, 0.0f, -50.0f), cXyz(250.0f, 450.0f, 50.0f)), + /* fopAc_CULLBOX_10_e */ fopAc_cullSizeBox(cXyz(-60.0f, 0.0f, -20.0f), cXyz(40.0f, 130.0f, 150.0f)), + /* fopAc_CULLBOX_11_e */ fopAc_cullSizeBox(cXyz(-75.0f, 0.0f, -75.0f), cXyz(75.0f, 210.0f, 75.0f)), + /* fopAc_CULLBOX_12_e */ fopAc_cullSizeBox(cXyz(-70.0f, -100.0f, -80.0f), cXyz(70.0f, 240.0f, 100.0f)), + /* fopAc_CULLBOX_13_e */ fopAc_cullSizeBox(cXyz(-60.0f, -20.0f, -60.0f), cXyz(60.0f, 160.0f, 60.0f)), }; static fopAc_cullSizeSphere l_cullSizeSphere[8] = { - /* fopAc_CULLSPHERE_0_e */ fopAc_MakeCullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 80.0f), - /* fopAc_CULLSPHERE_1_e */ fopAc_MakeCullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 50.0f), - /* fopAc_CULLSPHERE_2_e */ fopAc_MakeCullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 100.0f), - /* fopAc_CULLSPHERE_3_e */ fopAc_MakeCullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 150.0f), - /* fopAc_CULLSPHERE_4_e */ fopAc_MakeCullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 200.0f), - /* fopAc_CULLSPHERE_5_e */ fopAc_MakeCullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 250.0f), - /* fopAc_CULLSPHERE_6_e */ fopAc_MakeCullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 300.0f), - /* fopAc_CULLSPHERE_7_e */ fopAc_MakeCullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 400.0f), + /* fopAc_CULLSPHERE_0_e */ fopAc_cullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 80.0f), + /* fopAc_CULLSPHERE_1_e */ fopAc_cullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 50.0f), + /* fopAc_CULLSPHERE_2_e */ fopAc_cullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 100.0f), + /* fopAc_CULLSPHERE_3_e */ fopAc_cullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 150.0f), + /* fopAc_CULLSPHERE_4_e */ fopAc_cullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 200.0f), + /* fopAc_CULLSPHERE_5_e */ fopAc_cullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 250.0f), + /* fopAc_CULLSPHERE_6_e */ fopAc_cullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 300.0f), + /* fopAc_CULLSPHERE_7_e */ fopAc_cullSizeSphere(cXyz(0.0f, 0.0f, 0.0f), 400.0f), }; static void dummy() {