diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index f3b3da84..ca7cffb4 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -1877,7 +1877,7 @@ ActorNpcBase2__update = .text:0x80048770; // type:function size:0x158 fn_800488D0 = .text:0x800488D0; // type:function size:0x8 getFloat1200 = .text:0x800488E0; // type:function size:0x8 fn_800488F0 = .text:0x800488F0; // type:function size:0x4 -calcTimer = .text:0x80048900; // type:function size:0x1C +calcTimer__4sLibFPs_s = .text:0x80048900; // type:function size:0x1C fn_80048920 = .text:0x80048920; // type:function size:0x728 fn_80049050 = .text:0x80049050; // type:function size:0x8 fn_80049060 = .text:0x80049060; // type:function size:0x18 @@ -17865,7 +17865,7 @@ fn_802F25E0 = .text:0x802F25E0; // type:function size:0x19C fn_802F2780__7mQuat_cFRC7mQuat_c = .text:0x802F2780; // type:function size:0x198 registerThread__7mThreadFP8OSThreadPv = .text:0x802F2920; // type:function size:0x48 createProjectionXZ__7mVec3_cFRC7mAng3_cf = .text:0x802F2970; // type:function size:0x110 -mVec__fromXY = .text:0x802F2A80; // type:function size:0xF0 +fromXY__7mVec3_cFRC4mAngRC4mAngf = .text:0x802F2A80; // type:function size:0xF0 normalize__7mVec3_cFv = .text:0x802F2B70; // type:function size:0x78 normalizeRS__7mVec3_cFv = .text:0x802F2BF0; // type:function size:0x84 rotX__7mVec3_cFRC4mAng = .text:0x802F2C80; // type:function size:0xA8 @@ -18761,13 +18761,13 @@ Set__8cCcD_ObjFRC12cCcD_SrcGObj = .text:0x80328B60; // type:function size:0x50 ClrAtHit__8cCcD_ObjFv = .text:0x80328BB0; // type:function size:0x48 ClrTgHit__8cCcD_ObjFv = .text:0x80328C00; // type:function size:0x4C ClrCoHit__8cCcD_ObjFv = .text:0x80328C50; // type:function size:0x4C -GetAtHitPos__8cCcD_ObjCFv = .text:0x80328CA0; // type:function size:0x8 -GetAtHitPos__8cCcD_ObjFv = .text:0x80328CB0; // type:function size:0x8 +GetAtHitPos__8cCcD_ObjFv = .text:0x80328CA0; // type:function size:0x8 +GetAtHitPos__8cCcD_ObjCFv = .text:0x80328CB0; // type:function size:0x8 GetAtFlag0x2__8cCcD_ObjCFv = .text:0x80328CC0; // type:function size:0xC GetAtFlag0x4__8cCcD_ObjCFv = .text:0x80328CD0; // type:function size:0xC GetAtFlag0x8__8cCcD_ObjCFv = .text:0x80328CE0; // type:function size:0xC -GetTgHitPos__8cCcD_ObjCFv = .text:0x80328CF0; // type:function size:0x8 -GetTgHitPos__8cCcD_ObjFv = .text:0x80328D00; // type:function size:0x8 +GetTgHitPos__8cCcD_ObjFv = .text:0x80328CF0; // type:function size:0x8 +GetTgHitPos__8cCcD_ObjCFv = .text:0x80328D00; // type:function size:0x8 GetTgFlag0x4__8cCcD_ObjCFv = .text:0x80328D10; // type:function size:0xC GetTgFlag0x8__8cCcD_ObjCFv = .text:0x80328D20; // type:function size:0xC GetGObjInfo__8cCcD_ObjFv = .text:0x80328D30; // type:function size:0x4 diff --git a/include/d/d_angle.h b/include/d/d_angle.h deleted file mode 100644 index 8d42106e..00000000 --- a/include/d/d_angle.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef D_ANGLE_H -#define D_ANGLE_H - -#include "m/m_angle.h" -#include "m/m_vec.h" - -inline void setRotXY(mAng3_c &rot, s32 x, s32 y) { - rot.set(x, y, mAng(0)); -} - -inline void setRotXYVec(mAng3_c &rot, const mVec3_c &direction) { - setRotXY(rot, -direction.atan2sY_XZ(), direction.atan2sX_Z()); -} - -#endif diff --git a/src/d/a/d_a_item.cpp b/src/d/a/d_a_item.cpp index 47cfabc2..1452dd69 100644 --- a/src/d/a/d_a_item.cpp +++ b/src/d/a/d_a_item.cpp @@ -10,7 +10,6 @@ #include "d/col/bg/d_bg_s.h" #include "d/col/cc/d_cc_d.h" #include "d/col/cc/d_cc_s.h" -#include "d/d_angle.h" #include "d/d_camera.h" #include "d/d_linkage.h" #include "d/d_player.h" @@ -2038,7 +2037,7 @@ void dAcItem_c::executeState_GetDemo() { // TODO close but an extsh is missing // Same pattern as in rotateTowardsCamera mAng3_c rot; - setRotXYVec(rot, diff); + rot.set(-diff.atan2sY_XZ(), diff.atan2sX_Z(), mAng(0)); u32 alpha = 0xFF; if (dScGame_c::currentSpawnInfo.getTrial() == SpawnInfo::TRIAL) { alpha = 0x80; @@ -2584,7 +2583,7 @@ void dAcItem_c::rotateTowardsCamera() { mVec3_c diff = cam->getPosition() - mPosition; // TODO close but an extsh is missing // Same pattern as in executeState_GetDemo - setRotXYVec(mRotation, diff); + mRotation.set(-diff.atan2sY_XZ(), diff.atan2sX_Z(), mAng(0)); } void dAcItem_c::rotateFixedBirdStatuette() { diff --git a/src/d/a/obj/d_a_obj_arrow.cpp b/src/d/a/obj/d_a_obj_arrow.cpp index 0ac3b1f4..41c919b0 100644 --- a/src/d/a/obj/d_a_obj_arrow.cpp +++ b/src/d/a/obj/d_a_obj_arrow.cpp @@ -15,7 +15,6 @@ #include "d/col/c/c_cc_d.h" #include "d/col/c/c_m3d_g_pla.h" #include "d/col/cc/d_cc_s.h" -#include "d/d_angle.h" #include "d/d_jnt_col.h" #include "d/d_light_env.h" #include "d/d_linkage.h" @@ -243,7 +242,7 @@ void dAcArrow_c::fn_8025E160() { if (isSlingshotProjectile()) { field_0x6A0 = 0.0f; if (mArrowType != 17) { - setRotXY(mAngle, -link->getField_0x1268(), link->getRotation().y + link->getField_0x126A()); + mAngle.set(mAng(-link->getField_0x1268()), mAng(link->getRotation().y + link->getField_0x126A()), mAng(0)); } else { mAngle.y = mRotation.y; mAngle.x = -mRotation.x; @@ -290,7 +289,7 @@ void dAcArrow_c::fn_8025E160() { tmp2.rotY(mAngle.y); mMtx_c mtx; - mtx.setAxisRotation(tmp, i * mAng::s2r_c(0x2000) + mAng::d2r_c(cM::rndFX(2.5f))); + mtx.setAxisRotation(tmp, i * mAng::s2r_c(0x2000) + mAng::d2r_c(cM::rndFX(12.0f))); MTXMultVecSR(mtx, tmp2, tmp2); ang.x = tmp2.atan2sY_XZ(); ang.y = tmp2.atan2sX_Z(); @@ -488,8 +487,7 @@ void dAcArrow_c::executeState_Move() { sArrowLinChk.Set(&mOldPosition, &next, this); bool isCross = dBgS::GetInstance()->LineCross(&sArrowLinChk); - // TODO the constness here is probably a bit messed up - const cCcD_Obj *obj = nullptr; + cCcD_Obj *obj = nullptr; s32 flags = -1; if (mCcCps.ChkTgHit()) { obj = &mCcCps; @@ -504,8 +502,7 @@ void dAcArrow_c::executeState_Move() { mPosition = obj->GetTgHitPos(); const mVec3_c &hitDir = obj->GetTgAtHitDir(); if (hitDir.squareMagXZ() < 1.0f) { - // TODO constness - mAngle.y = cLib::targetAngleY(mPosition, const_cast(obj)->GetTgActor()->mPosition); + mAngle.y = cLib::targetAngleY(mPosition, obj->GetTgActor()->mPosition); } else { mAngle.y = hitDir.atan2snX_nZ(); } diff --git a/src/d/col/c/c_cc_d.cpp b/src/d/col/c/c_cc_d.cpp index bdabbceb..e54f258e 100644 --- a/src/d/col/c/c_cc_d.cpp +++ b/src/d/col/c/c_cc_d.cpp @@ -355,11 +355,11 @@ void cCcD_Obj::ClrCoHit() { mCo.ClrEffCounter(); } -const mVec3_c &cCcD_Obj::GetAtHitPos() const { +mVec3_c &cCcD_Obj::GetAtHitPos() { return mAt.mHitPos; } -mVec3_c &cCcD_Obj::GetAtHitPos() { +const mVec3_c &cCcD_Obj::GetAtHitPos() const { return mAt.mHitPos; } @@ -375,11 +375,11 @@ bool cCcD_Obj::GetAtFlag0x8() const { return mAt.MskRPrm(8); } -const mVec3_c &cCcD_Obj::GetTgHitPos() const { +mVec3_c &cCcD_Obj::GetTgHitPos() { return mTg.mHitPos; } -mVec3_c &cCcD_Obj::GetTgHitPos() { +const mVec3_c &cCcD_Obj::GetTgHitPos() const { return mTg.mHitPos; }