diff --git a/include/functions.h b/include/functions.h index 57166a1862..6ce39d892e 100644 --- a/include/functions.h +++ b/include/functions.h @@ -2702,11 +2702,10 @@ s32 Math3D_YZInSphere(Sphere16* sphere, f32 y, f32 z); // void func_8017FB1C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10, UNK_TYPE4 param_11); // void func_8017FD44(void); -u16 Math_GetAtan2Tbl(f32 y, f32 x); s16 Math_Atan2S(f32 y, f32 x); f32 Math_Atan2F(f32 y, f32 x); -s16 Math_FAtan2F(f32 adjacent, f32 opposite); -f32 Math_Acot2F(f32 adjacent, f32 opposite); +s16 Math_Atan2S_XY(f32 x, f32 y); +f32 Math_Atan2F_XY(f32 x, f32 y); u64* SysUcode_GetUCodeBoot(void); size_t SysUcode_GetUCodeBootSize(void); diff --git a/src/code/sys_math_atan.c b/src/code/sys_math_atan.c index d68e1e293a..72383b6b94 100644 --- a/src/code/sys_math_atan.c +++ b/src/code/sys_math_atan.c @@ -130,10 +130,12 @@ f32 Math_Atan2F(f32 y, f32 x) { return Math_Atan2S(y, x) * (M_PI / 0x8000); } -s16 Math_FAtan2F(f32 adjacent, f32 opposite) { - return Math_Atan2S(opposite, adjacent); +// Match the OoT implementation of Math_Atan2S +s16 Math_Atan2S_XY(f32 x, f32 y) { + return Math_Atan2S(y, x); } -f32 Math_Acot2F(f32 adjacent, f32 opposite) { - return Math_Atan2F(opposite, adjacent); +// Match the OoT implementation of Math_Atan2F +f32 Math_Atan2F_XY(f32 x, f32 y) { + return Math_Atan2F(y, x); } diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 4d8fdd1b4c..0483d097e9 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -151,7 +151,7 @@ void ActorShadow_DrawFoot(PlayState* play, Light* light, MtxF* arg2, s32 lightNu dir0 = light->l.dir[0]; dir2 = light->l.dir[2]; - sp58 = Math_FAtan2F(dir2, dir0); + sp58 = Math_Atan2S_XY(dir2, dir0); shadowScaleZ *= (4.5f - (light->l.dir[1] * 0.035f)); shadowScaleZ = CLAMP_MIN(shadowScaleZ, 1.0f); Matrix_Put(arg2); @@ -1493,8 +1493,7 @@ void Actor_GetSlopeDirection(CollisionPoly* floorPoly, Vec3f* slopeNormal, s16* slopeNormal->x = COLPOLY_GET_NORMAL(floorPoly->normal.x); slopeNormal->y = COLPOLY_GET_NORMAL(floorPoly->normal.y); slopeNormal->z = COLPOLY_GET_NORMAL(floorPoly->normal.z); - - *downwardSlopeYaw = Math_FAtan2F(slopeNormal->z, slopeNormal->x); + *downwardSlopeYaw = Math_Atan2S_XY(slopeNormal->z, slopeNormal->x); } s32 func_800B761C(Actor* actor, f32 arg1, s32 arg2) { @@ -1591,7 +1590,7 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, Math_Vec3f_Copy(&actor->world.pos, &pos); } - actor->wallYaw = Math_FAtan2F(sp7C->normal.z, sp7C->normal.x); + actor->wallYaw = Math_Atan2S_XY(sp7C->normal.z, sp7C->normal.x); actor->wallBgId = bgId; } else { actor->bgCheckFlags &= ~8; @@ -4380,8 +4379,8 @@ void func_800BE33C(Vec3f* arg0, Vec3f* arg1, Vec3s* arg2, s32 arg3) { f32 zDiff = arg1->z - arg0->z; f32 yDiff = arg3 ? (arg1->y - arg0->y) : (arg0->y - arg1->y); - arg2->y = Math_FAtan2F(zDiff, xDiff); - arg2->x = Math_FAtan2F(sqrtf(SQ(xDiff) + SQ(zDiff)), yDiff); + arg2->y = Math_Atan2S_XY(zDiff, xDiff); + arg2->x = Math_Atan2S_XY(sqrtf(SQ(xDiff) + SQ(zDiff)), yDiff); } void func_800BE3D0(Actor* actor, s16 angle, Vec3s* arg2) { diff --git a/src/code/z_lib.c b/src/code/z_lib.c index 6466b337c3..136918765a 100644 --- a/src/code/z_lib.c +++ b/src/code/z_lib.c @@ -251,7 +251,7 @@ void func_800FF3A0(f32* distOut, s16* angleOut, Input* input) { if (dist > 0.0f) { x = input->cur.stick_x; y = input->cur.stick_y; - *angleOut = Math_FAtan2F(y, -x); + *angleOut = Math_Atan2S_XY(y, -x); } else { *angleOut = 0; } @@ -420,11 +420,11 @@ f32 Math_Vec3f_DiffY(Vec3f* a, Vec3f* b) { s16 Math_Vec3f_Yaw(Vec3f* a, Vec3f* b) { f32 f14 = b->x - a->x; f32 f12 = b->z - a->z; - return Math_FAtan2F(f12, f14); + return Math_Atan2S_XY(f12, f14); } s16 Math_Vec3f_Pitch(Vec3f* a, Vec3f* b) { - return Math_FAtan2F(Math_Vec3f_DistXZ(a, b), a->y - b->y); + return Math_Atan2S_XY(Math_Vec3f_DistXZ(a, b), a->y - b->y); } void IChain_Apply_u8(u8* ptr, InitChainEntry* ichain); diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index 38bdc64aa7..ac6ac560cc 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -1725,7 +1725,7 @@ void func_80124FF0(f32 arg0, s16 arg1, Vec3f* arg2, s16 arg3, Vec3f* arg4, Vec3f Math_Vec3f_Diff(arg5, arg4, &sp44); sp40 = sqrtf(SQXZ(sp44)); - sp3C = (sp40 <= 1.0f) ? arg3 : Math_FAtan2F(sp44.z, sp44.x); + sp3C = (sp40 <= 1.0f) ? arg3 : Math_Atan2S_XY(sp44.z, sp44.x); sp40 = (Math_CosS(sp3C - arg3) * sp40) + arg8; if (ABS_ALT(BINANG_SUB(sp3C, arg3)) > 0x4000) { @@ -1733,7 +1733,7 @@ void func_80124FF0(f32 arg0, s16 arg1, Vec3f* arg2, s16 arg3, Vec3f* arg4, Vec3f } sp3C -= arg3; - temp_v0 = Math_FAtan2F(sp44.y, sp40); + temp_v0 = Math_Atan2S_XY(sp44.y, sp40); temp_v0 = CLAMP(temp_v0, (s16)-arg9, arg9); //! FAKE: if (sp3C) {} diff --git a/src/code/z_sub_s.c b/src/code/z_sub_s.c index 2924fe3535..8f412364d8 100644 --- a/src/code/z_sub_s.c +++ b/src/code/z_sub_s.c @@ -1072,8 +1072,8 @@ s32 SubS_TrackPoint(Vec3f* target, Vec3f* focusPos, Vec3s* shapeRot, Vec3s* trac s16 targetX; f32 diffZ = target->z - focusPos->z; - yaw = Math_FAtan2F(diffZ, diffX); - pitch = Math_FAtan2F(sqrtf(SQ(diffX) + SQ(diffZ)), target->y - focusPos->y); + yaw = Math_Atan2S_XY(diffZ, diffX); + pitch = Math_Atan2S_XY(sqrtf(SQ(diffX) + SQ(diffZ)), target->y - focusPos->y); Math_SmoothStepToS(&trackTarget->x, pitch, 4, 0x2710, 0); Math_SmoothStepToS(&trackTarget->y, yaw, 4, 0x2710, 0); @@ -1306,8 +1306,8 @@ void SubS_ActorPathing_ComputePointInfo(PlayState* play, ActorPathing* actorPath diff.z = actorPath->curPoint.z - actorPath->worldPos->z; actorPath->distSqToCurPointXZ = Math3D_XZLengthSquared(diff.x, diff.z); actorPath->distSqToCurPoint = Math3D_LengthSquared(&diff); - actorPath->rotToCurPoint.y = Math_FAtan2F(diff.z, diff.x); - actorPath->rotToCurPoint.x = Math_FAtan2F(sqrtf(actorPath->distSqToCurPointXZ), -diff.y); + actorPath->rotToCurPoint.y = Math_Atan2S_XY(diff.z, diff.x); + actorPath->rotToCurPoint.x = Math_Atan2S_XY(sqrtf(actorPath->distSqToCurPointXZ), -diff.y); actorPath->rotToCurPoint.z = 0; } diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index 0eaa5787f5..e3ac3e7538 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -216,7 +216,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) { } } else { Math_Vec3f_Diff(&bodyDistDiffVec, &newPos, &player->actor.velocity); - player->actor.world.rot.x = Math_FAtan2F(sqrtf(SQXZ(bodyDistDiffVec)), -bodyDistDiffVec.y); + player->actor.world.rot.x = Math_Atan2S_XY(sqrtf(SQXZ(bodyDistDiffVec)), -bodyDistDiffVec.y); } if (phi_f16 < 50.0f) { ArmsHook_DetachHookFromActor(this); @@ -238,7 +238,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) { Actor_MoveWithGravity(&this->actor); Math_Vec3f_Diff(&this->actor.world.pos, &this->actor.prevPos, &prevFrameDiff); Math_Vec3f_Sum(&this->unk1E0, &prevFrameDiff, &this->unk1E0); - this->actor.shape.rot.x = Math_FAtan2F(this->actor.speedXZ, -this->actor.velocity.y); + this->actor.shape.rot.x = Math_Atan2S_XY(this->actor.speedXZ, -this->actor.velocity.y); sp60.x = this->unk1EC.x - (this->unk1E0.x - this->unk1EC.x); sp60.y = this->unk1EC.y - (this->unk1E0.y - this->unk1EC.y); sp60.z = this->unk1EC.z - (this->unk1E0.z - this->unk1EC.z); diff --git a/src/overlays/actors/ovl_Boss_03/z_boss_03.c b/src/overlays/actors/ovl_Boss_03/z_boss_03.c index 160070697d..4c3b34fbb4 100644 --- a/src/overlays/actors/ovl_Boss_03/z_boss_03.c +++ b/src/overlays/actors/ovl_Boss_03/z_boss_03.c @@ -575,10 +575,10 @@ void func_809E34B8(Boss03* this, PlayState* play) { yDiff = this->unk_268.y - this->actor.world.pos.y; zDiff = this->unk_268.z - this->actor.world.pos.z; - Math_ApproachS(&this->actor.world.rot.x, Math_FAtan2F(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff), 0xA, this->unk_274); + Math_ApproachS(&this->actor.world.rot.x, Math_Atan2S_XY(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff), 0xA, this->unk_274); bodyYRotTarget = - Math_SmoothStepToS(&this->actor.world.rot.y, Math_FAtan2F(zDiff, xDiff), 0xA, this->unk_274, 0) * -0.5f; + Math_SmoothStepToS(&this->actor.world.rot.y, Math_Atan2S_XY(zDiff, xDiff), 0xA, this->unk_274, 0) * -0.5f; Math_ApproachS(&this->bodyYRot, bodyYRotTarget, 5, 0x100); Math_ApproachS(&this->unk_274, this->unk_276, 1, 0x100); @@ -664,9 +664,9 @@ void Boss03_ChasePlayer(Boss03* this, PlayState* play) { yDiff = (player->actor.world.pos.y - this->actor.world.pos.y) + 50.0f; zDiff = player->actor.world.pos.z - this->actor.world.pos.z; - Math_ApproachS(&this->actor.world.rot.x, Math_FAtan2F(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff), 0xA, this->unk_274); + Math_ApproachS(&this->actor.world.rot.x, Math_Atan2S_XY(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff), 0xA, this->unk_274); bodyYRotTarget = - Math_SmoothStepToS(&this->actor.world.rot.y, Math_FAtan2F(zDiff, xDiff), 0xA, this->unk_274, 0) * -0.5f; + Math_SmoothStepToS(&this->actor.world.rot.y, Math_Atan2S_XY(zDiff, xDiff), 0xA, this->unk_274, 0) * -0.5f; Math_ApproachS(&this->bodyYRot, bodyYRotTarget, 5, 0x100); Math_ApproachS(&this->unk_274, this->unk_276, 1, 0x100); @@ -760,9 +760,9 @@ void Boss03_CatchPlayer(Boss03* this, PlayState* play) { yDiff = player->actor.world.pos.y - this->actor.world.pos.y; zDiff = player->actor.world.pos.z - this->actor.world.pos.z; - Math_ApproachS(&this->actor.world.rot.x, Math_FAtan2F(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff), 0xA, this->unk_274); + Math_ApproachS(&this->actor.world.rot.x, Math_Atan2S_XY(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff), 0xA, this->unk_274); Math_ApproachS(&this->bodyYRot, - Math_SmoothStepToS(&this->actor.world.rot.y, Math_FAtan2F(zDiff, xDiff), 0xA, this->unk_274, 0) * + Math_SmoothStepToS(&this->actor.world.rot.y, Math_Atan2S_XY(zDiff, xDiff), 0xA, this->unk_274, 0) * -0.5f, 5, 0x100); Math_ApproachS(&this->unk_274, this->unk_276, 1, 0x100); @@ -826,7 +826,7 @@ void Boss03_SetupChewPlayer(Boss03* this, PlayState* play) { this->actionFunc = Boss03_ChewPlayer; - pitchAngle = Math_FAtan2F(this->actor.world.pos.z, this->actor.world.pos.x); + pitchAngle = Math_Atan2S_XY(this->actor.world.pos.z, this->actor.world.pos.x); Matrix_RotateYS(pitchAngle, MTXMODE_NEW); out.x = 0.0f; @@ -864,9 +864,9 @@ void Boss03_ChewPlayer(Boss03* this, PlayState* play) { yDiff = this->unk_268.y - this->actor.world.pos.y; zDiff = this->unk_268.z - this->actor.world.pos.z; - Math_ApproachS(&this->actor.world.rot.x, Math_FAtan2F(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff), 0xA, this->unk_274); + Math_ApproachS(&this->actor.world.rot.x, Math_Atan2S_XY(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff), 0xA, this->unk_274); Math_ApproachS(&this->bodyYRot, - Math_SmoothStepToS(&this->actor.world.rot.y, Math_FAtan2F(zDiff, xDiff), 0xA, this->unk_274, 0) * + Math_SmoothStepToS(&this->actor.world.rot.y, Math_Atan2S_XY(zDiff, xDiff), 0xA, this->unk_274, 0) * -0.5f, 5, 0x100); Math_ApproachS(&this->unk_274, this->unk_276, 1, 0x100); @@ -1026,9 +1026,9 @@ void Boss03_Charge(Boss03* this, PlayState* play) { yDiff = (this->unk_268.y - this->actor.world.pos.y) - 50.0f; zDiff = this->unk_268.z - this->actor.world.pos.z; - Math_ApproachS(&this->actor.world.rot.y, Math_FAtan2F(zDiff, xDiff), 0xA, 0x1000); + Math_ApproachS(&this->actor.world.rot.y, Math_Atan2S_XY(zDiff, xDiff), 0xA, 0x1000); - rotXTarget = Math_FAtan2F(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff); + rotXTarget = Math_Atan2S_XY(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff); Math_ApproachS(&this->actor.world.rot.x, rotXTarget, 0xA, 0x1000); this->actor.shape.rot = this->actor.world.rot; @@ -1055,7 +1055,7 @@ void Boss03_Charge(Boss03* this, PlayState* play) { // Player is above water && Player is standing on ground if ((this->waterHeight < player->actor.world.pos.y) && (player->actor.bgCheckFlags & 1)) { - func_800B8D50(play, NULL, 7.0f, Math_FAtan2F(player->actor.world.pos.z, player->actor.world.pos.x), + func_800B8D50(play, NULL, 7.0f, Math_Atan2S_XY(player->actor.world.pos.z, player->actor.world.pos.x), 7.0f, 0); } @@ -1197,9 +1197,9 @@ void Boss03_IntroCutscene(Boss03* this, PlayState* play) { yDiff = D_809E9104[this->unk_242].y - this->actor.world.pos.y; zDiff = D_809E9104[this->unk_242].z - this->actor.world.pos.z; - Math_ApproachS(&this->actor.world.rot.x, Math_FAtan2F(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff), - 0xA, this->unk_274); - Math_ApproachS(&this->actor.world.rot.y, Math_FAtan2F(zDiff, xDiff), 0xA, this->unk_274); + Math_ApproachS(&this->actor.world.rot.x, + Math_Atan2S_XY(sqrtf(SQ(xDiff) + SQ(zDiff)), -yDiff), 0xA, this->unk_274); + Math_ApproachS(&this->actor.world.rot.y, Math_Atan2S_XY(zDiff, xDiff), 0xA, this->unk_274); Math_ApproachS(&this->unk_274, 0x200, 1, 0x10); if ((this->csTimer > 30) && (this->csTimer < 50)) { @@ -1449,7 +1449,7 @@ void Boss03_DeathCutscene(Boss03* this, PlayState* play) { this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STATUS_WAIT); Play_ChangeCameraStatus(play, this->subCamId, CAM_STATUS_ACTIVE); - this->unk_2BE = Math_FAtan2F(this->actor.world.pos.z, this->actor.world.pos.x); + this->unk_2BE = Math_Atan2S_XY(this->actor.world.pos.z, this->actor.world.pos.x); // Player is above water && Player is standing on ground if ((this->waterHeight < player->actor.world.pos.y) && (player->actor.bgCheckFlags & 1)) { @@ -1468,7 +1468,7 @@ void Boss03_DeathCutscene(Boss03* this, PlayState* play) { this->subCamAt.z = mainCam->at.z; aux = this->subCamEye.x - this->actor.world.pos.x; - this->unk_568 = Math_Acot2F(this->subCamEye.z - this->actor.world.pos.z, aux); + this->unk_568 = Math_Atan2F_XY(this->subCamEye.z - this->actor.world.pos.z, aux); this->unk_570 = 0.0f; this->unk_56C = 0.0f; @@ -1582,7 +1582,7 @@ void Boss03_DeathCutscene(Boss03* this, PlayState* play) { this->shapeRotTargetY = Rand_ZeroFloat(65536.0f); } - this->actor.world.rot.y = Math_FAtan2F(-this->actor.world.pos.z, -this->actor.world.pos.x); + this->actor.world.rot.y = Math_Atan2S_XY(-this->actor.world.pos.z, -this->actor.world.pos.x); Boss03_PlayUnderwaterSfx(&this->actor.projectedPos, NA_SE_EN_KONB_BOUND_OLD); Boss03_PlayUnderwaterSfx(&this->actor.projectedPos, NA_SE_EN_KONB_BOUND2_OLD); @@ -1679,7 +1679,7 @@ void Boss03_SpawnSmallFishesCutscene(Boss03* this, PlayState* play) { this->actor.shape.rot.x = this->actor.shape.rot.z; this->actor.shape.rot.y = this->actor.world.rot.y = - Math_FAtan2F(-this->actor.world.pos.x, -this->actor.world.pos.x); + Math_Atan2S_XY(-this->actor.world.pos.x, -this->actor.world.pos.x); this->unk_260 = 0.0f; player->actor.shape.rot.y = player->actor.world.rot.y = this->actor.world.rot.y + 0x8000; @@ -2536,7 +2536,7 @@ void Boss03_SeaweedUpdate(Actor* thisx, PlayState* play) { } if (flag & SEAWEED_FLAG_INTERACT_PLAYER) { - Math_ApproachS(&this->actor.shape.rot.y, Math_FAtan2F(zDiff, xDiff), 0x14, 0x800); + Math_ApproachS(&this->actor.shape.rot.y, Math_Atan2S_XY(zDiff, xDiff), 0x14, 0x800); } if (sGyorgBossInstance->actor.world.pos.y - 40.0f < sGyorgBossInstance->waterHeight) { @@ -2569,7 +2569,7 @@ void Boss03_SeaweedUpdate(Actor* thisx, PlayState* play) { } if (flag & SEAWEED_FLAG_INTERACT_GYORG) { - Math_ApproachS(&this->actor.shape.rot.y, Math_FAtan2F(zDiff, xDiff), 0x14, 0x800); + Math_ApproachS(&this->actor.shape.rot.y, Math_Atan2S_XY(zDiff, xDiff), 0x14, 0x800); } } diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c index dd6f503efc..b07e65de31 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c @@ -474,7 +474,7 @@ void func_8088ACE0(EnArrow* this, PlayState* play) { } if (this->actor.params < ENARROW_6) { - this->actor.shape.rot.x = Math_FAtan2F(this->actor.speedXZ, -this->actor.velocity.y); + this->actor.shape.rot.x = Math_Atan2S_XY(this->actor.speedXZ, -this->actor.velocity.y); } } diff --git a/src/overlays/actors/ovl_En_Az/z_en_az.c b/src/overlays/actors/ovl_En_Az/z_en_az.c index 33a23aae25..0a5056b1fb 100644 --- a/src/overlays/actors/ovl_En_Az/z_en_az.c +++ b/src/overlays/actors/ovl_En_Az/z_en_az.c @@ -1600,8 +1600,8 @@ void func_80A982E0(PlayState* play, ActorPathing* actorPathing) { sp28.z = actorPathing->curPoint.z - actorPathing->worldPos->z; actorPathing->distSqToCurPointXZ = Math3D_XZLengthSquared(sp28.x, sp28.z); actorPathing->distSqToCurPoint = Math3D_LengthSquared(&sp28); - actorPathing->rotToCurPoint.y = Math_FAtan2F(sp28.z, sp28.x); - actorPathing->rotToCurPoint.x = Math_FAtan2F(sqrtf(actorPathing->distSqToCurPointXZ), -sp28.y); + actorPathing->rotToCurPoint.y = Math_Atan2S_XY(sp28.z, sp28.x); + actorPathing->rotToCurPoint.x = Math_Atan2S_XY(sqrtf(actorPathing->distSqToCurPointXZ), -sp28.y); actorPathing->rotToCurPoint.z = 0; } diff --git a/src/overlays/actors/ovl_En_Bom/z_en_bom.c b/src/overlays/actors/ovl_En_Bom/z_en_bom.c index d62e37b1bb..a25a339042 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -266,7 +266,7 @@ void func_80871058(EnBom* this, PlayState* play) { } else { this->actor.speedXZ = sp38; } - this->actor.world.rot.y = Math_FAtan2F(sp3C, sp40); + this->actor.world.rot.y = Math_Atan2S_XY(sp3C, sp40); } if (!Math_StepToF(&this->actor.speedXZ, 0.0f, sp58->x)) { @@ -678,9 +678,9 @@ void func_808726DC(PlayState* play, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, s32 a Math_Vec3f_Copy(&fuseSegmentPtr->pos, arg1); Math_Vec3f_Diff(arg2, arg1, &spCC); - fuseSegmentPtr->rotY = Math_FAtan2F(spCC.z, spCC.x); + fuseSegmentPtr->rotY = Math_Atan2S_XY(spCC.z, spCC.x); distXZ = sqrtf(SQXZ(spCC)); - fuseSegmentPtr->rotX = Math_FAtan2F(distXZ, spCC.y); + fuseSegmentPtr->rotX = Math_Atan2S_XY(distXZ, spCC.y); spB0 = (arg4 / 240) + 1; @@ -718,9 +718,9 @@ void func_808726DC(PlayState* play, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, s32 a spCC.z = 0.0f; } - fuseSegmentPtr2->rotY = Math_FAtan2F(spCC.z, spCC.x); + fuseSegmentPtr2->rotY = Math_Atan2S_XY(spCC.z, spCC.x); distXZ = sqrtf(SQXZ(spCC)); - fuseSegmentPtr2->rotX = Math_FAtan2F(distXZ, spCC.y); + fuseSegmentPtr2->rotX = Math_Atan2S_XY(distXZ, spCC.y); fuseSegmentPtr2->rotY = (s16)CLAMP(BINANG_SUB(fuseSegmentPtr2->rotY, fuseSegmentPtr->rotY), -8000, 8000) + fuseSegmentPtr->rotY; diff --git a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c index cd4e002e50..bfc8281942 100644 --- a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c +++ b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c @@ -284,8 +284,8 @@ void EnClearTag_CreateLightRayEffect(EnClearTag* this, Vec3f* pos, Vec3f* veloci effect->actionTimer = Rand_ZeroFloat(10.0f); - effect->rotationY = Math_Acot2F(effect->velocity.z, effect->velocity.x); - effect->rotationX = -Math_Acot2F(sqrtf(SQXZ(effect->velocity)), effect->velocity.y); + effect->rotationY = Math_Atan2F_XY(effect->velocity.z, effect->velocity.x); + effect->rotationX = -Math_Atan2F_XY(sqrtf(SQXZ(effect->velocity)), effect->velocity.y); effect->envColor.r = 255.0f; effect->envColor.g = 255.0f; @@ -326,8 +326,8 @@ void EnClearTag_CreateIsolatedLightRayEffect(EnClearTag* this, Vec3f* pos, Vec3f effect->actionTimer = Rand_ZeroFloat(10.0f); - effect->rotationY = Math_Acot2F(effect->velocity.z, effect->velocity.x); - effect->rotationX = -Math_Acot2F(sqrtf(SQXZ(effect->velocity)), effect->velocity.y); + effect->rotationY = Math_Atan2F_XY(effect->velocity.z, effect->velocity.x); + effect->rotationX = -Math_Atan2F_XY(sqrtf(SQXZ(effect->velocity)), effect->velocity.y); effect->envColor.r = sLightRayEnvColor[colorIndex].x; effect->envColor.g = sLightRayEnvColor[colorIndex].y; diff --git a/src/overlays/actors/ovl_En_Dg/z_en_dg.c b/src/overlays/actors/ovl_En_Dg/z_en_dg.c index 994af8b4de..d9bebb4046 100644 --- a/src/overlays/actors/ovl_En_Dg/z_en_dg.c +++ b/src/overlays/actors/ovl_En_Dg/z_en_dg.c @@ -252,8 +252,8 @@ void EnDg_GetFloorRot(EnDg* this, Vec3f* floorRot) { sinf(0.0f); cosf(0.0f); - floorRot->x = -Math_Acot2F(1.0f, -nz * ny); - floorRot->z = Math_Acot2F(1.0f, -nx * ny); + floorRot->x = -Math_Atan2F_XY(1.0f, -nz * ny); + floorRot->z = Math_Atan2F_XY(1.0f, -nx * ny); } } @@ -310,7 +310,7 @@ s16 EnDg_GetYRotation(Path* path, s32 index, Vec3f* pos, f32* distSq) { *distSq = SQ(diffX) + SQ(diffZ); - return RADF_TO_BINANG(Math_Acot2F(diffZ, diffX)); + return RADF_TO_BINANG(Math_Atan2F_XY(diffZ, diffX)); } /** diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c index a19823a9c3..54d5c3210b 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -565,17 +565,17 @@ void func_8088D9BC(EnElf* this, PlayState* play) { switch (this->unk_244) { case 0: - targetYaw = Math_FAtan2F(-(this->actor.world.pos.z - vec->z), -(this->actor.world.pos.x - vec->x)); + targetYaw = Math_Atan2S_XY(-(this->actor.world.pos.z - vec->z), -(this->actor.world.pos.x - vec->x)); break; case 3: - targetYaw = Math_FAtan2F(-(this->actor.world.pos.z - player->actor.world.pos.z), - -(this->actor.world.pos.x - player->actor.world.pos.x)); + targetYaw = Math_Atan2S_XY(-(this->actor.world.pos.z - player->actor.world.pos.z), + -(this->actor.world.pos.x - player->actor.world.pos.x)); break; case 2: - targetYaw = Math_FAtan2F(this->actor.world.pos.z - player->actor.world.pos.z, - this->actor.world.pos.x - player->actor.world.pos.x); + targetYaw = Math_Atan2S_XY(this->actor.world.pos.z - player->actor.world.pos.z, + this->actor.world.pos.x - player->actor.world.pos.x); break; default: @@ -719,7 +719,7 @@ void func_8088E018(EnElf* this, PlayState* play) { } else { Actor_Kill(&this->actor); } - this->unk_258 = Math_FAtan2F(this->actor.velocity.z, this->actor.velocity.x); + this->unk_258 = Math_Atan2S_XY(this->actor.velocity.z, this->actor.velocity.x); } void func_8088E0E0(EnElf* this, PlayState* play) { @@ -766,7 +766,7 @@ void func_8088E0F0(EnElf* this, PlayState* play) { return; } - this->unk_258 = Math_FAtan2F(this->actor.velocity.z, this->actor.velocity.x); + this->unk_258 = Math_Atan2S_XY(this->actor.velocity.z, this->actor.velocity.x); func_8088F5F4(this, play, 32); Actor_PlaySfxAtPos(&this->actor, NA_SE_EV_FIATY_HEAL - SFX_FLAG); } @@ -800,7 +800,7 @@ void func_8088E304(EnElf* this, PlayState* play) { this->unk_248 += this->unk_24C; func_8088D7F8(this, &player->bodyPartsPos[PLAYER_BODYPART_WAIST]); - this->unk_258 = Math_FAtan2F(this->actor.velocity.z, this->actor.velocity.x); + this->unk_258 = Math_Atan2S_XY(this->actor.velocity.z, this->actor.velocity.x); func_8088F5F4(this, play, 0x20); Actor_PlaySfxAtPos(&this->actor, NA_SE_EV_FIATY_HEAL - SFX_FLAG); } @@ -825,7 +825,7 @@ void func_8088E484(EnElf* this, PlayState* play) { func_8088D7F8(this, &player->bodyPartsPos[PLAYER_BODYPART_WAIST]); Actor_SetScale(&this->actor, (1.0f - (SQ(this->unk_250) * SQ(1.0f / 9.0f))) * 0.008f); - this->unk_258 = Math_FAtan2F(this->actor.velocity.z, this->actor.velocity.x); + this->unk_258 = Math_Atan2S_XY(this->actor.velocity.z, this->actor.velocity.x); func_8088F5F4(this, play, 32); Actor_PlaySfxAtPos(&this->actor, NA_SE_EV_FIATY_HEAL - SFX_FLAG); } @@ -872,7 +872,7 @@ void func_8088E60C(EnElf* this, PlayState* play) { Lights_PointGlowSetInfo(&this->lightInfoGlow, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 255, 255, 255, glowLightRadius); - this->unk_258 = Math_FAtan2F(this->actor.velocity.z, this->actor.velocity.x); + this->unk_258 = Math_Atan2S_XY(this->actor.velocity.z, this->actor.velocity.x); Actor_SetScale(&this->actor, this->actor.scale.x); } diff --git a/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c b/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c index 02af61d7f6..803a66ac4f 100644 --- a/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c +++ b/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c @@ -220,7 +220,7 @@ void EnElforg_MoveToTargetFairyFountain(EnElforg* this, Vec3f* homePos) { EnElforg_ApproachTargetYPosition(this, homePos); xDifference = this->actor.world.pos.x - homePos->x; zDifference = this->actor.world.pos.z - homePos->z; - targetAngle = Math_FAtan2F(-zDifference, -xDifference); + targetAngle = Math_Atan2S_XY(-zDifference, -xDifference); xzDistance = sqrtf(SQ(xDifference) + SQ(zDifference)); if ((this->targetDistanceFromHome + 10.0f) < xzDistance) { @@ -247,7 +247,7 @@ void EnElforg_MoveToTarget(EnElforg* this, Vec3f* targetPos) { this->actor.shape.yOffset += 100.0f * Math_SinS(this->timer << 9); EnElforg_ApproachTargetYPosition(this, targetPos); - targetAngle = Math_FAtan2F(-(this->actor.world.pos.z - targetPos->z), -(this->actor.world.pos.x - targetPos->x)); + targetAngle = Math_Atan2S_XY(-(this->actor.world.pos.z - targetPos->z), -(this->actor.world.pos.x - targetPos->x)); if (this->targetSpeedXZ > 2.0f) { Math_SmoothStepToS(&this->actor.world.rot.y, targetAngle, 2, 0x400, 0x100); diff --git a/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c b/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c index f6af385b96..ac7fc1debf 100644 --- a/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c +++ b/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c @@ -1481,9 +1481,9 @@ void EnFishing_UpdateLine(PlayState* play, Vec3f* basePos, Vec3f* pos, Vec3f* ro dy = spD8 - (pos + i - 1)->y; dz = (pos + i)->z - (pos + i - 1)->z; - ry = Math_Acot2F(dz, dx); + ry = Math_Atan2F_XY(dz, dx); dist = sqrtf(SQ(dx) + SQ(dz)); - rx = -Math_Acot2F(dist, dy); + rx = -Math_Atan2F_XY(dist, dy); (rot + i - 1)->y = ry; (rot + i - 1)->x = rx; @@ -1517,9 +1517,9 @@ void EnFishing_UpdateLinePos(Vec3f* pos) { dy = (pos + i)->y - (pos + i + 1)->y; dz = (pos + i)->z - (pos + i + 1)->z; - ry = Math_Acot2F(dz, dx); + ry = Math_Atan2F_XY(dz, dx); dist = sqrtf(SQ(dx) + SQ(dz)); - rx = -Math_Acot2F(dist, dy); + rx = -Math_Atan2F_XY(dist, dy); Matrix_RotateYF(ry, MTXMODE_NEW); Matrix_RotateXFApply(rx); @@ -1559,9 +1559,9 @@ void EnFishing_DrawLureHook(PlayState* play, Vec3f* pos, Vec3f* refPos, u8 hookI dy = refPos->y - pos->y + offsetY; dz = refPos->z - pos->z; - ry = Math_Acot2F(dz, dx); + ry = Math_Atan2F_XY(dz, dx); dist = sqrtf(SQ(dx) + SQ(dz)); - rx = -Math_Acot2F(dist, dy); + rx = -Math_Atan2F_XY(dist, dy); Matrix_RotateYF(ry, MTXMODE_NEW); Matrix_RotateXFApply(rx); @@ -1680,9 +1680,9 @@ void EnFishing_UpdateSinkingLure(PlayState* play) { dy = (pos + i)->y - (pos + i - 1)->y + offsetY; dz = (pos + i)->z - (pos + i - 1)->z + offsetZ; - ry = Math_Acot2F(dz, dx); + ry = Math_Atan2F_XY(dz, dx); dist = sqrtf(SQ(dx) + SQ(dz)); - rx = -Math_Acot2F(dist, dy); + rx = -Math_Atan2F_XY(dist, dy); Matrix_RotateYF(ry, MTXMODE_NEW); Matrix_RotateXFApply(rx); @@ -2214,7 +2214,7 @@ void EnFishing_UpdateLure(EnFishing* this, PlayState* play) { sLureRot.y = sReelLineRot[LINE_SEG_COUNT - 2].y; } else { sLureRot.x = 0.0f; - sLureRot.y = Math_Acot2F(spD0, spD8) + M_PI; + sLureRot.y = Math_Atan2F_XY(spD0, spD8) + M_PI; } phi_f16 = sqrtf(SQ(spD8) + SQ(spD4) + SQ(spD0)); @@ -2399,7 +2399,7 @@ void EnFishing_UpdateLure(EnFishing* this, PlayState* play) { sp90.x = player->actor.world.pos.x - sLurePos.x; sp90.z = player->actor.world.pos.z - sLurePos.z; - sp90.y = Math_Acot2F(sp90.z, sp90.x); + sp90.y = Math_Atan2F_XY(sp90.z, sp90.x); D_809101B0 = (sp70 * D_809101BC) + sp90.y; D_809101BC *= -1.0f; @@ -2963,10 +2963,10 @@ void EnFishing_UpdateFish(Actor* thisx, PlayState* play2) { sp12C = this->unk_1AC.y - this->actor.world.pos.y; sp128 = this->unk_1AC.z - this->actor.world.pos.z; - spFC = Math_FAtan2F(sp128, sp130); + spFC = Math_Atan2S_XY(sp128, sp130); sp124 = sqrtf(SQ(sp130) + SQ(sp128)); - spFE = Math_FAtan2F(sp124, sp12C); + spFE = Math_Atan2S_XY(sp124, sp12C); sp124 = sqrtf(SQ(sp130) + SQ(sp128) + SQ(sp12C)); if ((this->unk_198 != 0) && (this->unk_150 != 2) && (this->unk_150 != 3) && (this->unk_150 != 4)) { @@ -4253,7 +4253,7 @@ void EnFishing_HandleReedContact(FishingProp* prop, Vec3f* entityPos) { f32 distXZ = sqrtf(SQ(dx) + SQ(dz)); if (distXZ <= 20.0f) { - prop->rotY = Math_Acot2F(dz, dx); + prop->rotY = Math_Atan2F_XY(dz, dx); Math_ApproachF(&prop->rotX, (20.0f - distXZ) * 0.03f, 0.2f, 0.2f); } @@ -4265,7 +4265,7 @@ void EnFishing_HandleLilyPadContact(FishingProp* prop, Vec3f* entityPos, u8 fish f32 distXZ = sqrtf(SQ(dx) + SQ(dz)); if (distXZ <= 40.0f) { - Math_ApproachS(&prop->lilyPadAngle, Math_FAtan2F(dz, dx), 10, 0x300); + Math_ApproachS(&prop->lilyPadAngle, Math_Atan2S_XY(dz, dx), 10, 0x300); } if (fishTimer && (distXZ <= 60.0f)) { @@ -4560,9 +4560,9 @@ void EnFishing_UpdateGroupFishes(PlayState* play) { dx = fish->unk_10.x - fish->pos.x; dy = fish->unk_10.y - fish->pos.y; dz = fish->unk_10.z - fish->pos.z; - spD4 = Math_FAtan2F(dz, dx); + spD4 = Math_Atan2S_XY(dz, dx); dist = sqrtf(SQ(dx) + SQ(dz)); - spD6 = Math_FAtan2F(dist, dy); + spD6 = Math_Atan2S_XY(dist, dy); if ((dist < 10.0f) || (((fish->timer % 32) == 0) && (Rand_ZeroOne() > 0.5f))) { fish->unk_10.y = basePos[groupIndex].y + randPlusMinusPoint5Scaled(10.0f); @@ -5179,7 +5179,7 @@ void EnFishing_UpdateOwner(Actor* thisx, PlayState* play2) { spFC.x = sLurePos.x - player->actor.world.pos.x; spFC.z = sLurePos.z - player->actor.world.pos.z; lureDistXZ = sqrtf(SQXZ(spFC)); - Matrix_RotateYF(Math_Acot2F(spFC.z, spFC.x), MTXMODE_NEW); + Matrix_RotateYF(Math_Atan2F_XY(spFC.z, spFC.x), MTXMODE_NEW); sp114.x = 0.0f; sp114.y = 0.0f; diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 8a8356740e..a3d76fab70 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -119,7 +119,7 @@ void func_809616E0(EnFu* this, PlayState* play) { for (i = 0; i < this->unk_520; i++) { temp_f20 = this->actor.world.pos.x - this->unk_538[i].x; temp_f22 = this->actor.world.pos.z - this->unk_538[i].z; - atan = Math_FAtan2F(temp_f22, temp_f20); + atan = Math_Atan2S_XY(temp_f22, temp_f20); if (!spA0 || ((i % 2) != 0)) { Actor_Spawn(&play->actorCtx, play, this->unk_544, this->unk_538[i].x, this->unk_538[i].y, diff --git a/src/overlays/actors/ovl_En_Invadepoh/z_en_invadepoh.c b/src/overlays/actors/ovl_En_Invadepoh/z_en_invadepoh.c index 8a8cb53820..bf2b37bca3 100644 --- a/src/overlays/actors/ovl_En_Invadepoh/z_en_invadepoh.c +++ b/src/overlays/actors/ovl_En_Invadepoh/z_en_invadepoh.c @@ -830,7 +830,7 @@ s32 func_80B440B8(EnInvadepoh* this, f32 arg1, f32 arg2) { sp40 = temp_a3->x - sp48->x; sp3C = temp_a3->z - sp48->z; - sp1E = Math_FAtan2F(sp3C, sp40); + sp1E = Math_Atan2S_XY(sp3C, sp40); sp38 = Math_CosS(sp1E); sp34 = Math_SinS(sp1E); sp30 = this->actor.world.pos.x - sp48->x; @@ -1160,8 +1160,8 @@ s32 func_80B44C80(EnInvadepoh* this, PlayState* play) { } Math_SmoothStepToS(&this->actor.world.rot.y, - Math_FAtan2F(((sp60.z + temp_f0_2) * 0.9f) + sp6C.z, ((sp60.x + temp_f0_3) * 0.9f) + sp6C.x), 4, - 0xFA0, 0x64); + Math_Atan2S_XY(((sp60.z + temp_f0_2) * 0.9f) + sp6C.z, ((sp60.x + temp_f0_3) * 0.9f) + sp6C.x), + 4, 0xFA0, 0x64); Actor_MoveWithGravity(&this->actor); if (func_80B440B8(this, 50.0f, 15.0f)) { phi_v0 = 4; diff --git a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c index f0d7f380a8..f911bc4f4f 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c @@ -318,7 +318,7 @@ void func_8095DFF0(EnIshi* this, PlayState* play) { Matrix_MultVecY(1.0f, &sp30); sp2C = Math3D_Parallel(&sp30, &D_8095F778); if (sp2C < 0.707f) { - temp_v1_2 = Math_FAtan2F(sp30.z, sp30.x) - sp3C->world.rot.y; + temp_v1_2 = Math_Atan2S_XY(sp30.z, sp30.x) - sp3C->world.rot.y; if (ABS_ALT(temp_v1_2) > 0x4000) { sp3C->world.rot.y = BINANG_ROT180(sp3C->world.rot.y); } diff --git a/src/overlays/actors/ovl_En_Jg/z_en_jg.c b/src/overlays/actors/ovl_En_Jg/z_en_jg.c index e53eb8eb94..e7c2ad78d0 100644 --- a/src/overlays/actors/ovl_En_Jg/z_en_jg.c +++ b/src/overlays/actors/ovl_En_Jg/z_en_jg.c @@ -214,7 +214,7 @@ s16 EnJg_GetWalkingYRotation(Path* path, s32 pointIndex, Vec3f* pos, f32* distSQ *distSQ = SQ(diffX) + SQ(diffZ); - return RADF_TO_BINANG(Math_Acot2F(diffZ, diffX)); + return RADF_TO_BINANG(Math_Atan2F_XY(diffZ, diffX)); } s32 EnJg_ReachedPoint(EnJg* this, Path* path, s32 pointIndex) { diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index d30c4dec1d..d9b0bf5076 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -151,7 +151,7 @@ void func_80965DB4(EnMm* this, PlayState* play) { if ((temp_f2 < this->actor.speedXZ) || (SurfaceType_GetSlope(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId) == 1)) { this->actor.speedXZ = CLAMP_MAX(temp_f2, 16.0f); - this->actor.world.rot.y = Math_FAtan2F(temp_f12, temp_f14); + this->actor.world.rot.y = Math_Atan2S_XY(temp_f12, temp_f14); } if (!Math_StepToF(&this->actor.speedXZ, 0.0f, 1.0f)) { diff --git a/src/overlays/actors/ovl_En_Mushi2/z_en_mushi2.c b/src/overlays/actors/ovl_En_Mushi2/z_en_mushi2.c index d8e9d68f8e..c10244e552 100644 --- a/src/overlays/actors/ovl_En_Mushi2/z_en_mushi2.c +++ b/src/overlays/actors/ovl_En_Mushi2/z_en_mushi2.c @@ -658,7 +658,7 @@ void func_80A69D3C(EnMushi2* this) { sp38 = Math3D_XZLengthSquared(sp40, sp3C); if (fabsf(sp38) > 0.010000001f) { - s16 temp_v0 = Math_FAtan2F(sp3C, sp40); + s16 temp_v0 = Math_Atan2S_XY(sp3C, sp40); temp_v0 = CLAMP(temp_v0, -3000, 3000); func_80A68F9C(this, temp_v0); } diff --git a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c index d1d57e741f..ad872cd210 100644 --- a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c +++ b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c @@ -104,7 +104,7 @@ void EnNutsball_Update(Actor* thisx, PlayState* play2) { this->actor.velocity.y += this->actor.gravity; spdXZ = sqrtf((this->actor.velocity.x * this->actor.velocity.x) + (this->actor.velocity.z * this->actor.velocity.z)); - this->actor.world.rot.x = Math_FAtan2F(spdXZ, this->actor.velocity.y); + this->actor.world.rot.x = Math_Atan2S_XY(spdXZ, this->actor.velocity.y); } this->actor.home.rot.z += 0x2AA8; if ((this->actor.bgCheckFlags & 8) || (this->actor.bgCheckFlags & 1) || (this->actor.bgCheckFlags & 16) || diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index c002b8204c..8d7b92b69e 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -411,7 +411,7 @@ void func_8095B0C8(EnOwl* this) { Vec3s* points = Lib_SegmentedToVirtual(this->path->points); points += this->unk_3F8; - this->unk_3EC = Math_FAtan2F(points->z - this->actor.world.pos.z, points->x - this->actor.world.pos.x); + this->unk_3EC = Math_Atan2S_XY(points->z - this->actor.world.pos.z, points->x - this->actor.world.pos.x); this->unk_3F0 = points->y; } diff --git a/src/overlays/actors/ovl_En_Racedog/z_en_racedog.c b/src/overlays/actors/ovl_En_Racedog/z_en_racedog.c index 932e2d36d9..0caa2f8caf 100644 --- a/src/overlays/actors/ovl_En_Racedog/z_en_racedog.c +++ b/src/overlays/actors/ovl_En_Racedog/z_en_racedog.c @@ -288,7 +288,7 @@ s16 EnRacedog_GetYRotation(Path* path, s32 pointIndex, Vec3f* pos, f32* distSQ) } *distSQ = SQ(diffX) + SQ(diffZ); - return RADF_TO_BINANG(Math_Acot2F(diffZRand, diffXRand)); + return RADF_TO_BINANG(Math_Atan2F_XY(diffZRand, diffXRand)); } void EnRacedog_GetFloorRot(EnRacedog* this, Vec3f* floorRot) { @@ -299,7 +299,7 @@ void EnRacedog_GetFloorRot(EnRacedog* this, Vec3f* floorRot) { ny = COLPOLY_GET_NORMAL(this->actor.floorPoly->normal.y); nz = COLPOLY_GET_NORMAL(this->actor.floorPoly->normal.z); - floorRot->x = -Math_Acot2F(1.0f, -nz * ny); + floorRot->x = -Math_Atan2F_XY(1.0f, -nz * ny); } } diff --git a/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c b/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c index 8bd665bc03..994115f892 100644 --- a/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c +++ b/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c @@ -1040,8 +1040,8 @@ void EnSnowman_Update(Actor* thisx, PlayState* play) { if ((this->actor.floorPoly != NULL) && ((this->actor.floorPoly->normal.y * SHT_MINV) < 0.7f)) { Math_Vec3f_Copy(&this->actor.world.pos, &this->actor.prevPos); if (!this->turningOnSteepSlope) { - this->snowPileTargetRotY = Math_FAtan2F(this->actor.floorPoly->normal.z * SHT_MINV, - this->actor.floorPoly->normal.x * SHT_MINV); + this->snowPileTargetRotY = Math_Atan2S_XY(this->actor.floorPoly->normal.z * SHT_MINV, + this->actor.floorPoly->normal.x * SHT_MINV); this->turningOnSteepSlope = true; } } else { diff --git a/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c b/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c index 2a488e8b7a..1fa9b2059c 100644 --- a/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c +++ b/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c @@ -1286,7 +1286,7 @@ s16 EnSob1_GetDistSqAndOrient(Path* path, s32 pointIndex, Vec3f* pos, f32* distS diffZ = 0.0f; } *distSq = SQ(diffX) + SQ(diffZ); - return RADF_TO_BINANG(Math_Acot2F(diffZ, diffX)); + return RADF_TO_BINANG(Math_Atan2F_XY(diffZ, diffX)); } void EnSob1_GetCutscenes(EnSob1* this) { diff --git a/src/overlays/actors/ovl_En_Suttari/z_en_suttari.c b/src/overlays/actors/ovl_En_Suttari/z_en_suttari.c index 78cbc4588d..2f33a9aac7 100644 --- a/src/overlays/actors/ovl_En_Suttari/z_en_suttari.c +++ b/src/overlays/actors/ovl_En_Suttari/z_en_suttari.c @@ -563,7 +563,7 @@ s16 EnSuttari_GetDistSqAndOrient(Path* path, s32 index, Vec3f* pos, f32* distSq) } *distSq = SQ(diffX) + SQ(diffZ); - return RADF_TO_BINANG(Math_Acot2F(diffZ, diffX)); + return RADF_TO_BINANG(Math_Atan2F_XY(diffZ, diffX)); } s32 func_80BAB758(EnSuttari* this, Path* path, s32 arg2) { diff --git a/src/overlays/actors/ovl_En_Sw/z_en_sw.c b/src/overlays/actors/ovl_En_Sw/z_en_sw.c index da5ba5b8d5..d8dd72923b 100644 --- a/src/overlays/actors/ovl_En_Sw/z_en_sw.c +++ b/src/overlays/actors/ovl_En_Sw/z_en_sw.c @@ -761,7 +761,7 @@ void func_808DA3F4(EnSw* this, PlayState* play) { Math_Vec3f_Copy(&sp38, &this->unk_374); func_808D9894(this, &sp38); - temp_v0 = Math_FAtan2F(sp38.z, sp38.x); + temp_v0 = Math_Atan2S_XY(sp38.z, sp38.x); if (ABS_ALT(temp_v0) < temp_s1) { this->skelAnime.curFrame = 0.0f; Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_STALWALL_DASH); @@ -794,7 +794,7 @@ void func_808DA578(EnSw* this, PlayState* play) { if ((this->actor.speedXZ == 0.0f) && (this->unk_44C != 0.0f)) { Math_Vec3f_Copy(&sp30, &this->unk_374); func_808D9894(this, &sp30); - temp2 = Math_FAtan2F(sp30.z, sp30.x); + temp2 = Math_Atan2S_XY(sp30.z, sp30.x); func_808D94D0(this, play, 0, 0, temp2); } } else if (this->unk_410 & 0x20) { @@ -825,7 +825,7 @@ void func_808DA6FC(EnSw* this, PlayState* play) { if ((this->actor.speedXZ == 0.0f) && (this->unk_44C != 0.0f)) { Math_Vec3f_Copy(&sp38, &this->unk_374); func_808D9894(this, &sp38); - temp2 = Math_FAtan2F(sp38.z, sp38.x); + temp2 = Math_Atan2S_XY(sp38.z, sp38.x); func_808D94D0(this, play, 0, 0, temp2); } } else { @@ -916,7 +916,7 @@ void func_808DAA60(EnSw* this, PlayState* play) { if (this->unk_45E == 0) { Math_Vec3s_ToVec3f(&sp34, &sp44[this->unk_4A0]); func_808D9894(this, &sp34); - temp_v0 = Math_FAtan2F(sp34.z, sp34.x); + temp_v0 = Math_Atan2S_XY(sp34.z, sp34.x); if (ABS_ALT(temp_v0) < sp40) { this->skelAnime.curFrame = 0.0f; Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_STALWALL_DASH); @@ -967,7 +967,7 @@ void func_808DACF4(EnSw* this, PlayState* play) { Math_Vec3f_Copy(&sp38, &this->unk_374); func_808D9894(this, &sp38); - temp_f6 = Math_FAtan2F(sp38.z, sp38.x); + temp_f6 = Math_Atan2S_XY(sp38.z, sp38.x); func_808D94D0(this, play, 0, 0, temp_f6); } } else { diff --git a/src/overlays/actors/ovl_En_Tanron3/z_en_tanron3.c b/src/overlays/actors/ovl_En_Tanron3/z_en_tanron3.c index 3d831913e9..d991ab323f 100644 --- a/src/overlays/actors/ovl_En_Tanron3/z_en_tanron3.c +++ b/src/overlays/actors/ovl_En_Tanron3/z_en_tanron3.c @@ -232,7 +232,7 @@ void EnTanron3_Live(EnTanron3* this, PlayState* play) { // on attacking the player; in that case, this code will make it turn in the // opposite direction and swim away. In both cases, the fish's target y-position // will be slightly above the halfway point of the water. - atanTemp = Math_FAtan2F(this->targetPos.z, this->targetPos.x); + atanTemp = Math_Atan2S_XY(this->targetPos.z, this->targetPos.x); Matrix_RotateYS(atanTemp, MTXMODE_NEW); Matrix_MultVecZ(700.0f, &this->targetPos); this->targetPos.y = 250.0f; @@ -259,9 +259,9 @@ void EnTanron3_Live(EnTanron3* this, PlayState* play) { // Rotate the fish to look towards its target xzDistance = sqrtf(SQ(xDistance) + SQ(zDistance)); - atanTemp = Math_FAtan2F(xzDistance, -yDistance); + atanTemp = Math_Atan2S_XY(xzDistance, -yDistance); Math_ApproachS(&this->actor.world.rot.x, atanTemp, this->rotationScale, this->rotationStep); - atanTemp = Math_FAtan2F(zDistance, xDistance); + atanTemp = Math_Atan2S_XY(zDistance, xDistance); Math_SmoothStepToS(&this->actor.world.rot.y, atanTemp, this->rotationScale, this->rotationStep, 0); Math_ApproachS(&this->rotationStep, this->targetRotationStep, 1, 0x100); @@ -304,7 +304,7 @@ void EnTanron3_Live(EnTanron3* this, PlayState* play) { if (Rand_ZeroOne() < 0.5f) { this->targetShapeRotation.y = (s16)Rand_ZeroFloat(0x10000); } - this->actor.world.rot.y = Math_FAtan2F(this->actor.world.pos.z, this->actor.world.pos.x) + + this->actor.world.rot.y = Math_Atan2S_XY(this->actor.world.pos.z, this->actor.world.pos.x) + (s16)randPlusMinusPoint5Scaled(0xCE20); } @@ -343,8 +343,8 @@ void EnTanron3_SetupDie(EnTanron3* this, PlayState* play) { xDistance = this->actor.world.pos.x - player->actor.world.pos.x; yDistance = this->actor.world.pos.y - player->actor.world.pos.y + 30.0f; zDistance = this->actor.world.pos.z - player->actor.world.pos.z; - this->actor.world.rot.x = Math_FAtan2F(sqrtf(SQ(xDistance) + SQ(zDistance)), -yDistance); - this->actor.world.rot.y = Math_FAtan2F(zDistance, xDistance); + this->actor.world.rot.x = Math_Atan2S_XY(sqrtf(SQ(xDistance) + SQ(zDistance)), -yDistance); + this->actor.world.rot.y = Math_Atan2S_XY(zDistance, xDistance); this->workTimer[WORK_TIMER_DIE] = 6; this->actor.speedXZ = 10.0f; Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_KONB_MINI_DEAD); @@ -367,8 +367,8 @@ void EnTanron3_CheckCollisions(EnTanron3* this, PlayState* play) { if (player->actor.world.pos.y > 350.0f) { if (this->atCollider.base.atFlags & AT_HIT) { this->atCollider.base.atFlags &= ~AT_HIT; - func_800B8D50(play, NULL, 3.0f, Math_FAtan2F(-player->actor.world.pos.z, -player->actor.world.pos.x), 5.0f, - 0); + func_800B8D50(play, NULL, 3.0f, Math_Atan2S_XY(-player->actor.world.pos.z, -player->actor.world.pos.x), + 5.0f, 0); } } if (this->acCollider.base.acFlags & AC_HIT) { diff --git a/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c b/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c index dcbb103a51..4018a5021c 100644 --- a/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c +++ b/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c @@ -615,7 +615,7 @@ s16 func_80AD48F8(Path* path, s32 arg1, Vec3f* arg2, f32* arg3) { phi_f12 = 0.0f; } *arg3 = SQ(phi_f14) + SQ(phi_f12); - return RADF_TO_BINANG(Math_Acot2F(phi_f12, phi_f14)); + return RADF_TO_BINANG(Math_Atan2F_XY(phi_f12, phi_f14)); } f32 func_80AD49B8(Path* path, s32 arg1, Vec3f* arg2, Vec3s* arg3) { diff --git a/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c b/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c index 30f39146b9..c46821ac15 100644 --- a/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c +++ b/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c @@ -87,7 +87,7 @@ void func_8099FB64(Actor* thisx, PlayState* play) { Matrix_RotateXS(thisx->shape.rot.x, MTXMODE_APPLY); Matrix_RotateZS(thisx->shape.rot.z, MTXMODE_APPLY); Matrix_MultVec3f(&D_8099FE3C, &destVec); - rotY = Math_FAtan2F(destVec.z, destVec.x); + rotY = Math_Atan2S_XY(destVec.z, destVec.x); } actor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_SW, thisx->world.pos.x, thisx->world.pos.y, thisx->world.pos.z, 0, rotY, 0, (OBJMAKEKINSUTA_GET_1F(thisx) << 2) | 0xFF01); diff --git a/src/overlays/actors/ovl_Obj_Swprize/z_obj_swprize.c b/src/overlays/actors/ovl_Obj_Swprize/z_obj_swprize.c index 5eeef1d5ef..5782442373 100644 --- a/src/overlays/actors/ovl_Obj_Swprize/z_obj_swprize.c +++ b/src/overlays/actors/ovl_Obj_Swprize/z_obj_swprize.c @@ -65,7 +65,7 @@ void func_80C253D0(ObjSwprize* this, PlayState* play) { if (sp78.y < 0.98f) { collectible->velocity.y = (sp78.y + 1.0f) * 4.0f; collectible->speedXZ = (2.0f * (1.0f - fabsf(sp78.y))) + 2.0f; - collectible->world.rot.y = Math_FAtan2F(sp78.z, sp78.x) + D_80C257F8[i]; + collectible->world.rot.y = Math_Atan2S_XY(sp78.z, sp78.x) + D_80C257F8[i]; } else { collectible->world.rot.y = i * (0x10000 / 3); } @@ -76,7 +76,7 @@ void func_80C253D0(ObjSwprize* this, PlayState* play) { if ((collectible != NULL) && (sp78.y < 0.98f)) { collectible->velocity.y = (sp78.y + 1.0f) * 4.0f; collectible->speedXZ = (2.0f * (1.0f - fabsf(sp78.y))) + 2.0f; - collectible->world.rot.y = Math_FAtan2F(sp78.z, sp78.x); + collectible->world.rot.y = Math_Atan2S_XY(sp78.z, sp78.x); } } } diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c index 7d6cf277cd..1108e61ce9 100644 --- a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c +++ b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c @@ -71,7 +71,7 @@ u32 EffectSsEnIce_Init(PlayState* play, u32 index, EffectSs* this, void* initPar this->update = EffectSsEnIce_Update; this->rLifespan = initParams->life; this->rScale = initParams->scale * 100.0f; - this->rYaw = Math_FAtan2F(initParams->velocity.z, initParams->velocity.x); + this->rYaw = Math_Atan2S_XY(initParams->velocity.z, initParams->velocity.x); this->rPitch = 0; this->rPrimColorR = initParams->primColor.r; this->rPrimColorG = initParams->primColor.g; diff --git a/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c index ebc28b4694..52561fea28 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c +++ b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c @@ -36,7 +36,7 @@ u32 EffectSsIcePiece_Init(PlayState* play, u32 index, EffectSs* this, void* init this->update = EffectSsIcePiece_Update; this->rLifespan = initParams->life; this->rScale = initParams->scale * 100.0f; - this->rYaw = Math_FAtan2F(initParams->velocity.z, initParams->velocity.x); + this->rYaw = Math_Atan2S_XY(initParams->velocity.z, initParams->velocity.x); this->rPitch = 0; this->rRotSpeed = ((fabsf(initParams->velocity.x) + fabsf(initParams->velocity.y)) * 100.0f) * (Rand_ZeroFloat(1.0f) + 0.5f); diff --git a/src/overlays/effects/ovl_Effect_Ss_Sbn/z_eff_ss_sbn.c b/src/overlays/effects/ovl_Effect_Ss_Sbn/z_eff_ss_sbn.c index d1a22473f1..c5c058cc3e 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Sbn/z_eff_ss_sbn.c +++ b/src/overlays/effects/ovl_Effect_Ss_Sbn/z_eff_ss_sbn.c @@ -111,9 +111,9 @@ u32 EffectSsSbn_Init(PlayState* play, u32 index, EffectSs* this, void* initParam opposite = (SQ(angle) >= 1.0f) ? 0.0f : sqrtf(1.0f - SQ(angle)); if (((mtx.mf[0][0] * colPolyVec.x) + (mtx.mf[0][1] * colPolyVec.y) + (mtx.mf[0][2] * colPolyVec.z)) < 0.0f) { - this->rRotAngle = Math_FAtan2F(angle, opposite); + this->rRotAngle = Math_Atan2S_XY(angle, opposite); } else { - this->rRotAngle = -Math_FAtan2F(angle, opposite); + this->rRotAngle = -Math_Atan2S_XY(angle, opposite); } } diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 467adbd90b..17c834003e 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -3352,8 +3352,8 @@ 0x8017FEB0:("Math_GetAtan2Tbl",), 0x8017FEE4:("Math_Atan2S",), 0x801800CC:("Math_Atan2F",), - 0x80180100:("Math_FAtan2F",), - 0x8018012C:("Math_Acot2F",), + 0x80180100:("Math_Atan2S_XY",), + 0x8018012C:("Math_Atan2F_XY",), 0x80180160:("Matrix_Init",), 0x8018019C:("Matrix_Push",), 0x801801CC:("Matrix_Pop",), diff --git a/tools/namefixer.py b/tools/namefixer.py index 226295393a..d7e86937e7 100755 --- a/tools/namefixer.py +++ b/tools/namefixer.py @@ -18,7 +18,9 @@ simpleReplace = { wordReplace = { # Functions "Actor_GetSwitchFlag": "Flags_GetSwitch", - "atan_flip": "Math_Acot2F", + "Math_FAtan2F(": "Math_Atan2S_XY(", + "Math_Acot2F": "Math_Atan2F_XY", + "atan_flip": "Math_Atan2F_XY", "atans": "Math_Atan2S", # "SysMatrix_StateAlloc": "Matrix_StateAlloc", diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv index eab5ee8272..7d6952054b 100644 --- a/tools/sizes/code_functions.csv +++ b/tools/sizes/code_functions.csv @@ -2866,8 +2866,8 @@ asm/non_matchings/code/sys_math3d/func_8017FD44.s,func_8017FD44,0x8017FD44,0x5B asm/non_matchings/code/sys_math_atan/Math_GetAtan2Tbl.s,Math_GetAtan2Tbl,0x8017FEB0,0xD asm/non_matchings/code/sys_math_atan/Math_Atan2S.s,Math_Atan2S,0x8017FEE4,0x7A asm/non_matchings/code/sys_math_atan/Math_Atan2F.s,Math_Atan2F,0x801800CC,0xD -asm/non_matchings/code/sys_math_atan/Math_FAtan2F.s,Math_FAtan2F,0x80180100,0xB -asm/non_matchings/code/sys_math_atan/Math_Acot2F.s,Math_Acot2F,0x8018012C,0xD +asm/non_matchings/code/sys_math_atan/Math_Atan2S_XY.s,Math_Atan2S_XY,0x80180100,0xB +asm/non_matchings/code/sys_math_atan/Math_Atan2F_XY.s,Math_Atan2F_XY,0x8018012C,0xD asm/non_matchings/code/sys_matrix/Matrix_Init.s,Matrix_Init,0x80180160,0xF asm/non_matchings/code/sys_matrix/Matrix_Push.s,Matrix_Push,0x8018019C,0xC asm/non_matchings/code/sys_matrix/Matrix_Pop.s,Matrix_Pop,0x801801CC,0x7